Mql4 dilinin özellikleri, incelikleri ve çalışma yöntemleri - sayfa 21

 
fxsaber :

Kar hesaplama.


Başvuru


Sonuç


Not: kryakozyabr'dan nasıl kurtulacağımı bilmiyorum (MT4 Experts sekmesinden kopyalanmıştır).

Terminali Rusçaya çevirin.
 
Artyom Trishkin :
Terminali Rusçaya çevirin.

Terminal ve içindeki her şey Rusça. Kopyalarken Kryakozyabra.

 
fxsaber :

Terminal ve içindeki her şey Rusça. Kopyalarken Kryakozyabra.

Rusça kopyalarken klavye düzeni şöyle olmalıdır.

 
Artyom Trishkin :

Rusça kopyalarken klavye düzeni şöyle olmalıdır.

Teşekkürler, işe yaradı.

 
Artyom Trishkin :

Rusça kopyalarken klavye düzeni şöyle olmalıdır.

Artyom, bu nasıl etkiler? bu bir böcek
 
Maxim Kuznetsov :
Artyom, bu nasıl etkiler? bu bir böcek

Burada ve mql4.com'da hatırladığım kadarıyla bu kadar.

 
Artyom Trishkin :

Burada ve mql4.com'da hatırladığım kadarıyla bu kadar.

yani bir ÖZELLİK haline geldi :-)

lanet olsun, giriş dili anahtarının durumu Kopyala-Yapıştır sonucunu nasıl etkileyebilir?

 
Yurij Kozhevnikov :
"Özellikler" içinde gereklidir. Birkaç yıl önce bunu öğrenmeyi reddetmezdim.
O ve burada - özelliklerde.
 
Artyom Trishkin :
O ve burada - özelliklerde.

sonra fark ettim :D

Bu yüzden sildi.

 
Risk hesaplama.
 // Вычисляет риск для заданной максимальной просадки.
double GetRisk( const double NewMaxDD, const double Alpha, const string Symb, const int Magic = - 1   )
{
   double RiskLeft = 0 ;
   double RiskRight = 10 ;
  
   double Risk, SumGain, MaxDD, RF;
    
   do
  {
    Risk = (RiskLeft + RiskRight) / 2 ;
        
     if (!GetSumGain(Risk, SumGain, MaxDD, RF, Symb, Magic)) // https://www.mql5.com/ru/forum/170953/page20#comment_13432058
    {
      MaxDD = DBL_MAX ;

      RiskRight = Risk;      
    }
     else if (MaxDD > NewMaxDD)
      RiskRight = Risk;
     else
      RiskLeft = Risk;
  }
   while (! IsStopped () && ( MathAbs (MaxDD - NewMaxDD) > Alpha));
  
   return (Risk);  
}


Başvuru.

 #property strict
#property show_inputs

input double inMaxDD = 0.3 ; // Для какой максимальной просадки вычислить риск?
input int MagicNumber = 1 ;

#define D(A) DoubleToString (A, 2 )

void OnStart ()
{
   double SumGain, MaxDD, RF;
  
   const double Risk = GetRisk(inMaxDD, 0.01 , _Symbol , MagicNumber) ;
  
   if (GetSumGain(Risk, SumGain, MaxDD, RF, _Symbol , MagicNumber))   
     Print (( string )MagicNumber + ": при риске " + D(Risk) +
                                 " увеличение было бы в " + D(SumGain) + " раза" +
                                 " с максимальной относительной просадкой по балансу " + D(MaxDD) + 
                                 ", фактор восстановления = " + D(RF));  
}


Sonuç

 1 : при риске 0.51 увеличение было бы в 3.82 раза с максимальной относительной просадкой по балансу 0.30 , фактор восстановления = 3.20