簡體   English   中英

Pine Script:不同時間框架上的 SMA

[英]Pine Script: SMAs on different timeframes

假設我在 4 小時圖表上。 我想做的是在日線圖上計算一些 SMA,在 4 小時圖上計算 plot。 例如,我想計算 100 天 SMA 並將其繪制在 4 小時圖上。 我也想為 200 天 SMA 做這個。 等等。

我知道如何使用request.security()來做到這一點(請參閱下面代碼片段中的“直接變體”)。 但是,如果我想 plot 5 個不同的 SMA,這意味着我必須調用request.security() 5 次。 對我來說,這似乎效率低下。 我寧願調用request.security()一次來獲取每日數據,然后計算 SMAs。 但是,這似乎不起作用。 看到這個片段:

//@version=5
indicator(title="test", shorttitle="test", overlay=true)

// initialize
smaPeriod = 1400

// direct variant
twoHundreedWeekSma = ta.sma(close, smaPeriod)
dailyChart200WSmaDirect = request.security(syminfo.tickerid, "D", twoHundreedWeekSma) 

// indirect variant
dailyChartClose = request.security(syminfo.tickerid, "D", close)
dailyChart200WSmaIndirect = ta.sma(dailyChartClose, smaPeriod)

// plotting
plot(dailyChart200WSmaDirect, color = color.red) // <- this is correct
plot(dailyChart200WSmaIndirect, color = color.blue) // <- this is wrong. It is the same as if I did plot(ta.sma(close, smaPeriod), color = color.yellow)

我不應該看到兩條不同的線,而是兩條線重疊在一起

“間接變體”似乎沒有效果。 如果我只計算當前 4h 收盤值的所需 SMA(即,如果我只是做了ta.sma(close, smaPeriod) ),我會得到相同的結果。 我不明白什么?

您可以使用元組並在同一時間范圍內組合多個表達式。

sma_50 = ta.sma(close, 50)
sma_100 = ta.sma(close, 100)
sma_200 = ta.sma(close, 200)

[sma_daily_50, sma_daily,100, sma_daily_200] = request.security(syminfo.tickerid, "D", [sma_50, sma_100, sma_200])

plot(sma_daily_50, color = color.green)
plot(sma_daily_100, color = color.yellow)
plot(sma_daily_200, color = color.red)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM