Open RJ0223 opened 2 years ago
Hi 您好~ 其實最簡單的方式就是直接Ctrl+右鍵點進去看程式 (以vscode來說是這樣操作)
如果您點擊Histo進去,應該可以看到他的程式有兩個物件:
class MACD(Indicator)
class MACDHisto(MACD)
通常在框架中,您看到Indicator在括弧裡,他通常會對應一個params(),params裡面帶有數字的,就是我們通常傳入的參數(如果您選擇直接call函數不傳參,那他就會帶他預設的那些數字),沒有帶數字的有一些是他框架內的其他物件,例如是拿來計算指數的物件等等,這個就比較複雜,跟他的框架設計有關。
另外MACDHisto裡面,您可以看到他不是帶Indicator,他是帶前面的MACD類,這意味著他是MACD的子類,他的一個小弟,所以他原則上會共用MACD的東西,換言之您是call MACDHisto,但他其實會先去找他的大哥MACD,然後再計算MACDHisto的東西給你,所以他所需要的參數基本跟MACD一樣。
另外,沒錯! MACD、KD等等國內外的說明蠻不一致的,所以通常我們在開發的時候做法就是直接問需求者公式,然後去看套件的程式到底哪一個才符合這個公式,這樣最準確,也不太需要糾結一些名詞。
你好, 謝謝你的回覆,先前的問題大致上都沒問題了,不過我現在有另外一個問題要詢問你 我現在想使用KD指標,但是我看了bt給的套件,沒有一個符合台灣的KD指標算法,唯一比較接近的是Stochastic這個物件,但是他的計算方式還是差了一點,如下圖。因為台灣的K值與D值算法是用加權移動平均法計算的,但是Stochastic卻只是用一般的移動平均計算,想請問你,我是否可以在我的策略int物件中,利用Stochastic給出的值,再去計算我需要的值?
因為我有試著去計算我所需要的值,如下圖,但是卻會跑出錯誤:IndexError: array index out of range。但若我不去自己計算而直接使用Stochastic給的值,是可以順利跑出結果,所以才想問你說,是我的計算方式有誤,還是需要用其他方式? 在麻煩您幫我解答,真的非常謝謝您。
Hi 您好,基本上具備時間概念的資料 (e.g. 當前 [0] 前一刻 [-1] 前兩刻 [-2])並非是init的工作。 換言之init並不知道所謂的[-1]是指前一刻,時間的概念是next() function幫我們打造出來的。
您的問題我認為比較簡單的解法有二:
你好, 在bt.ind.MACDHisto(period_me1=12,.......)這段程式碼中,你是如何知道 "( )" 內要放進什麼參數的? 因為我想使用其他指標,可是我從bt的官方文件中,看不懂要如何在其他指標的 ( ) 內的放相關的參數 還請你幫忙解惑一下,謝謝你!!!
btw, 在bt的KD指標他的算法是不是跟台灣的KD指標算法不太一樣? 我看Stochastic裡面有很多種類,不知道該用哪一個