Calcul correct du lot à partir du % de la caution - page 4

 

Merci à tous pour votre aide et votre participation... Voici le résultat de ma "souffrance".

double lotSize(double deposSize=1000.0, string currName="USDCHF", double proc=2.0, int pipsLoss=1000)

{

double currMove=deposSize*proc/100;// расчет процента от величины, предположительно, депозита

double lotCount=currMove/(pipsLoss*MarketInfo(currName,MODE_TICKVALUE));//ну а тут и ведеться сам расчет лота

if(lotCount<MarketInfo(currName,MODE_MINLOT))

{

return MarketInfo(currName,MODE_MINLOT);

}

return NormalizeDouble(lotCount,2);

//return lotCount;

}

Cela ne semble pas trop difficile, mais je n'aurais pas pu le faire sans conseils.

 

double lotCount=currMove/(pipsLoss*MarketInfo(currName,MODE_TICKVALUE));//ensuite, le calcul du lot lui-même est effectué.

c'est aussi cool que possible... et maintenant je compte.

double currMove=deposSize*proc/100 = 1*100/100 = 1 ; nous avons 1 quidam

currName = "EURUSD"

MarketInfo(currName,MODE_TICKVALUE) = 0.1 pour les cotations à cinq chiffres

pipsLoss = 1000

au total, nous avons

double lotCount=currMove/(pipsLoss*MarketInfo(currName,MODE_TICKVALUE)) = 1 /(1000*0.1) = 0.01

tout semble bien(la marge est de 68,53 par lot), si pipsLoss = 100, alors lotCount = 0,1, mais il n'y a pas assez de marge pour cela - pour 0,1 nous avons besoin de 6,853, et nous avons 1 quid...

et d'autre part, dans le premier cas, ayant 1 quid et une ouverture avec un stop de 1000 points se retrouvera avec 0.31 de quid.

Je me demande si cela suffit à un ordre avec un stop-loss de 1000 pips pour survivre à un drawdown de 999 pips ; je doute que cela se produise,

c.-à-d. le prix de 1 pip à 0,01 lot sera de 0,001, 0,31/0,001 = 310 pips, c.-à-d. que si nous perdons 310 pips l'ordre sera fermé par un stopout (ceci si le stopout est à 0% ce qui est faux car il est toujours plus grand, ce qui signifie que l'ordre sera fermé plus tôt), donc tous les calculs sont sans valeur puisqu'ils ne nous aident pas à calculer correctement le lot correct pour les conditions données afin que l'ordre fonctionne correctement par un stop loss

 
double CalcLotSize(double Lot,double lRisk,int lSL=0)
  {
   string lSymbol=Symbol();
   double dLotMin    = MarketInfo(lSymbol, MODE_MINLOT        );
   double dLotMax    = MarketInfo(lSymbol, MODE_MAXLOT        );
   double dLotStep   = MarketInfo(lSymbol, MODE_LOTSTEP       );


   double dLot=Lot;

   if(lRisk>0)
     {
      if(lSL>0)
        {
         double dLotCost=MarketInfo(lSymbol,MODE_TICKVALUE);
         dLot=MathRound(AccountFreeMargin()*lRisk*0.01/(lSL*dLotCost*dLotStep))*dLotStep;
        }
      else
        {
         double dLotMargin=MarketInfo(lSymbol,MODE_MARGINREQUIRED);
         dLot=MathRound(AccountFreeMargin()*lRisk *0.01/(dLotMargin*dLotStep))*dLotStep;

        }
     }

   if(dLot<dLotMin) dLot=dLotMin;

   if(dLot>dLotMax) dLot=dLotMax;

   return(dLot);
  }
 

il semble que toutes les idées de comptage du lot poussent du même endroit et sont aussi semblables que des champignons après la pluie... (Je me critique moi-même...)

Vous feriez mieux de vous servir de votre tête pour déterminer ce que la fonction de calcul des lots devrait compter et ce qu'elle devrait prendre en compte, car les options proposées ne résistent pas à la critique...

 

