您當前的位置:首頁 > 繪畫

Python美股量化交易填坑記錄——9.TradingView輸入三點後畫出平行通道

作者:由 ChristopherShen 發表于 繪畫時間:2022-06-23

隨著狼群逐步開啟量化之路,以後將越來越多的使用TradingView,而逐步拋棄富途,主要原因有:

TradingView可以將交易訊號透過WebHook的方式發出,便於讓機器人自動交易。

TradingView上除了有常用指標,還有各路大神自創的各類新指標,分享機制完善,交流氣氛好。

富途上已經不能檢視BTC等加密貨幣。

但是,TradingView也有一個劣勢,就是它的Pine語言學習成本高,尤其是對於已經用慣富途的人來說,不過這主要是對於進階需求來說的,簡單需求還是上手很快的,對新人比較友好。

對於狼王最常使用的平行通道來說,之前有群友問如何在TradingView上畫?我看了一下TradingView的手繪功能,雖然有一個叫做“平行通道”的功能,但只能畫出2層通道,確實跟富途的柵形線不太一樣。

剛好最近在啃Pine語言,於是我想能不能透過Pine指令碼來畫平行通道呢?

如果是類似機器學習那樣的全自動畫平行通道,十分困難,不過程式碼組的大神們已在研究,敬請期待!

我作為一個程式碼組的小渣渣,只能為大家提供一種半自動的平行通道畫法,也就是請使用者輸入平行通道的3個關鍵點(2個最低點、1個高點)後,Pine指令碼畫出所有平行線。

程式碼已全部公開:

https://

cn。tradingview。com/scri

pt/vp0lWGBq/

思路也很簡單:首先根據兩個低點座標計算平行通道斜率,然後根據高點計算平行通道寬度,最後使用迴圈畫出所有平行線。

這是效果圖:(以AAPL為例)

Python美股量化交易填坑記錄——9.TradingView輸入三點後畫出平行通道

Python美股量化交易填坑記錄——9.TradingView輸入三點後畫出平行通道

對比富途的效果圖:

Python美股量化交易填坑記錄——9.TradingView輸入三點後畫出平行通道

這是使用者需要輸入的引數:(預設值來自AAPL)

Python美股量化交易填坑記錄——9.TradingView輸入三點後畫出平行通道

除了三個關鍵點的座標外,還需要輸入高點與兩個低點相隔多少個平行通道,以及打算在低點上下畫出多少個平行通道。

再換DIS看一下效果:

Python美股量化交易填坑記錄——9.TradingView輸入三點後畫出平行通道

Python美股量化交易填坑記錄——9.TradingView輸入三點後畫出平行通道

DIS的引數:

Python美股量化交易填坑記錄——9.TradingView輸入三點後畫出平行通道

最後,提醒大家一點:平行通道不是一成不變的,大家應該及時收看狼王的最新影片,及時更新自己本地的平行通道。

之後我想研究一下怎麼給這個平行通道新增警報,今天嘗試了一下,沒有找到解決辦法,看來還得請出程式碼組的大神才行~~~

關於TradingView指令碼,兩次被封殺,也是無語了!算了,直接貼出程式碼吧:

//@version=4

study(“平行通道”,overlay=true)

// calc_on_every_tick=true

// 1。根據兩個最低點計算平行通道斜率

x1 = input(title=“低點1的x”, type=input。time, defval=timestamp(‘2020-03-23T00:00-04:00’))

y1 = input(title=“低點1的y”, type=input。float, defval=52。653)

x2 = input(title=“低點2的x”, type=input。time, defval=timestamp(‘2021-03-30T00:00-04:00’))

y2 = input(title=“低點2的y”, type=input。float, defval=118。658)

// line1 = line。new(x1, y1, x2, y2, xloc=xloc。bar_time, extend=extend。both) //兩個低點連線

slope=(y2-y1)/(x2-x1)

// 2。根據高點計算平行通道寬度

x3 = input(title=“高點的x”, type=input。time, defval=timestamp(‘2021-07-09T00:00-04:00’))

y3 = input(title=“高點的y”, type=input。float, defval=145。11)

x4=x1

y4=slope*(x4-x3)+y3

n = input(title=“高點相隔多少個平行通道?”, type=input。integer, defval=2)

kuandu=(y4-y1)/n

// 3。迴圈畫出所有平行通道

m1 = input(title=“打算在低點之下畫出多少個平行通道?”, type=input。integer, defval=2)

m2 = input(title=“打算在低點之上畫出多少個平行通道?”, type=input。integer, defval=13)

for i = -m1 to m2

line1 = line。new(x1, y1+kuandu*i, x2, y2+kuandu*i, xloc=xloc。bar_time, extend=extend。both)

標簽: input  平行  通道  title  type