- 精华
- 0
- 在线时间
- 58 小时
- UID
- 15139
- 积分
- 170
- 帖子
- 21
- 阅读权限
- 40
- 注册时间
- 2010-8-9
- 最后登录
- 2013-5-9
- 精华
- 0
- UID
- 15139
- 积分
- 170
- 帖子
- 21
- 主题
- 8
- 阅读权限
- 40
- 注册时间
- 2010-8-9
- 最后登录
- 2013-5-9
|
以下是一个延时发单交易指令,我可以肯定,每次都发两个单,一个是我所需要的延时的单,另外一个是If(BarStatus == 1)的单,我不能将BarStatus == 1时的单发出去,同时,我要能看到图表上的信号,请问,如何解决?谢谢
Params
Numeric Length(2);
Numeric Lots(1);
Vars
NumericSeries Ma;
NumericSeries Ma1;
Begin
If(Date != Date[1] And High == Low) Return;
If(BarStatus == 0) //全局变量初始化
{
SetGlobalVar(0,0); //开仓条件成立时间记录标示
SetGlobalVar(1,0); //开仓条件成立时间
SetGlobalVar(2,0); //记录交易,MarketPosition只记录图表,控制不住,很不好用!
}
Ma = Average(Close,Length); // 均线
Ma1 = Ma[1];
If(BarStatus == 1)
{
If(MarketPosition !=1 And CrossOver(Close[1],Ma1))
{
Buy(Lots,Open);
}
If(MarketPosition ==1 And CrossOver(Ma1,Close[1]))
{
Sell(Lots,Open);
}
}
If(BarStatus == 2)
{
If(GetGlobalVar(2)==0 And CrossOver(Close[1],Ma1) And GetGlobalVar(0) == 0)
{
SetGlobalVar(0,1);
SetGlobalVar(1,CurrentTime * 1000000 % 100);
}
If(GetGlobalVar(2)==0 And CrossOver(Close[1],Ma1) And GetGlobalVar(0) == 1 And (CurrentTime * 1000000 % 100 - GetGlobalVar(1)== 10))
{
Buy(Lots,Open);
SetGlobalVar(0,0);
SetGlobalVar(2,2);
}
If(GetGlobalVar(2)==2 And CrossOver(Ma1,Close[1]) And GetGlobalVar(0) == 0)
{
SetGlobalVar(0,-1);
SetGlobalVar(1,CurrentTime * 1000000 % 100);
}
If(GetGlobalVar(2)==2 And CrossOver(Ma1,Close[1]) And GetGlobalVar(0) == -1 AND (CurrentTime * 1000000 % 100 - GetGlobalVar(1)==5))
{
Sell(Lots,Open);
SetGlobalVar(0,0);
SetGlobalVar(2,0);
}
}
End |
|