Il maudit spécifiquement à la dernière ligne, dit :"perte possible de données en raison de la conversion de type". Comment normaliser correctement le type réel dans ce cas ?
Bonjour à tous ! Un tel problème - le compilateur donne un avertissement. Je ne veux pas l'ignorer, pouvez-vous m'aider à trouver une issue ?
Il maudit spécifiquement à la dernière ligne, dit :"perte possible de données en raison de la conversion de type". Comment normaliser correctement le type réel dans ce cas ?
Bonjour à tous ! Un tel problème - le compilateur donne un avertissement. Je ne veux pas l'ignorer, pouvez-vous m'aider à trouver une issue ?
Il maudit spécifiquement à la dernière ligne, dit :"perte possible de données en raison de la conversion de type". Comment normaliser correctement le type réel dans ce cas ?
Et une dernière chose : ArrayMaximum et ArrayMinimum renvoient l'index de l'élément trouvé. Donc la bonne méthode est la suivante :
Il ne calcule pas correctement le niveau de prise de bénéfices en fonction du montant des pertes des ordres fermés. Il s'avère que le 1er ordre = 1 ; le 2ème ordre = 2 ; le 3ème ordre = 3 ; le 4ème ordre = 4. Nous devons calculer le nombre de pips pour couvrir la perte sur tous les ordres précédents et gagner 10% de la perte totale.
En fait, le conseiller expert considère simplement que le montant de chaque ordre fermé est égal à l'ordre supposé en attente, c'est-à-dire que ses calculs montrent que si le 5ème ordre en attente est égal à 5 lots, tous les ordres perdants précédents étaient égaux à 5 lots et, par conséquent, la perte est calculée avec le niveau de profit erroné correspondant. En d'autres termes, si le volume total de 4 ordres est égal à 10 lots, alors le Conseiller Expert va simplement multiplier 4 ordres par le volume du 5ème ordre en attente et obtenir un volume total de 20 lots......Que devons-nous corriger dans le code ?
// Fonction qui calcule le niveau d'achat en fonction du niveau de perte des transactions fermées.
Ainsi, seule la première valeur est remplie avec l'indice [0].
Merci. Cela m'a épargné un week-end sans sommeil).
vicmos merci.
elle remplit tout avec une seule valeur, comme la fonction ArrayFill(...)/.
Bonjour à tous ! Un tel problème - le compilateur donne un avertissement. Je ne veux pas l'ignorer, pouvez-vous m'aider à trouver une issue ?
Il maudit spécifiquement à la dernière ligne, dit :"perte possible de données en raison de la conversion de type". Comment normaliser correctement le type réel dans ce cas ?
Bonjour à tous ! Un tel problème - le compilateur donne un avertissement. Je ne veux pas l'ignorer, pouvez-vous m'aider à trouver une issue ?
Il maudit spécifiquement à la dernière ligne, dit :"perte possible de données en raison de la conversion de type". Comment normaliser correctement le type réel dans ce cas ?
Bonjour à tous ! Un tel problème - le compilateur donne un avertissement. Je ne veux pas l'ignorer, pouvez-vous m'aider à trouver une issue ?
Il maudit spécifiquement à la dernière ligne, dit :"perte possible de données en raison de la conversion de type". Comment normaliser correctement le type réel dans ce cas ?
Et une dernière chose : ArrayMaximum et ArrayMinimum renvoient l'index de l'élément trouvé. Donc la bonne méthode est la suivante :
De même, ArrayMaximum et ArrayMinimum renvoient l'indice de l'élément trouvé. Donc la bonne méthode est la suivante :
Il ne calcule pas correctement le niveau de prise de bénéfices en fonction du montant des pertes des ordres fermés. Il s'avère que le 1er ordre = 1 ; le 2ème ordre = 2 ; le 3ème ordre = 3 ; le 4ème ordre = 4. Nous devons calculer le nombre de pips pour couvrir la perte sur tous les ordres précédents et gagner 10% de la perte totale.
En fait, le conseiller expert considère simplement que le montant de chaque ordre fermé est égal à l'ordre supposé en attente, c'est-à-dire que ses calculs montrent que si le 5ème ordre en attente est égal à 5 lots, tous les ordres perdants précédents étaient égaux à 5 lots et, par conséquent, la perte est calculée avec le niveau de profit erroné correspondant. En d'autres termes, si le volume total de 4 ordres est égal à 10 lots, alors le Conseiller Expert va simplement multiplier 4 ordres par le volume du 5ème ordre en attente et obtenir un volume total de 20 lots......Que devons-nous corriger dans le code ?
// Fonction qui calcule le niveau d'achat en fonction du niveau de perte des transactions fermées.
//=================================================================================================
double TakeProfitCalculate(double lot,int type)
{
int n,i ;
double prf,ttp ;
prf=MathAbs(BuyLevel-SellLevel)/Point*LOT*MarketInfo(Symbol(),MODE_TICKVALUE);//
if(No!=0) for(i=OrdersHistoryTotal()-1;i>=0;i--)
{
if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) continue ;
if(OrderSymbol()!=Symbol() || OrderMagicNumber()<MAGIC || OrderMagicNumber()>MAGIC+200 || OrderType()>OP_SELL) continuer ;
n=OrderMagicNumber()-MAGIC ;
prf+=(OrderProfit()+OrderSwap()+OrderCommission()) ;
si(n==0) pause ;
}
prf=MathAbs(prf*(100+ProfitPercent)/100) ;
ttp=prf*Point/(LOT*MarketInfo(Symbol(),MODE_TICKVALUE))
if(type==OP_BUY) return(NRu(BuyLevel+ttp)) ; else return(NRd(SellLevel-ttp))
}