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
Il n'est pas correct d'utiliser la condition == pour les variables de type double. Il est recommandé de comparer comme ceci :
Il n'est pas correct d'utiliser la condition == pour les variables de type double. Il est recommandé de comparer comme ceci :
C'est tout à fait raisonnable, et surtout une approche sensée. Mais il me semble qu'au moins la première ligne aurait dû ressembler à ceci :
Je reçois de temps en temps les messages suivants dans le journal
2010.06.15 14:48:09 MemoryException 4915200 octets non disponibles
Je ne sais pas quoi faire.
Les messages suivants apparaissent périodiquement dans le journal
2010.06.15 14:48:09 MemoryException 4915200 octets non disponibles
Je ne sais pas quoi faire.
Il n'est pas correct d'utiliser la condition == pour les variables de type double. Il est recommandé de comparer comme ceci :
Pas assez de mémoire opérationnelle. Vérifiez la taille des tableaux dynamiques, il s'agit probablement d'une tentative d'allocation de plus de mémoire que celle disponible.
Si j'ai bien compris, le retour opérateur doit toujours être placé à la fin de la fonction utilisateur.
Je pense que la réponse à propos de == était essentielle. Il devrait vraiment y avoir un return(...) quelque part dans une fonction de type double. Pas nécessairement à la fin. L'utilisation de l'opérateur == dans if() return() ; peut provoquer une fausse sortie si vous avez le type LotStep 0.1000000000000000001. Dans ce cas, aucun des retours ne fonctionne et la fonction ne renvoie rien. Bien que dans votre cas, le retour n'aime probablement pas NormalizeDouble. Dans votre version qui fonctionne, fixez la fin à return(NormilizeDouble(lot,2)) et voyez si cela fonctionne. Je suis moi-même curieux de le savoir.
Je pense que la réponse à propos de == était essentielle. Il devrait vraiment y avoir un return(...) quelque part dans une fonction de type double. Pas nécessairement à la fin. L'utilisation de l'opérateur == dans if() return() ; peut provoquer une fausse sortie si vous avez le type LotStep 0.1000000000000000001. Dans ce cas, aucun des retours ne fonctionne et la fonction ne renvoie rien. Bien que dans votre cas, le retour n'aime probablement pas NormalizeDouble. Dans votre version qui fonctionne, fixez la fin à return(NormilizeDouble(lot,2)) et voyez si cela fonctionne. Je suis moi-même curieux de le savoir.
Il doit y avoir return(...) à la fin, mais il se peut qu'on n'y arrive pas (si l'une des conditions If fonctionne)...
: Renat
L'erreur est que vous avez oublié la devise de la marge dans vos calculs. Solde = 100 USD et exigence de marge = 100 EUR (119 USD).
C'est pourquoi l'opération ne peut être effectuée - tout est correct.
Je veux revenir à ma question sur le calcul correct de la marge. Comme Renat l'a remarqué dans mes calculs, LotRqdMgn (marge requise pour acheter 1 lot) ne tient pas compte du prix de la devise. Je me souviens avoir vu cette table
Identifiant
Description
Formule
SYMBOLE_CALC_MODE_FOREX
Mode Forex - calcul du bénéfice et de la marge pour le Forex
Marge : Lots*Taille_contrat/Levage
Profit: (prix de clôture - prix d'ouverture)*Taille du contrat*Lots
SYMBOLE_CALC_MODE_FUTURES
ModeFutures- calcul de la marge et du profit pour les futures
Marge : Lots *InitialMargin*Percentage/100
Profit : (prix de clôture - prix d'ouverture) * prix du pic / taille du pic * lots.
SYMBOLE_CALC_MODE_CFD
Mode CFD - calcul de la marge et du bénéfice pour CFD
Marge : Lots *Taille du contrat*Prix du marché*Pourcentage/100
Profit : (prix de clôture - prix d'ouverture)*Taille du contrat*Lots
SYMBOLE_CALC_MODE_CFDINDEX
Mode index CFD - calcul de la marge et du bénéfice pour les CFD par indices
Marge : (Lots*Taille du contrat*Prix du marché)*Prix du pic/Taille du pic
Profit : (prix de clôture - prix d'ouverture)*Taille du contrat*Lots
SYMBOLE_CALC_MODE_CFDLEVERAGE
Mode Levier CFD - calcul de la marge et du profit pour les CFD à effet de levier.
Marge : (Lots*Taille du contrat*Prix du marché*Pourcentage)/Levage
Profit : (prix de clôture - prix d'ouverture)*Taille du contrat*Lots
Il s'avère donc qu'il y a une erreur dans le tableau : au lieu de Lots*Taille_Contrat/Levage, ce doit être Prix*Lots*Taille_Contrat/Levage.