SimpleDailyRangeBreakExpert - sayfa 11

 

Başlangıç saatine eklenen bu "3600" değerini kendime soruyorum. Bu zaman kayması olayının benim için net olmamasını sağlıyor. Belki Igorad yardımcı olabilir.

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;

}

}
 

Bu 3600 değeri, saatlerin saniye cinsinden dönüşümü gibi görünüyor. Bu benim için 09:00 komisyoncu saatinde (gmt+0) başladığım anlamına geliyor. benim sorunum başka yerde

 

Merhaba Flytox,

Şimdi bu EA'ya bakacağım (genellikle günde bir kez ilginç bir şey göndererek ifadeleri alıyorum). Görmek için bu EA'yı metaEditor ile açacağım:

- bu Ea bazı Tracert dosyalarını kullanıyor olabilir;

- veya kodun içinde IBFX için EURUSD m yerine EURUSD olarak belirtilen bazı çiftler olabilir.

Her neyse, zamanı 9'a ayarlarsanız, EA tüm karlı siparişleri 9'da kapatmalı ve yeni bekleyen siparişler açmalıdır (9'da da).

Şimdi buna bakacağım.

 

Aynı hesaptaki diğer EA'ları kapattım (TPE, TS,) ve SBS nihayet 9:00'da (komisyoncu saati) bekleyen emirler verdi. Kaldırdığım EA'lar farklı sihirli sayılara sahipti. SBS123 ve diğer EA'lar arasında bilinen bir uyumsuzluk var mı?

 

Bu 1.23 kodunun içine baktım ve herhangi bir sorun görmedim: bu EA dışarıdan herhangi bir dosya kullanmıyor ve herhangi bir gösterge yok. Bu yüzden IBFX ile çalışması gerekir.

Bu EA/ayarını kullanıyorum (varsayılan ayar ( bu gönderiye bakın). Bu, GMT+3 komisyoncusu için ayardır. Ve TimeShift=9 ile EURUSD ve GBPUSD'ye sahibim (şimdi GMT+3 olan LiteForex sunucu saati için 09:00) , TimeShift=10 ile USDJPY ve TimeShift=7 ile USDCHF.GMT+3 içindir.

IBFX GMT+0'a sahipse, aşağıdakiler olabilir:

TimeShift=6 ile EURUSD ve GBPUSD vb.

 

Merhaba ND,

Diğer EA'lar aynı MT4'te (aynı hesap) olduğunda olası çakışmayla ilgili önceki yazımı gördünüz mü?

 
Flytox:
Aynı hesaptaki diğer EA'ları kapattım (TPE, TS,) ve SBS nihayet 9:00'da (komisyoncu saati) bekleyen emirler verdi. Kaldırdığım EA'lar farklı sihirli sayılarlaydı. SBS123 ve diğer EA'lar arasında bilinen bir uyumsuzluk var mı?

Uyumsuzluk? Numara.

2 EA'nın sırayı değiştirmek veya siparişi tam olarak aynı anda mühimmat ve saniye olarak kapatmak/açmak istediği zaman olabilir. Ama olağan bir durum değil. Temel olarak bu nedenle Metatrader'ın bir kopyasında 3'ten fazla EA kullanmak imkansızdır (EA'lar birbirini "kesebilir"). 1 veya 2 veya 3 EA olabilir Metatrader'ın bir kopyasında iyi olabilir ama aynı zamanda zaman çerçeveleriyle de ilgilidir: örneğin, EA ile birlikte D1 zaman çerçevesi üzerinde çalışan EA ile birlikte M5'te bir miktar ölçekleyici kullanabiliriz. Çünkü Metatrader bir program olarak 2 şeyi aynı anda yapamıyor: bir emri değiştiremez ve diğer bekleyen emri aynı anda dakika/saniye cinsinden tam olarak silemez.

Bu SBS_V1.23 ile ilgili olarak, EA, bekleyen emri silmeye ve tamamlanana kadar birçok kez yeni bir tane açmaya çalışacaktır. SBS_V1.21 aynıdır: eğer metatrader bekleyen emri şimdi silemezse, Metatrader bunu 1 dakika sonra yapmaya çalışacaktır, eğer başarısız olursa - 1 dakika sonra iş bitene kadar bir kez daha. Bu yüzden herhangi bir Uyumsuzluk olmadığını düşünüyorum.

Benzer EA'lar SBS_v1.21 ve TPE EA'dır.

Daha az riskli SBS_v1.21'dir, TPE daha risklidir ve TPE'den daha riskli SBS_v1.23'tür (sadece başlangıç mevduat büyüklüğü ile ilgili tüccarlar için riklere göre sıralama).

Her EA için farklı sihirli numara kullanırsanız, herhangi bir çakışma olmaz.

Tabii ki Metatrader'ın bir kopyasında 5 EA'yı test ediyorsanız, farklı sihirli sayılarla bile her şey olabilir. Bir Metatrader'da 5 EA çok fazla.

Dosyalar:
sbs121.zip  18 kb
tpe12.zip  17 kb
 

Cevaplarınız için teşekkürler ND.

 

Lütfen 2 versiyon için güncellenmiş ifadeleri bulun.

Test döneminin başlangıcındaki ifadeler için bu gönderiye ve excel dosyasına bakın https://www.mql5.com/en/forum/173383/page79

Dosyalar:
sbs121_1.zip  18 kb
sbs123.zip  50 kb
 

Lütfen SBS 1.23 sürümü için güncellenmiş beyanı bulun.

Dosyalar:
sbs23.zip  35 kb