Aiuto per la codifica - pagina 495

 
Mastercash:
Mladen, mi sembra di non capire, sto usando l'EMA periodo 10 per agire come r/s fluttuante per uno scopo, se riduco il periodo a 1 periodo, sarà troppo debole per essere usato come r/s....! Ho solo bisogno di un fello di buon cuore che aggiusti il codice per dare il suo allarme all'interno della candela, non all'apertura della nuova candela, sono solo un codificatore più magro!

Scusa

Ho letto il codice in modo sbagliato

Comunque, questa linea

MainBuffer=iMA(NULL,60,10,0,MODE_SMA,PRICE_CLOSE,i);

sarà sbagliata in ogni caso quando il time frame del grafico è diverso da 1 ora. Usate iBarShift() per impostare l'indice. In questo modo

int y = iBarShift(NULL,PERIOD_H1,Time);

MainBuffer=iMA(NULL,PERIOD_H1,10,0,MODE_SMA,PRICE_CLOSE,y);

Inoltre, cambiate il valore della costante SIGNAL_BAR da 1 a 0 per avvisare su una barra aperta corrente (ma poi bisogna fare altre modifiche nel codice)

_________________

PS: ti consiglio di prendere alcuni dei nuovi indicatori da questo thread: https: //www.mql5.com/en/forum/180648 poiché ci sono un sacco di esempi su come questi casi dovrebbero essere gestiti

 

Per favore, per favore! Ho bisogno di un indicatore con allarme che mi avviserà quando subito dopo la chiusura della 7a candela rialzista consecutiva o della 7a candela ribassista consecutiva.

Pin, dogi e altre forme di candele non sono contati. Solo toro e orso candela avviso che si aprirà con il suono quando ci 7 barre ribassista o rialzista back to back.

Apprezzerò molto e condividerò la mia idea quando la strategia è fatta.

 

Ciao, Mladen!

Penso di aver scoperto il motivo dell'ottimizzazione del tempo di aumento.

Liscia i dati al posto di "iMAOnArray", includi MovingAverages.mqh.

Una singola esecuzione dell'indicatore nello strategy tester con iMAOnArray:

2015.06.28 00:13:42.132 2015.06.15 23:59 EURUSD,H1: 70897 eventi tick(71897 barre, 142742 stati delle barre) elaborati in 0:02:40.525 (tempo totale 0:02:40.556)2015.06.28 00:11:01.613 2015.06.15 23:59 TSIErgodic input: p2=7; p3=5; p4=3; p5=3; 2015.06.28 00:11:01.587 2015.06.15 23:59

Una singola esecuzione dell'indicatore nel tester della strategia con MovingAverages.mqh:

2015.06.28 00:14:10.625 2015.06.15 23:59 EURUSD,H1: 70897 eventi tick(71897 barre, 142742 stati delle barre) elaborati in 0:00:01.045 (tempo totale 0:00:01.077)2015.06.28 00:14:09.577 2015.06.15 23:59 TSI_Nuovi input: p2=7; p3=5; p4=3; p5=3; 2015.06.28 00:14:09.546 2015.06.15 23:59 Quando uso un nuovo indicatore nell'EA, non ci sono operazioni e la finestra dell'indicatore è vuota.

Durante l'ottimizzazione mostra che l'esecuzione con transazioni:

12 513.73 354 1.18 1.45 269.81 18.75% 1.18239793 p2=21 p3=9 p4=15 p5=28 s=4 stop=0.02 p=0.026 Lots=0.01 Prots=0.07

18 417.94 349 1.16 1.20 235.92 15.14% 1.15998398 p2=41 p3=19 p4=27 p5=36 s=1 stop=0.024 p=0.012 Lots=0.01 Prots=0.07

7 314.10 346 1.09 0.91 326.66 20.58% 1.08715973 p2=13 p3=21 p4=5 p5=4 s=1 stop=0.028 p=0.02 Lots=0.01 Prots=0.07

13 229.71 176 1.17 1.31 287.58 19.28% 1.16941715 p2=35 p3=15 p4=13 p5=4 s=4 stop=0.022 p=0.016 Lots=0.01 Prots=0.07

11 66.44 26 1.31 2.56 62.37 5.78% -1.00000000 p2=23 p3=27 p4=25 p5=16 s=31 stop=0.03 p=0.014 Lots=0.01 Prots=0.07

Puoi sistemare l'indicatore?

tsi_new.mq4

File:
tsi_new.mq4  5 kb
 
QuantF:
Ciao, Mladen!

Penso di aver scoperto la ragione dell'ottimizzazione del tempo di aumento.

Smussare i dati al posto di "iMAOnArray", Includere MovingAverages.mqh.

Una singola esecuzione dell'indicatore nello strategy tester con iMAOnArray:

2015.06.28 00:13:42.132 2015.06.15 23:59 EURUSD,H1: 70897 eventi tick(71897 barre, 142742 stati delle barre) elaborati in 0:02:40.525 (tempo totale 0:02:40.556)2015.06.28 00:11:01.613 2015.06.15 23:59 TSIErgodic input: p2=7; p3=5; p4=3; p5=3; 2015.06.28 00:11:01.587 2015.06.15 23:59

Una singola esecuzione dell'indicatore nel tester della strategia con MovingAverages.mqh:

2015.06.28 00:14:10.625 2015.06.15 23:59 EURUSD,H1: 70897 eventi tick(71897 barre, 142742 stati delle barre) elaborati in 0:00:01.045 (tempo totale 0:00:01.077)2015.06.28 00:14:09.577 2015.06.15 23:59 TSI_Nuovi input: p2=7; p3=5; p4=3; p5=3; 2015.06.28 00:14:09.546 2015.06.15 23:59 Quando uso un nuovo indicatore nell'EA, non ci sono operazioni e la finestra dell'indicatore è vuota.

Durante l'ottimizzazione mostra che l'esecuzione con transazioni:

12 513.73 354 1.18 1.45 269.81 18.75% 1.18239793 p2=21 p3=9 p4=15 p5=28 s=4 stop=0.02 p=0.026 Lots=0.01 Prots=0.07

18 417.94 349 1.16 1.20 235.92 15.14% 1.15998398 p2=41 p3=19 p4=27 p5=36 s=1 stop=0.024 p=0.012 Lots=0.01 Prots=0.07

7 314.10 346 1.09 0.91 326.66 20.58% 1.08715973 p2=13 p3=21 p4=5 p5=4 s=1 stop=0.028 p=0.02 Lots=0.01 Prots=0.07

13 229.71 176 1.17 1.31 287.58 19.28% 1.16941715 p2=35 p3=15 p4=13 p5=4 s=4 stop=0.022 p=0.016 Lots=0.01 Prots=0.07

11 66.44 26 1.31 2.56 62.37 5.78% -1.00000000 p2=23 p3=27 p4=25 p5=16 s=31 stop=0.03 p=0.014 Lots=0.01 Prots=0.07

Puoi correggere l'indicatore?

tsi_new.mq4

Non c'è niente da sistemare nell'indicatore

Il problema non è nell'indicatore - il problema è nel backtester.

In ogni caso, usare aMAOnArray() deve essere significativamente più veloce che usare ExponentialMAOnBuffer() - semplicemente perché iMAOnArray() viene eseguito a livello di codice macchina mentre ExponentialMAOnBuffer() viene eseguito a livello di codice P. Il fatto che iMAOnArray() non sia più veloce dimostra solo che le nuove build di mt4 hanno seri problemi

 
mladen:
Non c'è niente da risolvere nell'indicatore

Il problema non è nell'indicatore - il problema è nel backtester.

In ogni caso, usare aMAOnArray() deve essere significativamente più veloce che usare ExponentialMAOnBuffer() - semplicemente perché iMAOnArray() viene eseguito a livello di codice macchina mentre ExponentialMAOnBuffer() viene eseguito a livello di codice P. Il fatto che iMAOnArray() non sia più veloce dimostra solo che le nuove build di mt4 hanno seri problemi

Molte volte sul forum ha scritto su questo problema. Niente di buono. Pensi che il bug non sarà risolto?

 
QuantF:
Molte volte sul forum ha scritto di questo problema. Niente di buono. Pensi che il bug non sarà risolto?

Dovrebbe essere aggiustato

Se lo sarà - non ne ho idea. Backtester è sempre peggio con ogni nuova build - non ci spererei troppo

 

C'è qualche manuale che spiega come lavorare con gli array nel modo più efficiente?

 
apprentice coder:
C'è qualche manuale che spiega come lavorare con gli array nel modo più efficiente?

Dato che mql usa gli array in modo simile al C/C++, un buon inizio potrebbe essere qui: Arrays - C++ Tutorials

Quello che dovreste evitare è impostare gli array come serie. Il ridimensionamento in questo caso è un dolore nel ... (estremamente inefficiente) - il modo migliore è usare l'indicizzazione degli array come in C/C++: il primo (più vecchio) elemento è l'indice 0, e l'ultimo (più recente) è la dimensione dell'array - 1

 

@Programmatori e codificatori del forum per favore potete aggiungere un'opzione di pareggio al consulente esperto allegato qui sotto

 
douceurdange:
Ciao, è possibile mettere delle frecce quando la linea RSI rientra nelle bande di bollinger dell'indicatore rsi+bollinger bands ?

Ho messo il cci nrp advanced alert come modello dell'alert che vorrei avere.

Grazie in anticipo

rsi__bollinger_bands.mq4rsi__bollinger_bands.ex4cci_-_nrp_-_mtf_advanced_alerts.ex4cci_-_nrp_-_mtf_advanced_alerts.mq4

l'indicatore è stato postato qui: https: //www.mql5.com/en/forum/general