Laissez-moi vous expliquer pour ceux qui sont très doués... currMove - c'est la valeur en argent du pourcentage perdu lors du passage de pipLots pips (2% du dépôt pour 1000 quid à un coup de 1000 pips (5 chiffres) sera de 20 $) ...

c'est aussi bon que cela peut l'être... maintenant faites le calcul

double currMove=deposSize*proc/100 = 1*100/100 = 1 ; nous avons 1 quidam

c'est-à-dire que si quelqu'un a une perte de 1 dollar dans ces conditions, je ne peux qu'admirer l'extrême du trader - dans ce cas, il a 50 livres de dépôts... Si quelqu'un gagne 1 dollar dans une situation de perte, je ne peux qu'admirer l'extrémisme du trader - dans ce cas, il a un dépôt de 50 dollars sur son compte de trading.

Je pense que la discussion suivante sur le texte du post est inutile... Parce qu'il est irrespectueux de discuter avec des trolls, et inattentifs comme ils le sont.

Je suis honoré.

 
gochu:

Laissez-moi vous expliquer pour ceux qui sont très doués... currMove - c'est la valeur en argent du pourcentage perdu lors du passage de pipLots pips (2% du dépôt pour 1000 quid à un coup de 1000 pips (5 chiffres) sera de 20 $) ...

c'est aussi bon que cela peut l'être... maintenant faites le calcul

double currMove=deposSize*proc/100 = 1*100/100 = 1 ; nous avons 1 quidam

c'est-à-dire que si quelqu'un a une perte de 1 dollar dans ces conditions, je ne peux qu'admirer l'extrême du trader - dans ce cas, il a 50 livres de dépôts... Si quelqu'un gagne 1 dollar dans une situation perdante, je ne peux qu'admirer l'extrémisme du trader - dans ce cas, il a un dépôt de 50 dollars...

Je pense que la discussion suivante sur le texte du post est inutile... Parce qu'il est irrespectueux de discuter avec des trolls, et inattentifs comme ils le sont.

Honneur.

double currMove=deposSize*proc/100 = 1*100/100 =1 signifie généralement que le dépôt est de 1$, et non de 50$ (et a une perte de100% )

:-)

 
EverAlex:
double currMove=deposSize*proc/100 = 1*100/100 =1 signifie généralement que le dépôt est de 1$, et non de 50$ (et qu'il y a une perte de100% )

bien.... avec un dépôt comme celui-ci, bon vent !

 

Vinin:

double CalcLotSize(double Lot,double lRisk,int lSL=0)


A quoi sert le Lot ?

et en quoi est mesurée l'iSL (je pense qu'il était question de points de symbole de négociation ci-dessus) ?

...(lSL*dLotCost*dLotStep))*dLotStep ; signifie que ce n'est pas en points du symbole de trading (MODE_POINT), mais en LOTSTEPs ?

ou quoi ?
 
EverAlex:

A quoi sert le Lot ?

et en quoi est mesurée l'iSL (je pense qu'il était question de points de symbole de négociation ci-dessus) ?

...(lSL*dLotCost*dLotStep))*dLotStep ; signifie que ce n'est pas en points de symbole de commerce (MODE_POINT), mais en LOTSTEPs ?

ou quoi ?

C'est le calcul du lot ajusté au risque. Le montant du dépôt que vous perdrez lorsque le stop sera déclenché.
 
Vinin:

C'est le calcul du lot en tenant compte du risque. Quelle partie du dépôt sera perdue lorsque le stop sera déclenché ?

Donc lSL est le nombre de points vers SL

Point = 0.00001 (sur les cotations à 5 chiffres)

dLotStep = 0,01


La formule (lSL*dLotCost*dLotStep))*dLotStep est correcte.

Cela devrait être quelque chose comme (lSL*dLotCost*Point))*dLotStep