mr.Potter
mr.Potter личный блог
20 февраля 2017, 16:23

Аномалия 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] (цены) выводить как есть в сотых, да в настройках есть смещение, но это смещение для графика!
32 Комментария
    • Чёрный кот
      20 февраля 2017, 22:42
      WildTraider, в C# должно быть точно так же, посмотри в режиме отладки.
  • alt
    20 февраля 2017, 17:03
    Может в опциях настроек Вэлса ограничить число знаков после запятой  !?
  • alt
    20 февраля 2017, 17:17
    Ок. Откуда качаем данные чем какие- попробую глянуть у себя. Вроде не сталкивался с подобным…
  • Karim
    20 февраля 2017, 17:32
    Чему вы удивляетесь. В WLD  серия баров (Open, High, Low, Close) имеет тип double. Если нужен другой — преобразуйте.
  • Karim
    20 февраля 2017, 17:45
    Косяк при загрузке данных. У меня такого не возникало, ни при закачке данных, ни при переносе стратегий на C#.
      • Karim
        20 февраля 2017, 18:14
        WildTraider, Про WLD4 ничего не могу сказать. Загружаю *.csv файлы в WLD 6.4. И  если в файле число 41.150000, то оно преобразуется в 41.15
          • Karim
            20 февраля 2017, 18:28
            WildTraider, Дебарг это что? 
            Считается все корректно, переносится в С# и там все норм. Все сделки (вход/выход) робота на С# и WLD совпадают.
            Если же пытаться вывести Open через print, то надо понимать, что это тип double и нужно указывать формат вывода.
  • alt
    20 февраля 2017, 18:19
    Пока не понятно. На графике всё ок… А по print('High: '+ FloatToStr( @#High[Bar]));

    High: 1152.31005859375
    High: 1154.80004882813
    High: 1156.48999023438


  • alt
    20 февраля 2017, 18:57
    не могу пока ничего посоветовать на сей счёт. Мож на Пауке
    полистай ветку по Вэлсу..
    При случае попробую спросит у ребят которые более продвинуты в нём

      • Чёрный кот
        20 февраля 2017, 19:42
        WildTraider, лишние цифры возникают т.к. в double нельзя точно отразить некоторые числа. У Float точность еще ниже, так что не стоит его использовать!!! В метатрейдере для точного отображения цены есть функция NormalizeDouble, в ВЛД должно быть что-то аналогичное.  про float вообще забудь!
          • Чёрный кот
            20 февраля 2017, 22:41
            WildTraider, вроде как float в WLD 4 и есть double. В общем все упирается в точность double. Но как решить хз, я никогда не писал под WLD 4, да и не вижу смысла использовать древнюю систему, с таким корявым языком программирования.
      • alt
        20 февраля 2017, 20:11
        WildTraider, вроде при работе системы в вэлсе берутся реальные Хай, Лоу....-  как на графике !?

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн