Помогите с глюком в функцией расчёта максимального лота.

 

Вообщем ситуация такая. Фрагмент классического кода расчёта максимального лота.

double AFM = AccountFreeMargin( ); // Возвращает значение свободных средств, разрешенных для открытия позиций на текущем счете.
double MaxLot =AFM/Контракт;
string maximal=DoubleToStr (MaxLot,2);
//---- Вывод надписи на график ----
ObjectCreate("MaxLot",OBJ_LABEL,0,0,0,0,0);
ObjectSet ("MaxLot",OBJPROP_CORNER,3);
ObjectSet("MaxLot",OBJPROP_XDISTANCE,78);
ObjectSet("MaxLot",OBJPROP_YDISTANCE,65);
ObjectSetText("MaxLot","MaxLot="+maximal,7,"Tahoma",Текст);

 Обнаружился недостаток. При старте терминала висит значок типа "Label" и ничего не отображается, пока не переключишь таймфрейм.

Методом исключения, закоментировав строки, глюк пропадает именно с удалением из кода строки самого рачёта "double MaxLot =AFM/Контракт;"

т.е. деления двух значений типа double. Проверял несколько чужих индюков с расчётом макс.лота-та же проблема. Проблема как бы не столь велика,

но данный индикатор вкупе с индикатором сессий, блокирует отображение сессионных зон, опять же при старте программы и до первого переключения тф.

Где собака зарыта? 

 
Fartarantula:

Где собака зарыта? 

1. Не использовать переменные, содержащие в названии кириллические символы.

2. После вывода графики использовать ChartRedraw()