GBP cinsinden hesapta XAUUSD yanlış lot büyüklüğü mü?

 

Geçmişte buna kısaca değinildiğini takdir ediyorum, ancak EA'mı küçük bir canlı hesapla test ederken tekrar gündeme getirmek istedim.

Döviz çiftleriyle yapılan tüm pozisyon boyutlandırmaları doğrudur. Hesabım GBP cinsinden olduğundan, minimum onay boyutu, USD cinsinden (elbette) bir ticaret hesabından daha büyüktür.

Her iki durumda da, FXCM ile işlem yaptığım için, MT4 içindeki minimum pozisyon boyutu "1.00" troy ons'tur. Bu kabaca 1 sentlik hareket başına 0,0624 pense eşittir. (yani spreadler hariç 1.200.00 > 1.200.01 = 0.0624 £).

Kullandığım kod bu... Nedense, doğru konum boyutlandırmasını hesaplamadığından eminim...

 //+------------------------------------------------------------------+
//| 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 );
 
XAUUSD'deki pozisyona tahsis edilen normalden daha küçük lotların nedeni neden bu olabilir?
 
DomGilberto :
XAUUSD'deki pozisyona tahsis edilen normalden daha küçük lotların nedeni neden bu olabilir?
Peki derleme hatası alıyor musunuz? yoksa bir yazım hatası mı? yoksa Digit ve s'yi bir şey olarak mı ilan ettiniz? ve Digit'i ilan ettiyseniz, değeri nedir?
 

Yok - Size yukarıdaki kodda gösterdiğim şeyin tüm FX çiftlerinde mükemmel çalıştığını söylüyorum... XAUUSD'de mükemmel çalışıyor ancak ticarete tahsis edilen lotlar muhtemelen olması gerekenin yarısı kadar; Bakiyemin yüzde kaçının riskine göre işlem başına kullanmayı planlıyorum...

Yani meslekten olmayanların terimleriyle; %2 risk almak istiyorum, eğer bu ticaret (XAUUSD) durursa, bunun yerine %1'lik bir kayıp gibi olacak.... garip mi?

GÜNCELLEME: Kusura bakmayın yanlışlıkla Digit'ten s'yi ayırdım... Siz daha kolay okuyabilmeniz için! Rakamlar ( işlev ) olması gerekiyordu.

Sanırım söylemeye çalıştığım şey, hesabımın GBP cinsinden olması, tahsis edilmesi gereken doğru lot büyüklüğü üzerinde bir etkiye sahip... eğer uzaktaysam!).

 
DomGilberto :
Yok - Size yukarıdaki kodda gösterdiğim şeyin tüm FX çiftlerinde mükemmel çalıştığını söylüyorum... XAUUSD'de mükemmel çalışıyor ancak ticarete tahsis edilen lotlar muhtemelen olması gerekenin yarısı kadar; Bakiyemin yüzde kaçının riskine göre işlem başına kullanmayı planlıyorum...

Yani meslekten olmayanların terimleriyle; %2 risk almak istiyorum, eğer bu ticaret (XAUUSD) durursa, bunun yerine %1'lik bir kayıp gibi olacak.... garip mi?
Tamam, bu yüzden hesaplamaya dahil olan tüm değişkenleri yazdırın, XAUUSD üzerinde çalıştırın ve hangi değişken veya değişkenlerin yanlış olduğunu görün. . . o zaman neden yanlış olduğunu öğrenmeye daha yakın olacaksınız.
 

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

Bu ST içinde olsa da... bana daha önce de söylediğin gibi, hesabın değerinde farklı olmayacak....

Bu sana iyi görünüyor mu? "23.64" puan?


(Güncelleme: Bil diye söylüyorum, bunlar satış tarafının baskıları! Kafanız karıştıysa kusura bakmayın... Fark etmemiştim :P)

 

Görebildiğim kadarıyla, bu işe yaramalı.

Biraz garip olan tek şey TV = 0,01, mikro hesap için bile düşük görünüyor ve bir GBP hesabı için bunu beklemiyordum.

Herhangi bir şansla yayılmış bir bahis hesabı mı?

 
DomGilberto :
 double pips_to_ssl = SellStopPrice - sellPrice;
Bu sana iyi görünüyor mu? "23.64" puan?

Bu, fiyattaki bir değişikliktir, puan sayısı değil (2364.) Değişikliği puan sayısına çevirmiyorsunuz.

sende puan istemiyorsun

pips_to_bsl/ ts * tv

hesaplama. Değişkeni change_to_ssl olarak yeniden adlandırın

 
Hayır, yayılmış bir bahis hesabı değil.

@WHRoader - Ne demek bu hesaplamada puan istemiyorum? :s?

Formüle puan eklemezsem, durağa olan mesafeye göre verilen ticarete doğru riski nasıl uygulayabilirim...? (Şaşkın).

23.64 || 2.364 puan... Kafamı toparlamaya çalıştığım şey bu... Dürüst olmak gerekirse, GBP cinsinden bir hesabım olduğu için çok az 1 troy ons pozisyonu uyguladığıma ikna oldum... Sadece birine ihtiyacım var gösterdiklerimden doğru/yanlış olduğumu söylemek için mi?
 
DomGilberto :
Hayır, yayılmış bir bahis hesabı değil.

@WHRoader - Ne demek bu hesaplamada puan istemiyorum? :s?

Formüle puan eklemezsem, durağa olan mesafeye göre verilen ticarete doğru riski nasıl uygulayabilirim...? (Şaşkın).

23.64 || 2.364 puan... Kafamı toparlamaya çalıştığım şey bu... Dürüst olmak gerekirse, GBP cinsinden bir hesabım olduğu için çok az 1 troy ons pozisyonu uyguladığıma ikna oldum... Sadece birine ihtiyacım var gösterdiklerimden doğru/yanlış olduğumu söylemek için mi?


Lütfen bu baskıyla sonuçlanan kodunuzu gösterebilir misiniz?

çift kayıp_for_1_lot1 = pips_to_ssl/ ts * tv ;

2013.11 . 08 23 : 40 : 30 2013.06 . 19 19 : 00 V1 - XAUUSD XAUUSD,H1: kayıp_for_1_lot1 formülü: 23.64 / 0.01 * 0.01 = 23.64

Belki bu baskıyı ekleyebilirsin

Print(" Hesap para birimi = ",AccountCurrency() );

ST'de gerçekten GBP ticareti yaptığınızı doğrulamak için çünkü tv'nin 0,01 olmasını hiçbir şekilde göremiyorum