Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 684

 
Sprut112:
Comment expliquer à l'Expert Advisor (standard ma) qu'il faut acheter (vendre) uniquement au moment du croisement des moyennes, et non en général, lorsque ma_1>ma_2. Et il achète constamment, il ne peut pas s'arrêter.

Il faut se souvenir dans la variable que le croisement a déjà eu lieu, et lorsqu'il retraverse, réécrire dans la variable qu'il a déjà traversé à nouveau. C'est la variante №1.

Regardez l'historique des transactions, si le dernier Achat, puis attendez le signal de Vente, et ensuite alternez comme ceci, cette façon est plus fiable

 
Vitaly Muzichenko:

Il faut se souvenir dans la variable que le croisement a déjà eu lieu, et lorsqu'il retraverse, réécrire dans la variable qu'il a déjà traversé à nouveau. C'est la variante №1.

Regardez l'historique des transactions, si le dernier Achat, puis attendez le signal de Vente, et ensuite alternez en cercle, cette façon est plus fiable.

Quelque chose de très sage, ne pouvez-vous pas ajouter quelque chose à la condition ?
 
Sprut112:
N'est-il pas compliqué d'ajouter quelque chose à la condition elle-même ?

Quel est le problème ? Il n'est pas difficile de travailler avec l'historique, et il est encore plus facile d'écrire l'intersection dans une variable.

 
Vitaly Muzichenko:

Il faut se souvenir dans la variable que le croisement a déjà eu lieu, et lorsqu'il retraverse, réécrire dans la variable qu'il a déjà traversé à nouveau. C'est la variante №1.

Regardez l'historique des transactions, si le dernier Achat, nous allons attendre le signal de Vente, et ensuite alterner comme ceci, cette façon est plus fiable.

Si nous parlons du dernier franchissement de la MA, le trading le long de la MA est généralement plus facile :

1. contrôler la nouvelle barre

2. Au nouveau bar, nous vérifions l'état :

ma_1[1] >ma_2[1] && ma_1[2]<ma_2[2] - croisement top-down

ou ma_1[1]<ma_2[1] && ma_1[2]>ma_2[2] - croisement top-down

si le choix de la MA croisée par le haut ne fait pas de différence, les deux conditions sont utilisées :

if((ma_1[1]>ma_2[1]  && ma_1[2]<ma_2[2]) || (ma_1[1]<ma_2[1]  && ma_1[2]>ma_2[2])) // пересечение!!!
 
Vitaly Muzichenko:

Quel est le problème ? Il n'est pas difficile de travailler avec l'historique, et il est encore plus facile d'écrire l'intersection dans une variable.

Très bien, merci.
 
Igor Makanu:

Lorsqu'il s'agit du dernier franchissement de la MA, il est généralement plus facile de négocier sur la MA :

1. surveiller le nouveau bar

2. au nouveau bar, nous vérifions l'état :

ma_1[1] >ma_2[1] && ma_1[2]<ma_2[2] - croisement top-down

ou ma_1[1]<ma_2[1] && ma_1[2]>ma_2[2] - croisement top-down

si le choix de la MA traversée par le haut ne fait pas de différence, les deux conditions sont utilisées :

Eh bien, ça a toujours du sens.
 

Mes amis, pourriez-vous me dire pourquoi, lors de l'optimisation d'une EA, le dossier \Terminal\tester\logs accumule d'énormes fichiers journaux dont le contenu est le suivant :

2 00:00:01.796 2014.04.01 10:57:30 Testeur : #102 supprimé pour cause d'expiration

2 00:00:02.221 2014.04.24 08:59:59 Testeur : #103 supprimé pour cause d'e xpiration

2 00:00:02.326 2014.04.30 12:57:30 Testeur : #104 supprimé pour cause d'expiration

2 00:00:02.852 2014.05.29 10:20:00 Testeur : ordre #105, vendre 0.10 EURUSD est ouvert à 1.35871

0 00:00:02.852 2014.05.29 10:22:30 Testeur : stop loss #105 à 1.35910 (1.35876 / 1.35926)

2 00:00:02.941 2014.06.04 01:20:00 Testeur : ordre #106, acheter 0.10 EURUSD est ouvert à 1.36306

0 00:00:02.941 2014.06.04 01:22:30 Tester : stop loss #106 à 1.36259 (1.36253 / 1.36303)

2 00:00:03.133 2014.06.13 14:03:20 Testeur : ordre #107, vendre 0.10 EURUSD est ouvert à 1.35382

Et certains de mes EAs écrivent de tels journaux et d'autres non. Je ne peux pas m'en sortir.

 


Comment cela est-il possible ?

 
Comment puis-je rendre immuables les variables d'entrée dans le code de l'EA ? Par exemple p, j'utilise un EA sur un Macd et je ne veux pas que ses variables soient affichées dans la fenêtre des paramètres
 
Sprut112:
Comment rendre les variables d'entrée non modifiables dans le code EA ? Par exemple p, j'utilise un EA sur Macd et je ne veux pas que ses variables soient affichées dans la fenêtre des paramètres

lire l'aide en appuyant sur F1 dans le code source sur "commandes" en entrée ou en externe ;)