Ciao, potresti dirmise ho bisogno del parametro Parameter=Ka,int,21 nel segnale della libreria standard?
Selezionato nel processo di ottimizzazione dall'enumerazione del tipo
Ma,quando il segnale scompare dalla selezione quando si genera l'EA, ma si compila normalmente, è difficile trarre conclusioni - cosa c'è di sbagliato ......, aiuto con il codice, non c'era già un'implementazione?
p.s. Devo cambiare int in intTypeogni volta nel finale EA
Specificare l'esatto file del modulo del segnale e la linea di codice...
Karputov Vladimir: Specificare l'esatto file del modulo del segnale e la linea di codice...
Per esempio, ecco una parte del codice superiore SignalRVI.mqh. In questo caso, scompare dalla selezione del segnale quando cambio il tipo int in intType
Se lo scopo è sbagliato, lo metto in un file separato con enumerazione #include <Libraries\myfunc.mqh>.
//+------------------------------------------------------------------+//| SignalRVI.mqh |//| Copyright 2009-2013, MetaQuotes Software Corp. |//| http://www.mql5.com |//+------------------------------------------------------------------+
#include <Expert\ExpertSignal.mqh>
// wizard description start//+------------------------------------------------------------------+//| Description of the class |//| Title=----------------Signals of oscillator 'Relative Vigor Index' |//| Type=SignalAdvanced |//| Name=Relative Vigor Index |//| ShortName=RVI |//| Class=CSignalRVI |//| Page=signal_rvi |//| Parameter=PeriodRVI,intType,15,Period of calculation |//+------------------------------------------------------------------+// wizard description end//+------------------------------------------------------------------+//| Class CSignalRVI. |//| Purpose: Class of generator of trade signals based on |//| the 'Relative Vigor Index' oscillator. |//| Is derived from the CExpertSignal class. |//+------------------------------------------------------------------+enum intType
{
p0 = 15,
p1 = 21,
p2 = 29
}
;
class CSignalRVI : public CExpertSignal
{
protected:
CiRVI m_rvi; // object-oscillator//--- adjusted parameters
intType m_periodRVI; // the "period of calculation" parameter of the oscillator//--- "weights" of market models (0-100)int m_pattern_0; // model 0 "the oscillator has required direction"int m_pattern_1; // model 1 "crossing of main and signal line"public:
CSignalRVI(void);
~CSignalRVI(void);
//--- methods of setting adjustable parametersvoid PeriodRVI(intType value) { m_periodRVI=value; }
//--- methods of adjusting "weights" of market modelsvoid Pattern_0(intvalue) { m_pattern_0=value; }
void Pattern_1(intvalue) { m_pattern_1=value; }
//--- method of verification of settingsvirtualbool ValidationSettings(void);
//--- method of creating the indicator and timeseriesvirtualbool InitIndicators(CIndicators *indicators);
//--- methods of checking if the market models are formedvirtualint LongCondition(void);
virtualint ShortCondition(void);
protected:
//--- method of initialization of the oscillatorbool InitRVI(CIndicators *indicators);
//--- methods of getting datadouble Main(int ind) { return(m_rvi.Main(ind)); }
double DiffMain(int ind) { return(Main(ind)-Main(ind+1)); }
double Signal(int ind) { return(m_rvi.Signal(ind)); }
double DiffSignal(int ind) { return(Signal(ind)-Signal(ind+1)); }
double DiffMainSignal(int ind) { return(Main(ind)-Signal(ind)); }
};
//+------------------------------------------------------------------+//| Constructor |//+------------------------------------------------------------------+
CSignalRVI::CSignalRVI(void) : m_periodRVI(15),
m_pattern_0(60),
m_pattern_1(100)
{
}
Ciao, potresti dirmise ho bisogno delparametro Parameter=Ka,int,21 nel segnale della libreria standard?
Selezionato nel processo di ottimizzazionedall'enumerazione del tipo
Ma, quando il segnale scompare dalla selezione quando si genera l'EA, ma si compila normalmente, è difficile trarre conclusioni - cosa c'è di sbagliato ......, aiuto con il codice, non c'era già un'implementazione?
p.s. Devo cambiare int in intType ogni volta nel finale EA
Non devi cambiare nulla - basta generare il tuo Expert Advisor basato sull'indicatore "Relative Vigor Index", poi nel tester della strategia, nella scheda "Impostazioni" seleziona una delle ottimizzazioni, vai alla scheda "Parametri" e imposta l'intervallo e il valore del parametro "Relative Vigor Index(10) Periodo di calcolo":
Ma poiché volete usare solo tre valori dell'intervallo 15-29, dovete scrivere una condizione di controllo in OnInit():
//+------------------------------------------------------------------+//| Initialization function of the expert |//+------------------------------------------------------------------+intOnInit()
{
if(Signal_RVI_PeriodRVI!=15 && Signal_RVI_PeriodRVI!=21 && Signal_RVI_PeriodRVI!=29)
return(INIT_PARAMETERS_INCORRECT);//--- Initializing expert
Dopo aver eseguito l'ottimizzazione, si può vedere che il tester ha lavorato solo per i parametri 15, 21 e 29:
Non devi cambiare nulla - basta generare il tuo Expert Advisor basato sull'indicatore "Relative Vigor Index", poi seleziona una delle ottimizzazioni nello Strategy Tester, vai alla scheda "Parametri" e imposta l'intervallo e i valori per il parametro "Relative Vigor Index(10) Period of calculation":
Ma poiché volete usare solo tre valori dell'intervallo 15-29, dovete scrivere una condizione di controllo in OnInit():
Dopo aver eseguito l'ottimizzazione, si può vedere che il tester ha lavorato solo per i parametri 15, 21 e 29:
Grazie, ho capito la tua idea, molto interessante, ma ci saranno un sacco di passi sprecati (anche se probabilmente nemmeno il tempo perso). Sono riuscito a passare manualmente al tipo enum nell'EA generato. E vorrei automatizzare ancora di più.
newnek: Grazie, ho capito la tua idea, molto interessante, ma ci saranno molti passi sprecati (anche se probabilmente non si perderà neanche tempo). Sono riuscito a passare manualmente al tipo enum nell'EA generato. E vorrei automatizzare ancora di più.
Ci saranno dei passi vuoti, ma non richiedono tempo, perché OnInit() uscirà per il mancato rispetto della condizione e il prossimo passo di ottimizzazione sarà iniziato immediatamente.
Buon pomeriggio... Io stesso sono un programmatore C++. Ho deciso di mettermi alla prova in questo campo recentemente... Voglio scrivere un Expert Advisor o un consigliere esperto, la mia strategia è OK, la mia piattaforma è MT4... Allora, sto affrontando questo problema, uso nel mio Expert Advisor MACD.... Lo scriverò a breve...
Per esempio, creo un nuovo modello EA, aggiungo x=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0); e diciamo che non c'è altro... Compilo, provo, tutto è OK, alla fine del test, visualizza un grafico macd con i parametri indicati, tutto è OK.
La seconda opzione - creo un nuovo modello EA nel OnTick, aggiungo un indicatore di terze parti RSICur = iCustom(NULL,0, "My_Induk",14,1,0,21,1,65,35, "DodgerBlue", "Magenta",50,50, "Red", "Green",0,0); compilo, provo, tutto è OK, ma!Quando finisco il test o annullo il test nella finestra di migliaia di questi indicatori, capisco che su ogni tick viene creato un nuovo indicatore... Non capisco perché, perché il MAKD standard nasce una volta e basta...
Qualcuno può spiegare il problema... Sto cercando di spiegare il problema con gli altri indicatori non standard...
P.S. questo è il mio primo post... Per favore, non biasimatemi per non aver trovato un modo per nascondere la foto sotto uno spoiler.
Non so di cosa si tratti ma ho trovato una soluzione...
RSICur=iCustom(NULL,0, "My_Induk",14,1,0,0,21,1,65,35, "DodgerBlue", "Magenta",50,50, "Red", "Green",0,0);- disegna il grafico per tick
RSICur=iCustom(NULL,0, "My_Induk",0,0); - Ok, un grafico, solo i dati nella variabileRSICur sono aggiornati per tick...Qual è la logica che non capisco, in linea di principio mi basta, ma vorrei capire perché funziona bene solo con le impostazioni di default...
Buon pomeriggio... Io stesso sono un programmatore C++. Ho deciso di mettermi alla prova in questo campo recentemente... Voglio scrivere un Expert Advisor o un consigliere esperto, la mia strategia è OK, la mia piattaforma è MT4... Allora, sto affrontando questo problema, uso nel mio Expert Advisor MACD.... Lo scriverò a breve...
Per esempio, creo un nuovo modello EA, aggiungo x=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0); e diciamo che non c'è altro... Compilo, provo, tutto è OK, alla fine del test, visualizza un grafico macd con i parametri indicati, tutto è OK.
La seconda opzione - creo un nuovo modello EA nel OnTick, aggiungo un indicatore di terze parti RSICur = iCustom(NULL,0, "My_Induk",14,1,0,21,1,65,35, "DodgerBlue", "Magenta",50,50, "Red", "Green",0,0); compilo, provo, tutto è OK, ma!Quando finisco il test o annullo il test nella finestra di migliaia di questi indicatori, capisco che su ogni tick viene creato un nuovo indicatore... Non capisco perché, perché il MAKD standard nasce una volta e basta...
Qualcuno può spiegare il problema... Sto cercando di utilizzare lo stesso problema con un altro indicatore non standard...
P.S. questo è il mio primo post... Per favore non rimproveratemi per non aver trovato un modo per nascondere la foto sotto lo spoiler.
La foto va bene, non è nascosta.
L'hai scritto tu My_Induk o l'hai trovato da qualche parte? Ho capito che l'indicatore è storto. Se hai il codice sorgente, postalo - vediamo qual è il problema.
Non so di cosa si tratti ma ho trovato una soluzione...
RSICur=iCustom(NULL,0, "My_Induk",14,1,0,0,21,1,65,35, "DodgerBlue", "Magenta",50,50, "Red", "Green",0,0);- disegna il grafico per tick
RSICur=iCustom(NULL,0, "My_Induk",0,0); - Ok, un grafico, solo i dati nella variabileRSICur sono aggiornati per tick...Qual è la logica che non capisco, in linea di principio mi basta, ma vorrei capire perché funziona bene solo con le impostazioni di default...
Questo succede quando non avete passato correttamente i parametri dell'indicatore.
L'hai scritto tu My_Induk o l'hai trovato da qualche parte? Immagino che l'indicatore sia storto. Se hai il codice sorgente, postalo - vediamo qual è il problema.
Vladislav Andruschenko: Questo succede quando non avete passato correttamente i parametri dell'indicatore.
Grazie, l'ho capito... Ho frugato tutto il giorno e non sono riuscito a capirlo... Io stesso sono un programmatore, ma succede... Ho fatto un errore di sintassi, ho dovuto passare i parametri del colore tra virgolette quando ho chiamato l'indicatore...
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
Ciao, potresti dirmise ho bisogno del parametro Parameter=Ka,int,21 nel segnale della libreria standard?
Selezionato nel processo di ottimizzazione dall'enumerazione del tipo
Ma, quando il segnale scompare dalla selezione quando si genera l'EA, ma si compila normalmente, è difficile trarre conclusioni - cosa c'è di sbagliato ......, aiuto con il codice, non c'era già un'implementazione?
p.s. Devo cambiare int in intTypeogni volta nel finale EA
Specificare l'esatto file del modulo del segnale e la linea di codice...
Per esempio, ecco una parte del codice superiore SignalRVI.mqh. In questo caso, scompare dalla selezione del segnale quando cambio il tipo int in intType
Se lo scopo è sbagliato, lo metto in un file separato con enumerazione #include <Libraries\myfunc.mqh>.Ciao, potresti dirmise ho bisogno del parametro Parameter=Ka,int,21 nel segnale della libreria standard?
Selezionato nel processo di ottimizzazione dall'enumerazione del tipo
Ma, quando il segnale scompare dalla selezione quando si genera l'EA, ma si compila normalmente, è difficile trarre conclusioni - cosa c'è di sbagliato ......, aiuto con il codice, non c'era già un'implementazione?
p.s. Devo cambiare int in intType ogni volta nel finale EA
Non devi cambiare nulla - basta generare il tuo Expert Advisor basato sull'indicatore "Relative Vigor Index", poi nel tester della strategia, nella scheda "Impostazioni" seleziona una delle ottimizzazioni, vai alla scheda "Parametri" e imposta l'intervallo e il valore del parametro "Relative Vigor Index(10) Periodo di calcolo":
Ma poiché volete usare solo tre valori dell'intervallo 15-29, dovete scrivere una condizione di controllo in OnInit():
Dopo aver eseguito l'ottimizzazione, si può vedere che il tester ha lavorato solo per i parametri 15, 21 e 29:
Non devi cambiare nulla - basta generare il tuo Expert Advisor basato sull'indicatore "Relative Vigor Index", poi seleziona una delle ottimizzazioni nello Strategy Tester, vai alla scheda "Parametri" e imposta l'intervallo e i valori per il parametro "Relative Vigor Index(10) Period of calculation":
Ma poiché volete usare solo tre valori dell'intervallo 15-29, dovete scrivere una condizione di controllo in OnInit():
Dopo aver eseguito l'ottimizzazione, si può vedere che il tester ha lavorato solo per i parametri 15, 21 e 29:
Grazie, ho capito la tua idea, molto interessante, ma ci saranno molti passi sprecati (anche se probabilmente non si perderà neanche tempo). Sono riuscito a passare manualmente al tipo enum nell'EA generato. E vorrei automatizzare ancora di più.
Buon pomeriggio... Io stesso sono un programmatore C++. Ho deciso di mettermi alla prova in questo campo recentemente... Voglio scrivere un Expert Advisor o un consigliere esperto, la mia strategia è OK, la mia piattaforma è MT4... Allora, sto affrontando questo problema, uso nel mio Expert Advisor MACD.... Lo scriverò a breve...
Per esempio, creo un nuovo modello EA, aggiungo x=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0); e diciamo che non c'è altro... Compilo, provo, tutto è OK, alla fine del test, visualizza un grafico macd con i parametri indicati, tutto è OK.
La seconda opzione - creo un nuovo modello EA nel OnTick, aggiungo un indicatore di terze parti RSICur = iCustom(NULL,0, "My_Induk",14,1,0,21,1,65,35, "DodgerBlue", "Magenta",50,50, "Red", "Green",0,0); compilo, provo, tutto è OK, ma!Quando finisco il test o annullo il test nella finestra di migliaia di questi indicatori, capisco che su ogni tick viene creato un nuovo indicatore... Non capisco perché, perché il MAKD standard nasce una volta e basta...
Qualcuno può spiegare il problema... Sto cercando di spiegare il problema con gli altri indicatori non standard...
P.S. questo è il mio primo post... Per favore, non biasimatemi per non aver trovato un modo per nascondere la foto sotto uno spoiler.
Non so di cosa si tratti ma ho trovato una soluzione...
RSICur=iCustom(NULL,0, "My_Induk",14,1,0,0,21,1,65,35, "DodgerBlue", "Magenta",50,50, "Red", "Green",0,0);- disegna il grafico per tick
RSICur=iCustom(NULL,0, "My_Induk",0,0); - Ok, un grafico, solo i dati nella variabileRSICur sono aggiornati per tick...Qual è la logica che non capisco, in linea di principio mi basta, ma vorrei capire perché funziona bene solo con le impostazioni di default...
Buon pomeriggio... Io stesso sono un programmatore C++. Ho deciso di mettermi alla prova in questo campo recentemente... Voglio scrivere un Expert Advisor o un consigliere esperto, la mia strategia è OK, la mia piattaforma è MT4... Allora, sto affrontando questo problema, uso nel mio Expert Advisor MACD.... Lo scriverò a breve...
Per esempio, creo un nuovo modello EA, aggiungo x=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0); e diciamo che non c'è altro... Compilo, provo, tutto è OK, alla fine del test, visualizza un grafico macd con i parametri indicati, tutto è OK.
La seconda opzione - creo un nuovo modello EA nel OnTick, aggiungo un indicatore di terze parti RSICur = iCustom(NULL,0, "My_Induk",14,1,0,21,1,65,35, "DodgerBlue", "Magenta",50,50, "Red", "Green",0,0); compilo, provo, tutto è OK, ma!Quando finisco il test o annullo il test nella finestra di migliaia di questi indicatori, capisco che su ogni tick viene creato un nuovo indicatore... Non capisco perché, perché il MAKD standard nasce una volta e basta...
Qualcuno può spiegare il problema... Sto cercando di utilizzare lo stesso problema con un altro indicatore non standard...
P.S. questo è il mio primo post... Per favore non rimproveratemi per non aver trovato un modo per nascondere la foto sotto lo spoiler.
La foto va bene, non è nascosta.
L'hai scritto tu My_Induk o l'hai trovato da qualche parte? Ho capito che l'indicatore è storto. Se hai il codice sorgente, postalo - vediamo qual è il problema.
Non so di cosa si tratti ma ho trovato una soluzione...
RSICur=iCustom(NULL,0, "My_Induk",14,1,0,0,21,1,65,35, "DodgerBlue", "Magenta",50,50, "Red", "Green",0,0);- disegna il grafico per tick
RSICur=iCustom(NULL,0, "My_Induk",0,0); - Ok, un grafico, solo i dati nella variabileRSICur sono aggiornati per tick...Qual è la logica che non capisco, in linea di principio mi basta, ma vorrei capire perché funziona bene solo con le impostazioni di default...
La foto va bene, qui non ci si può nascondere.
L'hai scritto tu My_Induk o l'hai trovato da qualche parte? Immagino che l'indicatore sia storto. Se hai il codice sorgente, postalo - vediamo qual è il problema.
Questo succede quando non avete passato correttamente i parametri dell'indicatore.
Grazie, l'ho capito... Ho frugato tutto il giorno e non sono riuscito a capirlo... Io stesso sono un programmatore, ma succede... Ho fatto un errore di sintassi, ho dovuto passare i parametri del colore tra virgolette quando ho chiamato l'indicatore...
iCustom(NULL,0,"My_Induk",14,1,0,21,1,65,35,"DodgerBlue","Magenta",50,50,"Red","Green",0,0);
ecco cosa ha causato questo malfunzionamento... ) Grazie!!! Sicuramente ci saranno altre domande!!!