SL ve Hesap Riskine dayalı para yönetimi LOT boyutu formülüne ihtiyacınız var!

 

Merhaba, DURDURMA dahil edilerek hesaplanan Hesap Riski %'sine göre lot büyüklüğünü yeniden boyutlandıran ve hesabımın EUR olduğu göz önünde bulundurularak yeniden boyutlandıran bir koda/formüle ihtiyacım var.

sahip olduğum şey şu:

 extern double RISK= 1 ;   //1% RISK
double LOT;

LOT = NormalizeDouble ( AccountEquity ()*RISK/ 10000 , 2 );

Ama bu stoploss'u dikkate almıyor

bu yüzden google aramada bunu buldum

lot= NormalizeDouble ( AccountBalance ( )*MaximumRisk/StopLoss/( MarketInfo ( Symbol (), MODE_TICKVALUE )), 2 );

Ve bu

lot = Risk * AccountEquity () / MarketInfo ( Symbol (), MODE_TICKVALUE ) / Stop;

Ama bunların hiçbiri işe yaramıyor, lütfen onları düzeltmeme yardım et ya da bana daha iyisini ver, teşekkürler!

 
  1. Hesap Bakiyesi * yüzde = RİSK = (OrderOpenPrice - OrderStopLoss)*DIR * OrderLots * DeltaPerlot (Not OOP-OSL, SPREAD'i içerir)
  2. TickValue'u tek başına KULLANMAYIN - DeltaPerlot
  3. Stop out'tan kaçınmak için FreeMargin'i de kontrol etmelisiniz.
 
   double Spread=MarketInfo(Symbol(),MODE_SPREAD)/Q;
   double Risk=(RiskPercent*AccountEquity())/100;//this means if your balance 1000$ & RiskPercent=10% >> you going to risk 100$
   double lot=Risk/((StopLoss+Spread)*MarketInfo(Symbol(),MODE_TICKVALUE)*Q);//Make Sure to Define Your StopLoss & Q=10 in 5 digits or Q=1 in 4 Digits 
 
yousefh : , DeltaPerlot'umdaki yorumu okuyun . Onay değerini tek başına KULLANMAYIN.
 
yousefh :

üzgünüm iyi değil

WHRoeder :
  1. Hesap Bakiyesi * yüzde = RİSK = (OrderOpenPrice - OrderStopLoss)*DIR * OrderLots * DeltaPerlot (Not OOP-OSL, SPREAD'i içerir)
  2. TickValue'u tek başına KULLANMAYIN - DeltaPerlot
  3. Stop out'tan kaçınmak için FreeMargin'i de kontrol etmelisiniz.

Tamam, amacınızı anlıyorum, işte mantığım ve hesaplamam RİSK yüzdesini nasıl hesaplayacağım


Hangisi MQL4 kodunda şöyle görünür:

 extern double MYSTOPLOSS = 50;  // CUSTOM SL SIZE IN PIPS AFTER THE STOPLEVEL
extern double RISK =2; // 2% ACCOUNT RISK

double LOT =( AccountEquity ()*RISK)/( 100 *( MarketInfo ( Symbol (), MODE_STOPLEVEL )+MYSTOPLOSS)* Point * 100000 );


Basit bir 1 astar, karmaşık bir şey değil, şimdi lütfen bahsettiğiniz DELTA şeylerini eklememe yardım edin, formülün tamamlanmadığını biliyorum, bu yüzden lütfen bana yardım edin. Ve lütfen hesabımın EURO cinsinden olduğunu unutmayın, bu nedenle çoğu durumda temel para birimi.

 
Bana yardım edin lütfen çabuk, bu projeyi Noel'den önce bitirmek istiyorum :)
 
Proximus : Lütfen çabuk yardım edin, bu projeyi Noel'den önce bitirmek istiyorum :)
  1. Planlama eksikliği
  2. şimdi lütfen şu DELTA malzemesini eklememe yardım et
    Sağlanan bağlantılara tıklama zahmetinde bulundunuz mu?
 
WHRoeder :

  1. şimdi lütfen şu DELTA malzemesini eklememe yardım et
    Sağlanan bağlantılara tıklama zahmetinde bulundunuz mu?

Evet yaptım ama bunu denklemime nasıl sığdırdığını anlamadım, buna ihtiyacın olduğunu söyledin:

   MarketInfo (pair, MODE_TICKVALUE )
           / MarketInfo (pair, MODE_TICKSIZE ) 
Ama bunun denklemime nasıl yardımcı olduğunu anlamıyorum, çünkü bu iki sayıyı bölmek tik boyutu yerine büyük bir sayı verecek...
 
Proximus :

Evet yaptım ama bunu denklemime nasıl sığdırdığını anlamadım, buna ihtiyacın olduğunu söyledin:

Ama bunun denklemime nasıl yardımcı olduğunu anlamıyorum, çünkü bu iki sayıyı bölmek tik boyutu yerine büyük bir sayı verecek...

Bu bağlantıyı deneyin: https://www.mql5.com/en/forum/148224 .

Belki farklı bir açıdan bakmak yardımcı olabilir.

 
ubzen :

Bu bağlantıyı deneyin: https://www.mql5.com/en/forum/148224 .

Belki farklı bir açıdan bakmak yardımcı olabilir.


WTF beyler, bunun TICKVALUE /TICKSIZE yerine TICKVALUE * TICKSIZE olması gerekmez mi? bence büyük bir hata var





Sadece ayrı değerler gösteren hızlı bir gösterge yaptım, sanırım TICKVALUE * TICKSIZE uygun olanı...


Ve demo hesabın EUR cinsinden olduğuna dikkat edin, bu temel para birimidir, aynı testi bir USD hesabıyla yaptım ve orada POINT, teklif para birimi değerini ölçtüğü için TICKVALUE * TICKSIZE'a eşdeğerdi.

Dosyalar:
 

Soruyu doğru anladıysam, bu sizin için işi yapacak.

 for ( i= 0 ; i<=ot; i++ ) for ( z= 0 ; z<= 10 ; z++ )
      {
         if ( long_orders_array_ATF[i][z] > 0 )
         for (zz= 0 ; zz<= 10 ; zz++)
         { 
             OrderSelect (zz, SELECT_BY_POS , MODE_TRADES );
             if ( OrderTicket ()==long_orders_array_ATF[i][z]) zz=ot+ 2 ; 
             if (ot+ 2 <=zz)  
            long_potencial_loss = ( OrderLots () * ( OrderOpenPrice () - OrderStopLoss ()))* 100000 ;
            long_sum_potencial_loss = long_sum_potencial_loss + long_potencial_loss;
         }
      }
...

lot_size = ((((free-long_sum_potencial_loss) * percent_depo)/ 100.0 )/pips)/ 100000 ; }