Wie erfahre ich, ob der Markt geschlossen ist? (mql4) - Seite 5

 

Ich habe immer noch nicht herausgefunden, wie man angemessene Informationen aus "DayOfWeek" erhält. Am Tag des Starts des Roboters und in einigen anderen Fällen (manchmal) gibt er den richtigen Wert an. Ich habe den Eindruck, dass er einen korrekten Wert ausgibt, wenn ich Aufträge eröffne. Wenn Sie nichts öffnen, wird Ihnen das Wetter angezeigt.

Ich habe das Problem auf diese Weise gelöst:

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

Aber ich habe es noch nicht getestet )))) Es sollte funktionieren.

 
winsight:

Ich habe immer noch nicht herausgefunden, wie man angemessene Informationen aus "DayOfWeek" erhält. Am Tag des Starts des Roboters und in einigen anderen Fällen (manchmal) gibt er den richtigen Wert an. Ich habe den Eindruck, dass er einen korrekten Wert ausgibt, wenn ich Aufträge eröffne. Wenn Sie nichts öffnen, wird Ihnen das Wetter angezeigt.

Ich habe das Problem auf diese Weise gelöst:

Aber ich habe es noch nicht getestet ))) Es sollte funktionieren.

Es ist einfacher - verwenden Sie TimeDayOfWeek:

int dayOfWeek = TimeDayOfWeek(TimeCurrent());
 
Ihor Herasko:
Auf diese Weise erhalten Sie nur den Genehmigungsstatus des zu handelnden Instruments. Wenn das Instrument gehandelt wird, erhalten Sie es an jedem Tag der Woche.

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

falsch

 
Vasyl Nosal:

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

falsch

Meine Version lautet wie folgt:

   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())));

Ergebnis:

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

Auf meinem Computer ist die Zeit GMT+2.

Deshalb verstehe ich auch nicht, wie es Ihnen gelungen ist, im ersten Fall falsch zu liegen. Vielleicht haben Sie ein Instrument genommen, das im Prinzip nicht gehandelt wird.

Die Schlussfolgerungen lauten wie folgt:

  1. Die erste und die zweite Option sind im Wesentlichen identisch. Sie weisen lediglich darauf hin, dass der automatische Handel für das Instrument aktiviert ist und ein freier Handelsfluss besteht.
  2. Die dritte Variante ist genau das, was wir brauchen. Sie ermöglicht es Ihnen, die Erlaubnis für den Handel mit einem Instrument angesichts seines Arbeitsplans zu erfahren.
 
Ihor Herasko:

Meine Version ist die folgende:

Ergebnis:

Auf meinem Computer ist die Zeit GMT+2.

Es ist daher nicht klar, wie es Ihnen gelungen ist, bei der ersten Option falsch zu liegen. Vielleicht haben Sie ein Instrument genommen, das im Prinzip nicht gehandelt wird.

Die Schlussfolgerungen lauten wie folgt:

  1. Die erste und die zweite Option sind im Wesentlichen identisch. Sie weisen lediglich darauf hin, dass der automatische Handel für das Instrument aktiviert ist und ein freier Handelsfluss besteht.
  2. Die dritte Variante ist genau das, was wir brauchen. Sie ermöglicht es Ihnen, die Erlaubnis für den Handel mit einem Instrument angesichts seines Arbeitsplans zu erfahren.
EURUSD fxOpen
 
Vasyl Nosal:
EURUSD fxOpen

In der Tat hat dieser Broker das Ergebnis des obigen Skripts:

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

Ich habe angefangen, andere Makler zu überprüfen. Makler 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

Makler 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

Mein erster Test heute war auf A*****l M*****s.

Daraus ergibt sich, dass nicht bei allen Brokern IsTradeAllowed (erste Version) und MODE_TRADEALLOWED korrekt funktionieren. Andererseits funktioniert die zweite Version von IsTradeAllowed überall korrekt. Es ist also besser, sie zu verwenden.

 
Ihor Herasko:

In der Tat hat dieser Broker das Ergebnis des obigen Skripts:

Ich habe angefangen, andere Makler zu überprüfen. Makler G**X:

Makler A***i:

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

Mein erster Test heute war auf A*****l M*****s.

Daraus ergibt sich, dass nicht bei allen Brokern IsTradeAllowed (erste Version) und MODE_TRADEALLOWED korrekt funktionieren. Andererseits funktioniert die zweite Version von IsTradeAllowed überall korrekt. Es ist also besser, sie zu verwenden.

Und heute

IsTradeAllowed(Symbol(), TimeCurrent())

es zeigt feige

Übrigens, warum haben Sie Lokalzeit?

 
Vasyl Nosal:

Und heute

IsTradeAllowed(Symbol(), TimeCurrent())

zeigt feige

Übrigens, warum haben Sie Lokalzeit?

Heute ist ein Feiertag, deshalb ist es schwierig.
 
Alexey Busygin:
Es ist ein Feiertagswochenende, deshalb ist es schwierig.
Tatsache ist, dass keine der Erkennungsfunktionen zu 100 % funktioniert.
 
Vasyl Nosal:
Tatsache ist, dass keine der Erkennungsfunktionen zu 100 % funktioniert.
In einigen Fällen muss die Antwort vom DC-Server kommen! Und die DCs kümmern sich nicht wirklich darum, deshalb funktioniert es ja auch irgendwie.