
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
Comme j'écris pour les options binaires, j'ai fait les choses un peu différemment :
Ce serait probablement correct ?
Voici le problème
Il y a 2 lignes dans le terminal pour 1 ordre
Et pour l'ordre qui a été placé par le conseiller expert, Profit == 0.
Je pense que c'est le problème
Il y a 2 lignes dans le terminal pour 1 ordre
Et sur l'ordre qui a été placé par le Conseiller Expert, Profit == 0
où avez-vous trouvé un prix inférieur à zéro - comment montrer une capture d'écran ?
Vous ne le voyez pas dans cette capture d'écran
Vous avez déjà reçu des conseils sur l'ensemble de l'algorithme, je ne veux pas interférer et je n'ai même pas regardé votre code et les mêmes conseils... Mais ceci
a attiré mon attention. Ma question est donc la suivante : n'est-il pas plus facile et plus lisible d'utiliser l'opérateur de commutation ?
Je pense que c'est plus facile à lire et à comprendre. Peut-être que ça marche aussi un peu plus vite.Peut-être qu'au lieu d'une fonction, il suffit d'utiliser un tableau volume[n] ?
Peut-être... Je suis d'accord.
Où avez-vous trouvé un prix inférieur à zéro, montrez-moi une capture d'écran ?
Il n'y a rien de tel sur cette capture d'écran.
J'essaie d'obtenir OrderProfit() - cela donne 0
voici une confirmation du profit trouvé -0.01 lorsqu'il sort de cette ligne supplémentaire

Peut-être... Je suis d'accord.
Je ne comprends pas le prix négatif, il n'est toujours pas là.
compter le bénéfice total comme ceci (extrait)
Ce dont vous avez besoin est mis en évidence
for(i=0;i<OrdersHistoryTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderType()==ORDER_TYPE_BALANCE && OrderCloseTime()>startDate)Withdrawal=Withdrawal+OrderProfit()+OrderCommission()+OrderSwap();
if((OrderType()==ORDER_TYPE_BUY || OrderType()==ORDER_TYPE_SELL))
{
if(OrderCloseTime()>iTime(Symbol(),PERIOD_D1,0))hystCurrDay=hystCurrDay+OrderProfit()+OrderCommission()+OrderSwap();
if(OrderCloseTime()<iTime(Symbol(),PERIOD_D1,0) && OrderCloseTime()>iTime(Symbol(),PERIOD_D1,1))hystPrevDay=hystPrevDay+OrderProfit()+OrderCommission()+OrderSwap();
}
}
}
Je ne suis pas payé, c'est pour moi et pour mon développement personnel. Après le travail, c'est intéressant de faire une recherche de Graal.
Ne faites pas attention à moi. C'est juste moi et Nikolay qui avons une petite réunion...
L'essence de votre problème : puisque OrderProfit() dans le courtage forex ne donne pas de valeur réelle, vous devez définir un ordre fermé positivement/négativement comme la différence entre le prix de clôture et le prix d'ouverture de l'ordre. On vous en a déjà parlé
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie
Vérifier ce que j'ai fait de mal ?
Renat Akhtyamov, 2021.12.21 09:27
ne comprennent pas la logique qui se cache derrière
Comment cela se fait-il ?
comment le prix de clôture de l'ordre peut être inférieur à zéro ?
l'ordre BUY sera en position plus si le prix de clôture est supérieur au prix d'ouverture.
voici la condition de plus à l'achat (hors commissions et swap) :
Si c'est l'inverse, c'est un moins.Je ne suis pas payé autant pour moi et mon développement personnel. Après le travail, c'est amusant de partir à la quête du Graal.
Oui, Natalia - c'était juste un mème de la série "Quand on est payé pour une ligne de code".
C'est le genre d'humour des programmeurs.

Vous n'avez pas besoin d'une fonction dans votre cas.
Il suffit de former les variables Volume1 ... Les variables Volume10 doivent être initialement formées comme un tableau volume[10]
et se référer ensuite à ses éléments volume[n] par l'indice n.
Ne vous inquiétez pas - presque tous les programmeurs sont passés par là.
L'essentiel est que vous aimiez vraiment la programmation. Je peux le sentir.
Alors vous irez loin.