新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1514

 
我设置了线条,看看EA将在哪里工作,用下单和修改订单的条件替换了线条,EA工作了。说实话,我很高兴它成功了。这是我第一个独立的EA。我明白了为什么测试员只设置了一条线 ))
 
Alexey Viktorov:

检查MA交叉,不是在1和2条,而是在3和4条。而如果有交叉,请检查1和2栏的AO值。

谢谢你。我将继续努力。
 

我还有一个头疼的问题--解释一下如何编写选择 矩形标签对象 的KEY_TILDE键,以便可以选择并移动到图表的另一个地方,我想不出来。我附上了Fork Neo指标的截图和一个例子。 我已经理解了鼠标,但我找不到任何关于键的分配。

int OnInit()
  {
RectLabelCreate(0,"RectLabel",0,10,200,149,143,C'55,55,55',BORDER_SUNKEN,CORNER_LEFT_LOWER,C'55,55,55',STYLE_SOLID,1,false,false,true,0);

   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,         // идентификатор события
                  const long& lparam,   // параметр события типа long
                  const double& dparam, // параметр события типа double
                  const string& sparam) // параметр события типа string
  {

    if(id==CHARTEVENT_KEYDOWN)
     {
      switch(int(lparam))
        {
         case KEY_TILDE:
            Print("Нажата KEY_TILDE");
            break;
        }
        ChartRedraw(); 
     }

  }
附加的文件:
01.jpg  8 kb
02.jpg  3 kb
 
DYM:

我还有一个头疼的问题--解释一下如何编写选择 矩形标签对象 的KEY_TILDE键,以便可以选择并移动到图表的另一个地方,我想不出来。我附上了一张截图,底部有一个关于Fork Neo指标的例子。 我已经理解了鼠标,但我不能使用按键。

    if(id==CHARTEVENT_KEYDOWN)
     {
      switch(int(lparam))
        {
         case KEY_TILDE:
         ObjectSetInteger(0,"RectLabel",OBJPROP_SELECTABLE,true); 
         Print("Нажата KEY_TILDE");
         break;
        }
        ChartRedraw(); 
     }
 
MakarFX:
非常感谢你的提示。我意识到我需要使用分辨率和选择,但我不知道如何应用它。再次感谢。
 
同事们,我现在处于一个奇怪的情况。它在测试器中运行良好,它被设置为当随机订单被添加到图表中时立即打开。这对英镑兑美元来说是最佳选择。然而,它不会在演示中打开订单。我的价差很大,没有错误,但是,同样的,订单在24小时内没有打开,但是我在同一天内使用测试器中下载的点子进行了良好的交易。MetaTrader的所有设置都是正常的,面孔是微笑的,与经纪人服务器的连接也是正常的。我必须看看代码有什么问题。虽然,这段代码不需要任何诱因,参数通过其条件跳过开仓订单而有效。我很不解。
附加的文件:
BlackJack.mq4  47 kb
 
Порт-моне тв:
亲爱的同事们,我已经完成了我的专家顾问。它在策略测试器中运行良好,但其配置方式是,当它被添加到图表中时立即打开一个随机订单。这对英镑兑美元来说是最佳选择。然而,它不会在演示中打开订单。我的价差很大,没有错误,但是,同样的,订单在24小时内没有打开,但是我在同一天内使用测试器中下载的点子进行了良好的交易。MetaTrader的所有设置都是正常的,面孔是微笑的,与经纪人服务器的连接也是正常的。我必须看看代码有什么问题。虽然,这段代码不需要任何诱因,参数通过其条件跳过开仓订单而有效。我很不解。

有很多的瓶颈。代码写得很差--数据处理极其草率。需要重构

 
Nikita Chernyshov:

有很多的瓶颈。代码写得很差--数据处理极其草率。它需要重构。

你的抽象评价并没有揭示出原因。

 
Порт-моне тв:

什么他妈的瓶颈......什么@@#$重构

这段代码是 "为我心爱的自己,为啤酒,当我记得它时 "而写的 :-)

说实话--我下载了它,斜着看了看,我不明白......

----

任何代码都有记录/注释,以防个人职业突然失忆。这时你就会忘记一切,除了编程语言。

没有人会去解析一个以未知方式实现的未知算法。至少是免费的。为了钱,他们就会重写。

你是他们中的一员。休息两三个月后,你将不记得OnTick中为什么有这么多的变量,以及它们的用途。

 
Maxim Kuznetsov:

什么他妈的瓶颈......什么@@#$重构

这段代码是 "为我心爱的自己,为啤酒,当我记得它时 "而写的 :-)

说实话--我下载了它,斜着看了看,我不明白......

----

任何代码都有记录/注释,以防个人职业突然失忆。这时你就会忘记一切,除了编程语言。

没有人会去解析一个以未知方式实现的未知算法。至少是免费的。为了钱,他们就会重写。

你是他们中的一员。在休息了两三个月后,你将不记得为什么OnTick中有这么多的变量,以及你想从这些变量中读出什么。

那里有很多不必要的东西,用来测试比方说不同的功能。它不应该干扰,而且在其他EA中也没有干扰,它们只是在工作。我怀疑我在错误的地方放了一个括号或其他东西。
原因: