Strategie auf der Grundlage des "ZigZag"-Indikators - "Last ZZ50" - Seite 3

 

Letzte ZZ50.mq5 Version "1.001"

Ich beschloss, zunächst zu prüfen, wie sich der Indikator verhält, wenn ein neuer Balken erscheint oder nach einer Unterbrechung der Kommunikation: bei jedem Tick erhalte ich die Menge der berechneten Daten für unseren Indikator, wenn diese Menge von der Menge des vorherigen Ticks abweicht - wird ein Ausdruck angezeigt:

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   static int  bars_calculated      = 0;
   int         prev_bars_calculated = bars_calculated;
   bars_calculated=BarsCalculated(handle_iCustom);
   if(bars_calculated!=prev_bars_calculated)
      Print(iTime(0),", BarsCalculated: ",bars_calculated,", prev: ",prev_bars_calculated);
//---

  }

Und nun zwei Protokolle (Registerkarte Experten und Registerkarte Journal)

Experten:

2017.07.17 08:03:32.161 Last ZZ50 (USDJPY,M1)   2017.07.17 08:03:00, BarsCalculated: 373610, prev: 100009
2017.07.17 08:04:05.250 Last ZZ50 (USDJPY,M1)   2017.07.17 08:04:00, BarsCalculated: 373611, prev: 373610
2017.07.17 08:05:45.575 Last ZZ50 (USDJPY,M1)   2017.07.17 08:05:00, BarsCalculated: 100000, prev: 373611
2017.07.17 08:06:08.768 Last ZZ50 (USDJPY,M1)   2017.07.17 08:06:00, BarsCalculated: 100001, prev: 100000
2017.07.17 08:07:06.192 Last ZZ50 (USDJPY,M1)   2017.07.17 08:07:00, BarsCalculated: 100002, prev: 100001
2017.07.17 08:07:29.676 Last ZZ50 (USDJPY,M1)   2017.07.17 08:07:00, BarsCalculated: 100002, prev: 0
2017.07.17 08:08:01.653 Last ZZ50 (USDJPY,M1)   2017.07.17 08:08:00, BarsCalculated: 100003, prev: 100002
2017.07.17 08:09:01.827 Last ZZ50 (USDJPY,M1)   2017.07.17 08:09:00, BarsCalculated: 100004, prev: 0
2017.07.17 08:10:00.283 Last ZZ50 (USDJPY,M1)   2017.07.17 08:10:00, BarsCalculated: 100005, prev: 100004
2017.07.17 08:11:02.493 Last ZZ50 (USDJPY,M1)   2017.07.17 08:11:00, BarsCalculated: 100006, prev: 100005

Protokoll:

2017.07.17 08:04:47.227 Network '6121033': scanning network for access points
2017.07.17 08:05:23.297 Network '6121033': connection to MetaQuotes-Demo lost
2017.07.17 08:05:34.000 Network '6121033': authorized on MetaQuotes-Demo through Access Point EU 2 (ping: 48.01 ms)
2017.07.17 08:05:34.001 Network '6121033': previous successful authorization performed from 178.165.123.77 on 2017.07.17 07:50:17
2017.07.17 08:05:34.105 Network '6121033': terminal synchronized with MetaQuotes Software Corp.
2017.07.17 08:05:34.105 Network '6121033': trading has been enabled - hedging mode
2017.07.17 08:07:28.881 Experts expert Last ZZ50 (USDJPY,M1) removed
2017.07.17 08:07:28.915 Experts expert Last ZZ50 (USDJPY,M1) loaded successfully
2017.07.17 08:08:53.494 Experts expert Last ZZ50 (USDJPY,M1) removed
2017.07.17 08:08:53.527 Experts expert Last ZZ50 (USDJPY,M1) loaded successfully


Wie Sie sehen können, ändert sich die Anzahl der berechneten Balken.

Dateien:
Last_ZZ50.mq5  10 kb
 

Letzte ZZ50.mq5-Version "1.002"

Neu: Hinzufügen von Indikatoren, die in den Berechnungen verwendet werden, zum Diagramm - zur Visualisierung (dann wird nach den Punkten "A", "B" und "C" gesucht und eine vertikale Linie auf ihnen gezeichnet - wiederum zur visuellen Codekontrolle).


Dateien:
Last_ZZ50.mq5  11 kb
 

Letzte ZZ50.mq5-Version "1.003"

Sucht nach den Scheitelpunkten "A", "B" und "C". Zeichnet vertikale Linien durch diese Scheitelpunkte.

Die Suche nach Scheitelpunkten wird mit der Methode "Werte von einem Balken nach dem anderen holen" durchgeführt.

Letzte ZZ50-Version "1.003"

Dateien:
Last_ZZ50.mq5  23 kb
 
Vladimir Karputov:

Letzte ZZ50.mq5-Version "1.003"

Sucht nach den Scheitelpunkten "A", "B" und "C". Zeichnet vertikale Linien durch diese Scheitelpunkte.

Die Suche nach Scheitelpunkten erfolgt nach der Methode "einen Wert von einem Balken nach dem anderen erhalten".


Schon etwas)

 

Vladimir, wird es eine Fortsetzung geben, oder lassen wir es gut sein =)

 
Vitaly Muzichenko:

Vladimir, wird es eine Fortsetzung geben, oder wird es hier enden =)


Morgen wird es eine Beschreibung geben - bereits mit anstehenden Bestellungen.

 

Ich habe vier Punktformationen "A", "B" und "C" gefunden - ich muss herausfinden, wie ich in jedem Fall Pending Orders platzieren kann (bzw. deren Art: Buy*** oder Sell***):

Abbildung 1 und 2 иAbbildung 3 und 4


 
Vladimir Karputov:

Ich habe vier Punktformationen "A", "B" und "C" gefunden - ich muss herausfinden, wie ich in jedem Fall Pending Orders platzieren kann (bzw. deren Art: Buy*** oder Sell***):

Setzen und ziehen Sie immer in der Mitte des Balkens:

Läuft:

Roter Verkaufsstopp, blauer Kaufstopp

Ein Auftrag wird auf einem Strahl platziert. Wenn ein Auftrag auf diesem Strahl funktioniert hat, dürfen keine weiteren Aufträge auf diesem Strahl platziert werden.

 
Vitaly Muzichenko:

Legen Sie immer in der Mitte des Balkens an und ziehen Sie:

Erschöpft:

Roter Verkaufsstopp, blauer Kaufstopp.

Auf einem Strahl gibt es nur einen Auftrag, und wenn der Auftrag auf diesem Strahl funktioniert hat, dürfen keine weiteren Aufträge auf diesem Strahl erteilt werden.


Das "ausgearbeitet" ist nicht immer der Fall, denn der EA kann jederzeit auf dem Chart erscheinen. Deshalb bitte ich Sie, Fig. noch einmal zu überprüfen. 3 und Abb. 4 im Sinne von: Der EA ist gerade in den Chart eingetreten und es gibt ein solches Bild...

 
Vladimir Karputov:

"Ausgearbeitet" ist nicht immer der Fall, da der EA jederzeit im Chart auftauchen kann. Bitte überprüfen Sie daher noch einmal Abb. 3 und Abb. 4 in Bezug auf: der Expert Advisor hat sich gerade auf den Chart bewegt und es gibt ein Bild...

Wenn der Mittelpunkt des Strahls unterbrochen ist, gilt der Strahl als ausgearbeitet

Um Probleme nach dem Neustart zu vermeiden, sollten die Punkte des letzten Strahls in der globalen Variable des Terminals gespeichert werden, und mit ihnen arbeiten.