Comment coder ? - page 343

 
techmac:
Les stop loss et take profit cachés sont risqués. Si l'EA ne fonctionne pas, rien ne peut fermer votre EA - et les EA peuvent être arrêtés par le courtier.

Cher techmac,

pouvez-vous expliquer davantage, pourquoi l'EA ne fonctionne pas, si les EA ne seront pas vérifiés et testés des dizaines de fois avant d'être appliqués sur le live en général ou sur VPS........... (rien ne peut fermer votre EA) n'a pas compris ce que vous voulez dire ? ??? ....(et les EAs peuvent être stoppés du côté du courtier)....pour quelles autres raisons le courtier peut l'arrêter quand l'EA est appliqué avec la permission/accord du courtier. si vous voulez dire à cause de certains paramètres cachés ?

salutations

 
mladen:
Oui. Quand le champ stop loss de l'ordre est fixé à une certaine valeur (alors cette ligne est affichée) et quand c'est la responsabilité du courtier d'exécuter le stop loss au prix désiré (contrairement au stop loss "doux" "caché", quand c'est votre EA qui doit fermer l'ordre).

Très chère MLADEN,

Merci, c'est si gentil de votre part, de comprendre exactement, comment cela fonctionne en réalité.

Est-ce qu'il y a une possibilité que notre EA essaie d'exécuter le TP/SL en cas de sl/tp caché à un certain point/niveau et que certaines activités cachées (codées dans le logiciel du courtier qui gère les activités de trading des clients, autorisent ou refusent le traitement ultérieur) du côté du courtier l'empêchent de le faire ?

lol, donc dans ce cas, qui est le plus fiable, efficace et responsable EA ou le courtier ... ....as pour les réputations des courtiers de nos jours ... soft wares et non humains sentiments de l'équipement sont plus sincères et fidèles. .

salutations

 
mntiwana:
Très chère MLADEN,

Merci, c'est si gentil de comprendre exactement comment cela fonctionne dans la réalité.

lol, donc dans ce cas, qui est le plus fiable, efficace et responsable EA ou le courtier ... .... comme pour la réputation des courtiers de nos jours ... les soft wares et les équipements non humains sont plus sincères et loyaux. .

Salutations

La chose est la suivante :

