Pourriez-vous me dire comment ajouter la fermeture de toutes les positions et la suppression de tous les ordres à la fin de la semaine de négociation ?
Pourriez-vous me dire comment ajouter la fermeture de toutes les positions et la suppression de tous les ordres à la fin de la semaine de négociation ?
Merci !
Écrivez un tel script, puis lancez-le sur le graphique lorsque vous voulez fermer et tout supprimer. C'est tout...
Nous devons ajouter un code à l'EA qui fermera tous les ordres et toutes les positions à la fin de la semaine de négociation.
Pourriez-vous écrire ce code ?
Je peux le faire. Pas de problème. Avez-vous déjà fait quelque chose vous-même ? Ce fil de discussion ne vise pas à obtenir des trucs gratuits, mais à aider les personnes qui essaient de coder pour elles-mêmes.
artmedia70: Je peux le faire. Pas de problème. Avez-vous déjà fait quelque chose vous-même ? Ce fil de discussion ne vise pas à obtenir quelque chose de prêt gratuitement, mais à aider ceux qui essaient de coder par eux-mêmes.
La fonction déterminant la dernière position fermée de la butée est de type bool, alors que vous essayez de lui retourner le type double. En conséquence, il renvoie soit 0 soit 1.
Je vous ai écrit que vous deviez y ajouter le passage d'une variable par référence :
Maintenant, vérifiez le dernier Buy, par exemple :
La fonction déterminant la dernière position fermée de la butée est de type bool, alors que vous essayez de lui retourner le type double. En conséquence, il renvoie soit 0 soit 1.
Je vous ai dit que vous deviez y ajouter le passage d'une variable par référence :
Maintenant, vérifiez le dernier Buy, par exemple :
Comme ça...
J'ai fait tout ce que vous avez dit. Tout a été compilé...... mais la fonction ne fonctionne pas lors du test du conseiller..... toutes les positions le conseiller ouvre 0.1 lot.
doubleMagic, Lot;int start()
{
double Price=iOpen (Symbol (),0,0);
int last_order_bar = 0;
int ot = OrdersTotal();
if (ot>0) //если есть ордера в рынке
{
if (OrderSelect (ot-1,SELECT_BY_POS))
if (OrderType ()==OP_BUY || OrderType ()==OP_SELL )
last_order_bar = iBarShift (Symbol (),0,OrderOpenTime ());
}
int last_hist_order_bar = 0;
int oht = OrdersHistoryTotal();
if (oht>0)
{
if (OrderSelect (oht-1,SELECT_BY_POS, MODE_HISTORY))
if (OrderType ()==OP_BUY || OrderType ()==OP_SELL)
last_hist_order_bar = iBarShift (Symbol (),0,OrderOpenTime ());
}
if (ot==0)
if (Bid ==Price)
//=============================================================== if(((Open[1]-Close[1])>100*Point)&&((Open[1]-Close[1])<120*Point))
if(((High[1]-Open[1])>40*Point)&&((High[1]-Open[1])<60*Point))
if(((Close[1]-Low[1])>40*Point)&&((Close[1]-Low[1])<60*Point))
//============================================================
// задавать минимальное значение лота я не стал,мне кажется для тестера это не обязательноif (isCloseLastPosByStop(Symbol(), OP_BUY, Magic, Lot))
{Lot=Lot*2;OrderSend(Symbol(),OP_SELL,Lot,Bid,1,Ask+1500*Point,Ask-300*Point,"jfh",123 );
}
else
{
Lot=0.1;
OrderSend(Symbol(),OP_SELL,1,Bid,Lot,Ask+1500*Point,Ask-300*Point,"jfh",123 );
}
return(0);
}
//============================================================ bool isCloseLastPosByStop(string sy, int op, int mn, double ll) //у Вас перед названием формального параметра 11 стоял знак &- я его убрал.
{
double pt;
datetime t; //у вас тип переменной t был int - я сделал datetimeint dg, i, j=-1, k=OrdersHistoryTotal()-1;
for (i=k; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderMagicNumber()!=mn) continue; // если магик не тот, переходим к следующемуif (OrderSymbol()!=sy) continue; // если символ не тот, переходим к следующемуif (OrderType()!=op) continue; // если тип не тот, переходим к следующемуif (t<OrderCloseTime())
{
t=OrderCloseTime();
j=i;
}
}
}
if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY))
{
dg=MarketInfo(OrderSymbol(), MODE_DIGITS); // количество знаков в цене символа ордера
pt=MarketInfo(OrderSymbol(), MODE_POINT); // размер пункта инструмента в валюте котировки ордераif (MathAbs(OrderClosePrice()-OrderStopLoss())< 0.5*pt) // Если закрыт по стопу
{
ll=OrderLots(); // записываем количество лотов в ордере, закрытом по стопуreturn(true); // возвращаем истину
}
}
return(False); // возвращаем ложь (позиции нету, либо не по стопу)
}
S'il vous plaît, dites-moi quelle est mon erreur.
Je ne comprends pas ce point - comme vous l'avez correctement remarqué, la fonction renvoie la valeur de type bool, mais dans l'appel de fonction, dans lequel la fonction doit mettre la valeur de type bool.
Vous avez proposé de spécifier d'autres types de valeurs.
J'ai fait tout ce que vous avez dit. Tout se compile...... mais la fonction ne fonctionne pas quand on teste l'EA..... toutes les positions l'EA ouvre 0.1 lots.
Pourriez-vous me dire quelle est mon erreur ?
Je ne comprends pas ce moment - comme vous l'avez correctement remarqué, la fonction renvoie une valeur de type bool, mais dans l'appel de la fonction, dans lequel la fonction devrait mettre une valeur de type bool
Suggérez-vous de spécifier d'autres types de valeurs ?
Merci.
bool isCloseLastPosByStop(string sy, int op, int mn, double ll) //у Вас перед названием формального параметра 11 стоял знак &- я его убрал.
Pourquoi l'avez-vous retiré ? Si tu l'avais laissé, tout aurait fonctionné.
Bonsoir.
Pourriez-vous me dire comment ajouter la fermeture de toutes les positions et la suppression de tous les ordres à la fin de la semaine de négociation ?
Merci !
Bonsoir.
Pourriez-vous me dire comment ajouter la fermeture de toutes les positions et la suppression de tous les ordres à la fin de la semaine de négociation ?
Merci !
Écrivez un tel script, puis lancez-le sur le graphique lorsque vous voulez fermer et tout supprimer. C'est tout...
Vous êtes les bienvenus !
Écrivez un tel script, puis lancez-le sur le graphique lorsque vous voulez fermer et tout supprimer. Le fait est que...
S'il vous plaît !
Merci :) Clarifier la demande.
Nous devons ajouter un code à l'EA qui fermera tous les ordres et toutes les positions à la fin de la semaine de négociation.
Pourriez-vous écrire ce code ?
Merci :) Clarifier la demande.
Nous devons ajouter un code à l'EA qui fermera tous les ordres et toutes les positions à la fin de la semaine de négociation.
Pourriez-vous écrire ce code ?
Je peux le faire. Pas de problème. Avez-vous déjà fait quelque chose vous-même ? Ce fil de discussion ne vise pas à obtenir quelque chose de prêt gratuitement, mais à aider ceux qui essaient de coder par eux-mêmes.
Je l'ai vérifié sur https://book.mql4.com/ru/trading/orderclose.
J'ai cherché sur google, sur le forum. Je n'en ai pas trouvé. Peut-être que j'écris mal la requête.
J'ai pensé demander dans le fil des débutants.
Comment dois-je prescrire ?
Lorsque vous exécutez le script :
Une fenêtre s'ouvre avec les onglets "général" et "paramètres d'entrée".
Est-il possible que lorsque je lance le script, une boîte de date apparaisse, que j'entre la date, que je clique sur ok et que tout fonctionne ?
Et puis-je faire en sorte que le script se souvienne de la dernière date que j'ai saisie ?
La fonction déterminant la dernière position fermée de la butée est de type bool, alors que vous essayez de lui retourner le type double. En conséquence, il renvoie soit 0 soit 1.
Je vous ai écrit que vous deviez y ajouter le passage d'une variable par référence :
Maintenant, vérifiez le dernier Buy, par exemple :
Comme ça...
La fonction déterminant la dernière position fermée de la butée est de type bool, alors que vous essayez de lui retourner le type double. En conséquence, il renvoie soit 0 soit 1.
Je vous ai dit que vous deviez y ajouter le passage d'une variable par référence :
Maintenant, vérifiez le dernier Buy, par exemple :
Comme ça...
J'ai fait tout ce que vous avez dit. Tout a été compilé...... mais la fonction ne fonctionne pas lors du test du conseiller..... toutes les positions le conseiller ouvre 0.1 lot.
S'il vous plaît, dites-moi quelle est mon erreur.
Je ne comprends pas ce point - comme vous l'avez correctement remarqué, la fonction renvoie la valeur de type bool, mais dans l'appel de fonction, dans lequel la fonction doit mettre la valeur de type bool.
Vous avez proposé de spécifier d'autres types de valeurs.
Merci.
J'ai fait tout ce que vous avez dit. Tout se compile...... mais la fonction ne fonctionne pas quand on teste l'EA..... toutes les positions l'EA ouvre 0.1 lots.
Pourriez-vous me dire quelle est mon erreur ?
Je ne comprends pas ce moment - comme vous l'avez correctement remarqué, la fonction renvoie une valeur de type bool, mais dans l'appel de la fonction, dans lequel la fonction devrait mettre une valeur de type bool
Suggérez-vous de spécifier d'autres types de valeurs ?
Merci.
Pourquoi l'avez-vous retiré ? Si tu l'avais laissé, tout aurait fonctionné.
Pourquoi l'enlever. S'ils l'avaient fait, tout aurait fonctionné