Цель:
Создаю индикатор демоторга по другим индикаторам, для чего требуется отрисовать на графике истории цены линии от точки покупки до точки продажи.
Проблема:
Линии индикатора непрерывны. Я заполняю линию индикатора значением nil и в точках покупки и продажи устанавливаю ей значение цены. В итоге линия при первом значении появляется, идёт зигзагом по установленным точкам и пропадает на последней установленной мной цене. Не смог заставить линию периодически пропадать.
Что имеется:
Индикатор сделал и работает, но на ужасном костыле. Линию отрисовываю точками так как при значении nil точка пропадает, но отсюда проблема в линии от покупки до продажи. Сначала всю линию индикатора я заполняю значениями nil, а обратным циклом и функцией SetValue() перетираю интерполированными значениями между ценой покупки и продажи (вызывается на свече демопродажи цикл с обратным перебором всех свечей до свечи покупки). Получается красиво, но ужасно тормозит (скрин ниже). Код цикла выполняемого внутри функции OnCalculate(i) интерполяции прикладываю.
Создаю индикатор демоторга по другим индикаторам, для чего требуется отрисовать на графике истории цены линии от точки покупки до точки продажи.
Проблема:
Линии индикатора непрерывны. Я заполняю линию индикатора значением nil и в точках покупки и продажи устанавливаю ей значение цены. В итоге линия при первом значении появляется, идёт зигзагом по установленным точкам и пропадает на последней установленной мной цене. Не смог заставить линию периодически пропадать.
Что имеется:
Индикатор сделал и работает, но на ужасном костыле. Линию отрисовываю точками так как при значении nil точка пропадает, но отсюда проблема в линии от покупки до продажи. Сначала всю линию индикатора я заполняю значениями nil, а обратным циклом и функцией SetValue() перетираю интерполированными значениями между ценой покупки и продажи (вызывается на свече демопродажи цикл с обратным перебором всех свечей до свечи покупки). Получается красиво, но ужасно тормозит (скрин ниже). Код цикла выполняемого внутри функции OnCalculate(i) интерполяции прикладываю.
Код |
---|
for j = sdelka, i do -- sdelka - содержит индекс свечи покупки local d = (j - sdelka) / (i - sdelka) local c = a * (1 - d) + b * d SetValue(j, 1, c) end |