Я создал небольшой скрипт с единственной целью - идти долго, когда макд пересекает бычий на самых старших таймфреймах (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")
Теперь, когда я запускаю скрипт, я ожидаю, что позиции на покупку и короткие позиции будут одинаковыми на всех таймфреймах, однако, когда я запускаю скрипт на разных таймфреймах, я получаю разные сигналы на покупку и продажу ... Я в растерянности почему это так?