XAUUSD : mauvais dimensionnement de lot sur un compte libellé en GBP ? - page 2

 
DomGilberto:
Non ce n'est pas un compte de spread betting.

@WHRoader - Comment ça, je ne veux pas de points dans ce calcul ? :s ?

Comment puis-je appliquer le risque correct à la transaction donnée en fonction de la distance au stop si je n'inclus pas les points dans la formule... ? (confus).

23.64 || 2,364 points... C'est ce que j'essaie de comprendre... Pour être franc, je suis convaincu que j'applique trop peu de positions de 1 once troy parce que j'ai un compte libellé en livres sterling... J'ai juste besoin de quelqu'un pour me dire que j'ai raison / tort à partir de ce que j'ai montré ?


Vous supposez que le calcul de la taille de la position est incorrect parce que lorsque vous avez une perte, vous ne perdez pas le pourcentage que vous souhaitiez risquer... Prenez-vous en compte le spread dans le calcul ?
 

RaptorUK - Quand je dis que la taille de la position est inférieure à ce qu'elle devrait être, je veux dire à peu près la moitié...

Si la position atteint son premier objectif, elle devrait être enlevée de 25% si applicable, sinon fermer 1 taille de lot minimum || 1 once troy. Le risque monétaire global sur ce trade équivaut à environ £75.00 risk..... La transaction XAUUSD est à un peu plus des 2/3 du chemin vers la prise de profit au premier objectif... le P & L ouvert actuel sur cette position est d'environ £18.00.....

Maintenant, avec la même formule appliquée à toutes les paires de devises que j'ai négociées jusqu'à présent, elles sont aussi précises que je le souhaite... Seuls l'or et l'argent ne le sont pas... L'écart sur ces paires n'est pas significatif car je ne vise pas 5 à 20 points... Les arrêts et les objectifs sont la plupart du temps d'environ 80-250 points ...

 
GumRai:

Pouvez-vous s'il vous plaît montrer votre code qui résulte de cette impression ?

double loss_for_1_lot1 = pips_to_ssl/ ts * tv ;

2013.11.08 23:40:30 2013.06.19 19:00 V1 - XAUUSD XAUUSD,H1 : formule loss_for_1_lot1 : 23.64 / 0.01 * 0.01 = 23.64

Vous pourriez peut-être ajouter cette impression

Print("Devise du compte = ",AccountCurrency() ) ;

pour confirmer que vous négociez réellement des GBP dans le ST, car je ne vois pas comment la TV peut être de 0,01.


2013.11.11 10:13:12     2013.06.17 15:00  V1 - XAUUSD XAUUSD,H1:  Account # (deleted) -- leverage is 1:200 -- Account currency is GBP -- Minium Lots are: 1 -- Min Lot Step is: 1
Je peux vous assurer qu'il est libellé en livres sterling...

Que voulez-vous dire par montrer le code qui aboutit à cette impression, vous l'avez là ?
 
DomGilberto:

Je peux vous assurer qu'il est libellé en GBP...

Que voulez-vous dire par montrer le code qui résulte de cette impression, vous l'avez là ?

C'est la sortie de la fonction Print(), pas le code... ... pouvez-vous montrer le code qui donne cette sortie, l'instruction Print( . . .), nous avons besoin de voir où vous obtenez la valeur Tick parce que quelque chose ne va pas. En fait, on dirait que vous imprimez ts (Tick Size) deux fois... .

23.64 / 0.01 * 0.01 = 23.64 est incorrect, 0.01 * 0.01 = 0.0001 et 23.64 / 0.0001 = 236400

 
Ok, c'est ici :

