Аномалия WLD
Второй раз натыкаюсь на проблему с расчётом цены в программе WLD. Может кто встречал такую проблему и подскажет как её решить.
К примеру: есть часовая свеча индекса РТС:
Open: 740,94
High: 742,33
Low: 740,59
Close: 732,67
Подключаю эти данные через файл MS к WLD4.
И в WLD она отражается, уже следующим образом:
Open: 740,940002441406
High: 742,330017089844
Low: 740,590026855469
Close: 732,679992675781
Проверяю исходняк, не каких изменений, все данные только в пределах сотых.
Вопрос:
1. каким образом WLD округляет до триллионных (откуда он эти цифры берёт, точней что прибавляет)?
2. Как его заставить @#High[Bar] (цены) выводить как есть в сотых, да в настройках есть смещение, но это смещение для графика!
Open: 740,94
High: 742,33
Low: 740,59
Close: 732,67
не каких триллионных нет, это в самом WLD меняеться, а вот как — вот это вопрос!
Используйте дебарг: print('High: '+ FloatToStr( @#High[Bar]));
Считается все корректно, переносится в С# и там все норм. Все сделки (вход/выход) робота на С# и WLD совпадают.
Если же пытаться вывести Open через print, то надо понимать, что это тип double и нужно указывать формат вывода.
High: 1152.31005859375
High: 1154.80004882813
High: 1156.48999023438
полистай ветку по Вэлсу..
При случае попробую спросит у ребят которые более продвинуты в нём
High := StrToFloat(FormatFloat('#,##0.00',@#High[Bar])) — StrToFloat(FormatFloat('#,##0.00',@#High[Bar-1]))
High = 0,0600128173828125