Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 877

 
È possibile cheUpper[i] non sia riempito (uguale a 0) su alcune barre.
 
Sergey Savinkin:
È possibile cheUpper[i] non sia riempito su alcune barre (uguale a 0).

Penso di aver trovato qualche indizio per la soluzione: quando la condizione viene scritta contro lo stato attuale del prezzo prima di eseguire il codice, il log produce il seguente risultato:

Punto importante - questi parametri coincidono con il prezzo già generato in precedenza

Per chiarire:

Qui è dove l'ultima linea del log indica che il prezzo è andato oltre la linea superiore. L'unica domanda è perché l'ha fatto? Ho una versione che durante il ricalcolo dell'indicatore dall'inizio al momento attuale il codice registra questi eventi e si ferma all'ultimo evento - spiega la differenza tra il prezzo e i dati di log attuali, ma non spiega nient'altro - ho solo bisogno che il codice faccia il confronto nella logica "il prezzo è andato oltre la linea superiore - dà l'allarme ma non succede niente".

Ho anche controllato la condizione del codice quando il prezzo è al di sotto della linea superiore - semplicemente non ha registrato l'evento nei log, che è sullo screenshot sopra - mi sono fermato a capirlo alla fine, se funziona del tutto.

 

Amici miei, sono nuovo di MQL5, quindi se i problemi di cui sto scrivendo qui sono colpe mie, per favore non prendetemi troppo a calci.

Volevo fare un gufo multivaluta, ma ho affrontato alcune cose strane nel tester delle strategie che appaiono solo quando si testano quelle multivaluta. Ottengo degli strani spostamenti dei simboli delle serie temporali diversi dal simbolo del grafico principale. Ho fatto un semplice gufo che ottiene lo zero e il tempo di apertura della prima barra con due simboli all'inizio di ogni barra. Per qualche motivo la seconda serie temporale dei simboli inizia a spostarsi dopo 1 barra. Appare su qualsiasi simbolo e su qualsiasi timeframe. Ho fatto dei test su EURUSD, il secondo simbolo era GBPUSD. Ho provato viceversa, ho provato su altre coppie, l'errore appare sempre. Questa è la foto del diario dopo il test su М15:

Immagine del registro dopo il test su H1:

Impostazioni del tester di strategia:

Ecco il codice per il test:

#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
input string SecondSymbol="GBPUSD";

int OnInit()
  {
   SymbolSelect(SecondSymbol,true);//выбираем второй символ в MarketWatch(для тестера)
//---
   return(INIT_SUCCEEDED);
  }

void OnDeinit(const int reason)
  {
//---

  }

void OnTick()
  {
   static datetime BarTime;//время начала бара
   int per=PeriodSeconds(PERIOD_CURRENT);

   datetime time_curr=TimeCurrent()/per*per;
   if(time_curr!=BarTime)
     {
      BarTime=time_curr;

      datetime Time_One[],Time_Two[];
      bool yes=ArraySetAsSeries(Time_One,true);
      yes=ArraySetAsSeries(Time_Two,true);

      int i=CopyTime(NULL,PERIOD_CURRENT,0,2,Time_One);    //текущий символ
      i=CopyTime(SecondSymbol,PERIOD_CURRENT,0,2,Time_Two);//второй символ
      
      Print("ВремяНачалаБара по ",Symbol(),":",Time_One[0]," ВремяНачалаБара по ",SecondSymbol,":",Time_Two[0]);
     }
  }

Qualsiasi aiuto sarebbe apprezzato.

 
stroganow:

Amici miei, sono nuovo di MQL5, quindi se i problemi di cui sto scrivendo qui sono colpe mie, per favore non prendetemi troppo a calci.

Volevo fare un gufo multivaluta, ma ho affrontato alcune cose strane nel tester delle strategie che appaiono solo quando si testano quelle multivaluta. Ottengo degli strani spostamenti dei simboli delle serie temporali diversi dal simbolo del grafico principale. Ho fatto un semplice gufo che ottiene lo zero e il tempo di apertura della prima barra con due simboli all'inizio di ogni barra. Per qualche motivo la seconda serie temporale dei simboli inizia a spostarsi dopo 1 barra. Appare su qualsiasi simbolo e su qualsiasi timeframe. Ho fatto dei test su EURUSD, il secondo simbolo era GBPUSD. Ho provato viceversa, ho provato su altre coppie, l'errore appare sempre. Questa è la foto del diario dopo il test su М15:

Immagine del registro dopo il test su H1:

Impostazioni del tester di strategia:

Il codice per i test:

Qualsiasi aiuto sarebbe apprezzato.

Il tester funziona correttamente. C'è un errore nella logica del programma: due simboli sono come due vite di persone diverse (qui "persona" è analogo a "simbolo"). E la seconda persona non deve svegliarsi nello stesso momento della prima ("svegliarsi" è analogo a "nuova barra che appare").

Quindi devi aspettare che appaia una nuova barra E sul primo simbolo E sul secondo.


Aggiunto:gestore dell'evento "nuova barra" dell'articolo

 

Potete dirmi, ecco un'immagine di una pin bar rialzista, come dovrebbe essere il codice di principio della condizione per riconoscerla?

if(low[i] <= open[i] && high[i] > close[i] && open[i] >= close[i] && close[i] <= Base[i]) // верно ли это утверждение?
 
clickaider:

Potete dirmi, ecco un'immagine di una pin bar rialzista, come dovrebbe essere il codice di principio della condizione per riconoscerla?

Questa è una pin bar ribassista. La direzione della candela non è importante. La posizione dell'ombra lunga è importante: verso l'alto è ribassista, verso il basso è rialzista. Ed è necessaria una conferma da parte degli indicatori di livello.
 
Artyom Trishkin:
Questa è una pin bar ribassista. La direzione della candela non è importante. La posizione dell'ombra lunga è importante: su è ribassista, giù è rialzista. E abbiamo bisogno di una conferma dagli indicatori di livello.
Possiamo mostrarlo con una costruzione in codice? Solo che non è del tutto chiaro come dovrebbe essere il codice
 
clickaider:
È possibile mostrare questo attraverso la costruzione del codice? Solo che non è molto chiaro come dovrebbe essere il codice
Non posso scriverti il codice dal mio cellulare. A colpo d'occhio:
Avete bisogno della dimensione della candela da High Low, la dimensione del corpo della candela, la percentuale del corpo alla dimensione dell'intera candela, la dimensione dell'ombra corta non dovrebbe superare una certa soglia (in modo che fosse assente, o fosse relativamente piccola rispetto al corpo), e la posizione del corpo superiore/inferiore rispetto alla dimensione completa della candela.
Qualcosa del genere...
 
Artyom Trishkin:
Non posso scriverti il codice dal mio cellulare. A colpo d'occhio:
Avete bisogno della dimensione della candela da High Low, la dimensione del corpo della candela, la percentuale del corpo alla dimensione dell'intera candela, la dimensione dell'ombra corta non dovrebbe superare una certa soglia (in modo che fosse assente, o fosse relativamente piccola rispetto al corpo), e la posizione del corpo superiore/inferiore rispetto alla dimensione completa della candela.
Qualcosa del genere...

Graficamente si presenta così:

 
clickaider:

Graficamente, si presenta così:

Ora descrivi a parole ciò che hai descritto graficamente. Usa alto, basso, aperto, chiuso.
Una volta che lo descrivi a parole, hai già scritto il ToR per te stesso :)
Non resta che sostituire le costruzioni di parole con il codice.
Motivazione: