- 精华
- 0
- 在线时间
- 10 小时
- UID
- 6885
- 积分
- 56
- 帖子
- 9
- 阅读权限
- 30
- 注册时间
- 2010-2-5
- 最后登录
- 2019-3-30
- 精华
- 0
- UID
- 6885
- 积分
- 56
- 帖子
- 9
- 主题
- 3
- 阅读权限
- 30
- 注册时间
- 2010-2-5
- 最后登录
- 2019-3-30
|
我用自编的代码,采用自动交易模式操作SR1009,2月8日10:35出现BUYK信号,理应开多单1手,然而在模拟帐户并没有开多单。
请帮忙看一下这是为什么?
交易程序中开平仓的代码如下所示:其中BUYK是开多单的信号,SELLP是平多单的信号;SELLK是开空单的信号,BUYP是平空单的信号。
if (BUYK==true and MarketPosition==0)
{
myEntryPrice = c;
preEntryPrice = myEntryPrice; //保存前一开仓价
myExitPrice = myEntryPrice-PstopLoss*MinMove; //记录初始平仓价=开仓价-止损点数*最小点差
preExitPrice = myExitPrice; //保存止损价
Buy(Unitlots,close,True); //等K线走完再发指令
SendOrderThisBar = True;
FileAppend("C:\\Formula.log",CurrDate+" 多单开仓价格 = "+Text(myEntryPrice));
FileAppend("C:\\Formula.log",CurrDate+" 最初止损价格("+ Text(PstopLoss)+")=" +Text(myExitPrice));
}
//平多单命令
if (SELLP==true and MarketPosition==1)
{
Sell(Unitlots,Close,True);
FileAppend("C:\\Formula.log",CurrDate+" 信号平多价格 = "+Text(Close));
}
//开空单命令
if (SELLK==true and MarketPosition==0)
{
// 开仓价格取当前BAR的收盘价,在真实情况下保证成交。
//myEntryPrice = IIF(myEntryPrice < Open, Open,myEntryPrice); // 大跳空的时候用开盘价代替
myEntryPrice = c;
preEntryPrice = myEntryPrice;
myExitPrice = myEntryPrice+PstopLoss*MinMove; //记录初始平仓价=开仓价+止损点位*最小点差
preExitPrice = myExitPrice; //保存止损价
SellShort(Unitlots,myEntryPrice,True);
SendOrderThisBar = True;
FileAppend("C:\\Formula.log",CurrDate+" 空单开仓价格 = "+Text(myEntryPrice));
FileAppend("C:\\Formula.log",CurrDate+" 最初止损价格("+ Text(PstopLoss)+")=" +Text(myExitPrice));
}
//平空单命令
if (BUYP==true and MarketPosition==-1)
{
BuyToCover(Unitlots,Close,True);
FileAppend("C:\\Formula.log",CurrDate+" 信号平空价格 = "+Text(Close));
} |
|