(A+B)!=(A+B) - страница 3

 
Anatolii Zainchkovskii #:
Говорил выше.
Скорее всего глобально TP умудряется посчитаться на новом тике пока идёт принтовка.
Если не хотите светить здесь весь код то у себя после расчёта TP  сделайте его принт. Возможно вы увидите в какой момент происходит изменение, которое и влияет на вашу разницу в принтах.
Просто вы должны понимать , что пока происходит принтование может прийти несколько новых тиков, а они вынуждают по-новой производить все расчёты.

ТР считается прямо здесь:  TP=Ev.L+minhl/2.0; и никак не зависит от принтовки. Принтование вставлено только для того, чтобы найти почему  TP!=(Ev.L+minhl/2.0). Без принтования результат был точно такой.  Есть 2 глобальные переменные и их неверная сумма, которую я иллюстрирую принтованием.

 
Leonids Drics #:

ТР считается прямо здесь:  TP=Ev.L+minhl/2.0; и никак не зависит от принтовки. Принтование вставлено только для того, чтобы найти почему  TP!=(Ev.L+minhl/2.0). Без принтования результат был точно такой.  Есть 2 глобальные переменные и их неверная сумма, которую я иллюстрирую принтованием.

См. Как учебнике и используйте нормалайздабл по значению диджитс. Все.



См. Как учебнике и используйте нормалайздабл по значению.

При расчетах тр и сл.


 
Aleksei Beliakov #:
Тебе же сказали приведи весь код.

Вот весь код:  TP=Ev.L+minhl/2.0; Что еще надо? Две глобальные переменные неверно суммируются в глобальную переменную ТР, принтовка приводится.

 
Roman Shiredchenko #:


См. Как учебнике и используйте нормалайздабл по значению.

При расчетах тр и сл.


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

 
Leonids Drics #:

ТР считается прямо здесь:  TP=Ev.L+minhl/2.0; и никак не зависит от принтовки. Принтование вставлено только для того, чтобы найти почему  TP!=(Ev.L+minhl/2.0). Без принтования результат был точно такой.  Есть 2 глобальные переменные и их неверная сумма, которую я иллюстрирую принтованием.

Саму причину выяснить не вижу возможным в данный момент.
Костыль для верной работы ты сам справился сделать.
Пользуйся костылём и будь уверен что всё работает ровно.
Про костыль, это когда ты объявил переменные А и В
 
Помню тоже как то сталкивался с подобным, что внутри функции расчёт отличался, поэтому все расчёты делаю до использования в функции и присваиваю значения переменным. Тоесть тебе не нужно внутри функции математику считать, считай её вне функции.
Правда я удивлён, у тебя как раз внутри функции считается математика верно. И вот это уже удивляет.
 
Ещё момент.
Строчка: TP=Ev.L+minhl/2.0
Вот в ней происходит обращение к переменной Ev.L , при чём происходит это обращение впервые, это можно понять из твоего принта когда в первой сделке ТР =0.00000 , так вот рекомендую записывать нужное значение прямо перед расчетом ТР.
Тоесть будет так : 
Ev.L=......... ;
TP=Ev.L+minhl/2.0; 
И далее всё по коду как и было.
 
Anatolii Zainchkovskii #:
Ещё момент.
Строчка: TP=Ev.L+minhl/2.0
Вот в ней происходит обращение к переменной Ev.L , при чём происходит это обращение впервые, это можно понять из твоего принта когда в первой сделке ТР =0.00000 , так вот рекомендую записывать нужное значение прямо перед расчетом ТР.
Тоесть будет так : 
Ev.L=......... ;
TP=Ev.L+minhl/2.0; 
И далее всё по коду как и было.

об этом и речь

скорее всего и тут ошибки валят:


 
Anatolii Zainchkovskii #:
Саму причину выяснить не вижу возможным в данный момент.
Костыль для верной работы ты сам справился сделать.
Пользуйся костылём и будь уверен что всё работает ровно.
Про костыль, это когда ты объявил переменные А и В

Я ведь не только ТП так считаю, еще СЛ по аналогичной методике рассчитывается + куча всего остального, где не просто сумма двух переменных, а даже большее количество переменных и операций :).  Надо проверить, наверное и там криво считает, просто ошибки не выскакивают. Вот заметил, что некоторые глобальные переменные, инициированные в OnInit(),  в функциях имеют нулевые значения, что свойство POSITION_TIME_UPDATE_MSC после модификации не меняется, и еще кучу всяких странностей, которые хотелось бы обсудить. 

 
Renat Akhtyamov #:

об этом и речь

скорее всего и тут ошибки валят:


Anatolii Zainchkovskii #:
Ещё момент.
Строчка: TP=Ev.L+minhl/2.0
Вот в ней происходит обращение к переменной Ev.L , при чём происходит это обращение впервые, это можно понять из твоего принта когда в первой сделке ТР =0.00000 , так вот рекомендую записывать нужное значение прямо перед расчетом ТР.
Тоесть будет так : 
Ev.L=......... ;
TP=Ev.L+minhl/2.0; 
И далее всё по коду как и было.

Это не первое обращение к  Ev.L, а первый ордер, открываемый по сигналу данного типа, который (сигнал) генерируется с участием Ev.L и других переменных.