Piyasanın kapalı olduğunu doğru bir şekilde nasıl bilebilirim? (mql4) - sayfa 5

 

"DayOfWeek" ten yeterli bilgiyi nasıl alacağımı hiç anlamadım. Robotun başlatıldığı gün ve bazı durumlarda (bazen) doğru değeri verir. Siparişleri açarken bana göründüğü gibi. Hiçbir şey açmazsanız, hava dışarı çıkacaktır.

Sorunu şu şekilde çözdüm:

...
int realDay=DayOfWeek();
int curHour=TimeHour( TimeLocal ());
   while (! IsStopped ())
      {
       if (TimeHour( TimeLocal ())<curHour) realDay++; 
      curHour=TimeHour( TimeLocal ());
       if (realDay== 7 ) realDay= 0 ;        
...     

Ama henüz test etmedim))) çalışması gerekir

 
winsight :

"DayOfWeek" ten yeterli bilgiyi nasıl alacağımı hiç anlamadım. Robotun başlatıldığı gün ve bazı durumlarda (bazen) doğru değeri verir. Siparişleri açarken bana göründüğü gibi. Hiçbir şey açmazsanız, hava dışarı çıkacaktır.

Sorunu şu şekilde çözdüm:

Ama henüz test etmedim))) çalışması gerekir

Daha kolay - TimeDayOfWeek'i kullanın:

 int dayOfWeek = TimeDayOfWeek( TimeCurrent ());
 
Ihor Herasko :
Bu nedenle, yalnızca enstrüman üzerinde işlemlere izin verme durumunu alacaksınız. Enstrüman işlem görürse , haftanın herhangi bir gününde bunun için geçerli olun.

Alert(bool(MarketInfo(Symbol(),MODE_TRADEALLOWED)));

yanlış

 
Vasyl Nosal :

Alert(bool(MarketInfo(Symbol(),MODE_TRADEALLOWED)));

yanlış

Benim versiyonum şu:

   Alert ( "Trade allowed by MarketInfo: " , bool (MarketInfo( Symbol (),MODE_TRADEALLOWED)));
   Alert ( "Trade allowed by IsTradeAllowed: " , bool (IsTradeAllowed()));
   Alert ( "Trade allowed by IsTradeAllowed 2-nd version: " , bool (IsTradeAllowed( Symbol (), TimeLocal ())));

Sonuç:

 2015.12 . 20 16 : 41 : 21.196 Test EURUSD,H1: Alert : Trade allowed by IsTradeAllowed 2 -nd version : false
2015.12 . 20 16 : 41 : 21.196 Test EURUSD,H1: Alert : Trade allowed by IsTradeAllowed: true
2015.12 . 20 16 : 41 : 21.196 Test EURUSD,H1: Alert : Trade allowed by MarketInfo: true

Bilgisayarımda saat GMT+2.

Bu nedenle, ilk seçenek için yanlış almayı nasıl başardığınız belli değil. Hiç işlem görmeyen bir enstrüman almış olabilirsiniz.

Aşağıdaki sonuçlara varıyoruz:

  1. Birinci ve ikinci seçenekler temelde aynıdır. Yalnızca enstrümanda otomatik ticarete izin verildiğine ve ticaret akışının serbest olduğuna işaret ediyorlar.
  2. Üçüncü seçenek tam da ihtiyacınız olan şey. Çalışma programını dikkate alarak enstrüman üzerinde işlem yapma iznini bulmanızı sağlar.
 
Ihor Herasko :

Benim versiyonum şu:

Sonuç:

Bilgisayarımda saat GMT+2.

Bu nedenle, ilk seçenek için yanlış almayı nasıl başardığınız belli değil. Hiç işlem görmeyen bir enstrüman almış olabilirsiniz.

Aşağıdaki sonuçlara varıyoruz:

  1. Birinci ve ikinci seçenekler temelde aynıdır. Yalnızca enstrümanda otomatik ticarete izin verildiğine ve ticaret akışının serbest olduğuna işaret ediyorlar.
  2. Üçüncü seçenek tam da ihtiyacınız olan şey. Çalışma programını dikkate alarak enstrüman üzerinde işlem yapma iznini bulmanızı sağlar.
