Discussione sull’articolo "Il Wizard MQL5: Come creare un modulo di segnali di trading" - pagina 4

 

Potete dirmi come posso utilizzare LongCondition e ShortCondition non solo per aprire ma anche per chiudere una posizione senza aprire la posizione opposta? Ad esempio, il valore di soglia del segnale per l'apertura = 30 e il valore di soglia del segnale per la chiusura = 70.

Vogliamo aprire una posizione long quando si verifica la condizione 1 e chiuderla quando si verifica la condizione 2. Quali valori devono avere LongCondition e ShortCondition? Quali valori dovrebbero restituire LongCondition e ShortCondition in questo caso?

Se il controllo dei valori di ritorno di LongCondition e ShortCondition non è sufficiente, come si può fare? Si presume che si utilizzi un solo segnale.

Grazie.

 

Ciao,

ho seguito tutti i passaggi dell'articolo, ma non funziona.

Ho salvato il segnale nel file \include\expert\signal\mysignals\samplesignal.mqh.

Ma non viene riconosciuto dal meta editor. Ho provato a fare lo stesso con il file allegato all'articolo, ma non è cambiato nulla...


La mia versione attuale del Meta Editor è la 5.00 Build 567.


Qualche idea?


Grazie Mario

 

Quando uso il file che hai allegato all'articolo, c'è qualcosa di sbagliato.

Trovo che il commento sul tipo dovrebbe essere il seguente:

//| Type=SignalAdvanced                                          |

 
yankai0219:

Quando uso il file che hai allegato all'articolo, c'è qualcosa di sbagliato.

Trovo che il commento sul tipo dovrebbe essere il seguente:

//| Type=SignalAdvanced                                          |

Potete leggerlo nell'articolo Crea il tuo robot di trading in 6 passi!
 

Ciao a tutti,

Ho scaricato il segnale da questo articolo e ho creato un MQ5 utilizzando la procedura guidata, ma l'EA non effettua alcun trade. Qualche idea?

Ho dovuto apportare la modifica nei commenti precedenti per far apparire il segnale nella lista, a parte questo ha compilato tutto bene. Eseguire l'EA nel tester di strategia non fa nulla però :(

EDIT: Dopo aver inserito le dichiarazioni di stampa in tutte le funzioni della classe CSampleSignal e CExpertSignal, sembra che le funzioni ereditate non vengano sovrascritte dalle funzioni di CSampleSignal.

cioè in questo esempio, invece di essere eseguite:

class CSampleSignal : public CExpertSignal
  {
	 bool CSampleSignal::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration);
	 bool CSampleSignal::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration);

vengono eseguite le seguenti:

class CExpertSignal : public CExpertBase
  {
	 virtual bool     CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration);
	 virtual bool     CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration);

Ha senso? Le funzioni della classe genitore vengono eseguite, mentre vengono sovrascritte nella classe figlio ... Qualsiasi aiuto sarebbe molto apprezzato!!!

 
trolley:

Ciao a tutti,

Ho scaricato il segnale da questo articolo e ho creato un MQ5 utilizzando la procedura guidata, ma l'EA non effettua alcun trade. Qualche idea?

Ho dovuto apportare la modifica nei commenti precedenti per far apparire il segnale nella lista, a parte questo ha compilato tutto bene. Eseguire l'EA nel tester della strategia non fa nulla però :(

EDIT: Dopo aver inserito le dichiarazioni di stampa in tutte le funzioni della classe CSampleSignal e CExpertSignal, sembra che le funzioni ereditate non vengano sovrascritte dalle funzioni CSampleSignal.

cioè in questo esempio, invece di essere eseguite:

vengono eseguite le seguenti:

Ha senso? Le funzioni della classe genitore vengono eseguite, mentre vengono sovrascritte nella classe figlio ... Qualsiasi aiuto sarebbe molto apprezzato!!!

Ciao Trolley,

ho lo stesso problema. Hai trovato qualche soluzione o idea in merito?

Grazie

 

Buon pomeriggio,

Vi prego di consigliarmi come aumentare (top up) una posizione in un Expert Advisor, che è scritto sulla base di MQL5 Wizard e dove le posizioni sono aperte tramite

virtual int LongCondition();
virtual int ShortCondition();

Ho scritto il robot seguendo le raccomandazioni dell'articolo

https://www.mql5.com/it/articles/367 "Creare un robot di trading in 6 passi" e funziona bene, ma tenta di influenzare la dimensione della posizione (non importa se per aumentare o diminuire)

(non importa se aumentare o diminuire) attraverso la generazione ripetuta della condizione in , per esempio in

LongCondition();

non porta a nulla, la posizione già aperta non viene modificata, può essere eliminata solo eseguendo la condizione di chiusura o attivando sl , tp.

Mi piace il Wizard di MQL5, si può facilmente e rapidamente "costruire" un Expert Advisor multi-indicatore, cambiare il modulo di tracciamento degli sl, cambiare il modulo di gestione del denaro.

Ma il mio tentativo di scrivere un Expert Advisor che apra una posizione minima quando una condizione è formata da un indicatore e aumenti (riempia) la posizione quando la tendenza è confermata da un altro indicatore.

Mi sono imbattuto nel problema sopra descritto - la posizione già aperta non cambia quando il segnale di apertura attraverso, ad esempio, LongCondition() viene emesso di nuovo;

Grazie.

Создай торговый робот за 6 шагов!
Создай торговый робот за 6 шагов!
  • 2012.06.01
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы не знаете, как устроены торговые классы, и пугаетесь слов "Объектно-ориентированное программирование"? На самом деле вовсе не обязательно всё это знать, чтобы написать свой собственный модуль торговых сигналов - достаточно следовать простым правилам. Всё остальное сделает Мастер MQL5, и вы получите готовый торговый робот!
 
Il file dell'articolo non è visibile nella procedura guidata, che è nell'oggetto, per favore ditemi cosa regolare.
 
thejobber:
Il file dell'articolo non è visibile nella procedura guidata, che è nell'oggetto, per favore dimmi cosa modificare.

Nei commenti è necessario sostituire la riga

//| Tipo=Segnale

con

//||Tipo=SegnaleAvanzato.

Dopo di che il mio master ha iniziato a vedere il segnale.

 
L'ho scaricato, l'ho generato attraverso la procedura guidata, ho provato a eseguirlo nel tester e non funziona. Non accede nemmeno ai metodi CheckOpenLong/Short() di samplesignal. Vengono chiamati in ExpertSignal, ma non in SampleSignal. Cos'altro posso fare per sovrascriverli con certezza?