Ошибки, баги, вопросы - страница 1166

 

artmedia70:

А сразу id напечатать, пока оно в long и не преобразованное?

 глобальная вариабля - типа double, возможно в окне округлённое значение

 
Swan:

А сразу id напечатать, пока оно в long и не преобразованное?

 глобальная вариабля - типа double, возможно в окне округлённое значение

Конечно же и так делал:

         Print("Значение в ней = "+DoubleToString(GlobalVariableGet(gv_name),0));

та ж фигня...

 
artmedia70:

Конечно же и так делал:

та ж фигня...

не, без преобразований
Print(ChartID());
посмотрите
 
Swan:
не, без преобразований
посмотрите
Так он мне вернёт ID графика, на котором индикатор установлен, а не тот ID, который я пытаюсь в индикатор передать через GV
 
artmedia70:
Так он мне вернёт ID графика, на котором индикатор установлен, а не тот ID, который я пытаюсь в индикатор передать через GV

дык отпринтите из той программы, откуда передаёте.

 
Swan:

дык отпринтите из той программы, откуда передаёте.

Да, уже сделал. В GV значение на 4 больше, чем в программе:

2014.07.05 05:01:55.508 Multick EURUSD,H4: ID EURUSD : 130462919691841406

GV = 130462919691841410

Пойду дальше разбираться.

 
Дабл обрезает возможно. Надо запихивать лонг в дабл юнион кастом, а не напрямую. И распаковывать так же.
 
TheXpert:
Дабл обрезает возможно. Надо запихивать лонг в дабл юнион кастом, а не напрямую. И распаковывать так же.
возможно, но таки вроде правильно передаётся. В окне "Глобальные Переменные" значение округляется, отображает 17 цифр.
 
TheXpert:
Дабл обрезает возможно. Надо запихивать лонг в дабл юнион кастом, а не напрямую. И распаковывать так же.

Дабл кромсает:

//----------------------------
   string gv_chart_id_name=Prefix+"_chart_id";
   long chart_id=get.GetChartID(symbol);
   graph.Message("ID "+symbol+" : "+IntegerToString(chart_id)+", ChartSymbol(chart_id) возвращает "+ChartSymbol(chart_id));
   if(chart_id>=0) GlobalVariableSet(gv_chart_id_name,chart_id); // chart_id==0 в тестере
   else graph.Message("Чё-та нету chart_id : Symbol()="+symbol+", chart_id="+IntegerToString(chart_id));
   graph.Message("GV без приведения типа = "+GlobalVariableGet(gv_chart_id_name));
   graph.Message("GV с приведением типа = "+DoubleToString(GlobalVariableGet(gv_chart_id_name),0));
//----------------------------

Получаем:


 
Юнион каст в помощь. Он в mql5 легальный даже через структуры.
Причина обращения: