开拓者期货期权程序化系统交易论坛
标题:
请教 版主在回测中 使用序列变量 防止重复开仓 问题
[打印本页]
作者:
zhoutao2270
时间:
2018-12-4 22:54:20
标题:
请教 版主在回测中 使用序列变量 防止重复开仓 问题
在 22点左右开始测试的,突然就不开仓的了,周末测试的时候还好好的, 现在测试只有刷新 的时候 图表会显示开单信号,但过一会 信号又没有的了 ,完全搞不懂 怎么回事的了,,请版主解答一下的 谢谢,
Vars
NumericSeries Ssp;
NumericSeries Bsp;
NumericSeries Btp;
NumericSeries Stp;
Numeric aa(1000000);
Numeric bb;
NumericSeries mtaa(0);
NumericSeries mtbb(0);
Numeric i;
Begin
If(Date==Date && T>=0.0935 && T<0.14)//开盘后9:35 开始计算数据
{
For i=2 To 1000
{
If(high[i]>bb)
bb=High[i]; //找出当前序号1的Bar 到开盘时间9点 之间 所有Bar中的最高价。
If(Low[i]<aa)
aa=Low[i]; //找出当前序号1的Bar 到开盘时间9点 之间 所有Bar中的最低价。
If(T[i]<=0.0900) 循环到开盘时间9点 ,跳出循环
Break;
// PlotString("f",Text(mtbb));
}
If(Close[1]>bb && mtbb==0 && MarketPosition()==0 && Open[0]-Low[1]<30) // 如果没有订单,且当前 1号Bar收盘价 大于之前找出的最高价,止损值小于30点,开多单,
{
Buy(1,Open);
Bsp=Low[1];
Btp=Open[0]+30;
mtbb=1; // 重置序列变量,防止重复开仓。
}
Else If( Close[1]<aa && mtaa==0 && MarketPosition()==0 && High[1]-Open[0]<30)
{
SellShort(1,Open);
Ssp=High[1];
Stp=Open[0]-30;
mtaa=1;
}
If((MarketPosition()==1 && Close<Bsp-3)|| Close>=Btp)
{
Sell();
}
If((MarketPosition()==-1 && Close>Ssp+3) || Close>=Stp)
{
BuyToCover();
}
}
If(T>=0.1451 && MarketPosition!=0)
{
Sell();
mtbb=0;
BuyToCover();
mtaa=0;
}
欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/)
Powered by Discuz! X2