นี่คือเสื้อคลุม Python สำหรับ Ta-lib ตาม Cython แทน Swig จากหน้าแรก:
TA-LIB ใช้กันอย่างแพร่หลายโดยนักพัฒนาซอฟต์แวร์การซื้อขายที่ต้องการทำการวิเคราะห์ทางเทคนิคของข้อมูลตลาดการเงิน
- มีตัวบ่งชี้มากกว่า 150 ตัวเช่น ADX, MACD, RSI, Stochastic, Bollinger Bands ฯลฯ
- การจดจำรูปแบบเชิงเทียน
- Open-Source API สำหรับ C/C ++, Java, Perl, Python และ. NET ที่มีการจัดการ 100%
การผูก python ดั้งเดิมที่มาพร้อมกับ Swig ใช้ Ta-lib ซึ่งน่าเสียดายที่ยากต่อการติดตั้งและไม่ได้มีประสิทธิภาพเท่าที่ควร ดังนั้นโครงการนี้จึงใช้ Cython และ Numpy เพื่อผูกมัดอย่างมีประสิทธิภาพและถูกผูกไว้กับ Ta-Lib-ให้ผลลัพธ์ที่เร็วกว่าอินเตอร์เฟส Swig 2-4 เท่า
นอกจากนี้โครงการนี้ยังสนับสนุนการใช้ห้องสมุดโพลาร์และแพนด้า
คุณสามารถติดตั้งจาก PYPI:
$ python -m pip install TA-Lib
หรือชำระเงินแหล่งที่มาและเรียกใช้ setup.py
ตัวเอง:
$ python setup.py install
นอกจากนี้ยังเป็นไปได้ที่จะติดตั้งผ่าน conda forge:
$ conda install -c conda-forge ta-lib
ในการใช้ TA-LIB สำหรับ Python คุณต้องติดตั้ง TA-LIB แล้ว คุณควรทำตามคำแนะนำการติดตั้งสำหรับแพลตฟอร์มของคุณ แต่มีคำแนะนำบางอย่างด้านล่างเพื่ออ้างอิง
ผู้ใช้ Conda Forge บางรายรายงานความสำเร็จในการติดตั้งไลบรารี TA-LIB C พื้นฐานโดยใช้แพ็คเกจ Libta-Lib:
$ conda install -c conda-forge libta-lib
คุณสามารถติดตั้งได้โดยใช้ Homebrew:
$ brew install ta-lib
หากคุณใช้ Apple Silicon เช่นโปรเซสเซอร์ M1 และการสร้างโครงการ Homebrew สถาปัตยกรรมแบบผสมคุณอาจต้องการให้แน่ใจว่ามันถูกสร้างขึ้นเพื่อสถาปัตยกรรมของคุณ:
$ arch -arm64 brew install ta-lib
และบางทีคุณสามารถตั้งค่าเหล่านี้ก่อนติดตั้งด้วย pip
:
$ export TA_INCLUDE_PATH="$(brew --prefix ta-lib)/include"
$ export TA_LIBRARY_PATH="$(brew --prefix ta-lib)/lib"
คุณอาจพบว่าสิ่งนี้มีประโยชน์โดยเฉพาะอย่างยิ่งหากคุณได้ลองใช้การติดตั้งที่แตกต่างกันหลายครั้งโดยไม่ประสบความสำเร็จ:
$ your-arm64-python -m pip install --no-cache-dir ta-lib
ดาวน์โหลด TA-LIB-0.4.0-MSVC.ZIP และ UNZIP ไปยัง C:ta-lib
นี่คือการเปิดตัวไบนารี 32 บิต หากคุณต้องการใช้งูหลาม 64 บิตคุณจะต้องสร้างไลบรารีรุ่น 64 บิต คำแนะนำที่ไม่เป็นทางการสำหรับการสร้างบน Windows 10 หรือ Windows 11 ที่ 64 บิตที่นี่สำหรับการอ้างอิง:
- ดาวน์โหลดและ unzip
ta-lib-0.4.0-msvc.zip
- ย้ายโฟลเดอร์ที่ยังไม่มีซิป
ta-lib
ไปที่C:
- ดาวน์โหลดและติดตั้งชุมชน Visual Studio (2015 หรือใหม่กว่า)
- อย่าลืมเลือกคุณสมบัติ
[Visual C++]
- สร้างไลบรารี ta-lib
- จากเมนู Windows Start เริ่ม
[x64 Native Tools Command Prompt]
- ย้ายไปที่
C:ta-libcmakecdrwin32msvc
- สร้างห้องสมุด
nmake
คุณอาจลองใช้ล้อไบนารี Windows ที่ไม่เป็นทางการเหล่านี้สำหรับทั้ง 32 บิตและ 64 บิต:
https://github.com/cgohlke/talib-build/
ดาวน์โหลด ta-lib-0.4.0-src.tar.gz และ::
$ tar -xzf ta-lib-0.4.0-src.tar.gz
$ cd ta-lib/
$ ./configure --prefix=/usr
$ make
$ sudo make install
หากคุณสร้าง
TA-Lib
โดยใช้make -jX
มันจะล้มเหลว แต่ก็โอเค! เพียงแค่ RERUNmake -jX
ตามด้วย[sudo] make install
หมายเหตุ: หากเส้นทางไดเรกทอรีของคุณมีช่องว่างการติดตั้งอาจล้มเหลวโดย No such file or directory
หากคุณได้รับคำเตือนที่มีลักษณะเช่นนี้:
setup.py:79: UserWarning: Cannot find ta-lib library, installation may fail.
warnings.warn('Cannot find ta-lib library, installation may fail.')
โดยทั่วไปหมายถึง setup.py
ไม่พบไลบรารี TA-Lib
พื้นฐานซึ่งเป็นการพึ่งพาที่ต้องติดตั้ง
หากคุณติดตั้งไลบรารี TA-Lib
ที่มีคำนำหน้าแบบกำหนดเอง (เช่น. ./configure --prefix=$PREFIX
) จากนั้นเมื่อคุณไปติดตั้ง wrapper python นี้คุณสามารถระบุเส้นทางการค้นหาเพิ่มเติมเพื่อค้นหาไลบรารีและรวมไฟล์ สำหรับไลบรารี TA-Lib
พื้นฐานโดยใช้ตัวแปรสภาพแวดล้อม TA_LIBRARY_PATH
และ TA_INCLUDE_PATH
:
$ export TA_LIBRARY_PATH= $PREFIX /lib
$ export TA_INCLUDE_PATH= $PREFIX /include
$ python setup.py install # or pip install ta-lib
บางครั้งการติดตั้งจะสร้างข้อผิดพลาดในการสร้างเช่นนี้:
talib/_ta_lib.c:601:10: fatal error: ta-lib/ta_defs.h: No such file or directory
601 | #include "ta-lib/ta_defs.h"
| ^~~~~~~~~~~~~~~~~~
compilation terminated.
หรือ:
common.obj : error LNK2001: unresolved external symbol TA_SetUnstablePeriod
common.obj : error LNK2001: unresolved external symbol TA_Shutdown
common.obj : error LNK2001: unresolved external symbol TA_Initialize
common.obj : error LNK2001: unresolved external symbol TA_GetUnstablePeriod
common.obj : error LNK2001: unresolved external symbol TA_GetVersionString
โดยทั่วไปหมายความว่าไม่สามารถหาไลบรารี TA-Lib
ที่เป็นพื้นฐานซึ่งต้องมีการพึ่งพาซึ่งจำเป็นต้องติดตั้ง บน Windows สิ่งนี้อาจเกิดจากการติดตั้งการกระจายไบนารีแบบไบนารี 32 บิตของไลบรารี TA-Lib
พื้นฐาน แต่พยายามใช้กับงูหลาม 64 บิต
บางครั้งการติดตั้งจะล้มเหลวด้วยข้อผิดพลาดเช่นนี้:
talib/common.c:8:22: fatal error: pyconfig.h: No such file or directory
#include "pyconfig.h"
^
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
โดยทั่วไปหมายความว่าคุณต้องการส่วนหัว Python และควรเรียกใช้บางอย่างเช่น:
$ sudo apt-get install python3-dev
บางครั้งการสร้างห้องสมุด TA-Lib
ที่มีข้อผิดพลาดมีข้อผิดพลาด make
ดูเหมือนว่า:
../libtool: line 1717: cd: .libs/libta_lib.lax/libta_abstract.a: No such file or directory
make[2]: *** [libta_lib.la] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all-recursive] Error 1
นี่อาจหมายความว่าเส้นทางไดเรกทอรีไปยังไลบรารี TA-Lib
ที่อยู่อาศัยมีช่องว่างในชื่อไดเรกทอรี ลองใส่มันในเส้นทางที่ไม่มีช่องว่างและลองอีกครั้ง
บางครั้งคุณอาจได้รับข้อผิดพลาดนี้เรียกใช้ setup.py
:
/usr/include/limits.h:26:10: fatal error: bits/libc-header-start.h: No such file or directory
#include <bits/libc-header-start.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~
นี่อาจเป็นปัญหาในการพยายามรวบรวมแพลตฟอร์ม 32 บิต แต่ไม่มีส่วนหัวที่เหมาะสม คุณอาจประสบความสำเร็จในการดูคำตอบแรกสำหรับคำถามนี้
หากคุณได้รับข้อผิดพลาดเกี่ยวกับ macOS เช่นนี้:
code signature in <141BC883-189B-322C-AE90-CBF6B5206F67>
'python3.9/site-packages/talib/_ta_lib.cpython-39-darwin.so' not valid for
use in process: Trying to load an unsigned library)
คุณอาจดูคำถามนี้และใช้ xcrun codesign
เพื่อแก้ไข
หากคุณสงสัยว่าทำไม STOCHRSI
ให้ผลลัพธ์ที่แตกต่างจากที่คุณคาดไว้คุณอาจต้องการให้ STOCH
นำไปใช้กับ RSI
ซึ่งแตกต่างจาก STOCHRSI
เล็กน้อยซึ่งเป็น STOCHF
ที่ใช้กับ RSI
:
>> > import talib
>> > import numpy as np
>> > c = np . random . randn ( 100 )
# this is the library function
>> > k , d = talib . STOCHRSI ( c )
# this produces the same result, calling STOCHF
>> > rsi = talib . RSI ( c )
>> > k , d = talib . STOCHF ( rsi , rsi , rsi )
# you might want this instead, calling STOCH
>> > rsi = talib . RSI ( c )
>> > k , d = talib . STOCH ( rsi , rsi , rsi )
หากการสร้างปรากฏขึ้นคุณอาจใช้ VM ที่มีหน่วยความจำไม่เพียงพอ - ลอง 1 GB หรือ 2 GB
หากคุณได้รับข้อผิดพลาด "การอนุญาตที่ปฏิเสธ" เช่นนี้คุณอาจต้องให้ผู้ใช้เข้าถึงตำแหน่งที่ติดตั้งไลบรารี TA-LIB C พื้นฐาน-หรือติดตั้งไว้ในตำแหน่งที่ผู้ใช้สามารถเข้าถึงได้
talib/_ta_lib.c:747:28: fatal error: /usr/include/ta-lib/ta_defs.h: Permission denied
#include "ta-lib/ta-defs.h"
^
compilation terminated
error: command 'gcc' failed with exit status 1
หากคุณมีปัญหาในการรวบรวมไลบรารี TA-LIB C พื้นฐานบน ARM64 คุณอาจต้องกำหนดค่าด้วยประเภทการสร้างที่ชัดเจนก่อนที่จะเรียกใช้ make
and make install
ตัวอย่างเช่น:
$ ./configure --build=aarch64-unknown-linux-gnu
สิ่งนี้เกิดจากไฟล์ config.guess
แบบเก่าดังนั้นอีกวิธีหนึ่งในการแก้ปัญหานี้คือการคัดลอก config เวอร์ชันใหม่กว่าไปยังแหล่งที่มาของไลบรารี Ta-lib c พื้นฐาน:
$ cp /usr/share/automake-1.16/config.guess /path/to/extracted/ta-lib/config.guess
จากนั้นเรียกใช้ใหม่อีกครั้ง:
$ ./configure
หากคุณมีปัญหาในการใช้ Pyinstaller และได้รับข้อผิดพลาดที่ดูเหมือนว่า:
...site-packagesPyInstallerloaderpyimod03_importers.py", line 493, in exec_module
exec(bytecode, module.__dict__)
File "talib__init__.py", line 72, in <module>
ModuleNotFoundError: No module named 'talib.stream'
จากนั้นบางทีคุณสามารถใช้อาร์กิวเมนต์ --hidden-import
เพื่อแก้ไขปัญหานี้:
$ pyinstaller --hidden-import talib.stream "replaceToYourFileName.py"
หากคุณต้องการใช้ numpy<2
คุณควรใช้ ta-lib<0.5
หากคุณต้องการใช้ numpy>=2
คุณควรใช้ ta-lib>=0.5
หากคุณมีปัญหาในการให้รหัสการเติมข้อความอัตโนมัติทำงานในรหัส Visual Studio ให้คำแนะนำเพื่อค้นหาการตั้งค่าส่วนขยาย Python
และตัวเลือกสำหรับ Language Server
และเปลี่ยนจาก Default
(ซึ่งหมายถึง Pylance if it is installed, Jedi otherwise
ในการตั้ง Jedi
และความสำเร็จควรทำงานด้วยตนเอง
เช่นเดียวกับ TA-LIB ฟังก์ชั่น API ให้เสื้อคลุมน้ำหนักเบาของตัวบ่งชี้ TA-LIB ที่เปิดเผย
แต่ละฟังก์ชั่นส่งคืนอาร์เรย์เอาต์พุตและมีค่าเริ่มต้นสำหรับพารามิเตอร์ของพวกเขาเว้นแต่จะระบุเป็นอาร์กิวเมนต์คำหลัก โดยทั่วไปแล้วฟังก์ชั่นเหล่านี้จะมีช่วงเวลา "การมอง" เริ่มต้น (จำนวนการสังเกตที่ต้องการก่อนที่จะสร้างเอาต์พุต) ตั้งค่าเป็น NaN
เพื่อความสะดวกฟังก์ชั่น API รองรับทั้ง numpy.ndarray
และ pandas.Series
และ polars.Series
อินพุต
ตัวอย่างทั้งหมดต่อไปนี้ใช้ฟังก์ชัน API:
import numpy as np
import talib
close = np . random . random ( 100 )
คำนวณค่าเฉลี่ยเคลื่อนที่อย่างง่ายของราคาปิด:
output = talib . SMA ( close )
การคำนวณแถบ Bollinger โดยมีค่าเฉลี่ยเคลื่อนที่สามเท่า:
from talib import MA_Type
upper , middle , lower = talib . BBANDS ( close , matype = MA_Type . T3 )
การคำนวณโมเมนตัมของราคาที่ใกล้เคียงกับช่วงเวลา 5:
output = talib . MOM ( close , timeperiod = 5 )
ห้องสมุด Ta-lib c พื้นฐานจัดการกับ Nan ในลักษณะที่น่าประหลาดใจบางครั้งโดยทั่วไปแล้วการแพร่กระจายของน่านไปจนถึงจุดสิ้นสุดของเอาต์พุตตัวอย่างเช่น:
>> > c = np . array ([ 1.0 , 2.0 , 3.0 , np . nan , 4.0 , 5.0 , 6.0 ])
>> > talib . SMA ( c , 3 )
array ([ nan , nan , 2. , nan , nan , nan , nan ])
คุณสามารถเปรียบเทียบได้กับค่าเฉลี่ยการกลิ้งแพนด้าซึ่งวิธีการของพวกเขาคือการส่งออก NAN จนกว่าจะมีค่า "lookback" เพียงพอที่จะสร้างผลลัพธ์ใหม่:
>> > c = pandas . Series ([ 1.0 , 2.0 , 3.0 , np . nan , 4.0 , 5.0 , 6.0 ])
>> > c . rolling ( 3 ). mean ()
0 NaN
1 NaN
2 2.0
3 NaN
4 NaN
5 NaN
6 5.0
dtype : float64
หากคุณคุ้นเคยกับการใช้ฟังก์ชัน API อยู่แล้วคุณควรรู้สึกเหมือนอยู่บ้านโดยใช้ API นามธรรม
ทุกฟังก์ชั่นจะมีการรวบรวมอินพุตที่มีชื่อไม่ว่าจะเป็น dict
ของ numpy.ndarray
หรือ pandas.Series
หรือ polars.Series
หรือ pandas.DataFrame
หรือ polars.DataFrame
หากมีการจัดเตรียม pandas.DataFrame
หรือ polars.DataFrame
เอาต์พุตจะถูกส่งกลับเป็นประเภทเดียวกันกับคอลัมน์เอาต์พุตชื่อ
ตัวอย่างเช่นอินพุตสามารถให้ข้อมูลสำหรับข้อมูล "OHLCV" ทั่วไป:
import numpy as np
# note that all ndarrays must be the same length!
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
# directly
SMA = abstract . SMA
# or by name
SMA = abstract . Function ( 'sma' )
จากนั้นฟังก์ชั่นการโทรนั้นเหมือนกับฟังก์ชัน API:
from talib . abstract import *
# uses close prices (default)
output = SMA ( inputs , timeperiod = 25 )
# uses open prices
output = SMA ( inputs , timeperiod = 25 , price = 'open' )
# uses close prices (default)
upper , middle , lower = BBANDS ( inputs , 20 , 2.0 , 2.0 )
# uses high, low, close (default)
slowk , slowd = STOCH ( inputs , 5 , 3 , 0 , 3 , 0 ) # uses high, low, close by default
# uses high, low, open instead
slowk , slowd = STOCH ( inputs , 5 , 3 , 0 , 3 , 0 , prices = [ 'high' , 'low' , 'open' ])
เพิ่ม API การสตรีมการทดลองที่ช่วยให้ผู้ใช้สามารถคำนวณค่าล่าสุดของตัวบ่งชี้ สิ่งนี้สามารถเร็วกว่าการใช้ฟังก์ชั่น API เช่นในแอปพลิเคชันที่ได้รับข้อมูลสตรีมมิ่งและต้องการทราบเพียงค่าตัวบ่งชี้ที่อัปเดตล่าสุด
import talib
from talib import stream
close = np . random . random ( 100 )
# the Function API
output = talib . SMA ( close )
# the Streaming API
latest = stream . SMA ( close )
# the latest value is the same as the last output value
assert ( output [ - 1 ] - latest ) < 0.00001
เราสามารถแสดงฟังก์ชั่น TA ทั้งหมดที่สนับสนุนโดย TA-LIB ไม่ว่าจะเป็น list
หรือเป็น dict
เรียงลำดับตามกลุ่ม (เช่น "การศึกษาทับซ้อน", "ตัวบ่งชี้โมเมนตัม", ฯลฯ ):
import talib
# list of functions
for name in talib . get_functions ():
print ( name )
# dict of functions by group
for group , names in talib . get_function_groups (). items ():
print ( group )
for name in names :
print ( f" { name } " )
BBANDS Bollinger Bands
DEMA Double Exponential Moving Average
EMA Exponential Moving Average
HT_TRENDLINE Hilbert Transform - Instantaneous Trendline
KAMA Kaufman Adaptive Moving Average
MA Moving average
MAMA MESA Adaptive Moving Average
MAVP Moving average with variable period
MIDPOINT MidPoint over period
MIDPRICE Midpoint Price over period
SAR Parabolic SAR
SAREXT Parabolic SAR - Extended
SMA Simple Moving Average
T3 Triple Exponential Moving Average (T3)
TEMA Triple Exponential Moving Average
TRIMA Triangular Moving Average
WMA Weighted Moving Average
ADX Average Directional Movement Index
ADXR Average Directional Movement Index Rating
APO Absolute Price Oscillator
AROON Aroon
AROONOSC Aroon Oscillator
BOP Balance Of Power
CCI Commodity Channel Index
CMO Chande Momentum Oscillator
DX Directional Movement Index
MACD Moving Average Convergence/Divergence
MACDEXT MACD with controllable MA type
MACDFIX Moving Average Convergence/Divergence Fix 12/26
MFI Money Flow Index
MINUS_DI Minus Directional Indicator
MINUS_DM Minus Directional Movement
MOM Momentum
PLUS_DI Plus Directional Indicator
PLUS_DM Plus Directional Movement
PPO Percentage Price Oscillator
ROC Rate of change : ((price/prevPrice)-1)*100
ROCP Rate of change Percentage: (price-prevPrice)/prevPrice
ROCR Rate of change ratio: (price/prevPrice)
ROCR100 Rate of change ratio 100 scale: (price/prevPrice)*100
RSI Relative Strength Index
STOCH Stochastic
STOCHF Stochastic Fast
STOCHRSI Stochastic Relative Strength Index
TRIX 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA
ULTOSC Ultimate Oscillator
WILLR Williams' %R
AD Chaikin A/D Line
ADOSC Chaikin A/D Oscillator
OBV On Balance Volume
HT_DCPERIOD Hilbert Transform - Dominant Cycle Period
HT_DCPHASE Hilbert Transform - Dominant Cycle Phase
HT_PHASOR Hilbert Transform - Phasor Components
HT_SINE Hilbert Transform - SineWave
HT_TRENDMODE Hilbert Transform - Trend vs Cycle Mode
AVGPRICE Average Price
MEDPRICE Median Price
TYPPRICE Typical Price
WCLPRICE Weighted Close Price
ATR Average True Range
NATR Normalized Average True Range
TRANGE True Range
CDL2CROWS Two Crows
CDL3BLACKCROWS Three Black Crows
CDL3INSIDE Three Inside Up/Down
CDL3LINESTRIKE Three-Line Strike
CDL3OUTSIDE Three Outside Up/Down
CDL3STARSINSOUTH Three Stars In The South
CDL3WHITESOLDIERS Three Advancing White Soldiers
CDLABANDONEDBABY Abandoned Baby
CDLADVANCEBLOCK Advance Block
CDLBELTHOLD Belt-hold
CDLBREAKAWAY Breakaway
CDLCLOSINGMARUBOZU Closing Marubozu
CDLCONCEALBABYSWALL Concealing Baby Swallow
CDLCOUNTERATTACK Counterattack
CDLDARKCLOUDCOVER Dark Cloud Cover
CDLDOJI Doji
CDLDOJISTAR Doji Star
CDLDRAGONFLYDOJI Dragonfly Doji
CDLENGULFING Engulfing Pattern
CDLEVENINGDOJISTAR Evening Doji Star
CDLEVENINGSTAR Evening Star
CDLGAPSIDESIDEWHITE Up/Down-gap side-by-side white lines
CDLGRAVESTONEDOJI Gravestone Doji
CDLHAMMER Hammer
CDLHANGINGMAN Hanging Man
CDLHARAMI Harami Pattern
CDLHARAMICROSS Harami Cross Pattern
CDLHIGHWAVE High-Wave Candle
CDLHIKKAKE Hikkake Pattern
CDLHIKKAKEMOD Modified Hikkake Pattern
CDLHOMINGPIGEON Homing Pigeon
CDLIDENTICAL3CROWS Identical Three Crows
CDLINNECK In-Neck Pattern
CDLINVERTEDHAMMER Inverted Hammer
CDLKICKING Kicking
CDLKICKINGBYLENGTH Kicking - bull/bear determined by the longer marubozu
CDLLADDERBOTTOM Ladder Bottom
CDLLONGLEGGEDDOJI Long Legged Doji
CDLLONGLINE Long Line Candle
CDLMARUBOZU Marubozu
CDLMATCHINGLOW Matching Low
CDLMATHOLD Mat Hold
CDLMORNINGDOJISTAR Morning Doji Star
CDLMORNINGSTAR Morning Star
CDLONNECK On-Neck Pattern
CDLPIERCING Piercing Pattern
CDLRICKSHAWMAN Rickshaw Man
CDLRISEFALL3METHODS Rising/Falling Three Methods
CDLSEPARATINGLINES Separating Lines
CDLSHOOTINGSTAR Shooting Star
CDLSHORTLINE Short Line Candle
CDLSPINNINGTOP Spinning Top
CDLSTALLEDPATTERN Stalled Pattern
CDLSTICKSANDWICH Stick Sandwich
CDLTAKURI Takuri (Dragonfly Doji with very long lower shadow)
CDLTASUKIGAP Tasuki Gap
CDLTHRUSTING Thrusting Pattern
CDLTRISTAR Tristar Pattern
CDLUNIQUE3RIVER Unique 3 River
CDLUPSIDEGAP2CROWS Upside Gap Two Crows
CDLXSIDEGAP3METHODS Upside/Downside Gap Three Methods
BETA Beta
CORREL Pearson's Correlation Coefficient (r)
LINEARREG Linear Regression
LINEARREG_ANGLE Linear Regression Angle
LINEARREG_INTERCEPT Linear Regression Intercept
LINEARREG_SLOPE Linear Regression Slope
STDDEV Standard Deviation
TSF Time Series Forecast
VAR Variance