XAUUSD - falsche Losgröße auf einem GBP-Konto?

 

Ich weiß, dass dies in der Vergangenheit kurz angesprochen wurde, aber ich wollte es noch einmal ansprechen, da ich meinen EA mit einem kleinen Live-Konto teste.

Alle Positionsgrößen für die Währungspaare sind korrekt. Da mein Konto in GBP geführt wird, ist die minimale Tick-Größe größer als bei einem Handelskonto, das in USD geführt wird (natürlich).

Wie dem auch sei, da ich mit FXCM handle, ist die Mindestpositionsgröße in MT4 "1,00" Feinunze. Dies entspricht ungefähr 0,0624 Pence pro 1 Cent Bewegung. (d.h. ohne Spreads 1.200,00 > 1.200,01 = 0,0624 £).

Dies ist der Code, den ich verwende... Aus irgendeinem Grund, ich bin sicher, es ist nicht die Berechnung der richtigen Position sizing...

//+------------------------------------------------------------------+
//| 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 buyPrice = NormalizeDouble( Buy_Here,Digit s);
 
Warum sollte das der Grund für die kleineren als die üblichen Lose sein, die der Position auf XAUUSD zugewiesen wurden?
 
DomGilberto:
Warum sollte das der Grund für die kleineren als die üblichen Lots sein, die der Position auf XAUUSD zugewiesen werden?
Erhalten Sie einen Kompilierungsfehler oder ist es ein Tippfehler oder haben Sie Digit und s als etwas deklariert? und wenn Sie Digit deklariert haben, was ist sein Wert?
 

Keine - Ich sage, dass das, was ich Ihnen in diesem Code oben gezeigt habe, auf alle FX-Paare perfekt funktioniert... Auf der XAUUSD, es funktioniert perfekt, aber die Lose zugewiesen, um den Handel ist wie die Hälfte von dem, was es wahrscheinlich sein sollte; in Übereinstimmung mit, welche % Risiko meines Gleichgewichts ich beabsichtige, auf mit pro Handel...

So in layman's terms; Ich möchte 2% riskieren, wenn dieser Handel (XAUUSD) stoppt aus, es wird mehr wie ein 1% Verlust statt.... seine seltsam?

UPDATE: Entschuldigung, ich habe versehentlich das s von Digit weggelassen... Damit Sie es leichter lesen können! Es sollte Digits (die Funktion) sein.

Ich schätze, was ich zu sagen versuche, ist, dass mein Konto, das auf GBP lautet, einen Einfluss auf die korrekte Losgröße hat, die zugewiesen werden sollte... wo, wenn ich ein USD-Konto hätte, wäre es nicht genauer (korrigieren Sie mich, wenn ich weit daneben liege!).

 
DomGilberto:
Keine - Ich sage, dass das, was ich Ihnen in diesem Code oben gezeigt habe, auf alle FX-Paare perfekt funktioniert... Auf der XAUUSD, es funktioniert perfekt, aber die Lose zugewiesen, um den Handel ist wie die Hälfte von dem, was es wahrscheinlich sein sollte; in Übereinstimmung mit, welche % Risiko meines Gleichgewichts ich beabsichtige, auf mit pro Handel...

So in layman's terms; Ich möchte 2% riskieren, wenn dieser Handel (XAUUSD) stoppt aus, es wird mehr wie ein 1% Verlust statt.... seine seltsam?
Drucken Sie also alle an der Berechnung beteiligten Variablen aus, führen Sie sie für XAUUSD aus und sehen Sie nach, welche Variable(n) falsch sind... dann wissen Sie eher, warum sie falsch ist.
 

double LotSize_Sell = MathFloor( risk_amount / loss_for_1_lot1/ Lot_Step) * Lot_Step ;
2013.11
.08 23:40:30     2013.06.19 19:00  V1 - XAUUSD XAUUSD,H1:  LotSize_Sell formula: ( 200 / 23.64 / 1 ) * 1 = 8
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:  loss_for_1_lot1 formula: 23.64 / 0.01 * 0.01 = 23.64
 double pips_to_ssl = SellStopPrice - sellPrice;

2013.11.08 23:40:30     2013.06.19 19:00  V1 - XAUUSD XAUUSD,H1:  pips_to_ssl formula: 1378.45 - 1354.81 = 23.64

Das ist allerdings innerhalb des ST... also wie Sie mir schon gesagt haben, wird es bei der Stückelung des Kontos nicht anders sein....

Sieht das für Sie gut aus? 23,64" Punkte?


(Update: Nur damit Sie es wissen, das sind die Drucke für die Verkaufsseite! Tut mir leid, wenn Sie das verwirrt hat... Das war mir nicht klar :P)

 

Soweit ich sehen kann, sollte das gut funktionieren.

Die einzige Sache, die ein bisschen seltsam ist, ist TV = 0,01, scheint niedrig, auch für ein Mikro-Konto und würde nicht erwarten, dass für ein GBP-Konto.

Handelt es sich zufällig um ein Spread-Betting-Konto?

 
DomGilberto:
double pips_to_ssl = SellStopPrice - sellPrice;
Sieht das für Sie gut aus? 23,64" Punkte?

Das ist eine Preisänderung, nicht eine Anzahl von Punkten (2364). Sie konvertieren die Änderung nicht in eine Anzahl von Punkten.

Sie wollen keine Punkte in Ihrer

pips_to_bsl/ ts * tv

Berechnung. Benennen Sie die Variable in change_to_ssl um.

 
Nein, es handelt sich nicht um ein Spread-Betting-Konto.

@WHRoader - Was meinen Sie damit, dass ich keine Punkte in die Berechnung einbeziehen möchte? :s?

Wie kann ich das korrekte Risiko für einen bestimmten Handel auf der Grundlage der Entfernung zum Stop anwenden, wenn ich keine Punkte in die Formel einbeziehe? (verwirrt).

23,64 || 2.364 Punkte... Das ist es, was ich versuche, zu verstehen... Um ehrlich zu sein, bin ich davon überzeugt, dass ich zu wenig 1-Troy-Unzen-Positionen anwende, weil ich ein auf GBP lautendes Konto habe... Ich brauche nur jemanden, der mir sagt, ob ich mit dem, was ich gezeigt habe, richtig oder falsch liege?
 
DomGilberto:
Nein, es handelt sich nicht um ein Spread-Betting-Konto.

@WHRoader - Was meinen Sie damit, dass ich keine Punkte in dieser Berechnung haben möchte? :s?

Wie kann ich das korrekte Risiko für einen bestimmten Handel auf der Grundlage der Entfernung zum Stop anwenden, wenn ich keine Punkte in die Formel einbeziehe? (verwirrt).

23,64 || 2.364 Punkte... Das ist es, was ich versuche, zu verstehen... Um ehrlich zu sein, bin ich davon überzeugt, dass ich zu wenig 1-Troy-Unzen-Positionen anwende, weil ich ein auf GBP lautendes Konto habe... Ich brauche nur jemanden, der mir sagt, ob ich mit dem, was ich gezeigt habe, richtig oder falsch liege?


Können Sie bitte Ihren Code zeigen, der zu diesem Ausdruck führt?

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: loss_for_1_lot1 formula: 23.64 / 0.01 * 0.01 = 23.64

Vielleicht können Sie diesen Ausdruck hinzufügen

Print("Kontowährung = ",Kontowährung() );

um zu bestätigen, dass Sie im ST tatsächlich mit GBP handeln, denn ich sehe keine Möglichkeit, dass tv 0,01 sein kann.

Grund der Beschwerde: