【问题标题】:DLL on Metatrader 4 doesn't update with incoming ticksMetatrader 4 上的 DLL 不会随传入报价更新
【发布时间】:2011-06-27 18:21:08
【问题描述】:

我编写了一个简单的 DLL 作为 Metatrader 4 的自定义指标的一部分,它被称为:

int start( ) {
    double Rates[][6];
    int MaximumRecords = ArrayCopyRates( Rates, Symbol(), 0 ); 

    for( int zz = MaximumRecords; zz >= 0; zz-- ) { 
        OutPut[zz] = EMPTY; 
    }

    GetSMAArray( Rates, MaximumRecords, Periods, OutPut );

    return(0); 
}

这很好,因为它在图表上按预期绘制,但不幸的是,它不会随着新的传入报价更新 - 它只是在其初始调用时绘制。我可以添加哪些进一步的代码来使 DLL 更新与传入的滴答声?几乎我所有的搜索都提出了使用

的变体
ExtCountedBars = IndicatorCounted();

强制 while 循环进行计算,但这些都适用于 .mq4 文件本身中包含的计算。我想强制 DLL 重新计算。其次,我希望这种重新计算仅在柱完成时发生,而不是在所有和每个刻度到达时发生。

【问题讨论】:

    标签: dll metatrader4


    【解决方案1】:

    对于仅在新柱上的事情,我的技术是将最后一根柱的 (Bars[0]) 日期时间信息保存在一个变量中,如果它发生了变化,这意味着一个新柱已经到来。

    datetime lastBarDateTime;
    
    int start(){
        if(Time[0]==lastBarDateTime)
        return(0);
    
        lastBarDateTime = Time[0];
    
        // codes to run on a new bar ...
    }
    

    对于 DLL 部分,我实际上无法理解您在该代码中使用 DLL 的位置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-12
      • 1970-01-01
      • 2020-01-13
      • 1970-01-01
      • 2012-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多