初学者的问题 MQL5 MT5 MetaTrader 5 - 页 811

 
SILVERPRINT:
Mql4 当参考指标而不是测试者的数据时,Mql5 的最后一个数据出来了 是一样的?

我什么都不明白。试着重新措辞并加上标点符号。

 

所有使用标准库中的方法创建的指标都需要手动 更新

有两种方法

RefreshCurrent
Refresh


我的理解是,如果你想自动刷新,就需要第一种?

第二,只是刷新在整个数据阵列的滴答声中手动 刷新一次?

 
SILVERPRINT:

所有使用标准库中的方法创建的指标都需要手动 更新

有两种方法


我的理解是,如果你想自动刷新,就需要第一种?

第二,只是刷新在整个数据阵列的滴答声中手动 刷新一次?


请展示你如何在你的专家顾问中创建一个指标的代码。

 
Vladimir Karputov:

我什么都不明白。试着重新措辞并加上标点符号。


在mql4中,测试器中指标零的信息给出了一个来自历史的翻转日期。你在mql5中也要进行ibarshift吗?

 
SILVERPRINT:

在mql4中,测试器中的指标零的信息从历史上给出了一个日期翻转器。你在mql5中也要进行ibarshift吗?


重新表述一下。放上标点符号。用俄语写。

 
Vladimir Karputov:

显示你如何在EA中创建指标的代码。

#include <Indicators\Trend.mqh>
#include <Indicators\Oscilators.mqh>
#include <Indicators\TimeSeries.mqh>

MqlTick infotick;
MqlDateTime currentTime;
CiMA ValueofMA200;
CiMA ValueofMA20;
CiMA ValueofMAHour;
CiATR atr;
CiTime timeh1;
CiTime timeD1;


   sym=_Symbol;
   ValueofMA200.Create(sym,PERIOD_D1,slowma,0,MODE_SMA,PRICE_CLOSE);
   ValueofMA20.Create(sym,PERIOD_D1,fastwma,0,MODE_SMA,PRICE_CLOSE);
   ValueofMAHour.Create(sym,PERIOD_H1,mahours,0,MODE_SMA,PRICE_CLOSE);
   atr.Create(sym,PERIOD_H1,200);
   timeh1.Create(sym,PERIOD_H1);
   timeD1.Create(sym,PERIOD_H1);
   
   timeh1.BufferResize(25);
   timeD1.BufferResize(200);
   
   timeh1.Refresh(PERIOD_H1);
   timeD1.Refresh(PERIOD_D1);

         ValueofMA200.Main(0);
         ValueofMA20.Main(0);
         ValueofMAHour.Main(0);    
         atr.Main(0);
大约是这样的
 
SILVERPRINT:
像这样

是的,如果你使用标准库类 来创建指标,那么你必须使用刷新 方法来检索数据

 
Vladimir Karputov:

是的,如果你使用标准库类 来创建指标,那么你需要使用刷新 方法来检索数据

这些方法是如何运作的? 使用什么更好?

RefreshCurrent
Refresh
我知道RefreshCurrent是一个昂贵的方法,在每一个tick上
 
SILVERPRINT:

1)这些方法是如何工作的?2)哪种方法更好用?


1) 在编辑器中导航到这个方法(中键单击方法名称会让你跳到这个方法)--这将告诉你这个方法是如何工作的。这个秘诀是通用的:在任何方法或函数上点击中键,将跳转到函数或方法代码本身。

2)这没有什么两样。有些人使用通过类创建指标,有些人使用创建手柄(iMA、iMACD...)。

 
Vladimir Karputov:

1) 在编辑器中导航到这个方法(中键单击方法名称会让你跳到这个方法)--这将告诉你这个方法是如何工作的。这个秘诀是通用的:在任何方法或函数上点击中键,将跳转到函数或方法代码本身。

2)这没有什么两样。有些人使用通过类创建指标,有些人使用创建手柄(iMA、iMACD...)。


我的鼠标没有中间按钮,它是由纯银制成的)。可能 我的最佳呼叫问题在这些年里已经解决了。我不希望每次打勾都要更新整个数组。