[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 172

 
100yan:
它要求的是一个整数值,但数组也可以被声明为一个变量?

你知道什么是变量吗? 它是内存中的一个单元,可以被改变。int是变量的一种类型。

https://book.mql4.com/ru/basics/vars

https://book.mql4.com/ru/basics/types

 
为了测试MT4中历史数据的交易系统,我需要加载一个报价档案,选择感兴趣的货币对,选择所有的时间段,包括分钟的时间段,并加载它。在测试过程中没有图表不匹配,但有一个问题严重影响了测试 和优化的结果。例如,在H1图表中,在2010年5月7日的蜡烛之后,有一个2010年7月8日的蜡烛,也就是说有一个月的差距。反复下载报价档案并不能解决这个问题。我的硬盘上有足够的自由空间来下载这些报价。

问题是:我怎样才能正确下载所有没有时间间隔的报价到MT4?
 
polsvv:

你能告诉我日志中的这些废话是什么意思吗?我怎样才能避免它呢?专家顾问用这个指标进行交易,出错后交易冻结,直到你重新启动终端,因为重新启动专家顾问可能再次崩溃。

22:39:53 +ZigZag_Levels CLJ1,M5: uninit reason 3
22:39:53 Zigzag CLJ1,M5: uninit reason 1

22:39:53 Zigzag CLJ1,M5: 已删除

也许是因为我同时在远程服务器和自己的电脑上使用终端?

https://docs.mql4.com/ru/constants/uninit,检查去初始化的原因,看起来你是在EA运行时改变了周期/符号图,因此出现了崩溃。
 
wizmon:
问题:如何在MT4中正确下载所有的报价而没有任何时间间隔?

+ 在上传之前(如果你有这样的漏洞),建议删除现有的历史记录

+ 在设置中设置历史深度,至少10000000条。

+ 加载历史记录后,你需要再次点击 "加载 "按钮,并确认重新计算所有TFs。

 
polsvv:

专家使用该指标进行交易,出现错误后,交易停止

可能是一个循环的代码。
 
polsvv:

你能告诉我日志中的这些废话是什么意思吗?我怎样才能避免它呢?专家顾问用这个指标进行交易,出错后交易冻结,直到你重新启动终端,因为重新启动专家顾问可能再次崩溃。

22:39:53 +ZigZag_Levels CLJ1,M5: uninit reason 3
22:39:53 Zigzag CLJ1,M5: uninit reason 1

22:39:53 Zigzag CLJ1,M5: 已删除

也许是因为我同时在远程服务器和我的电脑上使用终端?

我不认为代码是循环的。Uninit原因1或3到底是什么意思?你有解码器吗?

EA已经正常交易了2天。

我想再次重复关于终端的问题。

如果我在远程服务器 上有一个带有EA的终端,并在我的PC上运行同一个终端,我就在上面做我的生意。我对它们进行优化,等等。我想提醒的是,该EA不在主终端的交易工具窗口中,因为它是在我的(远程)电脑上本地运行,而不是在经纪人的服务器上。

那么,如果EA在一个终端运行,同时运行2次,会不会失败?

 
polsvv:

我不认为这段代码是循环的。未被识别的原因1或3到底是什么意思?是否有解码的方法?

请看我上面的回答
 
polsvv:

我不认为这段代码是循环的。未被识别的原因1或3到底是什么意思?是否有解码?


REASON_REMOVE1该程序从图表中删除
原因_图表变化3图表符号或周期已被改变
 
alsu:
https://docs.mql4.com/ru/constants/uninit,检查去初始化的原因,看起来你是在EA运行时改变了周期/符号图,因此出现了崩溃。
是的,显然这就是原因。谢谢你的提示!
 

你好。

拆开并修改拉盖尔指标,只是效果不是很好。请帮助解决代码的问题。

最后Laguerre开始了它的代码。

i=CountBars-1;
   while(i>=0)
   {
      L0A = L0;
      L1A = L1;
      L2A = L2;
      L3A = L3;
      L0 = (1 - gamma)*Close[i] + gamma*L0A;
      L1 = - gamma *L0 + L0A + gamma *L1A;
      L2 = - gamma *L1 + L1A + gamma *L2A;
      L3 = - gamma *L2 + L2A + gamma *L3A;

      CU = 0;
      CD = 0;
      
      if (L0 >= L1) CU = L0 - L1; else CD = L1 - L0;
      if (L1 >= L2) CU = CU + L1 - L2; else CD = CD + L2 - L1;
      if (L2 >= L3) CU = CU + L2 - L3; else CD = CD + L3 - L2;

      if (CU + CD != 0) LRSI = CU / (CU + CD);
      val1[i] = LRSI;
          i--;
        }
for(int a=0; a<Bars; a++ )
{if(LRSI[i]>0.45)
   LastLag++;
  
  }
 

根据我的理解,指标线 本身被称为LRSI。

所以我不能给它分配一个计数器的值。例如,当直线向上越过0.45时,LastLag被加一。

到目前为止,唯一的问题是分配一个计数器的值。我可以以后再写整个想法。谢谢你。

附加的文件:
laguerre.mq4  4 kb