技術分析函數
技術分析的函數將廣泛使用的算法應用在您的數據中。雖然這些函數主要應用在金融和投資領域,但是它們也適用于其它行業和用例。本文檔主要介紹了技術分析函數的語法結構、語法說明以及使用示例。
通用參數說明
除了field key
參數,技術分析函數還提供以下參數:
PERIOD
必選參數,整數類型,min=1。算法的樣本大小。這基本上是對算法的輸出有顯著影響的歷史樣本的數量。例如,
2
表示當前的數據點和前一個數據點。算法使用指數衰減率來決定歷史數據點的權重,通常稱為alpha(α)
。參數PERIOD
控制衰減率。請注意,歷史數據點仍然可以產生影響。HOLD_PERIOD
整數類型,min=-1。算法需要多少個樣本才會開始發送結果。默認值
-1
表示該參數的值基于算法、PERIOD
和WARMUP_TYPE
,但是這是一個可以使算法發送有意義的結果的值。默認的Hold Periods:對于大多數提供的技術分析,
HOLD_PERIOD
的默認值由您使用的技術分析算法和WARMUP_TYPE
決定。算法 \ Warmup Type
simple
exponential
none
EXPONENTIAL_MOVING_AVERAGE
PERIOD - 1
PERIOD - 1
n/a
DOUBLE_EXPONENTIAL_MOVING_AVERAGE
( PERIOD - 1 ) * 2
PERIOD - 1
n/a
TRIPLE_EXPONENTIAL_MOVING_AVERAGE
( PERIOD - 1 ) * 3
PERIOD - 1
n/a
TRIPLE_EXPONENTIAL_DERIVATIVE
( PERIOD - 1 ) * 3 + 1
PERIOD
n/a
RELATIVE_STRENGTH_INDEX
PERIOD
PERIOD
n/a
CHANDE_MOMENTUM_OSCILLATOR
PERIOD
PERIOD
PERIOD - 1
Kaufman算法默認的Hold Periods:
算法
默認的Hold Period
KAUFMANS_EFFICIENCY_RATIO()
PERIOD
KAUFMANS_ADAPTIVE_MOVING_AVERAGE()
PERIOD
WARMUP_TYPE
默認值為exponential。這個參數控制算法如何為第一個
PERIOD
樣本初始化自身,它本質上是具有不完整樣本集的持續時間。simple
第一個PERIOD
樣本的簡單移動平均值(simple moving average,SMA)。這是ta-lib使用的方法。exponential
具有縮放alpha(α)
的指數移動平均值(exponential moving average,EMA)。基本上是這樣使用EMA:PERIOD=1
用于第一個點,PERIOD=2
用于第二個點,以此類推,直至算法已經消耗了PERIOD
個數據點。由于算法一開始就使用了EMA,當使用此方法并且沒有指定HOLD_PERIOD
的值或HOLD_PERIOD
的值為-1
時,算法可能會在比simple
小得多的樣本大小的情況下開始發送數據點。none
算法不執行任何的平滑操作。這是ta-lib使用的方法。當使用此方法并且沒有指定HOLD_PERIOD
時,HOLD_PERIOD
的默認值是PERIOD - 1
。說明類型none僅適用于
CHANDE_MOMENTUM_OSCILLATOR()
函數。
CHANDE_MOMENTUM_OSCILLATOR()
Chande Momentum Oscillator(CMO)是由Tushar Chande開發的一個技術動量指標。通過計算所有最近較高數據點的總和與所有最近較低數據點的總和的差值,然后將結果除以給定時間范圍內的所有數據變動的總和來創建CMO指標。將結果乘以100可以得到一個從-100到+100的范圍。
基本語法
CHANDE_MOMENTUM_OSCILLATOR([*|<field_key>|/regular_expression/],<period>[,<hold_period>,[warmup_type]])
可用的參數
period,hold_period(可選)warmup_type(可選)
基本語法描述
CHANDE_MOMENTUM_OSCILLATOR(field_key, 2)
返回使用CMO算法處理field key對應的field value后的結果,該算法中,period設為2,使用默認的hold period和warmup type。
CHANDE_MOMENTUM_OSCILLATOR(field_key, 10, 9, 'none')
返回使用CMO算法處理field key對應的field value后的結果,該算法中,period設為10,hold period設為9,warmup type設為none
。
CHANDE_MOMENTUM_OSCILLATOR(MEAN(<field_key>), 2) ... GROUP BY time(1d)
返回使用CMO算法處理field key對應的field value平均值后的結果,該算法中,period設為2,使用默認的hold period和warmup type。
注釋:當使用GROUP BY子句將數據進行聚合時,您必須在CHANDE_MOMENTUM_OSCILLATOR()函數中調用聚合函數。
CHANDE_MOMENTUM_OSCILLATOR(/regular_expression/, 2)
返回使用CMO算法處理與正則表達式匹配的每個field key對應的field value后的結果,該算法中,period設為2,使用默認的hold period和warmup type。
CHANDE_MOMENTUM_OSCILLATOR(*, 2)
返回使用CMO算法處理measurement中每個field key對應的field value后的結果,該算法中,period設為2,使用默認的hold period和warmup type。
CHANDE_MOMENTUM_OSCILLATOR()
支持數據類型為int64和float64的field value。
EXPONENTIAL_MOVING_AVERAGE()
指數移動平均值(Exponential Moving Average,EMA)類似于簡單移動平均值,不同的是,指數移動平均值對最新數據給予更多的權重,它也被稱為”指數加權移動平均值”。與簡單移動平均值相比,這種類型的移動平均值對最近數據的變化反應更快。
基本語法
EXPONENTIAL_MOVING_AVERAGE([*|<field_key>|/regular_expression/],<period>[,<hold_period)[,<warmup_type]])
可用的參數
period,hold_period(可選)warmup_type(可選)
基本語法描述
EXPONENTIAL_MOVING_AVERAGE(field_key, 2)
返回使用EMA算法處理field key對應的field value后的結果,該算法中,period設為2,使用默認的hold period和warmup type。
EXPONENTIAL_MOVING_AVERAGE(field_key, 10, 9, 'exponential')
返回使用EMA算法處理field key對應的field value后的結果,該算法中,period設為10,hold period設為9,warmup type設為exponential
。
EXPONENTIAL_MOVING_AVERAGE(MEAN(<field_key>), 2) ... GROUP BY time(1d)
返回使用EMA算法處理field key對應的field value平均值后的結果,該算法中,period設為2,使用默認的hold period和warmup type。
注釋:當使用GROUP BY子句將數據進行聚合時,您必須在EXPONENTIAL_MOVING_AVERAGE()函數中調用聚合函數。
EXPONENTIAL_MOVING_AVERAGE(/regular_expression/, 2)
返回使用EMA算法處理與正則表達式匹配的每個field key對應的field value后的結果,該算法中,period設為2,使用默認的hold period和warmup type。
EXPONENTIAL_MOVING_AVERAGE(*, 2)
返回使用EMA算法處理measurement中每個field key對應的field value后的結果,該算法中,period設為2,使用默認的hold period和warmup type。
EXPONENTIAL_MOVING_AVERAGE()
支持數據類型為int64和float64的field value。
DOUBLE_EXPONENTIAL_MOVING_AVERAGE()
雙重指數移動平均值(Double Exponential Moving Average,DEMA)通過增加最近數據的權重,嘗試消除與移動平均值相關的固有滯后。該名字似乎表明這是通過雙重指數平滑來實現的,然而事實并非如此,它表示的是將EMA的值翻倍。為了使它與實際數據保持一致,也為了消除滯后,從之前兩倍EMA的值中把”EMA of EMA”的值減去,公式為:DEMA = 2 * EMA - EMA(EMA)。
基本語法
DOUBLE_EXPONENTIAL_MOVING_AVERAGE([*|<field_key>|/regular_expression/],<period>[,<hold_period)[,<warmup_type]])
可用的參數
period,hold_period(可選),warmup_type(可選)
基本語法描述
DOUBLE_EXPONENTIAL_MOVING_AVERAGE(field_key, 2)
返回使用DEMA算法處理field key對應的field value后的結果,該算法中,period設為2,使用默認的hold period和warmup type。
DOUBLE_EXPONENTIAL_MOVING_AVERAGE(field_key, 10, 9, 'exponential')
返回使用DEMA算法處理field key對應的field value后的結果,該算法中,period設為10,hold period設為9,warmup type設為exponential
。
DOUBLE_EXPONENTIAL_MOVING_AVERAGE(MEAN(<field_key>), 2) ... GROUP BY time(1d)
返回使用DEMA算法處理field key對應的field value平均值后的結果,該算法中,period設為2,使用默認的hold period和warmup type。
注釋:當使用GROUP BY子句將數據進行聚合時,您必須在DOUBLE_EXPONENTIAL_MOVING_AVERAGE()函數中調用聚合函數。
DOUBLE_EXPONENTIAL_MOVING_AVERAGE(/regular_expression/, 2)
返回使用DEMA算法處理與正則表達式匹配的每個field key對應的field value后的結果,該算法中,period設為2,使用默認的hold period和warmup type。
DOUBLE_EXPONENTIAL_MOVING_AVERAGE(*, 2)
返回使用DEMA算法處理measurement中每個field key對應的field value后的結果,該算法中,period設為2,使用默認的hold period和warmup type。
DOUBLE_EXPONENTIAL_MOVING_AVERAGE()
支持數據類型為int64和float64的field value。
KAUFMANS_EFFICIENCY_RATIO()
Kaufman效率比 (Kaufman’s Efficiency Ration),或簡稱為效率比 (Efficiency Ratio,ER),它的計算方法是:將一段時間內的數據變化除以實現該變化所發生的數據變動的絕對值的總和。得出的比率在0和1之間,比率越高,表示市場越有效率或越有趨勢。
ER跟Chande Momentum Oscillator (CMO)非常類似。不同的是,CMO將市場方向考慮在內,但是如果您將CMO的絕對值除以100,就可以得到ER。
基本語法
KAUFMANS_EFFICIENCY_RATIO([*|<field_key>|/regular_expression/],<period>[,<hold_period>])
可用的參數
period,hold_period (可選)
基本語法描述
KAUFMANS_EFFICIENCY_RATIO(field_key, 2)
返回使用效率指數(Efficiency Index)算法處理field key對應的field value后的結果,該算法中,period設為2,使用默認的hold period。
KAUFMANS_EFFICIENCY_RATIO(field_key, 10, 10)
返回使用效率指數算法處理field key對應的field value后的結果,該算法中,period設為10,hold period設為10。
KAUFMANS_EFFICIENCY_RATIO(MEAN(<field_key>), 2) ... GROUP BY time(1d)
返回使用效率指數算法處理field key對應的field value平均值后的結果,該算法中,period設為2,使用默認的hold period。
注釋:當使用GROUP BY子句將數據進行聚合時,您必須在KAUFMANS_EFFICIENCY_RATIO()函數中調用聚合函數。
KAUFMANS_EFFICIENCY_RATIO(/regular_expression/, 2)
返回使用效率指數算法處理與正則表達式匹配的每個field key對應的field value后的結果,該算法中,period設為2,使用默認的hold period。
KAUFMANS_EFFICIENCY_RATIO(*, 2)
返回使用效率指數算法處理measurement中每個field key對應的field value后的結果,該算法中,period設為2,使用默認的hold period。
KAUFMANS_EFFICIENCY_RATIO()
支持數據類型為int64和float64的field value。
KAUFMANS_ADAPTIVE_MOVING_AVERAGE()
Kaufman自適應移動平均值 (Kaufman’s Adaptive Moving Average,KAMA),是一個用于計算樣本噪音或波動率的移動平均值。當數據波動相對較小并且噪音較低時,KAMA會密切關注數據點。當數據波動較大時,KAMA會進行調整,平滑噪音。該趨勢跟蹤指標可用于識別總體趨勢、時間轉折點和過濾價格變動。
基本語法
KAUFMANS_ADAPTIVE_MOVING_AVERAGE([*|<field_key>|/regular_expression/],<period>[,<hold_period>])
可用的參數
period,hold_period(可選),warmup_type(可選)
基本語法描述
KAUFMANS_ADAPTIVE_MOVING_AVERAGE(field_key, 2)
返回使用KAMA算法處理field key對應的field value后的結果,該算法中,period設為2,使用默認的hold period。
KAUFMANS_ADAPTIVE_MOVING_AVERAGE(field_key, 10, 10)
返回使用KAMA算法處理field key對應的field value后的結果,該算法中,period設為10,hold period設為10。
KAUFMANS_ADAPTIVE_MOVING_AVERAGE(MEAN(<field_key>), 2) ... GROUP BY time(1d)
返回使用KAMA算法處理field key對應的field value平均值后的結果,該算法中,period設為2,使用默認的hold period。
注釋:當使用GROUP BY子句將數據進行聚合時,您必須在KAUFMANS_ADAPTIVE_MOVING_AVERAGE()函數中調用聚合函數。
KAUFMANS_ADAPTIVE_MOVING_AVERAGE(/regular_expression/, 2)
返回使用KAMA算法處理與正則表達式匹配的每個field key對應的field value后的結果,該算法中,period設為2,使用默認的hold period。
KAUFMANS_ADAPTIVE_MOVING_AVERAGE(*, 2)
返回使用KAMA算法處理measurement中每個field key對應的field value后的結果,該算法中,period設為2,使用默認的hold period。
KAUFMANS_ADAPTIVE_MOVING_AVERAGE()
支持數據類型為int64和float64的field value。
TRIPLE_EXPONENTIAL_MOVING_AVERAGEE()
三重指數移動平均值 (Triple Exponential Moving Average,TEMA),旨在過濾常規移動平均值的波動。該名字似乎表明這是通過三重指數平滑來實現的,然而事實并非如此,它實際上是包含指數移動平均值、雙重指數移動平均值和三重指數移動平均值的復合函數。
基本語法
TRIPLE_EXPONENTIAL_MOVING_AVERAGE([*|<field_key>|/regular_expression/],<period>[,<hold_period)[,<warmup_type]])
可用的參數
period,hold_period (可選),warmup_type(可選)
基本語法描述
TRIPLE_EXPONENTIAL_MOVING_AVERAGE(field_key, 2)
返回使用TEMA算法處理field key對應的field value后的結果,該算法中,period設為2,使用默認的hold period和warmup type。
TRIPLE_EXPONENTIAL_MOVING_AVERAGE(field_key, 10, 9, 'exponential')
返回使用TEMA算法處理field key對應的field value后的結果,該算法中,period設為10,hold period設為9,warmup type設為exponential
。
TRIPLE_EXPONENTIAL_MOVING_AVERAGE(MEAN(<field_key>), 2) ... GROUP BY time(1d)
返回使用TEMA算法處理field key對應的field value平均值后的結果,該算法中,period設為2,使用默認的hold period和warmup type。
注釋:當使用GROUP BY子句將數據進行聚合時,您必須在TRIPLE_EXPONENTIAL_MOVING_AVERAGE()函數中調用聚合函數。
TRIPLE_EXPONENTIAL_MOVING_AVERAGE(/regular_expression/, 2)
返回使用TEMA算法處理與正則表達式匹配的每個field key對應的field value后的結果,該算法中,period設為2,使用默認的hold period和warmup type。
TRIPLE_EXPONENTIAL_MOVING_AVERAGE(*, 2)
返回使用TEMA算法處理measurement中每個field key對應的field value后的結果,該算法中,period設為2,使用默認的hold period和warmup type。
TRIPLE_EXPONENTIAL_MOVING_AVERAGE()
支持數據類型為int64和float64的field value。
TRIPLE_EXPONENTIAL_DERIVATIVE()
三重指數導數指標 (Triple Exponential Derivative Indicator),通常稱為”TRIX”,是一種用于識別超賣和超買市場的振蕩器,也可用作動量指標。TRIX計算一段時間內輸入數據的對數的三重指數移動平均值。從當前的值中減去之前的值,這可以防止指標考慮比規定期間短的周期。
跟很多振蕩器一樣,TRIX圍繞著零線震蕩。當它用作振蕩器時,正數表示炒買超買市場,而負數表示超賣市場。當它用作動量指標時,正數表示動量在增加,而負數表示動量在減少。很多分析師認為,當TRIX超過零線時,它會給出買入信號,當低于零線時,它會給出賣出信號。
基本語法
TRIPLE_EXPONENTIAL_DERIVATIVE([*|<field_key>|/regular_expression/],<period>[,<hold_period)[,<warmup_type]])
可用的參數
period,hold_period(可選),warmup_type(可選)
基本語法描述
TRIPLE_EXPONENTIAL_DERIVATIVE(field_key, 2)
返回使用三重指數導數算法處理field key對應的field value后的結果,該算法中,period設為2,使用默認的hold period和warmup type。
TRIPLE_EXPONENTIAL_DERIVATIVE(field_key, 10, 10, 'exponential')
返回使用三重指數導數算法處理field key對應的field value后的結果,該算法中,period設為10,hold period設為10,warmup type設為exponential
。
TRIPLE_EXPONENTIAL_DERIVATIVE(MEAN(<field_key>), 2) ... GROUP BY time(1d)
返回使用三重指數導數算法處理field key對應的field value平均值后的結果,該算法中,period設為2,使用默認的hold period和warmup type。
注釋:當使用GROUP BY子句將數據進行聚合時,您必須在TRIPLE_EXPONENTIAL_DERIVATIVE()函數中調用聚合函數。
TRIPLE_EXPONENTIAL_DERIVATIVE(/regular_expression/, 2)
返回使用三重指數導數算法處理與正則表達式匹配的每個field key對應的field value后的結果,該算法中,period設為2,使用默認的hold period和warmup type。
TRIPLE_EXPONENTIAL_DERIVATIVE(*, 2)
返回使用三重指數導數算法處理measurement中每個field key對應的field value后的結果,該算法中,period設為2,使用默認的hold period和warmup type。
TRIPLE_EXPONENTIAL_DERIVATIVE()
支持數據類型為int64和float64的field value。
RELATIVE_STRENGTH_INDEX()
相對強弱指數(Relative Strength Index,RSI)是一個動量指標,用于比較在指定時間段內最近數據增大和減小的幅度,以便測量數據變動的速度和變化。
基本語法
RELATIVE_STRENGTH_INDEX([*|<field_key>|/regular_expression/],<period>[,<hold_period)[,<warmup_type]])
可用的參數
period,hold_period(可選),warmup_type(可選)
基本語法描述
RELATIVE_STRENGTH_INDEX(field_key, 2)
返回使用RSI算法處理field key對應的field value后的結果,該算法中,period設為2,使用默認的hold period和warmup type。
RELATIVE_STRENGTH_INDEX(field_key, 10, 10, 'exponential')
返回使用RSI算法處理field key對應的field value后的結果,該算法中,period設為10,hold period設為10,warmup type設為exponential
。
RELATIVE_STRENGTH_INDEX(MEAN(<field_key>), 2) ... GROUP BY time(1d)
返回使用RSI算法處理field key對應的field value平均值后的結果,該算法中,period設為2,使用默認的hold period和warmup type。
注釋:當使用GROUP BY子句將數據進行聚合時,您必須在RELATIVE_STRENGTH_INDEX()函數中調用聚合函數。
RELATIVE_STRENGTH_INDEX(/regular_expression/, 2)
返回使用RSI算法處理與正則表達式匹配的每個field key對應的field value后的結果,該算法中,period設為2,使用默認的hold period和warmup type。
RELATIVE_STRENGTH_INDEX(*, 2)
返回使用RSI算法處理measurement中每個field key對應的field value后的結果,該算法中,period設為2,使用默認的hold period和warmup type。
RELATIVE_STRENGTH_INDEX()
支持數據類型為int64和float64的field value。