EURUSD fxAçık
 
Vasyl Nosal :
EURUSD fxAçık

Nitekim, bu komisyoncu için yukarıdaki betiğin sonucu aşağıdaki gibidir:

 2015.12 . 20 17 : 19 : 18.685 Test GBPUSD,H4: Alert : Trade allowed by IsTradeAllowed 2 -nd version : false
2015.12 . 20 17 : 19 : 18.685 Test GBPUSD,H4: Alert : Trade allowed by IsTradeAllowed: false
2015.12 . 20 17 : 19 : 18.685 Test GBPUSD,H4: Alert : Trade allowed by MarketInfo: false

Diğer brokerleri kontrol etmeye başladı. Komisyoncu G**X:

 2015.12 . 20 17 : 18 : 14.339 Test EURUSD,M314: Alert : Trade allowed by IsTradeAllowed 2 -nd version : false
2015.12 . 20 17 : 18 : 14.339 Test EURUSD,M314: Alert : Trade allowed by IsTradeAllowed: false
2015.12 . 20 17 : 18 : 14.339 Test EURUSD,M314: Alert : Trade allowed by MarketInfo: true

Komisyoncu A*** i:

 2015.12 . 20 17 : 20 : 40.372 Test EURUSD,M15: Alert : Trade allowed by IsTradeAllowed 2 -nd version : false
2015.12 . 20 17 : 20 : 40.372 Test EURUSD,M15: Alert : Trade allowed by IsTradeAllowed: true
2015.12 . 20 17 : 20 : 40.372 Test EURUSD,M15: Alert : Trade allowed by MarketInfo: true

Broker I***a F***x:

 2015.12 . 20 17 : 21 : 38.663 test GBPUSD,H1: Alert : Trade allowed by IsTradeAllowed 2 -nd version : false
2015.12 . 20 17 : 21 : 38.663 test GBPUSD,H1: Alert : Trade allowed by IsTradeAllowed: false
2015.12 . 20 17 : 21 : 38.663 test GBPUSD,H1: Alert : Trade allowed by MarketInfo: false

Bugünkü ilk testim A*****l M*****s üzerindeydi.

Böylece, IsTradeAllowed (ilk sürüm) ve MODE_TRADEALLOWED'in tüm brokerler için doğru çalışmadığını anlıyoruz. Ama IsTradeAllowed'ın ikinci versiyonu her yerde düzgün çalışıyor. Bu yüzden kullanmak en iyisidir.

 
Ihor Herasko :

Nitekim, bu komisyoncu için yukarıdaki betiğin sonucu aşağıdaki gibidir:

Diğer brokerleri kontrol etmeye başladı. Komisyoncu G**X:

Komisyoncu A*** i:

Broker I***a F***x:

Bugünkü ilk testim A*****l M*****s üzerindeydi.

Böylece, IsTradeAllowed (ilk sürüm) ve MODE_TRADEALLOWED'in tüm brokerler için doğru çalışmadığını anlıyoruz. Ama IsTradeAllowed'ın ikinci versiyonu her yerde düzgün çalışıyor. Bu yüzden kullanmak en iyisidir.

Bugün

IsTradeAllowed( Sembol (), TimeCurrent ())

doğruyu gösterir

Bu arada, neden yerel saatin var?

 
Vasyl Nosal :

Bugün

IsTradeAllowed( Sembol (), TimeCurrent ())

doğruyu gösterir

Bu arada, neden yerel saatin var?

Bugün resmi tatil, bu yüzden üzgünüm.
 
Alexey Busygin :
Bugün resmi tatil, bu yüzden üzgünüm.
Gerçek şu ki, hiçbir tanıma işlevi %100 çalışmıyor.
 
Vasyl Nosal :
Gerçek şu ki, hiçbir tanıma işlevi %100 çalışmıyor.
Bazı durumlarda yanıt DC sunucusundan gelmelidir! DC'ler bunu gerçekten umursamıyor. hepsi bu şekilde çalışıyor.