[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 500

 

Expert Advisor basato su ZUP con forconi modificati

Quando si usa l'indicatore con i forconi, nel tester, per qualche motivo i forconi dell'indicatore girano nella direzione opposta (all'indietro)

Cosa può causare questa inversione

 
Cmu4:
Signori, se non vi dispiace, vi prego di inviarmi la funzione che traina l'equità. Non riesco a trovarlo...

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

E nel codebase ce n'è in abbondanza.

 
Aiutatemi a trovare una funzione di collocamento degli ordini consapevole dello slippage senza errori 130-134.
 
xrust:

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

E c'è molto nel codice

Aggiungo il consigliere di Igor Kim.
 
Roman.:


Ciao, Dimitri. Da parte mia, sono pronto a suggerirvi la seguente variante. Per analogia, vedi l'attivazione dei criteri di trading di questo articolo - ci sono anche due segnali - cioè, vedi dopo la seconda immagine "La prima cosa che dovresti aspettare sul grafico DeMarker è il momento in cui il DeMarker attraversa la linea MA veloce e lenta vicino a 0,7 per una posizione short. Questo è il primo segnale preliminare. Poi aspettiamo l'attraversamento delle linee MA stesse. Questo è il segnale principale, dopo il quale si possono prendere le letture dell'indicatore Taichi. Se le linee MA non sono attraversate, è considerato un falso segnale e il movimento del prezzo continuerà. Ecco come è implementato nel mio codice - nell'inclusione inclusa dei gufi che sono responsabili dell'attivazione dei criteri di trading.

Il trucco principale è che lavoriamo attraverso i due fi ndi sotto menzionati impostando e resettando le bandiere quando uno o un altro criterio di trading è innescato.

Salverete inoltre l'ora attuale quando il criterio principale è attivato usando TimeCurrent, cioè specificherete un'espressione di tipo x = TimeCurrent prima direturn(OP_BUY); oreturn(OP_SELL); dove x è una variabile globale di tipo datetime per analogia nella prima funzioneint_op_DeMarker. Poi fate lo stesso con la seconda funzioneint type_op_MA... - lì si memorizza la variabile y = TimeCurrent;

Poi nel blocco di calcolo dei criteri di trading si confronta il segno più e il valore di queste due variabili, come segue (si scopre che non è necessario l'analogo di lavorare con i valori UTC - invece si prende un confronto del tempo di ricezione dei vostri due segnali commerciali):

P.S. In più vi invio una funzione per la possibilità di ottimizzare il valore del TF di lavoro.

P.P.S. Ecco come questa struttura di codice è organizzata nel mio codice. Non escludo che ci siano varianti di codice molto migliori per soddisfare tali condizioni dell'EA. :-)))

Grazie mille, la tua risposta è stata molto utile
 
demlin:
Grazie mille, la tua risposta è stata molto utile

:-))) E cominciavo a pensare che l'avessi ingoiato e mi avessi mandato via con tutte quelle analogie, esempi, ecc. .... :-)))
 
Roman.:

:-))) Pensavo che l'avessi ingoiato e mi avessi mandato via con tutte quelle analogie, esempi, ecc. .... :-)))
Non mi avvicino al mio computer da un po' di tempo))). Solo non ho capito bene la funzione di ottimizzazione della TF di lavoro. Che cos'è?
 
demlin:
Non sono stato vicino al computer per un po'))). Solo che non ho capito bene la funzione per ottimizzare il TF di lavoro. Che cos'è?

È solo una specie di "adattatore", che permette di ottimizzare i timeframe dell'EA attraverso le variabili esterne di owl per impostare i migliori (-quelli, nel caso di owl che lavora su diversi TF) per il suo funzionamento... Una buona e utile caratteristica...
 
Roman.:

È solo una specie di "adattatore" che permette di ottimizzare i timeframe EA tramite variabili owl esterne per impostare i migliori (-quelli, in caso di funzionamento owl su diversi TF) per il suo funzionamento... Una buona e utile caratteristica...
Come ottenerlo?
 
demlin:
Come si ottiene?


Nella mia risposta, guarda attentamente il codice - è elencato subito dopo la fine del criterio {... return (0)}... nel blocco delle variabili esterne:

extern int t_trend_period =6; // для оптимизации по всем периодам от 0 до 7 шаг 1
                              // на каком ТФ работаем: 1-М1, 2-М5, 3-М15, 4-М30, 5-Н1, 6 - Н4, 7-день

e come usarlo per ottenere i valori degli indicatori:

//--------------------------------------------------------------- 3 --
int Criterion()                        // Пользовательская функция
  {
  //--------------------------------------------------------------- 4 --
int trend_period=GetPeriod(t_trend_period); // для выбора оптимального значения рабочего ТФ

   // Параметры технич. индикат:
                 
double Taichi_1 = iCustom (Symbol(), trend_period, "Cronex Taichi",Tenkan, Kijun, Senkou, FlatSE, 0, 1);
...
...
//--------------------------------------------------------------- 6 --
   return(0);                          // Выход из пользов. функции
  }
//--------------------------------------------------------------- 7 --

//для оптимизации по всем ТФ
int GetPeriod(int period)
{int periodres;
 switch(period)
  {
   case 1: periodres=1;break;
   case 2: periodres=5;break;
   case 3: periodres=15;break;
   case 4: periodres=30;break;
   case 5: periodres=60;break;
   case 6: periodres=240;break;
   case 7: periodres=1440;break;
   case 8: periodres=10080;break;
   default: periodres=1;break;
  }
return(periodres);
}