Questions des débutants MQL5 MT5 MetaTrader 5 - page 271
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
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))
}