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

 
Alexey Viktorov:

这在文件中都有描述。在fmod中,你除以1,得到数字的小数部分 或0,你并不关心在字段或输入变量中输入了多少个小数位。

它是有效的,这是最简单的解决方案!

EditCreate(0,"TR",0,0,0,X,Y, fmod(TralingStop,1)==0 ? DoubleToString(TralingStop,0) : DoubleToString(TralingStop,1),true);

谢谢你!

 
heik_h = iCustom(_Symbol, PERIOD_CURRENT, "Examples\\Heiken_Ashi");
CopyBuffer(heik_h, 1, 1, 1, heikHigh);
CopyBuffer(heik_h, 2, 1, 1, heikLow);
Comment(heikHigh[0]);   

我得到了错误的值,大约是零

该指标在实例

问题是什么?

 
Roman Sharanov:

我得到了错误的值,大约是零

该指标在实例

有什么问题呢?

你是否在每一个刻度 上都创建一个新的指标柄?

手柄应在OnInit中创建,数据应在OnTick或OnCalculate中接收。
 
Vladimir Karputov:
你是否在每一个刻度 上都创建一个新的指标柄?

手柄应在OnInit中创建,数据应在OnTick或OnCalculate中接收。

不,它是在OnInit中

 
Roman Sharanov:

不,它是在OnInit中


你太不专心了:请完整地阅读整句话:手柄应该在OnInit中创建,数据应该在OnTick或OnCalculate 中接收。
 
Vladimir Karputov:

你太不专心了:请完整地阅读整句话:Handle应该在OnInit中创建,并在OnTick或OnCalculate中接收数据。

因此,它确实

 
int OnInit(){
   heik_h = iCustom(_Symbol, PERIOD_CURRENT, "Examples\\Heiken_Ashi");
}
void OnTick(){
   CopyBuffer(heik_h, 1, 1, 1, heikHigh);
   Comment(heikHigh[0]);
}
 

Roman Sharanov:

int OnInit(){
   heik_h = iCustom(_Symbol, PERIOD_CURRENT, "Examples\\Heiken_Ashi");
}
void OnTick(){
   CopyBuffer(heik_h, 1, 1, 1, heikHigh);
   Comment(heikHigh[0]);
}

//+------------------------------------------------------------------+
int OnInit()
  {
   heik_h = iCustom(_Symbol, PERIOD_CURRENT, "Examples\\Heiken_Ashi");
   if(heik_h==INVALID_HANDLE)
      return INIT_FAILED;
   ArraySetAsSeries(heikHigh,true);
  }
void OnTick()
  {
   if(CopyBuffer(heik_h, 1, 1, 1, heikHigh)==1)
      Comment(heikHigh[0]);
  }
//+------------------------------------------------------------------+
 
Artyom Trishkin:

没有任何变化,仍然显示e+321

 
Roman Sharanov:

没有任何变化,仍然显示e+321

使用DoubleToString()来输出所需精度的价格值