Strategia basata sull'indicatore "ZigZag" - "Last ZZ50" - pagina 3

 

Ultimo ZZ50.mq5 versione "1.001"

Ho deciso innanzitutto di controllare come si comporta l'indicatore quando appare una nuova barra o dopo un'interruzione della connessione: ad ogni tick ottengo la quantità di dati calcolati per il nostro indicatore, se questa quantità differisce da quella del tick precedente - viene visualizzata una stampa:

//+------------------------------------------------------------------+
//| 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);
//---

  }

E ora due registri (scheda Experts e scheda Journal)

Esperti:

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

Diario:

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


Come potete vedere il numero di barre calcolate cambia.

File:
Last_ZZ50.mq5  10 kb
 

Ultimo ZZ50.mq5 versione "1.002"

Nuovo: aggiungere l'indicatore usato nei calcoli al grafico - per la visualizzazione (quindi cercherà i punti "A", "B" e "C" e disegnerà una linea verticale su di essi - di nuovo, per il controllo visivo del codice).


File:
Last_ZZ50.mq5  11 kb
 

Ultimo ZZ50.mq5 versione "1.003"

Cerca i vertici "A", "B" e "C". Disegna linee verticali attraverso questi vertici.

La ricerca dei vertici viene eseguita con il metodo "ottenere valori da una barra alla volta".

Ultima versione ZZ50 "1.003

File:
Last_ZZ50.mq5  23 kb
 
Vladimir Karputov:

Ultimo ZZ50.mq5 versione "1.003"

Cerca i vertici "A", "B" e "C". Disegna linee verticali attraverso questi vertici.

La ricerca dei vertici è fatta con il metodo "ottenere un valore da una barra alla volta".


Già qualcosa)

 

Vladimir, ci sarà un sequel o ci fermiamo qui =)

 
Vitaly Muzichenko:

Vladimir, ci sarà un seguito o la finiamo qui =)


Domani ci sarà una descrizione - già con gli ordini in sospeso.

 

Ho scoperto quattro formazioni di punti "A", "B" e "C" - ho bisogno di capire come piazzare ordini pendenti in ogni caso (o meglio il loro tipo: Buy*** o Sell***):

Figura 1 e 2 иFigura 3 e 4


 
Vladimir Karputov:

Ho trovato quattro formazioni di punti "A", "B" e "C" - ho bisogno di capire come piazzare ordini pendenti in ogni caso (o meglio il loro tipo: Buy*** o Sell***):

Metti e trascina sempre al centro del fascio:

Corse:

Rosso SellStop, blu BuyStop

Un ordine viene piazzato su un raggio. Se un ordine ha funzionato su questo raggio, non piazzare altri ordini su di esso

 
Vitaly Muzichenko:

Mettere e tirare sempre al centro del fascio:

Esausto:

Rosso SellStop, blu BuyStop.

Su un raggio, c'è un solo ordine e se l'ordine ha funzionato su questo raggio, non mettere altri ordini su di esso


Il "lavorato" non è sempre il caso, perché l'EA può apparire sul grafico in qualsiasi momento. Pertanto, vi chiedo ancora una volta di rivedere Fig. 3 e Fig. 4 in termini di: l'EA è appena entrato nel grafico e c'è una tale immagine...

 
Vladimir Karputov:

"Non è sempre così, perché l'EA può salire sul grafico in qualsiasi momento. Pertanto, si prega di rivedere ancora una volta la Fig. 3 e Fig. 4 in termini di: l'Expert Advisor si è appena spostato sul grafico e c'è un'immagine...

Se il centro della semiretta è rotto, la semiretta è considerata lavorata

Per evitare problemi dopo il riavvio, i punti dell'ultimo raggio dovrebbero essere salvati nella variabile globale del terminale, e lavorare con essi.