程序库: 虚拟 - 页 7

 
EgorKim #:

是否有可能将 mt5 EA 转移到虚拟交易环境?

以 MT4 风格重写订单系统。这样它就能在虚拟环境中自动运行了。

这是一个指标专家顾问。它只能在 MT5-Tester 和实时中的虚拟系统中运行。

 
fxsaber #:
以 MT4 风格重写订单系统。这样它就能在虚拟系统中自动运行。

这就是问题所在。

当你在mt5上编写并研究和重写mt4的EA时,效果并不是很好。

您计划增加功能并支持 mt5 EA 吗?

fxsaber#:
这是一个指标 EA。它只能在 MT5-Tester 和实时中虚拟运行。

实时库?也就是说,是否可以像在测试版中一样在自定义符号上进行虚拟交易?

 
EgorKim #:

当您在 mt5 上编写并研究和重写 mt4 上的 EA 时,因为它不是很好。

我不知道为什么他们通过 Trade.mqh 为 MT5 编写,而不研究替代方案的问题。

您不打算只为 MT5 EA 增加功能和支持吗?

不,我不会写我不会用的东西。

实时库?也就是说,是否可以像测试版那样在自定义符号上进行虚拟交易?

在 kodobaza 发布的测试器中,在自定义符号上进行交易时,可以根据需要回溯时间并实时更改刻度。

 
fxsaber #:
在 kodobase 中发布了一个测试器,该测试器以自定义符号进行交易,可以随心所欲地回到过去并实时更改刻度。
连接的 MT4 风格专家顾问

同样的问题再次出现 (

 
我希望压缩包中的文件可以更新。
 
void OnTickMulti( const string &Symb, const int &Index ) {
    _VSP(virtualEnvAry[Index]); // 选择虚拟交易环境
    MqlTick ticks[1];
    if (SymbolInfoTick(Symb, ticks[0])) break;
    VIRTUAL::NewTickMulti(ticks, hedge.MyOnTick);
}

// void Hedge::MyOnTick(const string &Symb_, const int &Index_)

请问作者,为什么不能在这里编译?

错误:尚未支持指向该函数类型的指针

 
void OnTickMulti( const string &Symb, const int &Index ) {
    _VSP(virtualEnvAry[Index]); // 选择虚拟交易环境
    MqlTick ticks[1];
    if (SymbolInfoTick(Symb, ticks[0])) break;
    VIRTUAL::NewTickMulti(ticks);
    hedge.MyOnTick(Symb, index);
}

应该这样使用吗?

 
hini #:

主题

Библиотеки: Virtual
Библиотеки: Virtual
  • 2024.06.26
  • fxsaber
  • www.mql5.com
Статьи и техническая библиотека по автоматическому трейдингу: Библиотеки: Virtual
 
fxsaber #:

所有压缩包都包含旧版本的程序库。要获取新版本,需要手动下载每个文件。

最近的变化 使得在单核模式下,在现代处理器上实现每秒 1 亿个刻度的性能 成为可能。

 
我正在使用自定义符号 BTCUSD 进行实验 它的 tick 价格 = 0.1
虚拟测试器显示的存款货币利润比 MQ 测试器高一个数量级。
在 Order.mqh 中的这一修改 有帮助:
  bool Create( const SYMBOL_BASE &SymbolBase, const ENUM_ORDER_TYPE inType, const double &dLots,
               double inPrice, int SlipPage,  double dSL, double dTP, const MAGIC_TYPE &iMagicNumber,
               const string &sComment, const datetime &dExpiration, const MqlTick &Tick, double &STOPS_LEVEL, int &TRADE_EXEMODE )
  {
    this = SymbolBase;
    double TICK_SIZE=SymbolInfoDouble(this.GetSymbol(),SYMBOL_TRADE_TICK_VALUE);
    this.TickValue *= (this.Lots = ::NormalizeDouble(dLots, 8)) * TICK_SIZE;
默认情况下,您的计算以点为单位,而不是以货币为单位,因此这可能无关紧要。一切都以点数为单位。