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

 
Valeriy Yastremskiy #:

我有点不明白这个逻辑。对几个符号的开仓、修改SL、平仓等事件进行监控。开仓--搜索给定符号的窗口是否打开(寻找窗口ID),如果打开了,我们就画出水平线,然后监测SL的拖网。如果没有,我们要么用所需的符号和时间框架打开一个窗口并绘制水平线,要么不打开。修改的事件,找到所需的符号窗口,关卡已经画好,改变关卡颜色或删除它,重新画关卡。

一般来说,为了排除客户的影响,在工作开始时,我们应该分析仓位和窗口,对有开仓的符号和没有开仓的窗口进行分析。

在这一切中,重要的是一个正常工作的拖网算法,也就是交易操作本身。

绘图是在后台,它是信息性的,与系统的盈利能力无关。

因此,如果有一个位置,但图表是关闭的,而且它没有自己关闭,就不需要打开任何东西,拖网算法将发挥作用,停止将被移过去。更糟糕的情况是,明明关闭了图表,但程序又打开了它,简直是为了绘制图表--这已经很糟糕了。

 

同事--导出了一个优化缓存文件到云端,我如何在另一台电脑上使用它来选择一个变体进行竞价?


答案是。

如果有人需要它--在这里


Оптимизация стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Оптимизация стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии ( советники ) перед началом использования их в реальной торговле. При...
 
Vitaly Muzichenko #:

所有这些中重要的是一个正常工作的拖网算法,也就是交易本身。

绘图是在后台,它是信息性的,与系统的盈利能力无关。

因此,如果有一个位置,但图表是关闭的,而且它没有自己关闭,就不需要打开任何东西,拖网算法将发挥作用,停止将被移过去。更糟糕的是,当图表被关闭后,程序又按字面意思打开以绘制图表--这很糟糕。

我们也可以这样做。但在这种情况下,如果有一个基于事件的开放式图表,就可以画出来。一般来说,我们可以每次都重新绘制水平,以避免混淆。我们有这方面的所有数据。拖网的触发水平,拖网步骤,位置价格。该职位的级别数和被触发的级别数很容易计算。

 
Valeriy Yastremskiy #:

这也是可能的。但是,如果有一个开放的图表,我们就会画出这个事件。一般来说,每次都可以重新绘制水平,以避免混乱。我们有这方面的所有数据。拖网的触发水平,拖网步骤,位置价格。一个职位的级别数和被触发的级别数很容易计算。

我想说的是,如果有一个位置,我们应该提前画出将触发拖网的水平。如果出现了一个额外的位置,重新画线到新的水平也是向前。

我不认为在通过/修改后改变颜色有什么意义。平仓后可以删除所有线路。

例子上显示了它应该是怎样的

将要开仓的对象在这里被画出来,它只是提供信息,仅此而已。


---

P.S. 目前我还不能做数学题,很遗憾

 

关于OnTimer的问题

如果定时器事件在程序执行 前发生,它将等待(程序将跳过定时器事件),还是程序将中止,并开始处理新的定时器事件?它是无休止的循环,还是每秒钟都在循环?

int OnInit()
{
 EventSetTimer(1);
      
    }
//---
  return(INIT_SUCCEEDED);
}

void OnTimer()
{
  
  int i=0;
  while(i<1) {
   
  }
}

文档中没有直接说明定时器事件的优先级和程序的进程,只说明了事件的顺序。

或者,也许我理解得不对。开始行动的定时器事件算不算在队列中?

码头。

事件SetTimer

每个程序不能启动一个以上的定时器事件。每个mql4程序和每个图形都有自己的事件队列,所有新到达的事件都被储存在这里。如果队列中已经有一个Timer 事件,或者该事件处于处理状态,一个新的Timer事件就不会被放入mql4-program队列中。


 
Valeriy Yastremskiy 程序执行 前发生,它将等待(程序将跳过定时器事件),还是程序将中止,并开始处理新的定时器事件?它是无休止的循环,还是每秒钟都在循环?

文档中没有直接说明定时器事件的优先级和程序的进程,只说明了事件的顺序。

或者,也许我理解得不对。开始行动的定时器事件算不算在队列中?

码头。

事件SetTimer

每个程序不能启动一个以上的定时器事件。每个mql4程序和每个图形都有自己的事件队列,所有新到达的事件都被存储在这里。如果Timer 队列中已经有一个事件,或者这个事件处于处理状态,那么一个新的Timer事件就不会被放入mql4-程序的队列中。


这些事件不是时间。它们在OnXXX中被逐一处理,没有中断任何功能。

在OnInit终止之前,没有其他的OnTimer处理程序OnTick将被终端调用。(除非你自己把它作为一种功能来拽)。

 
Maxim Kuznetsov #:

活动不是中断。它们在OnXXX中被逐一处理,不会中断文本功能。

在OnInit终止之前,终端不会调用其他OnTimer OnTick处理程序。(除非你自己把它作为一种功能来拽)。

谢谢你)

 
Vitaly Muzichenko #:

在这一切中,最重要的是一个正常工作的拖网算法,也就是交易本身。

绘图是在后台,它是信息性的,与系统的盈利能力无关。

因此,如果有一个位置,但图表是关闭的,而且它没有自己关闭,就不需要打开任何东西,拖网算法将发挥作用,停止将被移过去。更糟糕的是,当一个图表被关闭后,程序又按字面意思打开了它来绘制图表--这就很糟糕。

我的上帝--为什么你被送去洗车了?你是否写错了地方,写错了变量:Z或V...?

 
你好!如果有人不嫌麻烦,请写或帮我写一个MT4 EA的功能。我的想法是,如果我手动改变一个未结头寸或一个市场订单,EA将发送一个信息到电子邮件。例如:我移动了一个未平仓的限价订单的止损,EA会写一封邮件,说该订单的止损已经从某某改为某某。
 
Vitaly Muzichenko #:


看起来它应该可以工作。还没有测试过。

绘图逻辑。我不控制水平,我再次画出价格,如果是买入,我画成灰色,上面是蓝色,如果是卖出,如果高于价格水平,它是灰色,下面是红色。

是的,我忘了设置水平删除)))。

附加的文件:
原因: