MQL5で学び、共に書く - ページ 12

 
EAでグローバル変数を 宣言してテストした場合、ターミナルの/Service/ -> /Global Variables/にグローバル変数が表示されないのですが?
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Основы языка / Переменные / Глобальные переменные - Документация по MQL5
 

m_a_sim:
Когда объявляются глобальные переменные в советнике, а потом он тестируется, то глобальные переменные не появляются в /Сервис/ -> /Глобальные переменные/ терминала?

ご質問の中に、「グローバル変数」のセクションへの直接のリンクがあります。このセクションの注釈を参照してください。
 
Yedelkin:
ご質問の中に、「グローバル変数」のセクションへの直接のリンクがあります。この項の「注」を見てください。
ローカルではなくグローバルに宣言されたグローバル変数への参照があり、GlobalVariableSet()変数を意味します。
 
誰か、リスクに依存するロットを計算する良いコードを教えてください。つまり、あるロットで決済すると、残高の5%が失われます(例)。5%がリスク
 

m_a_sim:
там сылка на глобальные переменные, которые объявлены глобально, т.е. не локально, а я имею ввиду переменные  GlobalVariableSet()

残念ながら、EA内でGlobalVariableSet()変数が宣言されている場合については、何とも言えません。
 
m_a_sim:
あなたは、与えられたロットのLに閉じるとき、リスク、すなわちに依存するロットを計算するための有能なコードを与えることができればバランスの(例えば)5%を失うことになる。5%がリスクです。

このような疑問は、フォーラムでも何度か提起されています。私の記憶が正しければ、春にこのスレッドで解決策の1つが提案されました。

 
Yedelkin:

この質問は、フォーラムで何度か提起されています。検索エンジンで調べてみてください。記憶が正しければ、春にはこのスレッドで解決策のひとつが提案されていた。

必要なコードを見つけたのですが、mql4用なので、誰かmql5用に修正するのを手伝ってくれませんか?

extern double ExtMaximumRisk=0.05;             // 5% by default
 
//--- calculate current volume
double CalculateVolume()
  {
   double lot_min =MarketInfo(Symbol(),MODE_MINLOT);
   double lot_max =MarketInfo(Symbol(),MODE_MAXLOT);
   double lot_step=MarketInfo(Symbol(),MODE_LOTSTEP);
   double contract=MarketInfo(Symbol(),MODE_LOTSIZE);
   double vol;
//--- check data
   if(lot_min<0 || lot_max<=0.0 || lot_step<=0.0) 
     {
      Print("CalculateVolume: invalid MarketInfo() results [",lot_min,",",lot_max,",",lot_step,"]");
      return(0);
     }
   if(AccountLeverage()<=0)
     {
      Print("CalculateVolume: invalid AccountLeverage() [",AccountLeverage(),"]");
      return(0);
     }
//--- basic formula
   vol=NormalizeDouble(AccountFreeMargin()*ExtMaximumRisk*AccountLeverage()/contract,2);
//--- additional calculation
//   ...
//--- check min, max and step
   vol=NormalizeDouble(vol/lot_step,0)*lot_step;
   if(vol<lot_min) vol=lot_min;
   if(vol>lot_max) vol=lot_max;
//---
   return(vol);
  }
 
m_a_sim:

はい、私は必要なコードを見つけましたが、それはmql4であり、誰かがそれをmql5に変更するために私を助けることができますか?

いいえ。mql5.comのサイトでは、すべてのコードがMQL5でデザインされています。
 
Yedelkin:
いいえ、mql5.comでは、すべてのコードがMQL5で設計されています。
かんけいない
 
m_a_sim:
そういう話ではないんです。

不思議ですね。MQL5用のコードが必要ですが、すでにウェブサイトに掲載されているはずです。調べるだけでいいんです。まさにその通りです。

しかし、それはあなた次第です。