Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Les ordres sont clôturés en série, mais s'il n'y a pas de conditions de clôture, les ordres sont collectés pendant un jour ou deux, etc.
Si la série est fermée pratiquement pendant un cycle, disons, pendant la durée de vie d'une barre, alors nous pouvons prendre le critère de la série par le temps de fermeture plus une barre. Autrement dit, tous les ordres dont le délai de clôture est inférieur à cette valeur doivent être rejetés.
Cependant, nous craignons que cela ne fonctionne que dans le testeur ; toute intervention manuelle entraînera un calcul incorrect des bénéfices (seuls les bénéfices de l'EA seront pris en compte, alors que la transaction manuelle ne le sera pas).
Si la série est fermée pratiquement pendant un cycle, disons, pendant la durée de vie d' une barre, alors nous pouvons prendre le critère de la série par le moment de la fermeture plus une barre. Autrement dit, tous les ordres dont l'heure de clôture est inférieure à cette valeur doivent être rejetés.
I.e.
(t==OrderCloseTime()||t==OrderCloseTime()+60)?
I.e.
+60 ?
PeriodSeconds() serait plus correct. Ou allez-vous travailler uniquement sur le M1 ?
Quelque chose comme ça :
{
double lastlos=0.0,op=0.0;
int cnt=0;
datetime time=0;
for(int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic && OrderType()<2)
{
if(cnt==0) time=OrderCloseTime();
op=OrderProfit()+OrderSwap()+OrderCommission();
if(OrderCloseTime()+PeriodSeconds()<time && op>0.0) break;
lastlos+=op;
if(cnt!=0) cnt++;
}
}
}
return(lastlos);
}
Quelque chose comme ça :
Et vous pouvez également numéroter les ordres dans le commentaire, pour les DC qui n'écrasent pas le commentaire. Et en essayant le numéro du commentaire, dès que le numéro est hors d'ordre - la série est terminée.
Exemple : les séries de commandes numérotées 1,2,3,4,5. Fermé dans l'ordre 5,4,3,2,1 - la boucle voit 1 et s'interrompt. Fermeture dans l'ordre 1,2,3,4,5 et 1 (le numéro d'ordre de la série précédente) - la boucle voit la différence 5-1>1 et s'interrompt. Je dois réfléchir à la manière de traduire cela en code )))).
Une nouvelle valeur est donc ajoutée à la valeur précédente. Et chaque nouvelle fermeture, une nouvelle valeur de profit.
Je ne sais pas, ça ne colle pas pour moi.
Mettez les informations et vous verrez que ça s'additionne.
if(lastloss()<0) ProfitColor=Red;
if(lastloss()>0) ProfitColor=LimeGreen;
if(lastloss()==0)ProfitColor=DarkGray;
ObjectCreate("Last Profit", OBJ_LABEL, 0, 0, 0);
ObjectSet("Last Profit", OBJPROP_CORNER, 1);
ObjectSet("Last Profit", OBJPROP_XDISTANCE, 5);
ObjectSet("Last Profit", OBJPROP_YDISTANCE, 15);
ObjectSetText("Last Profit",StringConcatenate("Last Profit: ",DoubleToStr(lastloss(),2)),10,"Arial",ProfitColor);
Introduisez les informations et vous verrez immédiatement ce qui s'ajoute.
Hmm, oui en effet... Continuons à penser ))))
Je pensais aussi qu'il comptait comme il se doit.
Je n'aurais pas dû mettre cette info dans le code et la vie aurait été plus simple))
Et maintenant, on se demande comment la fonction n'a pas fonctionné correctement pendant tout ce temps ! !!