{"action":"opened","issue":{"url":"https://api.github.com/repos/StockSharp/StockSharp/issues/252","repository_url":"https://api.github.com/repos/StockSharp/StockSharp","labels_url":"https://api.github.com/repos/StockSharp/StockSharp/issues/252/labels{/name}","comments_url":"https://api.github.com/repos/StockSharp/StockSharp/issues/252/comments","events_url":"https://api.github.com/repos/StockSharp/StockSharp/issues/252/events","html_url":"https://github.com/StockSharp/StockSharp/issues/252","id":162383531,"number":252,"title":"Ошибка в FractalsPainter и методе draw чарта","user":{"login":"suglosta","id":10158904,"avatar_url":"https://avatars.githubusercontent.com/u/10158904?v=3","gravatar_id":"","url":"https://api.github.com/users/suglosta","html_url":"https://github.com/suglosta","followers_url":"https://api.github.com/users/suglosta/followers","following_url":"https://api.github.com/users/suglosta/following{/other_user}","gists_url":"https://api.github.com/users/suglosta/gists{/gist_id}","starred_url":"https://api.github.com/users/suglosta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/suglosta/subscriptions","organizations_url":"https://api.github.com/users/suglosta/orgs","repos_url":"https://api.github.com/users/suglosta/repos","events_url":"https://api.github.com/users/suglosta/events{/privacy}","received_events_url":"https://api.github.com/users/suglosta/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-06-27T06:41:17Z","updated_at":"2016-06-27T06:41:17Z","closed_at":null,"body":"Ошибка не тривиальная, т.к. во-первых находится в закрытом коде, а во-вторых их две.\r\n\r\n## Ошибка первая:\r\nFractalsPainter не учитывает параметр Shift при рисовании графика.\r\n### Как воспроизвести:\r\nЧтобы убедиться, что проблема существует нужно запустить без модификаций штатный пример SampleChart и добавить на график индикатор Fractals:\r\n[http://prntscr.com/bkeu2k](Скрин, на котором я стрелками обозначил где на самом деле должны быть точки индикатора)\r\n\r\nПроблема в коде FractalsPainter. Вот кусок из рефлектора:\r\n\r\n            IIndicatorValue indicatorValue2 = dictionary[fractals.Down];\r\n            draw(this.#=qgZK8KV1WYmTlDcO3tc1VFQ==, 0, new double[]\r\n            {\r\n                indicatorValue2.IsEmpty ? double.NaN : indicatorValue2.GetValue<double>()\r\n            });\r\n\r\n\r\nв методе draw, вторым параметром передается 0, а там должен быть сдвиг из ShiftedIndicatorValue, которым на самом деле является indicatorValue2.\r\n\r\nКод должен быть примерно такой:\r\n\r\n            IIndicatorValue downValue = dictionary[(IIndicator)fractals.Down];\r\n            ShiftedIndicatorValue downValueShifted = (ShiftedIndicatorValue)downValue;\r\n\r\n            draw(this.downElement, downValueShifted.Shift, new double[1]\r\n            {\r\n                downValue.IsEmpty ? double.NaN : downValue.GetValue<double>()\r\n            });\r\n\r\n\r\n## Ошибка вторая:\r\nВнутри метода draw есть ошибка, неправильно считается сдвиг.\r\nЭта ошибка накапливается в процессе отрисовки точек индикатора при использовании сдвига и не проявляется, если рисовать без сдвига.\r\n### Как проверить:\r\nРешить проблему с FractalPainter и повторить тест на штатном примере.\r\nАльтернативные вариант - написать простой пэинтер, который будет делать фиксированный сдвиг на 1 или любое другое число свечей и использовать его для отрисовки простого индикатора хаев свечек.\r\nНа графике будет наблюдаться накапливаемое отставание точек от графика.\r\n"}}
{"actor":{"display_login":"suglosta"}}