J'ai construit mon premier Expert Advisor à partir des codes fournis (merci àMakarFX_ pour la motivation et le code).
Tout fonctionne comme il se doit, mais avec un problème. Je ne sais pas où le chercher.
L'algorithme est le suivant :
il y a un signal - l'ordre s'ouvre
le fermer à l'aide d'un ordre d'arrêt ou d'un ordre d'achat en points, ou après que les limites de profit et de perte ont été atteintes dans la devise de dépôt CountLoss et CountProfit. (selon la première éventualité)
s'il s'agit d'un stop - l'ordre suivant avec une marge, s'il s'agit d'une prise, CountProfit, CountLoss - le lot est remis à l'état initial.
si le Stop Loss est défini sur CountLoss , l'ordre suivant est ouvert avec le lot minimum, par exemple, au lieu du lot de départ :
dans les variables externes, le lot de départ 0.02 est fixé, le prochain ordre à CountLoss sera le lot 0.01.
J'ai construit mon premier Expert Advisor à partir des codes fournis (merci àMakarFX_ pour la motivation et le code).
Tout fonctionne comme il se doit, mais avec un problème. Je ne sais pas où le chercher.
L'algorithme est le suivant :
il y a un signal - l'ordre s'ouvre
le fermer en utilisant l'ordre stop ou take en points, ou après la réalisation des limites de profit et de perte en devise depo CountLoss et CountProfit. (selon la première éventualité)
s'il s'agit d'un stop - l'ordre suivant avec une marge, s'il s'agit d'une prise, CountProfit, CountLoss - le lot est remis à l'état initial.
si le Stop Loss est défini sur CountLoss , l'ordre suivant est ouvert avec le lot minimum, par exemple, au lieu du lot de départ :
dans les variables externes, le lot de départ 0.02 est défini, puis à CountLoss, le prochain ordre sera le lot 0.01.
Quelqu'un peut-il me dire où se trouve l'erreur ?
Regardez ce que j'ai changé dans la fonction double Lots()
S'imprime une fois lorsqu'une transaction non rentable apparaît.
Merci pour cette réflexion. J'ai comparé l'heure de clôture de la commande en cours avec l'heure de clôture de la commande précédente et tout s'est passé comme prévu. J'ai également créé la fonction permettant d'ouvrir un ordre dans la direction opposée avec un stop loss, mais cela n'a pas beaucoup aidé.
Petronet: Merci, j'ai compris l'idée. J'ai comparé l'heure de clôture de la commande en cours à l'heure de clôture de la commande précédente et tout s'est passé comme prévu. J'ai également fait la fonction d'ouvrir un ordre dans la direction opposée avec un stop loss, bien que cela n'ait pas beaucoup aidé.
Bon après-midi à tous. J'essaie d'implémenter le calcul du profit et du stop en utilisant l'indicateur ATR. L'arrêt fonctionne bien. Mais le bénéfice est toujours fixé à la même valeur. Voici le code pour le calcul des bénéfices
if(Tip_tp == en_TP_po_atr)// ЕСЛИ ПРОФИТ ПО АТР//-------------------------------------------------------------------------------------------------+
{
tp =NormalizeDouble(iATR(NULL,PeriodForWork_sl,atr_sl_period,1),Digits);// ПРИСВАЕВАЕМ ЗНАЧЕНИЙ АТР ДЛЯ ВЫСТАВЛЕНИЯ СТОПЛОССАif(tp<stoplevel) // ЕСЛИ ПРОФИТ МЕНЬШЕ ЧЕМ МИНИМАЛЬНО ДОПУСТИМЫЙ УРОВЕНЬ ЕГО УСТАНОВКИ ТО
{
tp=NormalizeDouble(tp*1.5,Digits); // ПРОФИТУ ПРИСВАЕВАЕМ МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ ЕГО УСТАНОВКИ
}
}
tp= NormalizeDouble(tp*Point, Digits());// НОРМАЛИЗУЕМ ПРОФИТ, ЧТОБЫ РАБОТАЛО НА ЛЮБЫХ КАТИРОВКАХ//+--КОНЕЦ РАСЧЁТА ПРОФИТА---------------------------------------------------------------------- Разделитель ---+
Quelle est l'erreur qui fait que le bénéfice a toujours la même valeur ? Hein ?
Bon après-midi à tous. J'essaie d'implémenter le calcul du profit et du stop en utilisant l'indicateur ATR. L'arrêt fonctionne bien. Mais le bénéfice est toujours fixé à la même valeur. Voici le code pour le calcul des bénéfices
Quelle est l'erreur qui fait que le bénéfice a toujours la même valeur ? Hein ?
// ЕСЛИ ПРОФИТ ПО АТР//-------------------------------------------------------------------------------------------------+if(Tip_tp == en_TP_po_atr)
{
tp =NormalizeDouble(iATR(NULL,PeriodForWork_sl,atr_sl_period,1),Digits);// ПРИСВАЕВАЕМ ЗНАЧЕНИЙ АТР ДЛЯ ВЫСТАВЛЕНИЯ СТОПЛОССАif(tp<stoplevel) // ЕСЛИ ПРОФИТ МЕНЬШЕ ЧЕМ МИНИМАЛЬНО ДОПУСТИМЫЙ УРОВЕНЬ ЕГО УСТАНОВКИ ТО
{
tp=NormalizeDouble(tp*1.5,Digits); // ПРОФИТУ ПРИСВАЕВАЕМ МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ ЕГО УСТАНОВКИ
}
}
//+--КОНЕЦ РАСЧЁТА ПРОФИТА---------------------------------------------------------------------- Разделитель ---+
Merci pour votre aide - j'ai modifié un morceau de code et tout a fonctionné. Mais pouvez-vous décrire l'erreur en mots, car je n'arrive pas à la deviner à l'œil nu ?
DanilaMactep: Merci pour votre aide - j'ai changé un morceau de code - tout a fonctionné. Mais pouvez-vous décrire en mots quelle était l'erreur, car je n'arrive pas à la deviner à l'œil nu ?
votre code a été divisé
В этой части кода ты задаешь tp значение АТРif(Tip_tp == en_TP_po_atr)// ЕСЛИ ПРОФИТ ПО АТР//-------------------------------------------------------------------------------------------------+
{
tp =NormalizeDouble(iATR(NULL,PeriodForWork_sl,atr_sl_period,1),Digits);// ПРИСВАЕВАЕМ ЗНАЧЕНИЙ АТР ДЛЯ ВЫСТАВЛЕНИЯ СТОПЛОССАif(tp<stoplevel) // ЕСЛИ ПРОФИТ МЕНЬШЕ ЧЕМ МИНИМАЛЬНО ДОПУСТИМЫЙ УРОВЕНЬ ЕГО УСТАНОВКИ ТО
{
tp=NormalizeDouble(tp*1.5,Digits); // ПРОФИТУ ПРИСВАЕВАЕМ МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ ЕГО УСТАНОВКИ
}
}
А в этой части ты обнуляешь предыдущее действие и задаешь непонятно что...
tp= NormalizeDouble(tp*Point, Digits());// НОРМАЛИЗУЕМ ПРОФИТ, ЧТОБЫ РАБОТАЛО НА ЛЮБЫХ КАТИРОВКАХ
Bonjour, aidez-moi à faire fonctionner mon terminal, le marché ne fonctionne pas. Je veux télécharger un indicateur gratuit sur le marché et je ne peux pas.
J'ai changé le mot de passe, redémarré, mais rien ne fonctionne.
Le programme enregistre les données suivantes
2021.08.23 11:54:18.236 MQL5 Market a échoué à télécharger le produit 'MACD Intraday Trend'(www.mql5.com:443 send failed [426 : ])
J'ai construit mon premier Expert Advisor à partir des codes fournis (merci àMakarFX_ pour la motivation et le code).
Tout fonctionne comme il se doit, mais avec un problème. Je ne sais pas où le chercher.
L'algorithme est le suivant :
il y a un signal - l'ordre s'ouvre
le fermer à l'aide d'un ordre d'arrêt ou d'un ordre d'achat en points, ou après que les limites de profit et de perte ont été atteintes dans la devise de dépôt CountLoss et CountProfit. (selon la première éventualité)
s'il s'agit d'un stop - l'ordre suivant avec une marge, s'il s'agit d'une prise, CountProfit, CountLoss - le lot est remis à l'état initial.
si le Stop Loss est défini sur CountLoss , l'ordre suivant est ouvert avec le lot minimum, par exemple, au lieu du lot de départ :
dans les variables externes, le lot de départ 0.02 est fixé, le prochain ordre à CountLoss sera le lot 0.01.
Quelqu'un peut-il me dire où se trouve l'erreur ?
J'ai construit mon premier Expert Advisor à partir des codes fournis (merci àMakarFX_ pour la motivation et le code).
Tout fonctionne comme il se doit, mais avec un problème. Je ne sais pas où le chercher.
L'algorithme est le suivant :
il y a un signal - l'ordre s'ouvre
le fermer en utilisant l'ordre stop ou take en points, ou après la réalisation des limites de profit et de perte en devise depo CountLoss et CountProfit. (selon la première éventualité)
s'il s'agit d'un stop - l'ordre suivant avec une marge, s'il s'agit d'une prise, CountProfit, CountLoss - le lot est remis à l'état initial.
si le Stop Loss est défini sur CountLoss , l'ordre suivant est ouvert avec le lot minimum, par exemple, au lieu du lot de départ :
dans les variables externes, le lot de départ 0.02 est défini, puis à CountLoss, le prochain ordre sera le lot 0.01.
Quelqu'un peut-il me dire où se trouve l'erreur ?
Regardez ce que j'ai changé dans la fonction double Lots()
S'imprime une fois lorsqu'une transaction non rentable apparaît.
Merci, j'ai compris l'idée. J'ai comparé l'heure de clôture de la commande en cours à l'heure de clôture de la commande précédente et tout s'est passé comme prévu. J'ai également fait la fonction d'ouvrir un ordre dans la direction opposée avec un stop loss, bien que cela n'ait pas beaucoup aidé.
Plus précisément...
Bon après-midi à tous. J'essaie d'implémenter le calcul du profit et du stop en utilisant l'indicateur ATR. L'arrêt fonctionne bien. Mais le bénéfice est toujours fixé à la même valeur. Voici le code pour le calcul des bénéfices
Quelle est l'erreur qui fait que le bénéfice a toujours la même valeur ? Hein ?
Bon après-midi à tous. J'essaie d'implémenter le calcul du profit et du stop en utilisant l'indicateur ATR. L'arrêt fonctionne bien. Mais le bénéfice est toujours fixé à la même valeur. Voici le code pour le calcul des bénéfices
Quelle est l'erreur qui fait que le bénéfice a toujours la même valeur ? Hein ?
Regardez ce que j'ai changé dans la fonction double Lots()
super ! merci beaucoup !
Merci pour votre aide - j'ai changé un morceau de code - tout a fonctionné. Mais pouvez-vous décrire en mots quelle était l'erreur, car je n'arrive pas à la deviner à l'œil nu ?
votre code a été divisé
J'ai changé le mot de passe, redémarré, mais rien ne fonctionne.
Le programme enregistre les données suivantes
2021.08.23 11:54:18.236 MQL5 Market a échoué à télécharger le produit 'MACD Intraday Trend'(www.mql5.com:443 send failed [426 : ])
Salutations, Olga