简单日间休息专家 - 页 11

 

我问自己,这个 "3600 "的值加在开始时间上。这使我对时间转移的事情不清楚。也许Igorad可以提供帮助。

string TimeTrade = "00:00";

StartTime = StrToTime(TimeTrade) + TimeShift*3600;

if(CurTime() >= StartTime && CurTime() <= StartTime+3600)

{

if ( OrderOpenDate() < StrToTime(TimeToStr( StartTime,TIME_DATE)))

{

if( ScanTrades()>0 && !BuyInTrade && !SellInTrade) PendOrdDel();

Today = StrToTime(TimeToStr( StartTime,TIME_DATE));

if (Today != PrevDay )

{ DaysInTrade = DaysInTrade+1;

//Print(" Days=",DaysInTrade,"Today=",TimeToStr(Today,TIME_DATE),"PrevDay=", TimeToStr(PrevDay,TIME_DATE)) ;

}

if( TradePeriod > 0 )CloseOrdbyTime();

}

if(ScanTrades()<1 && Today != PrevDay )

{

spread= MarketInfo(Symbol(),MODE_SPREAD)*Point;

digit = MarketInfo(Symbol(),MODE_DIGITS);

Lotsi = MoneyManagement ( MM, Lots, MMRisk, LossMax);

//if (TrailingStop > 0) InitialStop=true;

ArrayCopyRates(rates_h1, Symbol(), PERIOD_H1);

open = rates_h1[0][1];

high=0; low=10000000;

for (i=24;i>=1;i--)

{

high = MathMax( high, rates_h1[3]);

low = MathMin( low , rates_h1[2]);

}

range =(high-low);

if ( Monday == 1 ) if(DayOfWeek()==1){BuyOrdOpen(); SellOrdOpen();}

if ( Tuesday == 1 ) if(DayOfWeek()==2){BuyOrdOpen(); SellOrdOpen();}

if ( Wednesday== 1 ) if(DayOfWeek()==3){BuyOrdOpen(); SellOrdOpen();}

if ( Thursday == 1 ) if(DayOfWeek()==4){BuyOrdOpen(); SellOrdOpen();}

if ( Friday == 1 ) if(DayOfWeek()==5){BuyOrdOpen(); SellOrdOpen();}

DaysInTrade = 0;

}

}
 

这个3600值似乎是以秒为单位的小时转换。对我来说,这意味着我从经纪商时间(GMT+0)09:00开始,我的问题在其他地方。

 

嗨,Flytox。

我现在要看一下这个EA(通常我每天都会发表一次声明,发布一些有趣的东西)。我将用metaEditor打开这个EA来看看。

- 可能这个EA使用了一些Tracert文件。

- 或者可能是代码中提到的某些货币对是EURUSD,而不是IBFX的EURUSDm

总之,如果你设置时间为9点,那么EA应该在9点关闭所有盈利的订单,并打开新的挂单(也是在9点)。

我现在要看看这个问题。

 

我关闭了同一账户上的其他EA(TPE、TS),SBS在9:00(经纪人时间)终于下了挂单。我删除的EA是不同的魔法数字。SBS123和其他EA之间是否存在任何已知的不兼容?

 

我查看了1.23版的代码,没有发现任何问题:这个EA没有使用外部的任何文件,也没有任何指标。因此,它必须与IBFX一起工作。

我正在使用这个EA/设置(默认设置(见这个帖子)。它是为GMT+3经纪商设置的。我有欧元兑美元和英镑兑美元的时移=9(利特福德服务器时间为上午09点,现在是GMT+3),美元兑日元的时移=10,美元兑瑞士法郎的时移=7。这是为GMT+3而设。

如果IBFX的时间是GMT+0,那么它可能是以下情况。

欧元兑美元和英镑兑美元的时移=6,以此类推。

 

你好,ND。

您是否看到我之前的帖子,关于其他EA在同一MT4(同一账户)上可能出现的冲突。

 
Flytox:
我关闭了同一账户上的其他EA(TPE、TS),SBS在9:00(经纪人时间)最后下了挂单。我删除的EA是不同的魔法数字。SBS123和其他EA之间是否存在任何已知的不兼容?

不兼容?不会。

当2个EA想修改订单,或在同一时间内准确地关闭/打开订单时,可能会出现这种情况(以毫秒计)。但这不是通常的情况。基本上,在一个Metatrader副本中不可能使用超过3个EA,因为(EA可能互相 "干扰")。在一个Metatrader副本中使用1个或2个,或者3个EA也可以,但这也与时间框架有关:例如,我们可以在M5上使用一些剥皮器,同时在D1时间框架上使用EA,等等。因为Metatrader作为一个程序不能同时做两件事:不能在几分钟/几秒钟内同时修改一个订单和删除另一个挂单。

对于这一点,SBS_V1.23,EA会尝试删除挂单 并多次打开新的挂单,直到完成。SBS_V1.21也是如此:如果Metatrader现在不能删除挂单,那么Metatrader会在1分钟后尝试这样做,如果失败--1分钟后再次尝试,直到工作完成。所以我认为没有任何不相容性。

类似的EA有SBS_v1.21和TPE EA。

风险较小的是SBS_v1.21,风险较大的是TPE,而比TPE风险更大的是SBS_v1.23(只是根据交易者的起始存款规模的风险进行排序)。

如果你对每个EA使用不同的魔法数字,就不会有任何冲突。

当然,如果你在一份Metatrader中测试5个EA,那么即使使用不同的魔法号码,也可能是一切。一个Metatrader中的5个EA是太多了。

附加的文件:
sbs121.zip  18 kb
tpe12.zip  17 kb
 

谢谢你的回答,ND。

 

请找到2个版本的更新报表。

从测试期开始的报表见此帖和excel文件https://www.mql5.com/en/forum/173383/page79

附加的文件:
sbs121_1.zip  18 kb
sbs123.zip  50 kb
 

请查看SBS 1.23版本的更新声明。

附加的文件:
sbs23.zip  35 kb