错误、漏洞、问题 - 页 603

 
goblin:
这张图片是在MT4还是MT5上?
当然是在MT5上。
 

sergeev: 

回复:它是空白的。

MQL4文章有 "聚类指标 在外汇市场的实际应用--MQL4文章 "和 "为外汇市场建立聚类指标的理论基础--MQL4文章"。

我在某处下载了这个分支。但随着铁的变化--发现问题,所以我不能保证什么。

如果我没记错的话,所有有建设性的东西都在文章中。问题是,是否有可能从机器人那里获得X和Y。

问题:有可能获得CCFp_2的手柄吗?如何(位代码)?
 
goblin:
问题:有可能得到CCFp_2的手柄吗?如何(代码片段)?

???

ZS破译它的意思?

 
goblin:
问题:是否有可能得到一个CCFp_2的手柄?
当然,这是一个正常的指标。
 
sergeev:
当然,这是一个普通的指标。

不太常见:i Custom(仪器的符号名称,其数据将用于计算指标,...)而我们有一个多货币指标。

 
Urain:

???

ZS破译它的意思?

没问题:写

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
      int m_handle=iMA("GBPUSD",PERIOD_CURRENT,3,0,MODE_SMA,PRICE_MEDIAN);
   Print("m_handle  ",m_handle);
   m_handle=iMA("USDCHF",PERIOD_CURRENT,3,0,MODE_SMA,PRICE_MEDIAN);
   Print("m_handle  ",m_handle);
  }
 
goblin:

没问题:写

hndl=iCustom(_Symbol,_Period,"Имя индикатора",параметр1,параметр2,...и т.д.);
// параметры указываются только те и столько, сколько их имеется в вызываемом индикаторе

符号和周期不一定要与图表相等,你可以从其他时间段和符号。

我只是对这个问题感到惊讶(这就是为什么我不明白),它在iCustom()的描述中

PS 计算指标的数据是通过函数CopyBuffer() 获得的,你需要指定要获得的缓冲区的句柄和编号(说明见手册)。

PPS iCustom启动指标计算流程,CopyBuffer接收指标数据。

 
goblin:

不太常见:i Custom(仪器的符号名称,其数据将用于计算指标,...)而我们有一个多币种。

那又怎样?

你是否有义务将这个指标应用于某种货币?

我不知道你为什么要这么做--去看看吧。

就我个人而言,一切都对我有效。我从专家顾问中调用它,甚至把它扔在图表上。

 
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1

ENUM_TIMEFRAMES arr[1]={PERIOD_M15};

int OnInit()
  {
   return(0);
  }

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   ArraySetAsSeries(high,true);
   ArraySetAsSeries(low,true);
   ArraySetAsSeries(time,true);

   string n;

   StringConcatenate(n, "Fibo ",
//   StringConcatenate(n, "Some string ",
                    time[70], " - ",
                    time[50], " ",
                    EnumToString(arr[0]));

   Print(n);

   ObjectCreate(0,n,OBJ_FIBO,0,time[70],high[70],time[50],low[50]);

   return(rates_total);
  }

这样一来,对象就会 按照它应该有的样子被画出来,并以给定的复合名称签名,不会有任何问题。如果你删除第一个StringConcatenate() 并取消第二个,对象就会被画得不完整,而且在查看其属性时,字符串名称会被裁剪。

一些字符串 2011.12.01 04:00:00 - 2011.12.06 12:00:00 PERIOD_M1

(应该是。一些字符串 2011.12.01 04:00:00 - 2011.12.06 12:00:00 PERIOD_M15)。

尽管Print() 总是输出正确的结果字符串。

什么是幽默?

 
x100intraday:

(应该是。一些字符串 2011.12.01 04:00:00 - 2011.12.06 12:00:00PERIOD_M15)。

尽管Print() 总是输出正确的结果字符串。

对象名称的长度是有限制的。