莫兰斯的错误有谁知道? - 页 4

 
WHRoeder:

你甚至懒得 你发布的链接(https://book.mql4.com/variables/types),它说 "全局变量在说明 执行特殊功能之前只初始化一次 "。

全局变量和静态变量是在加载EA的时候设置的,而不是在deinit/init循环中设置的。

在Slippage = Slippage * 10之后添加一个打印语句,并运行它,改变图表或时间框架,如果你不想相信我们的文档,可以看看日志。

Slippage是extern int,它的值在每次init()时都被初始化。

PipMultiplier是Global int,在整个Molanis EA中这个值不会改变,所以PipMultiplier 的值在改变TF或Symbol或打开EA属性时不会改变。

EA一次又一次地按下F7

extern int Extern=3;

int Intern = 1;
bool Do_Once;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
  Alert ("Extern init = ",Extern);
  Alert ("Intern init = ",Intern);
  Do_Once = False;
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit(){return(0);}
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
   
   if (Do_Once == false)
      {
      Do_Once = true;
      Extern = Extern*2;
      Intern = Intern*2;
      Alert ("Extern start = ",Extern);
      Alert ("Intern start = ",Intern);
      }
   
   return(0);
  }
//+------------------------------------------------------------------+
 
onewithzachy:

Slippage是extern int,它的值在每次init()时被初始化。

PipMultiplier是Global int,在整个Molanis EA中,这个值不会改变,所以PipMultiplier 的值在改变TF或Symbol或打开EA属性时不会改变。

EA一次又一次地按下F7


你的EA是否证明了代码是按预期工作的?如果我没有理解错的话,每次init()时Slippage都会恢复到我的输入值。在globals中PipMultiplier = 1,但在init()中,如果FiveDigits = true,那么PipMultiplier = 10...在每次init()中。鉴于Slippage = 3和FiveDigits = true,PipMultiplier总是等于10?30点,30点,30点?
 
RJo:

你的EA是否证明了该代码按预期工作?如果我没有理解错的话,每次init()时Slippage都会恢复到我的输入值。在globals中PipMultiplier = 1,但在init()中如果FiveDigits = true,那么PipMultiplier = 10...在每次init()中。鉴于Slippage = 3和FiveDigits = true,PipMultiplier总是等于10?30点,30点,30点?

在Molanis的代码中,PipMultiplier 的值是不变的,它永远不会改变,不管它是不是五位数--不用担心。我想你需要知道的是 Slippage 的值 --我在回复WHRoeder之前已经检查过 了,它没有变化。

在init()上修改这个,附上Molanis的EA,想按多少次F7就按多少次,Slippage 的值 保持不变。

   //if(FiveDigits)
   //  {
      PipMultiplier=10;
   //  }
   Slippage=Slippage*PipMultiplier;
   Alert ("Slippage ",Slippage);

:D

 
onewithzachy:

在Molanis的代码中,PipMultiplier 的值是不变的,它永远不会改变,不管它是不是五位数--不用担心。我想你需要知道的是 Slippage 的值 --我在回复WHRoeder之前已经检查过了,它没有变化。

在init()上修改这个,附上Molanis的EA,想按多少次F7就按多少次,Slippage 的值 保持不变。

:D


谢谢你,onewithzachy,你结束了我的疯狂追逐。
 

你好......需要帮助,我想为MT4 ECN账户建立一个双叉移动平均线的EA

第一个MA周期14点移位-7

第2个MA期14点移位-11

买入和卖出并关闭每个移动平均线的交叉点。

我在网上看了很多说明,但我仍然对建立我自己的EA感到困惑,因为它具有完整的设置和成功的买/卖和关闭功能。

我请求 那些专业人员的帮助,我怎样才能设置这个EA的正确设置。

任何一个人都可以帮助我一步一步地。我将感激不尽。