Линия скользящей средней отображается только до последнего закрытия ticker.id - PullRequest
0 голосов
/ 11 апреля 2020

Я работаю над индикатором скользящей средней, который показывает линию MA данного периода времени. По какой-то причине линия MA смещена только до закрытия последнего периода ticker.id. Поэтому, когда, например, я установил индикатор для отображения дневной скользящей средней, линия обновляется только после закрытия дня.

(ссылка на изображение https://i.stack.imgur.com/QjkvO.jpg)

Кто-нибудь знает, как мой индикатор сможет включать данные между ежедневными закрытиями, поэтому линия постоянно обновляется?

Я думаю, что эта строка не обновляется непрерывно, также вызывает метку, которая должна быть нанесена прямо на Линия MA, построенная на уровне 1 пункт / доллар на графике.

Я только недавно начал писать код, поэтому извините, если это глупый вопрос. Я написал этот код, глядя на другие индикаторы и пытаясь подогнать детали под свои собственные

Это код всего индикатора.

//@version=4

study(title="Custom Timeframe SMA", shorttitle="Custom TF MA", overlay=true)

res = input(title="MA Timeframe", type=input.resolution, defval="D",options=["60", "240", "D", "W"])

length1 = input(title="SMA Length", type=input.integer, defval=50)
Label=input(title="show Labels",defval=true)

sma1 = sma(close, length1)
sourceEmaSmooth1 = security(syminfo.tickerid, res, sma1, barmerge.gaps_on, barmerge.lookahead_on)

plot(sourceEmaSmooth1, style=plot.style_line, linewidth=2, title="25 period", color=#a21e7b)
plotchar((sourceEmaSmooth1 ? Label : barstate.islast and not barstate.isconfirmed) ? sourceEmaSmooth1 : na, location=location.absolute, text=" 50 SMA", textcolor=#a21e7b, offset=10, editable=false)

1 Ответ

0 голосов
/ 12 апреля 2020

Использование barmerge.gaps_on с security() создает отверстия , которые отображаются как na значения при разрешении диаграммы, поэтому ваша мама не всегда показывалась. На исторических барах это было неочевидно, потому что функция plot() заполняет пространство от непропущенного до непропущенного (вы могли бы увидеть это, если бы вы нарисовали круги вместо линии).

Использование barmerge.lookahead_on с security() производит предвзятое смещение на исторических барах. Очень неприятно, если вы не индексируете значение, которое вы выбираете, как объясняется в этой публикации о том, как правильно использовать security(): Как избежать перерисовки при использовании security () .

Я добавил show_last = 1 к вам вызов для построения метки и исправил условное выражение. Поскольку теперь он отображает только последнее вхождение метки, нам больше не нужно беспокоиться о барстатах:

//@version=4

study(title="Custom Timeframe SMA", shorttitle="Custom TF MA", overlay=true)

res = input(title="MA Timeframe", type=input.resolution, defval="D",options=["60", "240", "D", "W"])

length1 = input(title="SMA Length", type=input.integer, defval=50)
Label=input(title="show Labels",defval=true)

sma1 = sma(close, length1)
sourceEmaSmooth1 = security(syminfo.tickerid, res, sma1)

plot(sourceEmaSmooth1, linewidth=2, title="25 period", color=#a21e7b)
plotchar(Label ? sourceEmaSmooth1 : na, location=location.absolute, text=" 50 SMA", textcolor=#a21e7b, offset=10, show_last = 1, editable=false)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...