mql4 언어의 기능, 미묘함 및 작업 방법 - 페이지 21

 
fxsaber :

이익 계산.


애플리케이션


결과


추신: kryakozyabr을 제거하는 방법을 모르겠습니다(MT4 전문가 탭에서 복사).

터미널을 러시아어로 전환하십시오.
 
Artyom Trishkin :
터미널을 러시아어로 전환하십시오.

터미널과 그 안에 있는 모든 것은 러시아어로 되어 있습니다. 복사시 Kryakozyabra.

 
fxsaber :

터미널과 그 안에 있는 모든 것은 러시아어로 되어 있습니다. 복사시 Kryakozyabra.

러시아어로 복사할 때의 키보드 레이아웃은 다음과 같아야 합니다.

 
Artyom Trishkin :

러시아어로 복사할 때의 키보드 레이아웃은 다음과 같아야 합니다.

덕분에 효과가 있었습니다.

 
Artyom Trishkin :

러시아어로 복사할 때의 키보드 레이아웃은 다음과 같아야 합니다.

Artyom, 이것이 어떻게 영향을 미칠 수 있습니까? 버그야
 
Maxim Kuznetsov :
Artyom, 이것이 어떤 영향을 미칠 수 있습니까? 버그야

이것이 내가 여기와 mql4.com에서 얼마나 많이 기억하고 있는지입니다.

 
Artyom Trishkin :

이것이 내가 여기와 mql4.com에서 얼마나 많이 기억하고 있는지입니다.

즉, FEATURE가 되었습니다 :-)

글쎄, 젠장, 입력 언어 스위치의 상태가 복사-붙여넣기의 결과에 어떻게 영향을 미칠 수 있습니까?

 
Yurij Kozhevnikov :
"기능"에 있습니다. 나는 몇 년 전에 그것에 대해 알기를 거부하지 않았을 것입니다.
기능이 여기에 있습니다.
 
Artyom Trishkin :
기능이 여기에 있습니다.

그러다 깨달았어요 :D

그래서 그는 그것을 삭제했습니다.

 
위험 계산.
 // Вычисляет риск для заданной максимальной просадки.
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);  
}


애플리케이션.

 #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));  
}


결과

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