Dans le cas de SNB, si les gens utilisaient des stop loss"cachés" "mous", ils n'avaient aucune raison d'être remboursés pour quoi que ce soit (puisqu'ils n'ont pas rempli le champ stop loss, le courtier n'avait aucune obligation de faire quelque chose avec ces ordres). En revanche, ceux dont le champ "stop loss" était rempli avaient également des raisons de se plaindre - non pas qu'ils aient tout récupéré, mais au moins ils pouvaient faire quelque chose.

 
mladen:
La chose est la suivante : Dans le cas de SNB, si les gens utilisaient des stop loss "cachés" "mous", ils n'avaient aucune raison d'être remboursés pour quoi que ce soit (puisqu'ils n'ont pas rempli le champ stop loss, le courtier n'avait aucune obligation de faire quelque chose avec ces ordres). En revanche, ceux qui avaient rempli le champ "stop loss" avaient également des raisons de se plaindre - non pas qu'ils aient tout récupéré, mais ils pouvaient au moins faire quelque chose.

Très cher MLADEN,

merci encore pour votre regard d'expert sur les choses.... donc dans l'ensemble ....traders perte est confirmée, en raison de toute et seulement un lil bit raison quand le gain est douteux dans tous les cas.... les choses vont comme ça, maintenant a jours.it est habituel.

Une question patron, quand le prix du marché baisse ou monte si rapidement, comme la vitesse de la lumière.... y a-t-il une chance et une possibilité que tous nos casse-pertes (BE, SL et trailing stop) soient ignorés/rejetés/passés par .... ou.... ils fonctionnent efficacement par tous les moyens dans toutes les circonstances.

Salutations

 
mntiwana:
Très cher MLADEN,

merci encore pour votre regard d'expert sur les choses.... donc dans l'ensemble ....traders perte est confirmée, en raison de toute et seulement un lil bit raison quand le gain est douteux dans tous les cas.... les choses vont comme ça, maintenant a jours.it est habituel.

Une question patron, quand le prix du marché baisse ou monte si rapidement, à la vitesse de la lumière.... y a-t-il une chance et une possibilité que tous nos casse-pertes (BE, SL et trailing stop) soient ignorés/rejetés/passés par .... ou.... ils fonctionnent efficacement par tous les moyens en toutes circonstances.

Salutations

mntiwana

Cela ne devrait pas arriver, mais lisez bien le contrat que vous avez avec votre courtier. Les spécificités de ce genre de choses doivent être indiquées dans le contrat.

 

Quelle est la manière la plus simple de vérifier le croisement de deux valeurs ?

 
apprentice coder:
Quelle est la manière la plus simple de vérifier le croisement de deux valeurs ?

Cela dépend des valeurs que vous comparez. Pouvez-vous donner un exemple précis ?

 
mladen:
Cela dépend des valeurs que vous comparez. Pouvez-vous donner un exemple précis ?

Par exemple : croisement de deux moyennes

 

Bonjour, j'ai quelques problèmes avec mon EA et il semble que je sois dans une impasse. J'apprécierais que quelqu'un puisse m'aider à ce sujet. J'essaie de faire en sorte que mon EA ne déclenche qu'une seule transaction par jour. En fait, il s'agit d'un EA de rupture qui ouvrira une transaction une fois que la bougie aura dépassé un certain nombre de pips. Cependant, je n'arrive pas à faire en sorte que l'EA ne déclenche qu'une seule transaction par jour.

Actuellement, mon EA déclenchera une autre transaction sur la même bougie si les conditions sont à nouveau remplies après que ma transaction ait déjà atteint le TP ou le SL.

J'apprécierais si quelqu'un pouvait m'aider à ce sujet. Merci.

Voici ma programmation.

Salutations

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

extern double TakeProfit = 1000.0 ;

extern double Lots = 0.1 ;

extern double StopLoss = 980.0 ;

extern int Entry_Hour_1st = 21 ;

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

//| fonction d' initialisation de l'expert

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

int init()

{

//----

//----

return(0) ;

}

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

//| fonction de désinitialisation experte |

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

int deinit()

{

//----

//----

return(0) ;

}

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

//| fonction de démarrage expert |

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

int start()

{

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

//-- Déclenchement du commerce

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

int ticket, total ;

double TP_Value, SL_Value ;

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

if(total < 1)

{

if (Hour()==Entry_Hour_1st && ((High[0] - High[1]) > 0.00100) && ((High[1] - Low[1]) > 0.00100))

{

si ((Close[1] - Open[1]) > 0.00100)

{

TP_Value = (Close[1] - Open[1]) ; // valeur du corps long

SL_Value = (Low[1] - 0.0010) ; // toujours la même valeur pour un long

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,SL_Value,Ask+TP_Value, "My EA",200,0,Green) ;

retour(0) ;

}

si ((Open[1] - Close[1]) > 0.00100)

{

TP_Value = (Open[1] - Close[1]) ; // valeur du corps court

SL_Value = (Low[1] - 0.0010) ; // toujours la même chose pour le long

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,SL_Value,Ask+TP_Value, "My EA",200,0,Green) ;

retour(0) ;

}

si ((Open[1] - Close[1]) <= 0.00100)

{

TP_Value = (High[1] - Low[1]) ; // valeur de toute la bougie, y compris la tête et la queue de bougie

SL_Value = (Low[1] - 0.0010) ; // toujours la même pour un long terme

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,SL_Value,Ask+TP_Value, "My EA",200,0,Green) ;

retour(0) ;

}

}

if (Hour()==Entry_Hour_1st && ((Low[1] - Low[0]) > 0.00100) && ((High[1] - Low[1]) > 0.00100))

{

//-------------------------------------------------------//

//-------- if H7 long candle body more than 10pips --------///

//-------------------------------------------------------//

si ((Close[1] - Open[1]) > 0.00100)

{

TP_Value = (Close[1] - Open[1]) ; // valeur du corps long

SL_Value = (High[1] + 0.0010) ; // toujours la même chose pour le short

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,SL_Value,Bid-TP_Value, "My EA",200,0,Red) ;

retour(0) ;

}

si ((Open[1] - Close[1]) > 0.00100)

{

TP_Value = (Open[1] - Close[1]) ; // valeur du corps court

SL_Value = (High[1] + 0.0010) ; // toujours la même valeur pour le short

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,SL_Value,Bid-TP_Value, "My EA",200,0,Red) ;

retour(0) ;

}

si ((Open[1] - Close[1]) <= 0.00100)

{

TP_Value = (High[1] - Low[1]) ; // valeur de toute la bougie, y compris la tête et la queue de bougie

SL_Value = (High[1] + 0.0010) ; // toujours la même valeur pour le short

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,SL_Value,Bid-TP_Value, "My EA",200,0,Red) ;

retour(0) ;

}

}

}

