Как построить фактическую цену, по которой пересекает скользящая средняя - PullRequest
0 голосов
/ 06 мая 2020

Я хочу иметь возможность фиксировать фактическую цену в момент пересечения скользящих средних. Я знаю, что цена пересечения MA всегда отличается от фактической цены во время пересечения, поскольку MA являются запаздывающими индикаторами. Я знаю, что есть встроенные переменные для закрытия, максимума, минимума и т. Д. c. но есть ли встроенная переменная для фактической цены тика? Или есть способ получить эту цену? Возможное решение - получить закрытие на более низком временном интервале. Например, если вы работаете с пересечением скользящей средней на дневном графике, то как вы могли бы закодировать получение закрытия на более низком таймфрейме? Любые предложения или помощь будут оценены. Спасибо

Вот то, что я пробовал до сих пор:

// Я работаю над дневным графиком

cond1 = crossover (sma (close, 7), sma ( закрыть, 21))

CurrentPrice = security (тикер, «1», закрыть)

plot ((cond1? CurrentPrice: na), style = circle, color = green, transp = transp )

К сожалению, это не отображает зеленый кружок на 1-минутной цене закрытия на дневном графике. Но скорее по какой-то другой цене, которую я не знаю, как рассчитывается.

Ответы [ 3 ]

1 голос
/ 06 мая 2020

Я новичок в pinescript, но думаю, что у меня есть кое-что, что может помочь. Изучите функцию "ценность когда". В приведенном ниже случае, когда MA_9 пересекает MA_12, минимум бара будет распечатан при возникновении условия. Условие определяется в начале значения, когда функция, то, что вы хотите напечатать (максимум / минимум / закрытие или даже другой индикатор), указывается ближе к концу функции valuewhen. В приведенном ниже случае, когда возникает условие, на графике отображается нижнее значение. Вы можете изменить «минимум» в конце значения на «закрытие», поскольку большинство людей строят свои скользящие средние на закрытии. Помните, что после того, как вы создали значение, его все равно нужно распечатать / распечатать как этикетку и т. Д. c. Надеюсь, это поможет.

// @ version = 4 study ("ValueWhen")

MA_9 = sma (close, 9)

MA_12 = sma (close, 12)

MA_Cross = valueewhen (crossunder (MA_9, MA_12), low, 0)

plot (MA_Cross)

0 голосов
/ 12 мая 2020

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

Чтобы прояснить, что я хотел получить:

"для нанесения точечного символа на дневном графике на цене, когда условие пересечения дневной скользящей средней выполняется ПЕРВЫМ, а не в последующие разы. в текущем дневном баре "

К сожалению, это, скорее всего, невозможно, так как перекрестное условие может возникать несколько раз на текущем дневном баре, и до сих пор я не нашел способа просто зафиксировать первый экземпляр условия встречаться за такт (или как это также известно как «Once Per Bar»).

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

0 голосов
/ 11 мая 2020
//@version=4
study(title = "Alert: 7x21 Daily Time Frame", overlay=true)

MA_7   = sma(close,7)
MA_21   = sma(close,21)

//  Time frame change to Daily
MA_7_Daily  = security(syminfo.tickerid,'D', MA_7, lookahead = barmerge.lookahead_on)
MA_21_Daily = security(syminfo.tickerid,'D', MA_21,lookahead = barmerge.lookahead_on)

//  (I like to visually verify my code.  plots are not necessary for the alerts)
plot(MA_7_Daily, color = color.lime)
plot(MA_21_Daily, color = color.red)

alertcondition(MA_7_Daily[1] <= MA_21_Daily[1] and MA_7_Daily >= MA_21_Daily, message = "Daily Moving Ave 7 x 21 Long")
alertcondition(MA_7_Daily[1] >= MA_21_Daily[1] and MA_7_Daily <= MA_21_Daily, message = "Daily Moving Ave 7 x 21 Short")
...