Domande su MQL5 Wizard e sulla libreria standard di classi di trading - pagina 7

 

Sì, quindi i nuovi consiglieri creati dal master non funzionano affatto?

2011.08.08 19:08:30 Core 1 connessione chiusa
2011.08.08 19:08:30 Core 1 file di log "D:\Program\MetaTrader 5\Tester\Agent-127.0.0.1-3000\logs\20110808.log" scritto
2011.08.08 19:08:30 Core 1 tester fermato perché OnInit errore critico
2011.08.08 19:08:30 Core 1 2011.0101 00:00:00 OnInit: errore inizializzazione indicatori
2011.08.08 19:08:30 Core 1 2011.01 00:00:00 CExpert::InitIndicators: errore inizializzazione indicatori dell'oggetto denaro
2011.08.08 08 19:08:30 Core 1 2011.01.01 00:00:00 CExpertBase::InitIndicators: i parametri di impostazione non sono controllati
20112011.08.08 19:08:30 Core 1 2011.01.01 00:00:00 CExpertBase::SetOtherSeries: cambiare serie temporale è proibito
2011.08.08 19:08:30 Core 1 2011.01.01 00:00:00 CExpertBase::SetPriceSeries: cambiare serie temporale è proibito
2011.08.08 19:08:302011.08.08 19:08:30 Core 1 EURUSD,H4: la cronologia inizia dal 2010.01.04 00:00
2011.08.08 19:08:30 Core 1 EURUSD,H4: cache cronologica riservata per 2472 barre stimate
2011.08.08 19:08:30 Core 1 EURUSD: contiene 367194 record M1 di dati di inizio dal 2010.01.04 00:00 al 2010.12.31 22:59
2011.08.08 19:08:30 Core 1 EURUSD: contiene 367194 record M1 di dati di inizio dal 2010.01.04 00:00:00.19:08:30 Core 1 EURUSD,Daily: la storia inizia dal 2010.01.04 00:00
2011.08.08 19:08:30 Core 1 EURUSD,Daily: cache della storia riservata per 412 barre stimate
2011.08.08 19:08:30 Core 1 EURUSD: contiene 367194 record M1 di inizio dati dal 2010.01.04 00:00 al 2010.12.31 22:59
2011.08.08 19:08:30 Core 1 Trailing_FixedPips_ProfitLevel=400
2011.08.08 19:08:30 Core 1 Trailing_FixedPips_StopLevel=200
2011.2011.08.08 19:08:30 Core 1 Signal_2_AC_Weight=0.30
2011.08.08 19:08:30 Core 1 Signal_1_AC_Weight=0.30
2011.08.082011.08.08 19:08:30 Core 1 Signal_0_AC_Weight=0.30
2011.08.08 19:08:30 Core 1 Signal_TakeLevel=400
2011.08.08 19:08:30 Core 1 Signal_StopLevel=200
2011.2011.08.08 19:08:30 Core 1 Signal_ThresholdClose=80
2011.08.08 19:08:29 Core 1 Signal_ThresholdOpen=20
2011.2011.08.08 19:08:29 Core 1 Expert_Title=Master03
2011.08.08 19:08:29 Core 1 EURUSD,H1: test di Experts\Master03.ex5 dal 2011.2011.08.01 00:00 to 2011.08.01 00:00 with inputs:
2011.08.08 19:08:29 Core 1 EURUSD,H1 (MetaQuotes-Demo): 1 min OHLC ticks generating. OnTick eseguito solo sull'inizio della barra
2011.08.08 19:08:29 Core 1 EURUSD,H1: la storia inizia dal 2010.01.04 00:00
2011.08.08 19:08:29 Core 1 EURUSD,H1: cache della storia riservata alle 9891 barre stimate
2011.08.19:08:29 19:08:29 Core 1 EURUSD: contiene 367194 record M1 di dati iniziali dal 2010.01.04 00:00 al 2010.12.31 22:59
2011.08.08 19:08:29 Core 1 EURUSD: cronologia sincronizzata dal 1993.05.13 al 2011.08.05
2011.08.08 19:08:29 Core 1 EURUSD: caricare 27 byte di dati cronologici per sincronizzare
2011.2011.08.08 19:08:29 Core 1 EURUSD: simbolo sincronizzato, 3304 byte di informazioni sul simbolo ricevuti
2011.08.08 19:08:29 Core 1 Intel Core i5 M 430 @ 2.27GHz, 2996 MB
2011.08.08 19:08:29 Core 1 158 Kb di dati di inizializzazione totali ricevuti
2011.2011.08.08 19:08:29 Core 1 inizializzato con successo
2011.08.08 19:08:29 Core 1 deposito iniziale 10000.00 USD, leva 1:500
2011.08.08 19:08:29 Core 1 file esperto aggiunto: Experts\Master03.ex5. 156794 byte caricati
2011.08.08 19:08:29 Core 1 5304 byte di parametri di input caricati
2011.08.08 19:08:29 La qualità del tester della storia analizzata è 100%
2011.08.08 19:08:28 Core 1 sincronizzazione comune completata
2011.08.08.19:08:28 19:08:28 Tester EURUSD,H1 (MetaQuotes-Demo): test di experts\Master03.ex5 dal 2011.01.01 00:00 al 2011.08.01 00:00 da avviare
2011.08.01.2011.08.08 19:08:28 Core 1 autorizzato (agent build 485)
2011.08.08 19:08:28 Core 1 connesso
2011.08.08 19:08:28 Core 1 connesso a 127.0.0.1:3000

