请观看如何免费下载自动交易
请在Twitter上找到我们!
加入我们粉丝页
有趣的脚本?
因此发布一个链接 -
让其他人评价
喜欢这个脚本? 在MetaTrader 5客户端尝试它
显示:
5781
等级:
(131)
已发布:
2016.12.27 12:07
已更新:
2021.06.03 13:47
\MQL5\Experts\ \MQL5\Include\
MT4Orders.mqh (220.2 KB) 预览
\MQL5\Scripts\
MQL5自由职业者 需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务

本开发库允许在MQL5(MT5-对冲)中像在MQL4中一样处理订单,

也就是说,订单的语言系统(OLS)变得和 MQL4 一样了。同时,还可以同时使用MQL5的订单系统,特别是标准的 MQL5 库还能完整运行。

没有必要在订单系统中作选择,直接同时使用它们!当翻译 MQL4 -> MQL5 时, 根本不需要触及订单系统,

只要在开始加上一行就足够了:

#include <MT4Orders.mqh> // 如果有 #include <Trade/Trade.mqh>, 把这一行加到后面

在MQL5代码中是一样的做法(加入一行),就可以把MT4 OLS加入到 MT5 OLS中,或者完全替换它。

作者已经为自己创建了这个功能,他只是没有把“一行”的概念应用到时间序列,图形对象,指标,等等。

这项工作只能涵盖订单系统。

创建一个完整的开发库,使得MQL4的代码可以不经改变就运用于 MetaTrader 5中的任务还没有考虑。

作为实例,使用了多个不同类型的 MT4/5 EA交易 (来自代码库): 剥头皮,新闻交易,多币别EA交易,等等。

这里(同时使用 MT4 和 MT5 OLS)就是它们如何在 MT5 测试器 (或者模拟器)中使用的:

// MQL4&5-代码

#define OnTick MTstart
#define start  MTstart

#ifdef __MQL5__

// 选择所需的 MT5 EA
// #include "Lucky.mq5"               // https://www.mql5.com/zh/code/1107
// #include "Puria.mq5"               // https://www.mql5.com/zh/code/138
// #include "Ilan_1_6_Dynamic_HT.mq5" // https://www.mql5.com/zh/code/12220
// #include "Multik.mq5"              // https://www.mql5.com/zh/code/158
// #include "VLT_Trader.mq5"          // https://www.mql5.com/zh/code/1163
// #include "Exp_PFE_Extr.mq5"        // https://www.mql5.com/zh/code/16044

#endif // __MQL5__

#include <MT4Orders.mqh> // 如果有 #include <Trade/Trade.mqh>, 把这一行加到后面

#include <MQL4_to_MQL5.mqh> // 只用于本例

// 选择所需的 MT4 EA
// #include "Lucky.mq4"          // https://www.mql5.com/zh/code/7464
// #include "E-news-lucky6.mq4"  // https://www.mql5.com/zh/code/7672
// #include "cm_ea_news.mq4"     // https://www.mql5.com/zh/code/10511
// #include "Spreader_v2.mq4"    // https://www.mql5.com/zh/code/14500
#include "Ilan1_4_strict.mq4" // #property strict (MQL5), original - https://www.mql5.com/zh/code/8492

#include "OrdersToString.mqh"

#undef OnTick

void OnTick( void )
{
  ::MTstart();

  if (MQLInfoInteger(MQL_VISUAL_MODE))
    Comment("交易:" + OrdersToString() + "\历史:" + OrdersToString(MODE_HISTORY)); // 可以在测试器的可视模式下看到

  return;
}

如果之前可以在 MetaTrader 4测试器中使用真实订单时刻测试 MT4 EA交易,现在 MT5 有了多币种的功能,也就是说,多币种的 MT4 EA交易现在可以直接在测试器中测试了!

另一个例子是一个统计脚本, 从多个 MT4 实例中收集:

// MQL4&5-代码

#include <MT4Orders.mqh> // 如果有 #include <Trade/Trade.mqh>, 把这一行加到后面

#include <MQL4_to_MQL5.mqh> // 只用于本例

#ifdef __MQL5__
  #property script_show_inputs

  void OnStart( void )
  {
    ::OnStartScript();  // TradingSystemRating_Script_Ad.mq4

    ::WriteDealsInfo(); // b-SharingDoW.mqh

    // Report_strict.mq4
    ::init();
    ::start();
    ::deinit();

    MessageBox("在 MQL5\\Files 中查找");

    return;
  }
#endif // __MQL5__

#define OnStart OnStartScript

#include "TradingSystemRating_Script_Ad.mq4" // https://www.mql5.com/en/code/12040

#include <b-SharingDoW.mqh> // https://www.mql5.com/zh/code/8090
sinput int MAGIC = 0;       // 用于评估订单的幻数 (b-SharingDoW.mqh)

// 忽略警告 - 脚本是 2006 年写的...
#define i ii // 避免警告部分
#include "Report_strict.mq4" // #property strict (MQL5), original - https://www.mql5.com/zh/code/8126

由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/16006

i-CAiChannel i-CAiChannel

使用 i-CAi 指标算法的轨道线(Envelopes)指标。

i-CAi_Digit i-CAi_Digit

i-CAi 指标以最新的价格标签的形式根据所需的小数位数计算可能的通道的水平。

i-CAiChannel_System_Digit i-CAiChannel_System_Digit

本指标使用 i-CAiChannel 通道实现了一个突破系统。

Exp_i-CAi_StDev Exp_i-CAi_StDev

基于 i-CAi_StDev 指标信号的交易系统。