Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1102

 
EgorKim:

Come questo.

E alcuni passaggi dell'ottimizzatore coincidono nel visualizzatore.

E alcuni passaggi - non una sola transazione.

Le discrepanze possono essere dovute a valori non inizializzati nel buffer dell'indicatore - quando il calcolo passa, potrebbe esserci della spazzatura nel buffer.


Basta stampare i dati del buffer quando appare il segnale.

 
Vladimir Karputov:

Le discrepanze possono verificarsi a causa di valori non inizializzati nel buffer dell'indicatore - quando il calcolo passa oltre, ci può essere spazzatura nel buffer.


Basta stampare i dati del buffer quando appare il segnale.

Stai parlando dell'EA?

Se circa l'EA - sto azzerando tutto nell'esempio.

E se si parla di un indicatore - si può fare di tutto. Non sono l'autore.

 
EgorKim:

Stai parlando dell'EA?

Se stai parlando di un EA, sto azzerando tutto nell'esempio.

Ma se si parla di un indicatore, potrebbe essere qualsiasi cosa. Non sono l'autore.

Parlavo dell'indicatore: se si perde qualche indice nel buffer, potrebbe esserci della spazzatura. In generale, prima un indicatore affidabile - e poi l'Expert Advisor che lo utilizza.

 
EgorKim:

Come questo.

E alcuni passaggi dell'ottimizzatore coincidono nel visualizzatore.

E alcuni passaggi non corrispondono affatto a nessun commercio

Penso che il problema sia nell'indicatore.

E come Artem ha giustamente sottolineato, il problema è nei dati reali.

Solo che non vuole dirmi come fare)

No, ho sbagliato a pensare che tu abbia un indicatore multi-timeframe.

Hai l'indicatore più comune di cui vuoi recuperare i dati dal timeframe di qualcun altro.

In un EA, è necessario controllare la pertinenza dei dati del periodo di tempo desiderato. Se non ci sono ancora dati per questo timeframe, allora esci fino al prossimo tick.
E poi, quando tutti i dati del olderframe sono ricevuti nel volume corretto - allora chiama l'indicatore.

Prova a farlo in questo modo.

 
Artyom Trishkin:

No, ho sbagliato a pensare che tu abbia un indicatore multi-timeframe.

Hai l'indicatore più comune di cui vuoi recuperare i dati dal timeframe di qualcun altro.

Nell'Expert Advisor, è necessario controllare la rilevanza dei dati del timeframe desiderato. Se non ci sono ancora dati per questo timeframe, allora esci prima del prossimo tick.
E poi, quando tutti i dati dal timeframe più vecchio sono ricevuti nel volume corretto - allora chiama l'indicatore.

Prova a farlo in questo modo.

Come si fa? Intendo verificare la sua pertinenza.

Bene, controllo che non sia 0,0 (codice sopra).

Cos'altro posso fare? Quello che l'indicatore mi dà, lo prendo.

Questo è ciò che fa l'indicatore.

 
EgorKim:

Come si fa? Intendo controllare se è aggiornato.

Bene, controllo che non sia 0,0 (codice sopra).

Cos'altro posso fare? Quello che ottengo dall'indicatore, lo ottengo.

È un indicatore per questo motivo.

Hai preso l'indicatore da KodoBase? Se sì, puoi darmi il suo URL?

 
EgorKim:

Come si fa? Intendo controllare se è aggiornato.

Bene, controllo che non sia 0,0 (codice sopra).

Cos'altro posso fare? Quello che ottengo dall'indicatore, lo ottengo.

È un indicatore per questo motivo.

L'errore è nell'indicatore stesso.

Ho riscritto molti Expert Advisors e questa è la prima volta che si verifica questo problema.

Potete guardare e costruire l'Expert Advisor da soli, ho dato la logica sopra.

E potete vedere come si comportano male il terminale e il tester. I risultati sono diversi anche se i parametri dell'indicatore sono gli stessi)

 
Vladimir Karputov:

Hai preso l'indicatore da KodoBase? Se sì, posso avere il suo URL?

https://www.mql5.com/ru/code/64

