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
Ceci est également correct si "cnt" est mis à zéro, mais alors la valeur est à nouveau incompréhensible comme dans la capture d'écran 3 (devrait être une valeur de profit de 4.27)
int cnt=0;
double LastProfit=0;
for(i=0;i<OrdersHistoryTotal();i++)
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && (OrderType()==OP_BUY || OrderType()==OP_SELL) && OrderSymbol()==Symbol() && OrderMagicNumber()==magic) {
if (OrderSymbol()!=Symbol() || OrderMagicNumber()!=magic) continue;
if ((op<0 || OrderType()==op) && cnt==0) {LastProfit+=OrderProfit()+OrderCommission()+OrderSwap(); cnt++;} else {cnt=0;}
}
return(LastProfit);
}
Ce n'est pas bon quand je n'ai pas de pensée logique(
Vous voyez, sur le marché réel, le dépôt fondra en 3 jours avec ce genre de logique.
C'est mauvais quand on ne pense pas logiquement.
C'est vrai.
L'ordre en attente a été supprimé
C'est vrai.
L'ordre en attente a été supprimé
OK, alors comment renvoyer un ticket des ordres fermés qui sont égaux à OrderCloseTime() et calculer leur profit ?
Comme ça :
OK, alors comment renvoyer un ticket des ordres fermés qui sont égaux à OrderCloseTime() et calculer leur profit ?
Quelque chose comme ça :
Et si elle se ferme sur un arrêt ?
ticket=OrderClose(......);
if(ticket>0){//увеличить размер массива на один и записать тикет закрытого ордера}
Et si elle se ferme sur un arrêt ?
ticket=OrderClose(......);
if(ticket>0){//увеличить размер массива на один и записать тикет закрытого ордера}
Bien, quels tableaux, quels tickets, quels ordres ?
Après le premier redémarrage du terminal, ou l'arrêt pendant le week-end, vous perdrez simplement toutes les données, et ce sera la fin de toutes les écritures et de tous les calculs.
Par exemple, lorsque j'ai écrit pour moi-même le système de comptage du drawdown ou du profit accumulé, cela ressemblait à ceci : pour chaque ordre de marché pendant l'ouverture, une variable globale avec le nom du ticket de cet ordre est créée et lorsque nous voulons recalculer le profit/la perte, nous vérifions simplement la liste des ordres actuels par rapport à la liste des variables globales et nous effectuons le calcul en supprimant les variables excédentaires et en ajoutant le profit directement au ticket à partir du nom.
Il s'agit d'une charge importante pour le système. Dans un indicateur, cela fonctionne bien, mais dans un EA, l'énumération de dizaines de variables globales peut entraîner le blocage du terminal.
Il y a une heure d'ouverture et de fermeture, vous devez travailler avec, et il n'y a aucune difficulté à l'obtenir, et avec un seul enregistrement temporel vous pouvez obtenir toutes les informations sur l'état du compte, et vous n'avez pas besoin d'un vélo.
Quels tableaux, quels tickets, quelles commandes ?
Après le premier redémarrage du terminal, ou un arrêt de fin de semaine, vous perdrez simplement toutes les données, et ce sera la fin de toutes les écritures et calculs.
c'est soluble
Je n'ai pas à vous l'expliquer.
Il s'agit d'une charge importante pour le système. Dans un indicateur, cela fonctionne bien, mais dans un EA, l'énumération de dizaines de variables globales peut entraîner le blocage du terminal.
Il y a des heures d'ouverture et de fermeture, c'est à partir de cela que vous devez travailler, et il n'y a aucune difficulté à l'obtenir, avec un seul enregistrement temporel vous pouvez obtenir toutes les informations sur l'état du compte, et vous n'avez pas besoin d'un vélo.