Comment coder ? - page 24

 

merci

Merci. Vous êtes le goût de la vie.

 
BC Brett:
J'aimerais avoir la réponse.

Je viens de finir d'écrire mon premier EA et j'ai essayé de le tester dans Strategy Tester.

J'obtenais des erreurs dans le journal ST, j'ai donc essayé d'utiliser la fonction d'impression dans mon EA pour déboguer les problèmes. J'ai résolu quelques bogues jusqu'à présent de cette façon, mais c'est un processus lent.

Dans le métaéditeur, sous le menu d'édition, il y a "toggle breakpoint" ... pour utiliser le point d'arrêt ?

 

Juste pour information :

- fil de discussion sur la fonction e-mail (comment coder) https://www.mql5.com/en/forum/174336

- bon article avec quelques outils https://www.mql5.com/en/forum/176053

 

Code pour les TP et SL invisibles des courtiers

Bonjour à tous,

Avec la paranoïa des courtiers qui font la chasse aux SLs et qui élargissent les spreads pour éviter les TPs, je cherche des infos sur comment cacher les TP et SL aux courtiers.

Je sais qu'en soumettant un TP et un SL au courtier, dans le cas où vous êtes déconnecté, votre ordre est "sûr". En conservant l'information à distance, il y a un risque de pertes énormes en cas de perte de connexion.

Est-ce que quelqu'un a un EA ou un exemple de code sur la façon de garder le TP et le SL cachés du courtier ?

Merci !

Mike

 

Cet EA l'a

Bonjour MikeP

Je pense que cette EA contient ce que vous recherchez. S'il vous plaît, envoyez-moi un message si c'est ce que vous recherchez, j'ai une autre idée à ce sujet.

Dossiers :
jlpigrid.mq4  8 kb
 

Aide pour simplifier un morceau de code

Bonjour à tous !

Je ne suis pas un codeur pro (voir ci-dessous !). Ce code fonctionne bien mais est-il possible de le simplifier ? Avec un cycle while/for par exemple ? Je souhaite le code le plus léger possible ! Celui-ci est très "lourd" et je reçois l'erreur "internal stack overflow-simplify the program, please" !!!

C'est un indicateur dans une fenêtre séparée.

Dans l'exemple de code, il affiche la hausse ou la baisse de la MA pour le multi TF.

Merci pour votre aide.

int start()

{

string MAfast_Trend_1, MAfast_Trend_5, MAfast_Trend_15;

double x;

color color_indic;

// period M1

double FastMA_1_1 = iMA(NULL,PERIOD_M1,FastMAPeriod,0,MAMethod,MAPrice,MAShift);

double FastMA_2_1 = iMA(NULL,PERIOD_M1,FastMAPeriod,0,MAMethod,MAPrice,MAShift+1);

if ((FastMA_1_1 > FastMA_2_1)) { MAfast_Trend_1 = "UP"; x = 256; color_indic = Lime; }

if ((FastMA_1_1 < FastMA_2_1)) { MAfast_Trend_1 = "DOWN"; x = 246; color_indic = Red; }

ObjectCreate("Trend_MAfast_1", OBJ_LABEL, WindowFind("xxxxxxx"), 0, 0);

ObjectSetText("Trend_MAfast_1",MAfast_Trend_1,7, "Verdana", color_indic);

ObjectSet("Trend_MAfast_1", OBJPROP_CORNER, 0);

ObjectSet("Trend_MAfast_1", OBJPROP_XDISTANCE, x);

ObjectSet("Trend_MAfast_1", OBJPROP_YDISTANCE, 22);

// period M5

double FastMA_1_5 = iMA(NULL,PERIOD_M5,FastMAPeriod,0,MAMethod,MAPrice,MAShift);

double FastMA_2_5 = iMA(NULL,PERIOD_M5,FastMAPeriod,0,MAMethod,MAPrice,MAShift+1);

if ((FastMA_1_5 > FastMA_2_5)) { MAfast_Trend_5 = "UP"; x = 256; color_indic = Lime; }

if ((FastMA_1_5 < FastMA_2_5)) { MAfast_Trend_5 = "DOWN"; x = 246; color_indic = Red; }

ObjectCreate("Trend_MAfast_5", OBJ_LABEL, WindowFind("xxxxxxx"), 0, 0);

ObjectSetText("Trend_MAfast_5",MAfast_Trend_5,7, "Verdana", color_indic);

ObjectSet("Trend_MAfast_5", OBJPROP_CORNER, 0);

ObjectSet("Trend_MAfast_5", OBJPROP_XDISTANCE, x);

ObjectSet("Trend_MAfast_5", OBJPROP_YDISTANCE, 37);

// period M15

double FastMA_1_15 = iMA(NULL,PERIOD_M15,FastMAPeriod,0,MAMethod,MAPrice,MAShift);

double FastMA_2_15 = iMA(NULL,PERIOD_M15,FastMAPeriod,0,MAMethod,MAPrice,MAShift+1);

if ((FastMA_1_15 > FastMA_2_15)) { MAfast_Trend_15 = "UP"; x = 256; color_indic = Lime; }

if ((FastMA_1_15 < FastMA_2_15)) { MAfast_Trend_15 = "DOWN"; x = 246; color_indic = Red; }

ObjectCreate("Trend_MAfast_15", OBJ_LABEL, WindowFind("xxxxxxx"), 0, 0);

ObjectSetText("Trend_MAfast_15",MAfast_Trend_15,7, "Verdana", color_indic);

ObjectSet("Trend_MAfast_15", OBJPROP_CORNER, 0);

ObjectSet("Trend_MAfast_15", OBJPROP_XDISTANCE, x);

ObjectSet("Trend_MAfast_15", OBJPROP_YDISTANCE, 52);

etc ...............

return(0);

}
 

Aide sur le code ? Une seule transaction par bougie

J'essaie de limiter mon ea à une seule transaction par bougie. Je trouve que dans les pics de prix contre la tendance, j'obtiens plusieurs trades perdants car les indicateurs sont à la traîne.

J'ai vu le code avant mais je ne le trouve pas. Si quelqu'un peut m'indiquer une application qui a le bon code ou me montrer comment le faire.

C'est fait dans l'ea UniversalMa mais ce n'est pas très clair pour moi.

Toute aide serait appréciée.

 

Il est ici https://www.mql5.com/en/forum/173026

Je rassemble toutes les fonctions sur ce fil https://www.mql5.com/en/forum/174329

 

Merci encore

Bonjour NewDigital, comme toujours merci pour votre réponse rapide.

salutations

 

Voici quelques moyens de simplifier votre code :

REMPLACER LES VALEURS INDIVIDUELLES DES INDICATEURS PAR LA FONCTION

double FastMA_1_5 = iMA(NULL,PERIOD_M5,FastMAPeriod,0,MAMethod,MAPrice,MAShift) ;

double FastMA_1_15 = iMA(NULL,PERIOD_M15,FastMAPeriod,0,MAMethod,MAPrice,MAShift) ;

.... se transforme en ceci avec une fonction ajoutée

maVal(5,1) ;

maVal(15,1) ;

LA FONCTION QU'ILS APPELLENT EST CI-DESSOUS :

double maVal(int tf, int shift)

{

return ( iMA(NULL,tf,FastMAPeriod,0,MAMethod,MAPrice,shift) ) ;

}

* * * * * * * * * * * * * * * * * * * * * * * *

Remplacez également les autres variables individuelles que vous avez, comme les variables de type chaîne, par un tableau de chaînes. Les tableaux fonctionnent très bien dans les boucles et simplifient votre code car vous avez moins de déclarations à faire.

La chaîne MAfast_Trend_1, MAfast_Trend_5, MAfast_Trend_15 ;

.... devient ce.....

string MAfast_Trend [3] ;