Aide au codage - page 495

 
Mastercash:
Mladen, il semble que je ne comprenne pas, j'utilise l'EMA période 10 pour agir comme r/s flottant dans un but précis, si je réduis la période à 1 période, elle sera trop faible pour être utilisée comme r/s.... ! J'ai juste besoin d'une personne au grand coeur pour ajuster le code afin de donner son alerte dans la bougie, et non à l'ouverture de la nouvelle bougie.

Désolé

J'ai lu le code d'une mauvaise façon

Quoi qu'il en soit, cette ligne

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

sera erronée dans tous les cas où l'intervalle de temps du graphique est différent de 1 heure. Utilisez iBarShift() pour définir l'indice. Comme ceci

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

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

Changez également la valeur de la constante SIGNAL_BAR de 1 à 0 afin d'alerter sur une barre ouverte en cours (mais il faut alors apporter d'autres modifications au code).

_________________

PS : Je vous recommande de prendre certains des nouveaux indicateurs de ce fil de discussion : https://www.mql5.com/en/forum/180648 car il y a beaucoup d'exemples de la façon dont ces cas devraient être traités.

 

S'il vous plaît, s'il vous plaît ! J'ai besoin d'un indicateur avec une alerte qui me préviendra juste après la fermeture de la 7ème bougie haussière consécutive ou de la 7ème bougie baissière consécutive.

Pin, dogi et autres formes de bougies ne sont pas prises en compte. Seulement l'alerte de bougie haussière et baissière qui apparaîtra avec le son quand il y a 7 barres baissières ou haussières dos à dos.

Je vais vraiment apprécier et partager mon idée quand la stratégie est faite.

 

Salut, Mladen !

Je pense avoir trouvé la raison de l'optimisation du temps d'augmentation.

Lisser les données au lieu de "iMAOnArray", Inclure MovingAverages.mqh.

Une seule exécution de l'indicateur dans le testeur de stratégie avec iMAOnArray :

2015.06.28 00:13:42.132 2015.06.15 23:59 EURUSD,H1 : 70897 tick events(71897 bars, 142742 bar states) traités en 0:02:40.525 (total time 0:02:40.556)28.06.2015 00:11:01.61315. 06. 23:59 TSIErgodic inputs : p2=7 ; p3=5 ; p4=3 ; p5=3 ;28. 06. 2015 00:11:01.587 15 .06. 23:59

Une seule exécution de l'indicateur dans le testeur de stratégie avec MovingAverages.mqh :

2015.06.28 00:14:10.625 2015.06.15 23:59 EURUSD,H1 : 70897 tick events(71897 bars, 142742 bar states) traités en 0:00:01.045 (total time 0:00:01.077)2015.06.28 00:14:09.577 2015.06.15 23:59 TSI_Nouvelles entrées : p2=7 ; p3=5 ; p4=3 ; p5=3 ; 2015.06.28 00:14:09.546 2015.06.15 23:59 Lorsque j'utilise un nouvel indicateur dans l'EA, aucun trade et la fenêtre de l'indicateur est vide.

Pendant l'optimisation montre que les exécutions avec des transactions :

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

Pouvez-vous réparer l'indicateur ?

tsi_new.mq4

Dossiers :
tsi_new.mq4  5 kb
 
QuantF:
Salut, Mladen !

Je pense avoir trouvé la raison de l'optimisation du temps d'augmentation.

Lisser les données au lieu de "iMAOnArray", Inclure MovingAverages.mqh.

Une seule exécution de l'indicateur dans le testeur de stratégie avec iMAOnArray :

2015.06.28 00:13:42.132 2015.06.15 23:59 EURUSD,H1 : 70897 tick events(71897 bars, 142742 bar states) traités en 0:02:40.525 (total time 0:02:40.556)28.06.2015 00:11:01.61315. 06. 23:59 TSIErgodic inputs : p2=7 ; p3=5 ; p4=3 ; p5=3 ;28. 06. 2015 00:11:01.587 15 .06. 23:59

