Comment coder ? - page 280

 

Il est certain que des problèmes peuvent survenir sur des comptes réels qui n'apparaissent pas dans la démo ou le testeur de stratégie, mais généralement ils ne sont pas récurrents et sont peu fréquents. Je n'ai jamais vu ou entendu parler de celui-ci.

D'après votre explication, je ne peux pas déterminer combien de transactions sont ouvertes lorsque le problème se produit. Si l'erreur se produit alors qu'aucune transaction n'est ouverte, c'est un mystère. Si elle se produit avec, disons, 5 positions ouvertes, cela a probablement quelque chose à voir avec le problème.

ERR_TRADE_DISABLED 133 La transaction est désactivée. Toutes les tentatives de transaction doivent être arrêtées.

La documentation de cette erreur semble indiquer que quelque chose ne va pas dans la façon dont l'EA place la transaction. Mais comme les deux EA utilisent la même logique OrderSend(), je me demande si cela n'a pas à voir avec le fait que vous avez deux EA en cours d'exécution. Normalement, tout problème de contention provoque une erreur "Trade Context Busy" (146) et tout problème de compte provoque une erreur "Insufficient Funds" (134). Cela vaudrait la peine d'essayer de n'exécuter qu'un seul EA à la fois et de voir si cela fait une différence.

 

Avasys

Cela peut paraître idiot, mais vous avez bien compilé l'EA, non ?

Après la compilation, il devrait y avoir un fichier ex4 dans le dossier Experts.

 
michaelB:
Cela peut paraître idiot, mais vous avez bien compilé l'EA, non ? Après la compilation, il devrait y avoir un fichier ex4 dans le dossier Experts.

Voici ce que j'ai besoin de savoir également

J'ai collé le fichier mq4 dans le dossier experts, mais lorsque j'ai redémarré MT4, il n'a pas créé le fichier ex4 dans le dossier experts,

J'ai donc besoin de vérifier le code s'il y a une erreur.

 

Comment changer la couleur de l'IndicatorShortName ?

Chers Messieurs,

Comment puis-je ajouter dans le code ma propre couleur pour cette ligne

IndicatorShortName(GetTimeFrameStr() + " MACD ("+FastEma+", "+SlowEma+", "+SignalSMMA+")") ;

afin de changer la couleur de la petite information que j'ai dans une fenêtre séparée de l'indicateur dans le coin supérieur gauche ?

Pucio

 

QUELQU'UN PEUT ME DIRE CE QUI NE VA PAS AVEC CE CODE ?

Y A-T-IL UNE ERREUR, PARCE QU'IL NE CRÉE PAS DE FICHIER EX4 LORSQUE JE COLLE LE FICHIER MQ4 DANS LE DOSSIER DES EXPERTS.

//+------------------------------------------------------------------+

//| simple EA.mq4 |

//| Copyright © 2011, luktom.biz |

//| www.luktom.biz/en |

//+------------------------------------------------------------------+

#property copyright "Copyright © 2011, luktom.biz."

#property link "http://www.luktom.biz"

extern double stopLoss = 300.0 ;

extern double takeProfit = 500.0 ;

Chaîne externe Begin = "2 : 00" ;

chaîne externe End = "10 : 00" ;

double distance externe = 60 ;

bool isECN = true ;

bool cond = false ;

bool cond2 = false ;

double low ;

double high ;

extern double lots = 0.1 ;

int magic = 1232344524285020 ;

int slippage = 1 ;

string comment = "" ;

int ticket ;

int short = 0 ;

long int = 0 ;

//+------------------------------------------------------------------+

//| fonction d'initialisation de l'expert

//+------------------------------------------------------------------+

int init()

{

//----

//----

(0) retour ;

}

//+------------------------------------------------------------------+

//| fonction de désinitialisation experte |

//+------------------------------------------------------------------+

int deinit ()

{

//----

Print (countOrders (magic, OP_BUY)) ;

//----

(0) retour ;

}

