原文地址: TA-LIB document
翻譯地址:https://github.com/HuaRongSAO/talib-document
抽象API快速開始
如果您已經熟悉使用函數API,那么您就應該在精通使用抽象API。
每個函數有相同的輸入乒融,作為一個字典通過NumPy數組:
import numpy as np
#請注意,所有的ndarrays必須是相同的長度嗜愈!
inputs = {
'open': np.random.random(100),
'high': np.random.random(100),
'low': np.random.random(100),
'close': np.random.random(100),
'volume': np.random.random(100)
}
函數可以直接導入,也可以用名稱實例化:
from talib import abstract
sma = abstract.SMA
sma = abstract.Function('sma')
調用函數基本上與函數API相同:
from talib.abstract import *
output = SMA(input_arrays, timeperiod=25) # calculate on close prices by default
output = SMA(input_arrays, timeperiod=25, price='open') # calculate on opens
upper, middle, lower = BBANDS(input_arrays, 20, 2, 2)
slowk, slowd = STOCH(input_arrays, 5, 3, 0, 3, 0) # uses high, low, close by default
slowk, slowd = STOCH(input_arrays, 5, 3, 0, 3, 0, prices=['high', 'low', 'open'])
高級用法
For more advanced use cases of TA-Lib, the Abstract API also offers much more
flexibility. You can even subclass abstract.Function
and override
set_input_arrays
to customize the type of input data Function accepts
(e.g. a pandas DataFrame).
對于更高級的TA庫用例,抽象API也提供了更大的靈活性。
你甚至可以子類abstract.Function
和覆蓋set_input_arrays
自定義類型的輸入數據的函數接受
(e.g. a pandas DataFrame).
Details about every function can be accessed via the info property:
有關每個功能的詳細信息可以通過信息屬性訪問:
print Function('stoch').info
{
'name': 'STOCH',
'display_name': 'Stochastic',
'group': 'Momentum Indicators',
'input_names': OrderedDict([
('prices', ['high', 'low', 'close']),
]),
'parameters': OrderedDict([
('fastk_period', 5),
('slowk_period', 3),
('slowk_matype', 0),
('slowd_period', 3),
('slowd_matype', 0),
]),
'output_names': ['slowk', 'slowd'],
}
或者是可讀的格式:
help(STOCH)
str(STOCH)
其他有用屬性 Function
:
Function('x').function_flags
Function('x').input_names
Function('x').input_arrays
Function('x').parameters
Function('x').lookback
Function('x').output_names
Function('x').output_flags
Function('x').outputs
Aside from calling the function directly, Functions maintain state and will
remember their parameters/input_arrays after they've been set. You can set
parameters and recalculate with new input data using run():
除了直接調用函數召锈,函數還可以保持狀態(tài),已經記住他們的 參數/數組
你可以設置參數开呐,重新計算使用run()新輸入數據
SMA.parameters = {'timeperiod': 15}
result1 = SMA.run(input_arrays1)
result2 = SMA.run(input_arrays2)
# Or set input_arrays and change the parameters:
SMA.input_arrays = input_arrays1
ma10 = SMA(timeperiod=10)
ma20 = SMA(20)
欲了解更多詳情烟勋,請看 code.