//+------------------------------------------------------------------+
//| Order Enter Function                                             |
//+------------------------------------------------------------------+
void OrderEntry(int direction)
{
   //Padding for the stop and padding for the entry too. 
   double ATR_Pad = iATR(NULL,60,14,1)/2; 
   double Buy_Pad = NormalizeDouble(ATR_Pad,Digits);
   double Sell_Pad = NormalizeDouble(ATR_Pad,Digits);
   
   //Stop calculations.    
   double ATR = iATR(NULL,60,14,1);
   double MA = iMA(NULL,60,MA_Period,0,1,0,1);
  
   //Lot calculation   
   double risk_amount = AccountBalance( )*RiskPercent/100;
   double Lot_Step = MarketInfo(Symbol(), MODE_LOTSTEP);
   double ts = MarketInfo(Symbol(), MODE_TICKSIZE);
   double tv = MarketInfo(Symbol(), MODE_TICKVALUE);
   double minlot = MarketInfo(Symbol(), MODE_MINLOT);
         
          
//+-------------------------------------------------------------------------------------+
//| Order Buy Function                                                                  |
//+-------------------------------------------------------------------------------------+   

//Place a pending buystop if no orders exists. Pending or otherwise.
if(direction==0)
{ 
      
      //Get Highest Price in our lookback range and set buy price above it.
      int iTBT = iBarShift(NULL,60, triggerBarTime, true),
      iHH = iHighest(NULL,60, MODE_HIGH, iTBT + CandlesBeforeBiasObtained, 0);
      double Buy_Here = High[iHH] + Buy_Pad;
      double buyPrice= NormalizeDouble(Buy_Here,Digits);
            
      double BuyStopPriceMath = MA - ATR;
      double BuyStopPrice = NormalizeDouble(BuyStopPriceMath,Digits);

      //get our buystop price from below the ma and our takeprofit based on our r:r ratio.
      double pips_to_bsl=buyPrice-BuyStopPrice;
      double buy_tp_price=(pips_to_bsl*RewardRatio)+buyPrice;
      double buy_takeprofit_price= NormalizeDouble(buy_tp_price, Digits);
      
      double loss_for_1_lot = pips_to_bsl/ ts * tv ;
      double LotSize_Buy = MathFloor( risk_amount / loss_for_1_lot/ Lot_Step) * Lot_Step ;

      double btp=buy_takeprofit_price;
      int PositionIndex1;    
      int TotalNumberOfOrders1;   
      TotalNumberOfOrders1 = OrdersTotal();   

      static double Stored_BuyPrice;

      if( OpenOrdersThisPair(Symbol())==0 && LotSize_Buy - minlot > - Point )
         {
         int BuyTicketOrder = OrderSend(Symbol(),OP_BUYSTOP,LotSize_Buy,buyPrice,3,BuyStopPrice,btp,NULL,MagicNumber,0,Green);
         if(BuyTicketOrder == -1)Print("First Buy Order Last Error = ",GetLastError(), " On: ", Symbol());
         if(BuyTicketOrder > 0)Print("FIRST BUY ORDER PLACED: ", Symbol(), " LotSize_Buy is: ", LotSize_Buy );
         } 


Voici également une impression de ticksize et tickvalue sur le compte réel sous XAUUSD :

2013.11.11 06:10:51  V1 - XAUUSD XAUUSD,H1:  Account # (CENSORED) -- leverage is 1:200 -- Account currency is GBP -- Tick Size is: 0.01 -- Tick Value is: 0.01
 

TickSize et Tickvalue seraient tous deux identiques à 0,01 ? 0.01 est le tick et pour chaque mouvement de tick équivaudrait à une fluctuation de 0.01 cent en P & L à la plus petite taille de position... en supposant que j'ai un compte en USD, ce serait exact...

Cela ne vous semble pas correct ?

Aussi :

"23.64 / 0.01 * 0.01 = 23.64 est incorrect, 0.01 * 0.01 = 0.0001 et 23.64 / 0.0001 = 236400"

Oui - Ce serait correct si j'isolais la formule comme ceci :

"23.64 / ( 0.01 * 0.01 ) = 236400 "

Mais parce que c'est une formule constante, la réponse est correcte en termes de production de 23,64... Il s'agit de savoir si ce nombre est correct ou non en fonction du remplissage de la taille de position correcte ?

 
DomGilberto:
Ok, le voici :



Voici également une impression de ticksize et tickvalue sur le compte réel sous XAUUSD :


Désolé, mon premier calcul était faux...

Vous n'avez toujours pas montré le code qui produit cette impression...

2013.11.08 23:40:30     2013.06.19 19:00  V1 - XAUUSD XAUUSD,H1:  loss_for_1_lot1 formula: 23.64 / 0.01 * 0.01 = 23.64

... mais peu importe.

Tick Value - Valeur du tick dans la devise de dépôt.


Ce que je comprends, c'est combien vaut 1 point, dans la devise de dépôt, pour 1 lot standard - sur mon graphique pour un compte en USD pour XAUUSD, la TickValue est de 1,06908.

 

Quoi ? Cela n'a aucun sens pour moi - Comment se fait-il que la valeur du tick que je vois renvoie simplement 0.01...

Le code est là-haut ^ ?

double loss_for_1_lot = pips_to_bsl/ ts * tv ;

"loss_for_1_lot" est juste la même chose que "loss_for_1_lot1", mais c'est du côté de l'achat... désolé d'avoir fait des allers-retours du côté de l'achat au côté de la vente, je saisis juste la première chose qui est imprimée dans ST, que ce soit un achat ou une vente...

Qui est votre courtier ? La valeur de mon tick aurait-elle quelque chose à voir avec le fait qu'il est libellé en GBP ? (confus)

 
Ok - Alors je vérifie avec Alpari UK et ils me renvoient ceci - C'est un compte libellé en GBP...
2013.11.11 13:57:37     Pip value XAUUSD,H1: Alert:  Tick Value is: 0.0626 -- Tick Size is: 0.001
 
DomGilberto:

Quoi ? Cela n'a aucun sens pour moi - Comment se fait-il que la valeur du tick que je vois renvoie simplement 0.01...

Peut-être que votre courtier s'est planté... cela arrive parfois.

DomGilberto:

Le code est bien là ^ ?

"loss_for_1_lot" est juste la même chose que "loss_for_1_lot1", mais c'est du côté de l'achat... désolé d'avoir fait des allers-retours entre le côté de l'achat et celui de la vente, je prends juste la première chose qui est imprimée dans ST, que ce soit un achat ou une vente...

Non... le Print("perte_pour_1_lot1 formule : ", . . . .) n'est pas là... . .

DomGilberto:

Qui est votre courtier ? La valeur de mon tick aurait-elle quelque chose à voir avec le fait qu'il est libellé en GBP ? (confus)

J'ai essayé avec GoMarkets, sur Alpari sur un compte en GBP, j'ai obtenu 0,626... Prenez cela et multipliez par GBPUSD et vous obtenez 0,626 * 1,5974 = 0,999, ce qui correspond à ma valeur précédente sur un compte en USD de 1,06908, en tenant compte des différents courtiers et des prix des symboles, etc.