File:
Master03.mq5  8 kb
71pon5.PNG  22 kb
 
Erm955:

È questo il punto, l'ho ricompilato!

Colpa mia.
File:
MoneyNone.mqh  4 kb
 
uncleVic:
Colpa mia.

Bene!

 

Allo zioVic.

Vorrei rivedere la possibilità di abilitare la generazione automatica di multivalute nel Wizard. La ragione principale per non farlo era la complicazione del menu di Wizard. Ma la complicazione viene ad aggiungere solo un menu - l'elenco delle coppie di valute per il funzionamento simultaneo, se siamo d'accordo, naturalmente, che tutti i dati di input per queste coppie saranno comuni. Questo è abbastanza accettabile secondo la mia esperienza con gli strumenti multivaluta. Anche il meccanismo di implementazione non sarà difficile per voi. In sostanza si tratta della riproduzione meccanica di un tratto di codice con piccole inclusioni per ogni simbolo.

Cioè, il menu della procedura guidata e l'implementazione non sono molto più complicati, ma otteniamo una procedura guidata più versatile che permette di implementare più strategie quasi immediatamente e in modalità multivaluta.

Allego la mia variante della soluzione. Può essere utile.

File:
 
Erm955:

Allo zioVic.

Vorrei rivedere la possibilità di abilitare la generazione automatica di multivalute nel Wizard. La ragione principale per non farlo era la complicazione del menu di Wizard. Ma la complicazione viene ad aggiungere solo un menu - l'elenco delle coppie di valute per il funzionamento simultaneo, se siamo d'accordo, naturalmente, che tutti i dati di input per queste coppie saranno comuni. Questo è abbastanza accettabile secondo la mia esperienza con gli strumenti multivaluta. Anche il meccanismo di implementazione non sarà difficile per voi. In sostanza si tratta della riproduzione meccanica di un tratto di codice con piccole inclusioni per ogni simbolo.

Cioè, il menu del wizard e l'implementazione non sono molto più complicati, ma otteniamo un wizard più versatile che permette di implementare più strategie quasi immediatamente e in modalità multivaluta.

Allego la mia variante della soluzione. Può essere utile.

La direzione ha detto di no.
 
uncleVic:
Controlla il forum inglese qui.

Ciao moderatore!

