Можно ли выполнить анализ нескольких таймфреймов в сценарии? - PullRequest
0 голосов
/ 13 апреля 2019

Я создал небольшой скрипт с единственной целью - идти долго, когда макд пересекает бычий на самых старших таймфреймах (1W, 3D, 2D, D ... и т. Д.). Для этого я использовал встроенную функцию безопасности, которая должна возвращать исходное значение любого разрешения, которое я ввел.

//@version=2

strategy("test strategy2", shorttitle="test2", overlay= false )
source = hlc3
fastLength = input(12, minval=1), slowLength=input(26,minval=1)
signalLength=input(9,minval=1)

macdval = ema(source, fastLength) - ema(source, slowLength)
signalval = sma(macdval, signalLength)
hist = macdval - signalval



res="1W"
macd= security(tickerid, res, macdval)
signal=  security(tickerid, res, signalval)


res2="3D"
macd2 = security(tickerid, res2, macdval)
signal2=  security(tickerid, res2, signalval)

res3="2D"
macd3 = security(tickerid, res3, macdval)
signal3=  security(tickerid, res3, signalval)

res4="1D"
macd4 = security(tickerid, res4, macdval)
signal4=  security(tickerid, res4, signalval)

macd_IsAbove(macd,signal) => macd >= signal
macd_IsBelow(macd,signal) => macd < signal

buy= macd_IsAbove(macd4,signal4) and macd_IsAbove(macd3,signal3) 
and macd_IsAbove(macd2,signal2) and macd_IsAbove(macd,signal)

sell= macd_IsBelow(macd4,signal4) and macd_IsBelow(macd3,signal3) 
and macd_IsBelow(macd2,signal2) and macd_IsBelow(macd,signal)

if (buy)
    strategy.entry("Bull_Div", strategy.long, 
    oca_type=strategy.oca.cancel, comment="Bull_Div")
if (sell)
    strategy.entry("Bear_Div", strategy.short, 
    oca_type=strategy.oca.cancel, comment="Bear_Div")

Теперь, когда я запускаю скрипт, я ожидаю, что позиции на покупку и короткие позиции будут одинаковыми на всех таймфреймах, однако, когда я запускаю скрипт на разных таймфреймах, я получаю разные сигналы на покупку и продажу ... Я в растерянности почему это так?

...