Plombiers - Осциллятор в канале
Plombiers - Осциллятор в канале
  • www.mql5.com
Просмотров: 6747 Рейтинг: Опубликован: 2010.01.26 12:54 Обновлен: 2016.11.22 07:33 Пример использования канала и осциллятора Stochastic. Иногда полезно смотреть поведение осциллятора в канале. Оценка ситуации упрощается. Изменяя параметры, можно гибко настроить отображение индикатора. Bulls Bears Power...
 

In generale, puoi provarlo per ora (funziona sull'indicatorePlombiers - oscillatore nel canale- l'indicatore dovrebbe essere nella cartella [data folder]\MQL5\Indicators\plombiers.mq5)


Idea di strategia di trading

L'Expert Advisor funziona utilizzando l'indicatore personalizzatoPlombiers. Per la formazione dei segnali vengono considerate due linee dell'indicatore: "Resistenza" e "Supporto".

Plombiers EA

Segnale per l'apertura di una posizioneBUY: Il prezzo basso della barra #1 era sotto la linea di "Supporto" della barra #1

Segnale per aprire unaposizione SELL: il prezzo High sulla barra #1 era superiore alla linea di "Resistenza" sulla barra #1

//+------------------------------------------------------------------+
//| Search trading signals                                           |
//+------------------------------------------------------------------+
bool SearchTradingSignals(void)
  {
   double means[],resistance[],support[];
   MqlRates rates[];
   ArraySetAsSeries(means,true);
   ArraySetAsSeries(resistance,true);
   ArraySetAsSeries(support,true);
   ArraySetAsSeries(rates,true);
   int start_pos=0,count=3;
   if(!iGetArray(handle_iCustom,0,start_pos,count,means) || 
      !iGetArray(handle_iCustom,1,start_pos,count,resistance) || 
      !iGetArray(handle_iCustom,2,start_pos,count,support) || 
      CopyRates(m_symbol.Name(),Period(),start_pos,count,rates)!=count)
     {
      return(false);
     }

   int size_need_position=ArraySize(SNeedPosition);
   if(rates[1].low<support[1])
     {
      if(!InpReverse)
        {
         ArrayResize(SNeedPosition,size_need_position+1);
         SNeedPosition[size_need_position].pos_type=POSITION_TYPE_BUY;
         return(true);
        }
      else
        {
         ArrayResize(SNeedPosition,size_need_position+1);
         SNeedPosition[size_need_position].pos_type=POSITION_TYPE_SELL;
         return(true);
        }
     }
   if(rates[1].high>resistance[1])
     {
      if(!InpReverse)
        {
         ArrayResize(SNeedPosition,size_need_position+1);
         SNeedPosition[size_need_position].pos_type=POSITION_TYPE_SELL;
         return(true);
        }
      else
        {
         ArrayResize(SNeedPosition,size_need_position+1);
         SNeedPosition[size_need_position].pos_type=POSITION_TYPE_BUY;
         return(true);
        }
     }
//---
   return(true);
  }
 
Vladimir Karputov:

In generale, puoi provarlo per ora (funziona sull'indicatorePlombiers - oscillatore nel canale- l'indicatore dovrebbe essere nella cartella [data folder]\MQL5\Indicators\plombiers.mq5)


Idea di strategia di trading

L'Expert Advisor funziona utilizzando l'indicatore personalizzatoPlombiers. Per la formazione dei segnali vengono considerate due linee dell'indicatore: "Resistenza" e "Supporto".


Segnale per l'apertura di una posizioneBUY: Il prezzo basso della barra #1 era sotto la linea di "Supporto" della barra #1

Segnale per aprire unaposizione SELL: il prezzo massimo sulla barra #1 era superiore alla linea di "Resistenza" sulla barra #1

Prendete i valori di"Supporto" e"Resistenza" dal timeframe superiore

Cioè l'indicatore MTF deve essere nell'input dell'ottimizzatore

input ENUM_TIMEFRAMES TimeFramePlombiers=PERIOD_H4;

handle_Plombiers=iCustom(Symbol(),TimeFramePlombiers,"plombiers",итд);

Come questo

Motivazione: