Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1110

 
Alexey Viktorov:

Так в документации всё описано. В fmod ставим делитель 1 и получаем дробную часть числа или 0. Вам ведь не важно сколько знаков после запятой введено в поле или в input переменную.

Работает, это самое простое решение!

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]);   

Получаю неправильное значение, около нуля

Индикатор есть в Examples

В чем проблема?

 
Roman Sharanov:

Получаю неправильное значение, около нуля

Индикатор есть в Examples

В чем проблема?

А Вы, что на каждом тике создаёте новый хендл индикатора?!

Хендл нужно создавать в OnInit, а получать данные уже в OnTick или OnCalculate.
 
Vladimir Karputov:
А Вы, что на каждом тике создаёте новый хендл индикатора?!

Хендл нужно создавать в OnInit, а получать данные уже в OnTick или OnCalculate.

нет, он в OnInit

 
Roman Sharanov:

нет, он в OnInit


Вы невнимательны: прочтите всю фразу, полностью: Хендл нужно создавать в OnInit, а получать данные уже в OnTick или OnCalculate.
 
Vladimir Karputov:

Вы невнимательны: прочтите всю фразу, полностью: Хендл нужно создавать в 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() используйте для вывода значений цены с нужной точностью