[英]Plot SL/TP on main price chart in tradingview using Pine Script V5
[英]How to plot after a certain date and ignore anything prior to - Pine Script v5 - TradingView
有誰知道我如何 plot 在某個日期之后每次出現定義的變量? 因此,在某個時間幀輸入之前忽略所有事件。 我能夠找到這個: How to plot only the last x period但是,這似乎只有 plot 變量在輸入日期的單個出現。
例如和簡單我如何在用戶輸入日期后的每個十字星 plot :
//@version=5
indicator('Plot all Doji after input date and ignore before input date', overlay=true)
monthsBack = input.int(3, minval=0)
doji = close == open
targetDate = time >= timestamp(year(timenow), month(timenow) - monthsBack, 1, 0, 0, 0)
beginMonth = not targetDate[1] and targetDate
var float valueToPlot = doji
if beginMonth
valueToPlot := high
valueToPlot
plot(valueToPlot)
bgcolor(beginMonth ? color.green : na, transp=90)
好問題 Josiah,這里發生了很多事情:
beginMonth
測試,如所寫,只會標記您允許的日期范圍內的第一個完整月份的第一天。 我們將在下面解決這個問題。這是一個很好的例子,因為它突出了我在自己的 Pine 腳本中經常遇到的問題,尋找機會或條件:
為什么我沒有看到我的規則標記的任何機會? 我的代碼有問題嗎? 它甚至跑了嗎? 或者是我正在查看的數據,沒有任何匹配的蠟燭,但代碼很好? (哦,我是否閱讀了錯誤版本的文檔,使用了正確版本的 function,是否更新每個條上的值......)
即使我們成功地制作了正確的測試並成功地將它們正確組合,仍然很難有效地使用 plot 十字星。 部分是因為它們很少見,部分是因為它們在圖表上的樣子。 這也使得我們很難判斷我們的代碼是否正常工作,即使它是。
所以我試着確保我的代碼能幫助我看到哪里出了問題,什么不是。 並且希望這個例子對那個級別的其他人也有用。
下面的代碼應該做你想做的事。 為了回答您的標題問題,它使用了一個名為okayToPlot
的變量來將您的指標的呈現限制在過去N 個月內的幾天內。
它還顯示了如何找到並有效地突出顯示十字星,因此您不會瘋狂地試圖查看在另一條細黑線之上呈現的細黑線。
我使用overlay=false
來幫助您(好吧,我)更好地了解正在發生的事情。 一旦您對您的工作腳本感到滿意,只需將其改回overlay=true
,您就可以使用 go。
如果您將其復制/粘貼到您的 Pine 編輯器中作為新指標並在日線圖上嘗試一些緩慢移動的大盤股,如果您掃描足夠長的時間,您應該會發現十字星。
我於 2021 年底在 TSX 的 BCE 上使用了 8 個月,它發現 2 天的十字星形成,它以黃色背景和亮綠色+符號突出顯示。
//@version=5
indicator("Highlight Any Doji In Past N Months", overlay=false)
// 1) Define inputs used in the script
monthsBack = input.int(8, minval=0, title="How many months back should we scan for dojis?")
// 2) Declare variables used in the script, and set defaults (once per chart)
var tn = timenow
var firstDate = timestamp(year(tn), month(tn) - monthsBack, 1, 0, 0, 0)
var doji = false
var okayToPlot = false
// 3) Calculations. The := notation below updates the variable on each bar of the chart.
okayToPlot := time > firstDate
doji := close == open
// 4) Output / Plotting
plot(okayToPlot and doji ? close : na, style = plot.style_cross, linewidth = 3, color = color.new(color.green, 40))
bgcolor(okayToPlot ? doji ? color.new(color.yellow, 60) : color.new(color.green, 80) : na)
截屏
我在圖表中使用深色主題。 希望您仍然可以區分 8 個月前日期的黑色背景(不會以黃色突出顯示十字星)和過去 8 個月的日期(將以黃色突出顯示任何十字星日) - 如果有的話成立。
相關:什么是十字星?
起初我認為問題中的這一行是一個錯誤:
doji = close == open
但事實證明,直到今天我才真正知道十字星是什么。 我必須查一下,這樣未來的讀者就不會被這個特定的例子弄糊塗了,這個快速的旁注:
當開盤價和收盤價相等時形成十字星。
(通過https://commodity.com/technical-analysis/doji/ )
因此,在燭台圖表上,它可能看起來像 + 或更高的十字。
通過瀏覽上面的鏈接,我不確定從技術上講,高點和低點相等的一天是否算作十字星。 在燭台圖表上,它看起來像一個減號,一個破折號。 如果您想從過濾器中排除這些,請將上面的十字星測試行更改為:
doji := close == open and high > low
獎金回合: plotchar()
這是另一個屏幕截圖,顏色更亮,繪圖技術略有不同,更適合這種情況。
我們可能並不是真的想要plot的收盤價,只是吸引觀眾的眼球。 我還將這個屏幕截圖放大到我之前圖像中最相關的幾個月(在將月份輸入更改為 5 后,它只搜索到 7 月 1 日)。
// Since plotting anything (a line, a cross, whatever) directly at the close
// price of a doji will hide it, here's a version that uses plotchar() to
// place a question mark directly above the doji.
plotchar(okayToPlot and doji, char='?', location = location.abovebar, color = color.new(color.black, 0))
bgcolor(okayToPlot ? doji ? color.new(color.yellow, 40) : color.new(color.green, 20) : na)
受鐵拳啟發的綠色和黃色顏色,因為十字星讓我想起了dojo ,而我的某些部分仍然是七歲。 問號是因為十字星代表不確定性,優柔寡斷的市場......絕不是對同樣穿着綠色的謎語人的參考。 這肯定是巧合吧?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.