Une seule exécution de l'indicateur dans le testeur de stratégie avec MovingAverages.mqh :

2015.06.28 00:14:10.625 2015.06.15 23:59 EURUSD,H1 : 70897 tick events(71897 bars, 142742 bar states) traités en 0:00:01.045 (total time 0:00:01.077)2015.06.28 00:14:09.577 2015.06.15 23:59 TSI_Nouvelles entrées : p2=7 ; p3=5 ; p4=3 ; p5=3 ; 2015.06.28 00:14:09.546 2015.06.15 23:59 Lorsque j'utilise un nouvel indicateur dans l'EA, aucun trade et la fenêtre de l'indicateur est vide.

Pendant l'optimisation montre que les exécutions avec des transactions :

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

Pouvez-vous corriger l'indicateur ?

tsi_new.mq4

Il n'y a rien à corriger dans l'indicateur

Le problème n'est pas dans l'indicateur - le problème est dans le backtester.

Dans tous les cas, l'utilisation de iMAOnArray() doit être significativement plus rapide que l'utilisation de ExponentialMAOnBuffer() - simplement parce que iMAOnArray() est exécuté au niveau du code machine alors que ExponentialMAOnBuffer() est exécuté au niveau du P-code. Le fait que iMAOnArray() ne soit pas plus rapide montre simplement que les nouvelles versions de mt4 ont de sérieux problèmes.

 
mladen:
Il n'y a rien à corriger dans l'indicateur

Le problème n'est pas dans l'indicateur - le problème est dans le backtester.

Dans tous les cas, l'utilisation de iMAOnArray() doit être significativement plus rapide que l'utilisation de ExponentialMAOnBuffer() - simplement parce que iMAOnArray() est exécuté au niveau du code machine alors que ExponentialMAOnBuffer() est exécuté au niveau du P-code. Le fait que iMAOnArray() ne soit pas plus rapide montre simplement que les nouvelles versions de mt4 ont de sérieux problèmes.

De nombreuses fois sur le forum ont écrit sur ce problème. Rien de bon. Pensez-vous que le bug ne sera pas corrigé ?

 
QuantF:
De nombreuses fois sur le forum a écrit sur ce problème. Rien de bon. Pensez-vous que le bogue ne sera pas corrigé ?

Il devrait être réparé

Si elle le sera - aucune idée. Backtester est de plus en plus mauvais avec chaque nouvelle version - je ne voudrais pas trop espérer.

 

Existe-t-il un manuel expliquant comment travailler avec des tableaux de la manière la plus efficace possible ?

 
apprentice coder:
Existe-t-il un manuel expliquant comment travailler avec des tableaux de la manière la plus efficace possible ?

Puisque mql utilise les tableaux de la même manière que C/C++, un bon début serait ici : Tableaux - Tutoriels C

Ce que vous devez éviter, c'est de définir les tableaux comme des séries. Le redimensionnement dans ce cas est une douleur dans le ... (extrêmement inefficace). (extrêmement inefficace) - la meilleure solution est d'utiliser des tableaux indexés de la même manière qu'en C/C++ : le premier élément (le plus ancien) est l'indice 0, et le dernier élément (le plus récent) est la taille du tableau - 1.

 

@Programmeurs et codeurs dans le forum s'il vous plaît pouvez-vous ajouter une option breakeven à l'expert advisor joint ci-dessous

Dossiers :
 
douceurdange:
Bonjour, est-il possible de mettre des flèches lorsque la ligne RSI rentre dans les bandes de bollinger de l'indicateur rsi+bollinger bands ?

J'ai mis l'alerte avancée cci nrp comme modèle de l'alerte que je voudrais avoir .

Merci d'avance

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

L'indicateur a été posté ici : https://www.mql5.com/en/forum/general

Raison: