请教高手我的EA在一短时间内平仓后不停的重复交易

 
用SLEEP()函数似乎不起作用,我想问问有没有什么方法计算在平仓后等待新柱开始后在行交易,尽量不用SLEEP()函数?感谢!
 

datetime lasttime= NULL;

int start()
{
if (Time[0] == lasttime ) return;

lasttime = Time[0];

...............

 
DxdCn 写道 >>

datetime lasttime= NULL;

int start()
{
if (Time[0] == lasttime ) return;

lasttime = Time[0];

...............

不大明白其中的意思,是不是说 :time[0]如果等于NULL的话,就表示不是开盘时间?那么返回???感谢!

 
chqyld 写道 >>

不大明白其中的意思,是不是说 :time[0]如果等于NULL的话,就表示不是开盘时间?那么返回???感谢!

本人的理解

初始化lasttime=NULL

如果没有柱体,也就是tim[0]等于lasttime等于NULL时,返回。

如果有柱体把当前柱体时间付给全局变量lasttime,下次运行start时,

检测当前柱体时间和lasttime是否一致,一致则说明柱体无变化,返回,

不一致则说明变化了,也就是有新的柱体生成。

 

只需知道Time[0] 只可能是 以1, 5, 30 60分钟, 4小时...的倍数为界的. 所有只有新柱开始 或是结束 才有新 Time[0] 就行了.

你的目的不就是每柱最多一次交易吗?

 
DxdCn 写道 >>

只需知道Time[0] 只可能是 以1, 5, 30 60分钟, 4小时...的倍数为界的. 所有只有新柱开始 或是结束 才有新 Time[0] 就行了.

你的目的不就是每柱最多一次交易吗?

谢谢,明白了!