как создать индикатор Hala со смещением (stepshift) и стратегией на основе этого индикатора и простым сценарием стратегии в одной длинной позиции - PullRequest
0 голосов
/ 05 января 2020

Я прошу прощения за просьбу решить для вас тривиальную задачу, но, пожалуйста, помогите новичку ie: 1. Я хочу создать движущийся индикатор Халла со смещением - мне нужно реализовать функцию смещения в индикаторе. 2. Стратегия кроссовера «движущийся корпус со смещением», основанная на простом сценарии стратегии в длинной позиции. Если это не затруднит работу уважаемых опытных людей, я буду очень признателен за помощь в анализе.

1.need to embed "//shift the step
                  step_shift = input(0,"Step Shift")"
//@version=4
study(title = "Hull MA", shorttitle="HMA", overlay = true)
length = input(9, minval=1)
src = input(close, title="Source")
hullma = wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))
plot(hullma)



2.insert the received indicator into this strategy script long position only

//@version=4
strategy("My strategy", overlay=true)
longCondition = crossover(sma(close, 14), sma(close, 28))
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)
shortCondition = crossunder(sma(close, 14), sma(close, 28))
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)

12.01.2020. Я также отредактировал ваш код для более необходимой идеи для проверок. Теперь осталось применить коррекцию там, чтобы смещение работало

 //@version=4
strategy(title = "Hull MA", shorttitle="HMA", overlay = true)

fastLength  = input(14, minval=2)
offsetfastLength  = input(0)
src1   = input(close, title="Source")
slowLength  = input(28, minval=2)
offsetslowLength   = input(0)
src2   = input(open, title="Source")


fastHma = wma(2*wma(src1, fastLength/2)-wma(src1, fastLength), round(sqrt(fastLength)))
slowHma = wma(2*wma(src2, slowLength/2)-wma(src2, slowLength), round(sqrt(slowLength)))
longCondition   = crossover(fastHma, slowHma)
closeCondition  = crossunder(fastHma, slowHma)

strategy.entry("long",strategy.long,when = longCondition)
strategy.close("long",when = closeCondition)

plot(fastHma, "fastHma", color.orange, offset = offsetfastLength)
plot(slowHma, "slowHma", color.blue, offset = offsetslowLength)

1 Ответ

0 голосов
/ 10 января 2020
//@version=4
strategy(title = "Hull MA", shorttitle="HMA", overlay = true)

fastLength  = input(14, minval=2)
slowLength  = input(28, minval=2)
offsetHMA   = input(0, "Offset in the future", minval=0)
src         = input(close, title="Source")

fastHma = wma(2*wma(src, fastLength/2)-wma(src, fastLength), round(sqrt(fastLength)))[offsetHMA]
slowHma = wma(2*wma(src, slowLength/2)-wma(src, slowLength), round(sqrt(slowLength)))[offsetHMA]
longCondition   = crossover(fastHma, slowHma)
shortCondition  = crossunder(fastHma, slowHma)

if longCondition
    strategy.entry("My Long Entry Id", strategy.long)
if shortCondition
    strategy.entry("My Short Entry Id", strategy.short)

plot(fastHma, "fastHma", color.orange)
plot(slowHma, "slowHma", color.blue)
plotchar(longCondition, "longCondition", "▲", location.belowbar, color.green)
plotchar(shortCondition, "shortCondition", "▼", location.abovebar, color.maroon)

enter image description here

...