Grazie per il suggerimento. Cercando di capire. C'è una domanda sul codice del programma:

Da quanto ho capito, le impostazioni (cioè i parametri di input) dell'indicatore SAR personalizzato sono descritti qui. I primi tre (da 0 a 2) sono chiari. Da dove viene il quarto (prezzo applicato)? Non è presente nell'indicatore SAR personalizzato stesso. Per favore, spiega questo blocco nei dettagli! Forse questa è la parte più difficile di tutta questa riprogettazione (personalizzazione) dell'indicatore personalizzato. Grazie in anticipo!

//--- prepare indicator parameters
   MqlParam CustomSAR_prop[];
   ArrayResize(CustomSAR_prop,4);
//--- indicator file
   CustomSAR_prop[0].type=TYPE_STRING;
   CustomSAR_prop[0].string_value="Examples\\ParabolicSAR";
//--- SAR step
   CustomSAR_prop[1].type=TYPE_DOUBLE;
   CustomSAR_prop[1].double_value=m_step;
//--- SAR maximum
   CustomSAR_prop[2].type=TYPE_DOUBLE;
   CustomSAR_prop[2].double_value=m_maximum;
//--- applied price
   CustomSAR_prop[3].type=TYPE_INT;
   CustomSAR_prop[3].integer_value=PRICE_CLOSE;
//--- initialize object
   if(!m_sar.Create(m_symbol.Name(),m_period,IND_CUSTOM,4,CustomSAR_prop))
     {
      printf(__FUNCTION__+": error initializing object");
      return(false);
     }
   m_sar.NumBuffers(1);
//--- ok
   return(true);
  }
 
ForexMoneyMaker:

Ciao moderatore!

Grazie per il suggerimento. Cercando di capire. C'è una domanda qui sul codice del programma:

Da quanto ho capito, le impostazioni (cioè i parametri di input) dell'indicatore SAR personalizzato sono descritti qui. I primi tre (da 0 a 2) sono chiari. Da dove viene il quarto (prezzo applicato)? Non è presente nell'indicatore SAR personalizzato stesso. Per favore, spiega questo blocco nei dettagli! Forse questa è la parte più difficile di tutta questa riprogettazione (tuning) di indicatori personalizzati. Grazie in anticipo!

Sì, probabilmente non ne hai bisogno. Non l'ho scritto io.
 

Poi, se posso fare un'altra domanda su questo frammento di codice:

m_sar.NumBuffers(1); - a cosa serve questo operatore (dove va) e perché c'è un 1 tra parentesi?

 
ForexMoneyMaker:

Poi, se posso fare un'altra domanda su questo frammento di codice:

m_sar.NumBuffers(1); - a cosa serve questo operatore (dove va) e perché c'è un 1 tra parentesi?

Imposta il numero di buffer dell'indicatore utente (perché il loro numero non è noto in anticipo).
Переход на новые рельсы: пользовательские индикаторы в MQL5
Переход на новые рельсы: пользовательские индикаторы в MQL5
  • 2009.11.23
  • Андрей
  • www.mql5.com
Я не буду перечислять все новые возможности и особенности нового терминала и языка. Их действительно много, и некоторые новинки вполне достойны освещения в отдельной статье. Вы не увидите здесь кода, написанного по принципам объектно-ориентированного программирования — это слишком серьезная тема для того, чтобы просто быть упомянутой в контексте как дополнительная вкусность для кодописателей. В этой статье остановимся подробней на индикаторах, их строении, отображении, видах, а также особенностях их написания по сравнению с MQL4.
 
uncleVic:
Imposta il numero di buffer dell'indicatore personalizzato (perché il numero di buffer non è noto in anticipo).

Grazie!

Sono riuscito a realizzare completamente questa idea! E basato su un indicatore personalizzato di sufficiente complessità. Penserò che forse dovrei provare a scrivere un articolo corrispondente su questo argomento. Non c'è niente di veramente complicato. :)

Motivazione: