Apertura e chiusura in Expert Advisor generato da MQL5 Wizard - pagina 2

 
PeretsCHILI:

Ho deciso la formulazione del problema:

open long: la MA veloce incrocia la MA lenta dal basso verso l'alto, più il filtro temporale

chiudere lungo: МА veloce interseca la MA lenta dall'alto verso il basso

Corto aperto: МА veloce interseca il MA lento dall'alto e più il filtro del tempo

chiudere i pantaloncini: il veloce МА interseca il lento MA dal basso verso l'alto.

Nell'esempio precedentemente menzionato CheckOpenLong, CheckCloseLong, CheckOpenShort, CheckCloseShort sono stati usati rispettivamente per questo.

Se fate due moduli, uno con segnali di apertura e uno di chiusura, capisco che il primo userebbe LongCondition e ShortCondition, come nella libreria standard dei moduli. Cosa usare nel secondo modulo per chiudere?


E soprattutto dove? Che cosa significa "... attraversa..."? Questo è il bello :)

 

Amico, sono solo più confuso)) L'articolo"Creare un robot di trading in 6 passi!" ha appena presentato il primo modulo con i segnali per aprire incrociando due MA.

https://www.mql5.com/ru/articles/367

Cosa intende per "crossover"? Quando la differenza tra la FastMA-SlowMA sulla prima barra è maggiore di zero e quella sulla seconda barra è minore di zero, la МА veloce incrocia la MA lenta dal basso verso l'alto. Top-down è quando la differenza tra la prima barra è minore di zero e la seconda barra è maggiore di zero.

Hai detto che il problema può essere risolto creando due moduli, con segnali di apertura e chiusura. Posso usare il modulo dell'articolo come base per creare un modulo con segnali di chiusura?

Создай торгового робота за 6 шагов!
Создай торгового робота за 6 шагов!
  • 2012.06.01
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы не знаете, как устроены торговые классы, и пугаетесь слов "Объектно-ориентированное программирование"? На самом деле вовсе не обязательно всё это знать, чтобы написать свой собственный модуль торговых сигналов - достаточно следовать простым правилам. Всё остальное сделает Мастер MQL5, и вы получите готовый торговый робот!
 
PeretsCHILI:

...

Cosa significa 'croci'? Una MA veloce incrocia una MA lenta dal basso verso l'alto è quando la differenza tra la FastMA-SlowMA sulla prima barra è maggiore di zero e minore di zero sulla seconda barra. Top-down è quando la prima barra è minore di zero e la seconda barra è maggiore di zero.

...


Questo è un bene. Quando il compito è specificato è molto buono.


PeretsCHILI:

...

Avete detto che il problema può essere risolto creando due moduli con segnali di apertura e chiusura. Il modulo con i segnali di chiusura può essere usato come base per il modulo dell'articolo precedente?

Non l'ho inteso correttamente. Il modulo dei segnali di trading produce i segnali "E' ora di APRIRE COMPRARE" e "E' ora di APRIRE VENDERE". Cioè danno un segnale per OPEN. E il resto sta a CExpert decidere: chiudere e invertire una posizione esistente o aprire una posizione.



Prendi il modulo dall'articoloCreare un robot di trading in 6 passi!- Cosa c'è che non va?

 

Quindi, voglio scrivere un modulo con segnali di apertura incrociando due MA con un filtro temporale, e chiusura avvenuta nei seguenti casi: arrivo del segnale opposto; arrivo di SL; arrivo di TP. Puoi scrivere un modulo (chiamiamolo Cross2MA) come da articolo e generare un Expert Advisor con i moduli Cross2MA e SignalITF, ma questo non funzionerà, perché il filtro SignalITF sarà controllato anche alla chiusura.

Per esempio: abbiamo 2MA e SignalITF ha un trade solo il lunedì. Un segnale di acquisto viene ricevuto il lunedì; apriamo una posizione di acquisto e quando il tempo scade il martedì, quando né Sl né TP sono raggiunti, si verifica un incrocio inverso di 2MA e la posizione di acquisto dovrebbe chiudersi ma non lo fa, perché è già un altro giorno della settimana.

Come dovrebbe essere: stesse condizioni, 2MA, trading il lunedì: lunedì, c'è un segnale di acquisto, apriamo una posizione di acquisto, il martedì riceviamo un segnale di vendita, ma poiché è martedì non apriamo una posizione di vendita, chiudiamo solo una posizione di acquisto.

Sembra che ci siano due comandi in LongCondition: apertura Buy e chiusura Sell. Dobbiamo separarli in qualche modo)

 

"Mosche separate, cotolette separate".


PeretsCHILI:

Quindi, voglio scrivere un modulo con segnali per aprire incrociando due MA con un filtro temporale, e per chiudere nei seguenti casi: arrivo del segnale opposto; arrivo di SL; arrivo di TP. ...

Ilmodulo dei segnali di trading può visualizzare solo due tipi di segnali: "È ora di aprire BUY" e "È ora di aprire SELL".

Non controlleremo stop loss e take profit - poiché se una posizione stop loss o take profit viene chiusa, questo significa solo una cosa: la posizione è chiusa, ed è il momento di vedere cosa genera il modulo dei segnali di trading (in altre parole, quando il numero di posizioni è zero, iniziamo un cerchio: aspettare un segnale).

Inoltre: questa è un'interpretazione errata del funzionamento dei moduli, poiché non esiste un "segnale opposto" - può essere come segue:

  1. abbiamo una posizione BUY aperta e riceviamo un segnale"PAY TO open SELL
  2. o avere una posizione SELL aperta e appare il segnale"PAY to BUY
In entrambi i casi la posizione corrente verrà chiusa e ne verrà aperta una nuova.


 
Andy:
LongCondition può semplicemente aprire un acquisto e tenerlo indipendentemente da qualsiasi condizione, e farlo chiudere allo stop profit o manualmente?

LongCondition classe CExpertSignal non può in linea di principio "contenere" nulla. CExpertSignal dà solo due segnali:"Time to OPEN BUY" e "Time to OPEN SELL".


Volete che il vostro Expert Advisor costruito dalla procedura guidata non si chiuda mai? Poi cambia il parametro di input dell'Expert Advisor "// Signal threshold value to close [0...100]" - imposta la barra delle scale per chiudere a "100".

 
Andy:
Cosa li chiude allora?

Oggetto di classe CExpert - esamina tutti i moduli di segnale, valuta i loro pesi e somma il punteggio risultante: peso del segnale




 

Capisco l'interpretazione dei moduli. Tutto questo ballo è perché ottimizzerò il mio Expert Advisor come segue: 1. Ottimizzazione di due MA (periodo, shift, smoothing), stop e takeaway da zero; 2. 3. Ottimizzazione del trailing.

Il problema è il seguente: se io genero un Expert Advisor con Cross2MA e filtro SignalITF, funzionerà come segue (stesse condizioni, zero stop e takeaway)

Lunedì, FastMA incrocia SlowMA dal basso verso l'alto, apre una posizione di acquisto, la posizione è tenuta fino al lunedì successivo, il lunedì successivo ci potrebbero essere 3 varianti:

1. FastMA incrocia SlowMA dall'alto verso il basso - la posizione corrente è chiusa, la posizione di vendita è aperta.

2. Non si osservano incroci - la posizione viene mantenuta.

3. FastMA interseca SlowMA dal basso verso l'alto - la posizione viene mantenuta.

E così via, fino al lunedì successivo. Molte cose possono accadere tra un lunedì e l'altro, 2 MA possono essere incrociate più volte e il prezzo scenderà.

Possiamo implementare quanto segue (stesse condizioni): Martedì, la FastMA incrocia la SlowMA dall'alto verso il basso, e la posizione Sell non viene aperta perché è martedì e non lunedì, ma la posizione corrente viene chiusa.

 

Penso di aver capito come farlo applicando la soglia.

Che Cross2MA restituisca 80 e SignalITF restituisca 40.

Soglia per aprire abbiamo messo 50, soglia per chiudere abbiamo messo 30.

Se entrambi i moduli forniscono un segnale, la media aritmetica restituirà 60 che è superiore alla soglia di 50, allora la posizione viene aperta.

Se scatta solo Cross2MA, la media aritmetica è 40, maggiore di 30, la posizione corrente viene chiusa; se è inferiore a 50, non viene aperta una nuova posizione.

Giusto?

Tranne SignalITF che restituisce empty_value.

 
PeretsCHILI:

Penso di aver capito come farlo applicando la soglia.

Che Cross2MA restituisca 80 e SignalITF restituisca 40.

Soglia per aprire abbiamo messo 50, soglia per chiudere abbiamo messo 30.

Se entrambi i moduli forniscono un segnale, la media aritmetica restituirà 60 che è superiore alla soglia di 50, allora la posizione viene aperta.

Se scatta solo Cross2MA, la media aritmetica è 40, maggiore di 30, la posizione corrente viene chiusa; se è inferiore a 50, non viene aperta una nuova posizione.

Giusto?

Tranne SignalITF che restituisce empty_value.


Stai andando nella giusta direzione :) Tutti i controlli per le soglie di apertura e chiusura sono attraverso i parametri di input dell'Expert Advisor generato dal Wizard MQL5.

Motivazione: