Domande su MQL5 Wizard e sulla libreria standard di classi di trading - pagina 6
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Master e classi per lui si sono spostati finora nella "modalità di manutenzione". Per la creazione delle classi multivarianti più semplici sono già adattati (non sono pronti ora, ma più tardi metterò qui un esempio).
Ho fatto una classe multi-valuta basata su quella generata dalla procedura guidata. Ma ho dovuto correggere la classe EXPERT.
All'inizio di esso nel metodo INIT() c'è un controllo per il simbolo di lavoro e di conseguenza nessuna multicurrency. L'assegno è stato rimosso e tutto è andato bene. Guardate il tempo - l'idea almeno che?
if(symbol!=Symbol() || period!=Period())
на
if(period!=Period())
Ciao Moderatore!
Ho una domanda del genere:
MQL5 Wizard ha 20 moduli di segnali che eseguono analisi per divergenza, ipercomprato, ipervenduto, ecc. Potreste consigliarmi se è possibile prendere in prestito un modulo di segnali dal Wizard MQL5 per eseguire l'analisi dello stesso, ma da un indicatore personalizzato di propria progettazione e cosa si dovrebbe fare per questo? Richiederà molta rilavorazione (redesign) o è sufficiente cambiare qualcosa nel modulo (la sua copia) dalla consegna standard?
Grazie in anticipo!
ForexMoneyMaker:
Sapete se è possibile prendere in prestito qualsiasi modulo di segnali dal Wizard MQL5 per eseguire l'analisi dello stesso, ma da un indicatore personalizzato di propria progettazione, e cosa si dovrebbe fare per questo? Richiederà molta rilavorazione (modifica), o sarà sufficiente cambiare qualcosa nel modulo (la sua copia) dalla consegna standard?
Bella domanda! Ed ecco perché - è davvero possibile creare un nuovo modulo con modifiche minime dei moduli standard, semplicemente inserendo un altro indicatore al posto di uno. Non so quando saremo in grado di scrivere noi stessi un articolo su questo argomento, quindi lo suggerisco:
Chi ha conoscenza e desiderio di scrivere un articolo "Come creare il proprio sulla base del modulo standard di segnali" - scrivetemi nel messaggio personale.
Ho fatto una classe multi-valuta basata su quella generata dalla procedura guidata. Ma ho dovuto correggere la classe EXPERT.
All'inizio di esso nel metodo INIT() c'è un controllo per il simbolo di lavoro e di conseguenza nessuna multicurrency. L'assegno è stato rimosso e tutto è andato bene. Guarda il tempo - l'idea almeno che?
if(symbol!=Symbol() || period!=Period())
на
if(period!=Period())
L'idea è la stessa, ma:
1. non è bene cambiare la classe CExpert. È bene ereditare da esso sovrascrivendo il metodo Init(...).
2) Non è necessario modificare la classe CExpert. Devi scriverlo:
Per ora...
Ciao Moderatore!
Ho una domanda del genere:
MQL5 Wizard ha 20 moduli di segnali che eseguono analisi per divergenza, ipercomprato, ipervenduto, ecc. Potreste consigliarmi se è possibile prendere in prestito un modulo di segnali dal Wizard MQL5 per eseguire l'analisi dello stesso, ma da un indicatore personalizzato di propria progettazione e cosa si dovrebbe fare per questo? Richiederà molta rilavorazione (redesign) o è sufficiente cambiare qualcosa nel modulo (la sua copia) dalla consegna standard?
Grazie in anticipo!
L'idea è la stessa, ma:
1. non è bene modificare la classe CExpert. È bene ereditare da esso sovrascrivendo il metodo Init(...).
2. Non è necessario modificare la classe CExpert. Devi scriverlo:
Finora...
Dovresti ridefinire il metodo Init() ed escludere da esso il controllo del simbolo di lavoro. Ma il p. 2 non va bene, poiché il metodo Init(), tra le altre cose, contiene un controllo per il numero di cifre Digits e se il simbolo di lavoro contiene 5 cifre, e quello che viene testato contiene 3 cifre, ci sarà un errore con stop/profitti. Ho ereditato e sovrascritto. Ora tutto funziona.
Naturalmente, non sono un grande esperto di OOP, ma risulta che per configurare in modo flessibile il programma per un numero diverso di simboli testati, bisogna riempire senza mezzi termini, per esempio, 21 pezzi di codice (tutti i simboli), e poi con il metodo della scelta dei parametri di input passare questa o quella sezione di codice. Ho fatto lo stesso senza OOP, ma tutti gli handle e i valori degli indicatori nell'init sono stati scritti in array dinamici, e poi OnTick ha già usato questi array. Quindi, non ho ancora visto nessun vantaggio di OOP?
P S. Non l'ho scritto con precisione. Devo stipare così tanti pezzi di codice, quanti caratteri in una sola volta ho intenzione di testare. Forse c'è un modo per collegare dinamicamente i dati (gestori e valori di indicatori) nel corso della messa a punto per il numero di caratteri che lavorano contemporaneamente. Il problema è che tutto questo dovrebbe essere inserito in Init e utilizzato in OnTic/OnTimer.
È necessario ridefinire il metodo Init(), escludendo il controllo del simbolo di lavoro. E p.2 non va bene, perché il metodo Init(), tra le altre cose, controlla il numero di cifre Digits, e se il simbolo di lavoro ha 5 cifre, e quello che viene testato ha 3 cifre, allora ci sarà un errore con stop/profitti. Ho ereditato e sovrascritto. Ora tutto funziona.
Naturalmente, non sono un grande esperto di OOP, ma risulta che per configurare in modo flessibile il programma per un numero diverso di simboli testati, bisogna riempire senza mezzi termini, per esempio, 21 pezzi di codice (tutti i simboli), e poi con il metodo della scelta dei parametri di input passare questa o quella sezione di codice. Ho fatto lo stesso senza OOP, ma tutti gli handle e i valori degli indicatori nell'init sono stati scritti in array dinamici, e poi OnTick ha già usato questi array. Quindi, non ho ancora visto nessun vantaggio di OOP?
P S. Non l'ho scritto con precisione. Devo stipare così tanti pezzi di codice, quanti caratteri in una sola volta ho intenzione di testare. Forse c'è un modo per collegare dinamicamente i dati (gestori e valori di indicatori) durante la configurazione per il numero di caratteri che lavorano contemporaneamente. Il problema è che tutto questo dovrebbe essere inserito in Init e utilizzato in OnTic/OnTimer.
È così. A proposito, grazie per il consiglio sul punto 2. Aggiungerò un controllo e un cambio di cifre.
Merda, ho appena impostato tutto e quando ho aggiornato alla build 485, l'errore è saltato fuori di nuovo:
2011.08.08 17:13:04 Il tester Core 1 si è fermato perché OnInit è un errore critico
2011.08.08 17:13:04 Core 1 2010.01.01 00:00:00 OnInit: errore nell'inizializzazione degli indicatori
2011.08.08 17:13:04 Core 1 2010.01.01 00:00:00 CExpert::InitIndicators: errore nell'inizializzare gli indicatori dell'oggetto denaro
2011.08.08 17:13:04 Core 1 2010.01.01 00:00:00 CExpertBase::InitIndicators: i parametri di impostazione non sono controllati
2011.08.08 17:13:04 Core 1 2010.01.01 00:00:00 CExpertBase::SetOtherSeries: cambiare la serie temporale è proibito
2011.08.08 17:13:04 Core 1 2010.01.01 00:00:00 CExpertBase::SetPriceSeries: cambiare la serie temporale è proibito
2011.08.08 17:13:04 Core 1 EURUSD,H4: la storia inizia dal 2009.01.02 04:00
2011.08.08 17:13:04 Core 1 EURUSD,H4: cache storica riservata per 4692 barre stimate
Merda, ho appena impostato tutto e quando ho aggiornato al 485 l'errore è saltato fuori di nuovo:
Gli agenti sono stati aggiornati? L'EA è stato ricompilato nella nuova versione?
È proprio così, ho ricompilato!