//+------------------------------------------------------------------+

//| fonction de démarrage expert |

//+------------------------------------------------------------------+

int start()

{

Imprimez (AccountCurrency ()) ;

//----

if (isGoodTime (Begin, End))

{

short = 0 ;

long = 0 ;

si ( ! cond)

{

low = Bid ;

haut = Demande ;

}

cond = true ;

si (Bid < low) low = Bid ;

si (Ask > high) high = Ask ;

}

si ((high-low) * 1000 > distance)

{

cond2 = true ;

}

if ( ! isGoodTime (Begin, End))

{

cond = false ;

}

if ( ! isGoodTime (Begin, End) & & cond2)

{

si (countOrders (magic, OP_SELL) == 0)

{

si (Bid " = (CRL-0.0005) & & short == 0)

{

court + + ;

si (isECN == false)

{

OrderSend (Symbole (), OP_SELL, lots, Bid, slippage, sltpValue (Ask + stopLoss * Point, stopLoss), sltpValue (Ask-takeProfit * Point, takeProfit), commentaire, magic) ;

}

if (isECN)

{

ticket = OrderSend (Symbole (), OP_SELL, lots, Bid, slippage, 0,0, commentaire, magic) ;

OrderSelect (ticket, SELECT_BY_TICKET) ;

OrderModify (ticket, OrderOpenPrice (), sltpValue (Ask + stopLoss * Point, stopLoss), sltpValue (Bid-takeProfit * Point, takeProfit), 0) ;

}

}

}

si (countOrders (magic, OP_BUY) == 0)

{

if ((Ask-high) > = 0.005 & & long = = 0)

{

long + + ;

si (isECN == false)

{

OrderSend (Symbol (), OP_BUY, lots, Ask, slippage, sltpValue (Ask-stopLoss * Point, stopLoss), sltpValue (Bid + takeProfit * Point, takeProfit), comment, magic) ;

}

if (isECN)

{

ticket = OrderSend (Symbole (), OP_BUY, lots, Ask, slippage, 0,0, commentaire, magic) ;

OrderSelect (ticket, SELECT_BY_TICKET) ;

OrderModify (ticket, OrderOpenPrice (), sltpValue (Bid-stopLoss * Point, stopLoss), sltpValue (Ask + takeProfit * Point, takeProfit), 0) ;

}

}

}

}

//----

(0) retour ;

}

//+------------------------------------------------------------------+

bool isGoodTime (string, string, Begin, End) {

if (TimeCurrent () > Localtime (Begin) & & TimeCurrent < Localtime () (End)) {

return (true) ;

}

return (false) ;

}

int countOrders (int, int oMagic oType) {

int count = 0 ;

for (int i = 0 ; i < OrdersTotal () ; i ++) {

if (OrderSelect (i, SELECT_BY_POS)) {

if (OrderMagicNumber () == oMagic) {

if (OrderSymbol () = the = Symbol ()) {

if (OrderType () == oType || oType < 0) {

compte ++ ;

}

}

}

}

}

return (count) ;

}

double sltpValue (double, int w1 w2)

{

si (w2 = = 0)

return (0) ;

return (NormalizeDouble (w1, Digits)) ;

}

 
Avasys:
QUELQU'UN PEUT ME DIRE CE QUI NE VA PAS AVEC CE CODE ?

IL N'Y A PAS D'ERREUR, CAR IL NE CRÉE PAS DE FICHIER EX4 LORSQUE JE COLLE LE FICHIER MQ4 DANS LE DOSSIER EXPERTS.

Pouvez-vous nous dire où vous avez eu cette ea ?

Il semble que l'application soit mélangée. Par exemple à la ligne 129 où vous avez la définition de la fonction isGoodTime nous voyons :

bool isGoodTime (string, string, Begin, End)

cela devrait être :

bool isGoodTime (string Begin, string End)

Il y a beaucoup d'erreurs comme celle-là dans ea. On dirait que le code est incomplet, ou protégé par un changement de code comme celui-ci et cela rend cette source inutile.

 
Kalenzo:
Pouvez-vous nous dire où vous avez eu cette ea ?

Il semble que l'ea soit mélangée. Par exemple à la ligne 129 où vous avez la définition de la fonction isGoodTime nous voyons :

bool isGoodTime (string, string, Begin, End)

cela devrait être :

bool isGoodTime (string Begin, string End)

Il y a beaucoup d'erreurs comme ça dans l'ea. Il semble que le code soit incomplet, ou protégé par un changement de code comme celui-ci, ce qui rend cette source inutile.

[lang=pl]Je suis un auteur. Je joins le fichier mq4 pour Avasys. Je n'ai pas changé le code de la fonction isGoodTime. Dans mon terminal, elle fonctionne. Avasys, pourquoi êtes-vous si nerveux ?

Si vous avez un problème, contactez-moi au lieu d'en parler sur le forum[/lang].

Dossiers :
 
g.pociejewski:
[lang=pl]Je suis un auteur. Je joins le fichier mq4 pour Avasys. Je ne sais pas qui a changé le code de la fonction isGoodTime. Dans mon terminal, elle fonctionne. Avasys, pourquoi êtes-vous si nerveux ? Si vous avez un problème contactez moi au lieu d'en parler sur le forum[/lang].

Je ne suis pas nerveux, je ne vous ai pas trouvé sur le forum.

Cet EA fonctionne bien, mais il fait à nouveau plusieurs transactions par jour. Donc mon souci était de demander à l'EA de ne faire qu'une seule transaction par jour.

 
CodeMeister:
Il est certain que des problèmes peuvent survenir sur des comptes réels qui n'apparaissent pas dans la démo ou le testeur de stratégie, mais ils ne sont généralement pas récurrents et sont peu fréquents. Je n'ai jamais vu ou entendu parler de ce problème.

À partir de votre explication, je ne peux pas déterminer combien de transactions sont ouvertes lorsque le problème se produit. Si l'erreur se produit alors qu'aucune transaction n'est ouverte, c'est un mystère. Si elle se produit avec, disons, 5 positions ouvertes, cela a probablement quelque chose à voir avec le problème.

ERR_TRADE_DISABLED 133 La transaction est désactivée. Toutes les tentatives de transaction doivent être arrêtées.

La documentation de cette erreur semble indiquer que quelque chose ne va pas dans la façon dont l'EA place la transaction. Mais comme les deux EA utilisent la même logique OrderSend(), je me demande si cela n'a pas quelque chose à voir avec le fait que vous avez deux EA en cours d'exécution. Normalement, tout problème de contention entraîne une erreur "Trade Context Busy" (146) et tout problème de compte entraîne une erreur "Insufficient Funds" (134). Cela vaudrait la peine d'essayer de n'exécuter qu'un seul EA à la fois et de voir si cela fait une différence.

L'EA qui a des problèmes n'ouvre qu'une seule transaction à la fois. Aucune autre transaction n'a été ouverte lorsque les erreurs se sont produites. Je vais essayer d'exécuter un seul EA et voir si cela aide. Merci pour vos conseils.

 

Comment lire une étiquette MT4

Bonjour,

J'ai modifié un indicateur et j'ai créé un objet OBJ_LABEL avec des valeurs pour que mon EA puisse prendre les valeurs dans l'OBJ_LABEL. Ces valeurs sont des points de prix et je ne peux pas créer un autre tampon dans l'indicateur pour les contenir, donc je les ai simplement placés dans ces étiquettes. Cela semble être une bonne solution, MAIS, je n'arrive pas à comprendre comment LIRE une étiquette dans MT4 dans mon EA ! J'utilise la fonction GETOBJECT, mais elle ne renvoie que certaines propriétés et la valeur d'une étiquette ou d'un objet texte n'en fait pas partie !!!

Quelqu'un peut-il m'aider ?

Merci !