在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%是风险。

这样的问题在论坛上已经提出过几次。如果我没有记错的话,其中一个解决方案是在春天的这个主题中提出的。

 
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的代码,这应该已经在网站上了。你所要做的就是查一查。这正是我所说的。

然而,这取决于你。