Comment coder ? - page 341

 

Quelqu'un peut-il avoir la gentillesse de m'aider à résoudre ce problème :

Il y a un problème avec le code que j'ai attaché sous ce message..., il donne toujours le signal au début de la formation d'une bougie !

Il donne toujours le signal au début de la formation d'une bougie, ce qui fait que j'entre dans le trade tardivement, surtout dans les cadres de temps plus élevés. Pouvez-vous nous aider à faire en sorte que l'iny ne donne l'alerte que lorsque le pont de prix actuel MA est à la hausse pour l'achat et à la baisse pour la vente, au lieu d'attendre le début d'une autre bougie.

Merci Fichiers attachés

Dossiers :
smacd.mq4  4 kb
 

Bonjour Mladen, savez-vous ce que je peux utiliser pour déclencher mes critères d'ouverture de trade ?

Ce que je veux savoir, c'est comment puis-je déclencher une transaction si la bougie ferme au-dessus ou au-dessous de la ligne de moyenne mobile de 10pips.

Le système déclenchera la transaction en fonction de la clôture au-dessus ou au-dessous de la ligne de moyenne mobile.

Je pense utiliser iClose, mais je n'ai aucune idée de la façon de l'implémenter. J'apprécierais votre aide.

Merci.

Ryan

 
tkuan77:
Bonjour Mladen, savez-vous ce que je peux utiliser pour déclencher mes critères d'ouverture de transaction ?

Ce que je veux savoir, c'est comment puis-je déclencher une transaction si la bougie ferme au-dessus ou au-dessous de la ligne de moyenne mobile de 10pips.

Le système déclenchera la transaction en fonction de la clôture au-dessus ou au-dessous de la ligne de moyenne mobile.

Je pense utiliser iClose, mais je n'ai aucune idée de la façon de l'implémenter. J'apprécierais votre aide.

Merci.

Ryan

Bonjour Mladen,

J'ai fait le code, il semble fonctionner, cependant, le commerce à certains moments ne se déclenche pas lorsque les critères sont remplis et je n'ai aucune idée sur la façon de procéder à partir de maintenant.

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

//---- paramètres d'entrée

extern double TakeProfit = 250.0 ;

extern double Lots = 0.1 ;

extern double StopLoss = 200.0 ;

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

//| fonction d' initialisation de l'expert

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

int init()

{

//----

//----

return(0) ;

}

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

//| fonction de désinitialisation experte |

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

int deinit()

{

//----

//----

return(0) ;

}

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

//| fonction de démarrage expert |

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

double pBid, pAsk ;

datetime newbar ;

int start()

{

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

if(newbar==Time[0])return(0) ;

sinon newbar=Time[0] ;

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

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

double Up_MA = iMA(NULL,0,10,0,MODE_LWMA,PRICE_HIGH,0) ;

double Dwn_MA = iMA(NULL,0,10,0,MODE_LWMA,PRICE_LOW,0) ;

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

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

//-- Trigger Trade

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

int ticket, total ;

double CD_Close = iClose(NULL,0,1) ;

total = OrdersTotal() ; // vérification du nombre total de transactions actuellement ouvertes

if(total < 2)

{

if (CD_Close >= Up_MA+50*Point)//Hour()==Entry_Hour_1st && Minute()==Entry_Minute_1st)

{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,Ask-StopLoss*Point,Ask+TakeProfit*Point,

"My EA",Entry_magicNo_1st,0,Green) ;

retour(0) ;

}

if (CD_Close <= Dwn_MA-50*Point)

{

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,Bid+StopLoss*Point,Bid-TakeProfit*Point,

"My EA",Entry_magicNo_1st,0,Red) ;

return(0) ;

}

return(0) ;

}

return(0) ;

}

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

 
tkuan77:
Bonjour Mladen,

J'ai créé le code, il semble fonctionner, cependant, la transaction ne se déclenche pas toujours lorsque les critères sont remplis et je n'ai aucune idée de la façon de procéder à partir de maintenant.

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

//---- paramètres d'entrée

extern double TakeProfit = 250.0 ;

extern double Lots = 0.1 ;

