搜索订单的任务
总之,重点是:我正在寻找搜索订单的代码选项。
你想监测活跃的订单吗?
MQL4或MQL5?
你想监测活跃的订单吗?
基本上,要点如下,我正在寻找搜索订单的代码选项。
任务如下。
1 :
获得按价格和按订单类型(买入/卖出)排列的最大订单信息的最顶端
要获得按价格和订单类型(买入/卖出)的最低订单信息。
按时间和订单类型(买入/卖出)获取最后的订单信息
按时间和订单类型(买入/卖出)获取第一笔订单的信息。
2 :
获得有关最后但最大的价格和订单类型(买入/卖出)的信息
通过价格和订单类型(买入/卖出)获得最后但最低的订单信息(买入/卖出)。
按时间和订单类型(买入/卖出)获取最近但只有一个订单的信息。
获取第二个订单的时间和订单类型(买入/卖出)的信息。
该信息包括关于订单的所有信息(符号、手数、价格......)。
程序化编程方式早就解决了这个问题,现在我想简化它,做一个类,但我想不出什么有用的东西......。
是的,弗拉基米尔--这是一项伟大的任务!:-)
你能告诉我该去哪里吗?
只不过不是全部,而是按价格计算的最高/最低,按时间计算的第一和最后,各占2个,即最后和倒数第二...
这并不难,因为你是在制定命令。
因此,你会记得过去的两个 "买入 "和最后两个 "卖出"。
而且你不必去寻找任何东西。
struct MEM_ORDER { ulong ticket; long ord_type; double price; }; struct MEM_ORDERS { bool is_first_buy; bool is_first_sell; MEM_ORDER buy_oders[2]; MEM_ORDER sell_oders[2]; };
这并不难,因为你是在制定命令。
因此,你会记得过去的两个 "买入 "和最后两个 "卖出"。
而且你不必去寻找任何东西。
我想到了这样一个解决方案,但我不满意的是,当EA/终端被重新加载时,它被重新初始化,过去工作的所有数据将丢失。
我认为最可靠的工作方式是在EA工作时收集有关环境的数据。
我想到了这样一个解决方案,但我不满意的是,当EA/终端被重新加载时,它被重新使用,之前工作的所有数据将丢失。
我认为,一个可靠的操作方法是收集EA操作时的环境数据。
又是什么阻止了你在退出EA时将数据保存到文件中,而当你加载时,从文件中加载?
//| Expert Load setings function | //+------------------------------------------------------------------+ void LoadSettings() { string file_name = _Symbol + ".dat"; int file_handle; //--- if ( FileIsExist( file_name, 0 ) ) { file_handle = FileOpen( file_name, FILE_READ|FILE_BIN ); if ( file_handle != INVALID_HANDLE ) { e_high = FileReadLong( file_handle ); a_profit = FileReadLong( file_handle ); e_low = FileReadLong( file_handle ); ord_delta_high = FileReadLong( file_handle ); ord_delta_low = FileReadLong( file_handle ); order_delta = FileReadLong( file_handle ); exit_delta = FileReadLong( file_handle ); FileClose( file_handle ); } } } //+------------------------------------------------------------------+ //| Expert Save settings function | //+------------------------------------------------------------------+ void SaveSettings() { string file_name = _Symbol + ".dat"; int file_handle; bool file_found = true; //--- if ( FileIsExist( file_name, 0 ) ) { if ( FileDelete( file_name, 0 ) ) file_found = false; } else { file_found = false; } //--- if ( ! file_found ) { file_handle = FileOpen( file_name, FILE_WRITE|FILE_BIN ); if ( file_handle != INVALID_HANDLE ) { FileWriteLong( file_handle, e_high ); FileWriteLong( file_handle, a_profit ); FileWriteLong( file_handle, e_low ); FileWriteLong( file_handle, ord_delta_high ); FileWriteLong( file_handle, ord_delta_low ); FileWriteLong( file_handle, order_delta ); FileWriteLong( file_handle, exit_delta ); FileClose( file_handle ); } } }
是什么阻止你在离开EA时将数据保存到一个文件中,并在加载时从一个文件中加载?
这当然很好,但并不可靠,因为环境可能在重启期间发生变化。
在退出前关闭所有订单。
你仍然需要这样做。
在退出前关闭所有订单。
反正这也是一件乏味的事情。
意料之外的重新启动将导致麻烦...
我写了一个类...
意料之外的重启将导致麻烦...
我已经写了一个类...
不要让人笑....
如果发生了不可预见的事情,任何课程都无法拯救你!
如果windup或终端 "崩溃",那么EA将重新初始化。
我只是 "看看 "活跃的订单并关闭它们,因为对它们没有控制。
基本上,要点如下,我正在寻找搜索订单的代码选项。
任务如下。
1 :
获得按价格和按订单类型(买入/卖出)排列的最大订单信息的最顶端
要获得按价格和订单类型(买入/卖出)的最低订单信息。
按时间和订单类型(买入/卖出)获取最后的订单信息
按时间和订单类型(买入/卖出)获取第一笔订单的信息。
2 :
获得有关最后但最大的价格和订单类型(买入/卖出)的信息
通过价格和订单类型(买入/卖出)获得最后但最低的订单信息(买入/卖出)。
按时间和订单类型(买入/卖出)获取最近但只有一个订单的信息。
获取第二个订单的时间和订单类型(买入/卖出)的信息。
该信息包括关于订单的所有信息(符号、手数、价格......)。
程序化编程方式早就解决了这个问题,现在我想简化它,做一个类,但我想不出什么有用的东西......。