EA开发系列--订单处理

本文介绍了MT5平台中三种类型的订单——在途、挂单和历史订单的查询方法。每个订单类型的查询包括统计总数、选中订单和获取订单信息。在途订单通过统计方法获取持仓总数,挂单和历史订单则采用不同方法进行查询。通过选中订单号并调用特定方法,可以获取订单的各种属性信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MT5的订单分为:在途,挂单,历史三种类型的订单,他们对应不同的查询方法。每一种类型的订单信息查询都遵守一个固定的步骤:
1、统计特定种类的订单总数
2、循环每一个订单,这个步骤里需要选中某一个订单然后才有后续的动作
3、调用不同的获取订单属性方法获取订单信息

在途订单查询

在途订单统计

在途订单统计使用int OrdersTotal();方法进行统计,他返回当前持仓总数,它统计的是下图中的订单总数:
在这里插入图片描述

选中某一个订单

对于在途订单来说,根据顺序选中某张订单需要使用ulong OrderGetTicketint index); 来获取订单的订单号(TickId),最后调用bool OrderSelect(ulong ticket);来定位某一张订单。

获取订单信息

订单的信息包括字符型、整型、双精度类型三种属性。分别使用OrderGetStringOrderGetIntegerOrderGetDouble三个方法,在订单被选中的情况,这三个方法需要传入需要查询的属性值。

举例说明

这个例子说明说明的是匹配当前图表上产生的特定(MAGIC number)在途订单

    bool findMyActionOrder() {
   
        int orders_total = OrdersTotal();
        bool is_found = false;
        for(int action_order_index = 0; action_order_index < orders_total; 
        	action_order_index++) {
   
            ulong order_tick = OrderGetTicket(action_order_index);
            bool  is_success = getActionOrderInfo(order_tick);
            if(is_success == true) {
   
                if(m_order_magic == action_ORDER_MAGIC && 
                	StringCompare(m_symbol, action_ORDER_SYMBOL) == 0) {
   
                    is_found = true;
                    break;
                }
            }
        }
        return is_found;
    }
    bool getActionOrderInfo(ulong input_order_tick) {
   
        bool is_success = false;
        if(input_order_tick > 0) {
   
            bool select_result = OrderSelect(input_order_tick);
            if(select_result == true) {
   
                action_ORDER_COMMENT = OrderGetString(ORDER_COMMENT);//订单的注释
                action_ORDER_SYMBOL  = OrderGetString(ORDER_SYMBOL);//订单的Symbol
                action_ORDER_TICKET  = OrderGetInteger
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值