extern double StopLoss = 200.0 ;

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

//| fonction d'initialisation de l'expert

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

int init()

{

//----

//----

return(0) ;

}

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

//| fonction de désinitialisation experte |

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

int deinit()

{

//----

//----

return(0) ;

}

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

//| fonction de démarrage expert |

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

double pBid, pAsk ;

datetime newbar ;

int start()

{

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

if(newbar==Time[0])return(0) ;

sinon newbar=Time[0] ;

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

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

double Up_MA = iMA(NULL,0,10,0,MODE_LWMA,PRICE_HIGH,0) ;

double Dwn_MA = iMA(NULL,0,10,0,MODE_LWMA,PRICE_LOW,0) ;

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

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

//-- Trigger Trade

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

int ticket, total ;

double CD_Close = iClose(NULL,0,1) ;

total = OrdersTotal() ; // vérification du nombre total de transactions actuellement ouvertes

if(total < 2)

{

if (CD_Close >= Up_MA+50*Point)//Hour()==Entry_Hour_1st && Minute()==Entry_Minute_1st)

{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,Ask-StopLoss*Point,Ask+TakeProfit*Point,

"My EA",Entry_magicNo_1st,0,Green) ;

retour(0) ;

}

if (CD_Close <= Dwn_MA-50*Point)

{

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,Bid+StopLoss*Point,Bid-TakeProfit*Point,

"My EA",Entry_magicNo_1st,0,Red) ;

return(0) ;

}

return(0) ;

}

return(0) ;

}

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

Pouvez-vous montrer des cas où il aurait dû déclencher une transaction et où il ne l'a pas fait ?

 

Bonjour Mladen,

Veuillez trouver ci-joint la capture d'écran.

Salutations

Ryan

Dossiers :
untitled.jpg  42 kb
 

Bonjour Mladen, est-ce qu'il pourrait y avoir une forme d'erreur dans certaines lignes qui provoque cette erreur ?

Salutations

 
tkuan77:
Bonjour Mladen, est-ce qu'il pourrait s'agir d'une erreur dans certaines lignes qui provoque cette erreur ? Salutations

tkuan77

Dans un premier temps, vérifiez l'onglet journal et experts du terminal pour voir si un message d'erreur y est écrit.

 
mladen:
tkuan77 Dans un premier temps, vérifiez l'onglet journal et experts du terminal pour voir si un message d'erreur y est écrit.

Bonjour mladen, merci, le problème a déjà été résolu.

Cependant, ma prochaine question est la suivante : comment puis-je trier les transactions en conséquence ?

Par exemple :

Nombre total de transactions à un moment donné = 2

1 transaction pour chaque ensemble de critères. Comment puis-je m'assurer que le système ne déclenche pas plus d'une transaction pour chaque ensemble particulier si les critères sont remplis plus d'une fois ?

Voici mes codes pour référence :

total = OrdersTotal() ; // vérifier le nombre total de transactions actuellement ouvertes

if(total < 2)

{

if (Hour()==Entry_Hour_1st || Hour()==Entry_Hour_2nd)

{

//S'il n'y a pas de transaction actuellement ouverte sous ce critère, vérifiez si les conditions sont remplies, si oui, déclenchez une transaction, si non, ne déclenchez pas de transaction.

}

if (Hour()==Entry_Hour_3rd || Hour()==Entry_Hour_4th)

{

//Si aucune transaction n'est actuellement ouverte sous ce critère, vérifiez si les conditions sont remplies, si oui, déclenchez une transaction, si non, ne déclenchez pas de transaction.

}

}

Merci de vos conseils. Merci.

Salutations

 

Comment les ordres des courtiers ECN doivent-ils être traités ?

 
apprentice coder:
Comment les ordres des courtiers ECN doivent-ils être traités exactement ?

apprenti codeur

La seule différence est que sur un courtier ECN, vous ouvrez d'abord un ordre avec des champs sl et tp nuls, puis vous modifiez l'ordre (si nécessaire) pour définir sl et tp, alors que sur un courtier "normal", vous pouvez placer sl et tp en même temps que l'ouverture de l'ordre. Tout le reste est exactement le même