1182285566 2023-11-30 14:17 采纳率: 0%
浏览 11

MT4里EA在策略测试中可视化图形按钮如何实现下单?

MT4里EA在策略测试中可视化图形按钮如何实现下单?

写了个EA交易面板,在实际交易中OnCHartEvent () 可以直接实现按钮功能下单。但在复盘模式下按钮无反应,请问如何才能实现在复盘模式下的按钮下单功能?据查在复盘模式下是不会执行传递图形事件。但看到别人做的面板却可以在复盘模式下下单。

  • 写回答

2条回答 默认 最新

  • 梦回阑珊 2023-11-30 15:12
    关注

    回复不易,麻烦关注下博主,后面还有问题直接私信我,谢谢!!!

    在MetaTrader 4(MT4)中,确实存在在策略测试模式下,通过OnChartEvent()处理按钮点击事件可能无法触发的问题。在策略测试模式下,MT4不会模拟图形事件,因此如果你的按钮点击是基于图形事件触发的,那么在策略测试模式下可能无法正常工作。

    为了在策略测试模式下实现按钮下单功能,你可以使用OnChartEvent()之外的其他方法。下面是一种可能的解决方案:

    使用键盘事件或其他事件触发下单: 在策略测试模式下,你可以使用键盘事件或其他事件来触发下单。例如,你可以使用OnTimer()事件,定期检查某个条件并执行下单。

    // 定时器事件
    void OnTimer()
    {
        // 检查某个条件
        if (ShouldPlaceOrder())
        {
            // 执行下单操作
            PlaceOrder();
        }
    }
    
    // 判断是否应该下单的条件
    bool ShouldPlaceOrder()
    {
        // 在这里添加逻辑判断
        return true;
    }
    
    // 执行下单操作
    void PlaceOrder()
    {
        // 在这里添加下单的代码
    }
    
    
    

    使用OnTick()事件模拟实时行情下单: 在策略测试模式下,MT4会模拟实时行情,因此你可以使用OnTick()事件来模拟实时行情下单。

    // OnTick事件
    void OnTick()
    {
        // 在这里模拟实时行情
        // 检查某个条件
        if (ShouldPlaceOrder())
        {
            // 执行下单操作
            PlaceOrder();
        }
    }
    
    // 判断是否应该下单的条件
    bool ShouldPlaceOrder()
    {
        // 在这里添加逻辑判断
        return true;
    }
    
    // 执行下单操作
    void PlaceOrder()
    {
        // 在这里添加下单的代码
    }
    
    
    

    请注意,以上代码中的ShouldPlaceOrder()函数是一个示例,你需要根据你的具体策略和需求进行逻辑编写。确保在使用模拟事件触发下单时,你的逻辑是合理且符合你的交易策略的。

    评论

报告相同问题?

问题事件

  • 创建了问题 11月30日