- 精华
- 0
- 在线时间
- 77 小时
- UID
- 276245
- 积分
- 101
- 帖子
- 58
- 阅读权限
- 30
- 注册时间
- 2019-3-1
- 最后登录
- 2021-4-6
- 精华
- 0
- UID
- 276245
- 积分
- 101
- 帖子
- 58
- 主题
- 11
- 阅读权限
- 30
- 注册时间
- 2019-3-1
- 最后登录
- 2021-4-6
|
一、账户无持仓时的开仓
If( (A_TotalPosition == 0 )&&( CurrentBar != 0)&&( CurrentBar != 1)) //账户无持仓时
{
If(High > LineHi)
{
myEntryPrice = min(high, LineHi + MinPoint);
If( Open> myEntryPrice) myEntryPrice = Open; // 大跳空的时候用开盘价代替
A_SendOrder(Enum_Buy,Enum_Entry,Units, myEntryPrice);
}
If(Low < LineLo)
{
myEntryPrice = max(low, LineLo - MinPoint);
If( Open< myEntryPrice) myEntryPrice = Open; // 大跳空的时候用开盘价代替
A_SendOrder(Enum_Sell,Enum_Entry,Units, myEntryPrice);
}
}
二、账户持仓时的平仓
If( (A_BuyPosition > 0) &&(Barssinceentry>=0) ) //持多仓的情况且开仓bar及以后
{
If(Low < ExitLowestPrice)
{
myExitPrice = ExitLowestPrice- MinPoint;
If( Open< myExitPrice) myExitPrice= Open; // 大跳空的时候用开盘价代替
A_SendOrder(Enum_Sell,Enum_Exit,A_BuyPosition(),myExitPrice) ;
}
} Else if ( (A_SellPosition >0) &&(Barssinceentry>=0) ) //持空仓的情况且开仓bar及以后
{
If(High > ExithighestPrice)
{
myExitPrice = ExithighestPrice+ MinPoint;
If( Open> myExitPrice) myExitPrice= Open; // 大跳空的时候用开盘价代替
A_SendOrder(Enum_Buy,Enum_Exit,A_SellPosition(),myExitPrice);
}
}
之前用buy、sell指令发单,现在改为使用A_SendOrder发单
弄了好长时间还有许多不懂的地方,有几个问题请教下:
1、Params和Vars里都是原来buy、sell指令发单的程序,没有改动,Params里是否需要添加声明?Vars里是否需要添加声明?
2、CurrentBar ,barssinceentry ,ATR,MA,myentryprice,myExitPrice这几个在A_SendOrder发单程序里能用么?
3、判断有无持仓、多头仓、空头仓是否正确?
4、看了教程后,不会用GetGlobalVar ,SetGlobalVar控制频繁发单,在语句中怎么添加?麻烦给个示例(我的思路是只要是无持仓就开仓,且只开一次仓,中间没有加仓减仓,只要有持仓就不能再开仓了,平仓也是所有持仓一次全部平掉,我只交易一个品种的主力合约,且只可能存在同一方向上的持仓)
5、 A_SendOrder里开仓指令、平仓指令对不对?不用Q_AskPrice()和Q_BidPrice()而用myEntryPrice、myExitPrice可以么?
6、High、Low最高最低价是否需要换成close(最新价)?
7、使用A_SendOrder发单是否可以解决用buy、sell指令的时候,开仓bar上不开仓的问题?
|
|