return(0) ;

}

}

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

 
tkuan77:
Bonjour, j'ai quelques problèmes avec mon EA et je semble être dans une impasse. J'apprécierais que quelqu'un puisse m'aider à ce sujet. J'essaie de faire en sorte que mon EA ne déclenche qu'une seule transaction par jour. En fait, il s'agit d'un EA de rupture qui ouvrira une transaction une fois que la bougie aura dépassé un certain nombre de pips. Cependant, je n'arrive pas à faire en sorte que l'EA ne déclenche qu'une seule transaction par jour.

Actuellement, mon EA déclenche une autre transaction sur la même bougie si les conditions sont à nouveau réunies après que ma transaction ait déjà atteint le TP ou le SL.

J'apprécierais si quelqu'un pouvait m'aider à ce sujet. Merci.

Voici ma programmation.

Salutations

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

extern double TakeProfit = 1000.0 ;

extern double Lots = 0.1 ;

extern double StopLoss = 980.0 ;

extern int Entry_Hour_1st = 21 ;

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

//| fonction d'initialisation de l'expert

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

int init()

{

//----

//----

return(0) ;

}

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

//| fonction de désinitialisation experte |

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

int deinit()

{

//----

//----

return(0) ;

}

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

//| fonction de démarrage expert |

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

int start()

{

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

//-- Déclenchement du commerce

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

int ticket, total ;

double TP_Value, SL_Value ;

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

if(total < 1)

{

if (Hour()==Entry_Hour_1st && ((High[0] - High[1]) > 0.00100) && ((High[1] - Low[1]) > 0.00100))

{

si ((Close[1] - Open[1]) > 0.00100)

{

TP_Value = (Close[1] - Open[1]) ; // valeur du corps long

SL_Value = (Low[1] - 0.0010) ; // toujours la même valeur pour un long

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,SL_Value,Ask+TP_Value, "My EA",200,0,Green) ;

retour(0) ;

}

si ((Open[1] - Close[1]) > 0.00100)

{

TP_Value = (Open[1] - Close[1]) ; // valeur du corps court

SL_Value = (Low[1] - 0.0010) ; // toujours la même chose pour le long

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,SL_Value,Ask+TP_Value, "My EA",200,0,Green) ;

retour(0) ;

}

si ((Open[1] - Close[1]) <= 0.00100)

{

TP_Value = (High[1] - Low[1]) ; // valeur de la bougie entière, y compris la tête et la queue.

SL_Value = (Low[1] - 0.0010) ; // toujours la même pour un long terme

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,SL_Value,Ask+TP_Value, "My EA",200,0,Green) ;

retour(0) ;

}

}

if (Hour()==Entry_Hour_1st && ((Low[1] - Low[0]) > 0.00100) && ((High[1] - Low[1]) > 0.00100))

{

//-------------------------------------------------------//

//-------- if H7 long candle body more than 10pips --------///

//-------------------------------------------------------//

si ((Close[1] - Open[1]) > 0.00100)

{

TP_Value = (Close[1] - Open[1]) ; // valeur du corps long

SL_Value = (High[1] + 0.0010) ; // toujours la même chose pour le short

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,SL_Value,Bid-TP_Value, "My EA",200,0,Red) ;

retour(0) ;

}

si ((Open[1] - Close[1]) > 0.00100)

{

TP_Value = (Open[1] - Close[1]) ; // valeur du corps court

SL_Value = (High[1] + 0.0010) ; // toujours la même valeur pour le short

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,SL_Value,Bid-TP_Value, "My EA",200,0,Red) ;

retour(0) ;

}

si ((Open[1] - Close[1]) <= 0.00100)

{

TP_Value = (High[1] - Low[1]) ; // valeur de toute la bougie, y compris la tête et la queue de bougie

SL_Value = (High[1] + 0.0010) ; // toujours la même valeur pour le short

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,SL_Value,Bid-TP_Value, "My EA",200,0,Red) ;

retour(0) ;

}

}

}

return(0) ;

}

}

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

tkuan77

Vous devez trouver la dernière barre fermée et voir si le jour de la dernière barre fermée est le même que le jour actuel.

Vous pouvez utiliser quelque chose comme cette fonction pour obtenir l'heure de la dernière barre fermée :

datetime GetLastClosedOrderTime()

{

datetime CloseTime = 0;

for(int i=OrdersHistoryTotal()-1;i>=0;i--)

{

if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))

if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime)

CloseTime = OrderCloseTime();

}

return(CloseTime);

}

Et ensuite vous pouvez vérifier si la date est la même.