Analisis Teknis PANDAS ( PANDAS TA ) adalah perpustakaan yang mudah digunakan yang memanfaatkan paket PANDAS dengan lebih dari 130 indikator dan fungsi utilitas dan lebih dari 60 pola kandil lib. Banyak indikator yang umum digunakan disertakan, seperti: pola lilin ( CDL_PATER ), divergensi konvergensi rata -rata bergerak sederhana ( SMA ) ( MACD ), hull eksponensial rata-rata bergerak ( HMA ), Bollinger Bands ( BBANDS ), volume on-balance ( Obv ), Aroon & Aroon Oscillator ( Aroon ), Peras ( Peras ) dan banyak lagi .
Catatan: Ta lib harus diinstal untuk menggunakan semua pola kandil. pip install TA-Lib
. Jika ta lib tidak terpasang, maka hanya pola kandil builtin yang akan tersedia.
talib=False
.ta.stdev(df["close"], length=30, talib=False)
.import_dir
di bawah /pandas_ta/custom.py
.ta.tsignals
TA.lookahead=False
untuk dinonaktifkan.PANDAS TA memeriksa apakah pengguna memiliki beberapa paket perdagangan umum yang diinstal termasuk tetapi tidak terbatas pada: ta lib , vektor bt , yfinance ... banyak di antaranya eksperimental dan cenderung pecah sampai stabil lebih banyak.
help(ta.ticker)
dan help(ta.yf)
dan contoh di bawah ini. Versi pip
adalah rilis stabil terakhir. Versi: 0.3.14b
$ pip install pandas_ta
Pilihan terbaik! Versi: 0.3.14b
$ pip install -U git+https://github.com/twopirllc/pandas-ta
Ini adalah versi pengembangan yang dapat memiliki bug dan efek samping lainnya yang tidak diinginkan. Gunakan dengan risiko sendiri!
$ pip install -U git+https://github.com/twopirllc/pandas-ta.git@development
import pandas as pd
import pandas_ta as ta
df = pd . DataFrame () # Empty DataFrame
# Load data
df = pd . read_csv ( "path/to/symbol.csv" , sep = "," )
# OR if you have yfinance installed
df = df . ta . ticker ( "aapl" )
# VWAP requires the DataFrame index to be a DatetimeIndex.
# Replace "datetime" with the appropriate column from your DataFrame
df . set_index ( pd . DatetimeIndex ( df [ "datetime" ]), inplace = True )
# Calculate Returns and append to the df DataFrame
df . ta . log_return ( cumulative = True , append = True )
df . ta . percent_return ( cumulative = True , append = True )
# New Columns with results
df . columns
# Take a peek
df . tail ()
# vv Continue Post Processing vv
Beberapa argumen indikator telah disusun ulang untuk konsistensi. Gunakan help(ta.indicator_name)
untuk informasi lebih lanjut atau membuat permintaan tarik untuk meningkatkan dokumentasi.
import pandas as pd
import pandas_ta as ta
# Create a DataFrame so 'ta' can be used.
df = pd . DataFrame ()
# Help about this, 'ta', extension
help ( df . ta )
# List of all indicators
df . ta . indicators ()
# Help about an indicator such as bbands
help ( ta . bbands )
Terima kasih telah menggunakan PANDAS TA !
$ pip install -U git+https://github.com/twopirllc/pandas-ta
Terima kasih atas kontribusi Anda!
PANDAS TA memiliki tiga "gaya" utama memproses indikator teknis untuk kasus penggunaan dan/atau persyaratan Anda. Mereka adalah: Standar , Ekstensi DataFrame , dan strategi PANDAS TA . Masing -masing dengan meningkatnya tingkat abstraksi untuk kemudahan penggunaan. Ketika Anda menjadi lebih akrab dengan PANDAS TA , kesederhanaan dan kecepatan menggunakan strategi PANDAS TA mungkin menjadi lebih jelas. Selain itu, Anda dapat membuat indikator Anda sendiri melalui rantai atau komposisi. Terakhir, masing -masing indikator mengembalikan seri atau dataframe dalam format Ulang Bulu Besar terlepas dari gaya.
Anda secara eksplisit mendefinisikan kolom input dan mengurus output.
sma10 = ta.sma(df["Close"], length=10)
SMA_10
donchiandf = ta.donchian(df["HIGH"], df["low"], lower_length=10, upper_length=15)
DC_10_15
dan nama kolom: DCL_10_15, DCM_10_15, DCU_10_15
ema10_ohlc4 = ta.ema(ta.ohlc4(df["Open"], df["High"], df["Low"], df["Close"]), length=10)
EMA_10
. Jika diperlukan, Anda mungkin perlu menyebutkannya secara unik. Memanggil df.ta
akan secara otomatis melecehkan ohlcva ke ohlcva : terbuka, tinggi, rendah, dekat, volume , adj_close . Secara default, df.ta
akan menggunakan OHLCVA untuk argumen indikator yang menghapus kebutuhan untuk menentukan kolom input secara langsung.
sma10 = df.ta.sma(length=10)
SMA_10
ema10_ohlc4 = df.ta.ema(close=df.ta.ohlc4(), length=10, suffix="OHLC4")
EMA_10_OHLC4
close=df.ta.ohlc4()
.donchiandf = df.ta.donchian(lower_length=10, upper_length=15)
DC_10_15
dan nama kolom: DCL_10_15, DCM_10_15, DCU_10_15
Sama seperti tiga contoh terakhir, tetapi menambahkan hasilnya langsung ke DataFrame df
.
df.ta.sma(length=10, append=True)
df
: SMA_10
.df.ta.ema(close=df.ta.ohlc4(append=True), length=10, suffix="OHLC4", append=True)
close=df.ta.ohlc4()
.df.ta.donchian(lower_length=10, upper_length=15, append=True)
df
dengan nama kolom: DCL_10_15, DCM_10_15, DCU_10_15
. Strategi PANDAS TA adalah kelompok indikator yang akan dijalankan dengan metode strategi . Semua strategi menggunakan mulitprocessing kecuali saat menggunakan parameter col_names
(lihat di bawah). Ada berbagai jenis strategi yang tercantum di bagian berikut.
# (1) Create the Strategy
MyStrategy = ta . Strategy (
name = "DCSMA10" ,
ta = [
{ "kind" : "ohlc4" },
{ "kind" : "sma" , "length" : 10 },
{ "kind" : "donchian" , "lower_length" : 10 , "upper_length" : 15 },
{ "kind" : "ema" , "close" : "OHLC4" , "length" : 10 , "suffix" : "OHLC4" },
]
)
# (2) Run the Strategy
df . ta . strategy ( MyStrategy , ** kwargs )
Kelas strategi adalah cara sederhana untuk menyebutkan dan mengelompokkan indikator TA favorit Anda dengan menggunakan kelas data . PANDAS TA dilengkapi dengan dua strategi dasar prebuilt untuk membantu Anda memulai: Allstrategy dan Commonstrategy . Strategi bisa sesederhana Commonstrategy atau serumit yang diperlukan menggunakan komposisi/rantai.
df
.Lihat contoh strategi PANDAS TA notebook untuk contoh termasuk komposisi indikator/rantai .
{"kind": "indicator name"}
. Ingatlah untuk memeriksa ejaan Anda. # Running the Builtin CommonStrategy as mentioned above
df . ta . strategy ( ta . CommonStrategy )
# The Default Strategy is the ta.AllStrategy. The following are equivalent:
df . ta . strategy ()
df . ta . strategy ( "All" )
df . ta . strategy ( ta . AllStrategy )
# List of indicator categories
df . ta . categories
# Running a Categorical Strategy only requires the Category name
df . ta . strategy ( "Momentum" ) # Default values for all Momentum indicators
df . ta . strategy ( "overlap" , length = 42 ) # Override all Overlap 'length' attributes
# Create your own Custom Strategy
CustomStrategy = ta . Strategy (
name = "Momo and Volatility" ,
description = "SMA 50,200, BBANDS, RSI, MACD and Volume SMA 20" ,
ta = [
{ "kind" : "sma" , "length" : 50 },
{ "kind" : "sma" , "length" : 200 },
{ "kind" : "bbands" , "length" : 20 },
{ "kind" : "rsi" },
{ "kind" : "macd" , "fast" : 8 , "slow" : 21 },
{ "kind" : "sma" , "close" : "volume" , "length" : 20 , "prefix" : "VOLUME" },
]
)
# To run your "Custom Strategy"
df . ta . strategy ( CustomStrategy )
Metode strategi PANDAS TA menggunakan multiprosesing untuk pemrosesan indikator curah dari semua jenis strategi dengan satu pengecualian! Saat menggunakan parameter col_names
untuk mengganti nama kolom yang dihasilkan, indikator dalam array ta
akan dijalankan secara berurutan.
# VWAP requires the DataFrame index to be a DatetimeIndex.
# * Replace "datetime" with the appropriate column from your DataFrame
df . set_index ( pd . DatetimeIndex ( df [ "datetime" ]), inplace = True )
# Runs and appends all indicators to the current DataFrame by default
# The resultant DataFrame will be large.
df . ta . strategy ()
# Or the string "all"
df . ta . strategy ( "all" )
# Or the ta.AllStrategy
df . ta . strategy ( ta . AllStrategy )
# Use verbose if you want to make sure it is running.
df . ta . strategy ( verbose = True )
# Use timed if you want to see how long it takes to run.
df . ta . strategy ( timed = True )
# Choose the number of cores to use. Default is all available cores.
# For no multiprocessing, set this value to 0.
df . ta . cores = 4
# Maybe you do not want certain indicators.
# Just exclude (a list of) them.
df . ta . strategy ( exclude = [ "bop" , "mom" , "percent_return" , "wcp" , "pvi" ], verbose = True )
# Perhaps you want to use different values for indicators.
# This will run ALL indicators that have fast or slow as parameters.
# Check your results and exclude as necessary.
df . ta . strategy ( fast = 10 , slow = 50 , verbose = True )
# Sanity check. Make sure all the columns are there
df . columns
Ingat ini tidak akan memanfaatkan multiprosesing
NonMPStrategy = ta . Strategy (
name = "EMAs, BBs, and MACD" ,
description = "Non Multiprocessing Strategy by rename Columns" ,
ta = [
{ "kind" : "ema" , "length" : 8 },
{ "kind" : "ema" , "length" : 21 },
{ "kind" : "bbands" , "length" : 20 , "col_names" : ( "BBL" , "BBM" , "BBU" )},
{ "kind" : "macd" , "fast" : 8 , "slow" : 21 , "col_names" : ( "MACD" , "MACD_H" , "MACD_S" )}
]
)
# Run it
df . ta . strategy ( NonMPStrategy )
# Set ta to default to an adjusted column, 'adj_close', overriding default 'close'.
df . ta . adjusted = "adj_close"
df . ta . sma ( length = 10 , append = True )
# To reset back to 'close', set adjusted back to None.
df . ta . adjusted = None
# List of Pandas TA categories.
df . ta . categories
# Set the number of cores to use for strategy multiprocessing
# Defaults to the number of cpus you have.
df . ta . cores = 4
# Set the number of cores to 0 for no multiprocessing.
df . ta . cores = 0
# Returns the number of cores you set or your default number of cpus.
df . ta . cores
# The 'datetime_ordered' property returns True if the DataFrame
# index is of Pandas datetime64 and df.index[0] < df.index[-1].
# Otherwise it returns False.
df . ta . datetime_ordered
# Sets the Exchange to use when calculating the last_run property. Default: "NYSE"
df . ta . exchange
# Set the Exchange to use.
# Available Exchanges: "ASX", "BMF", "DIFX", "FWB", "HKE", "JSE", "LSE", "NSE", "NYSE", "NZSX", "RTS", "SGX", "SSE", "TSE", "TSX"
df . ta . exchange = "LSE"
# Returns the time Pandas TA was last run as a string.
df . ta . last_run
# The 'reverse' is a helper property that returns the DataFrame
# in reverse order.
df . ta . reverse
# Applying a prefix to the name of an indicator.
prehl2 = df . ta . hl2 ( prefix = "pre" )
print ( prehl2 . name ) # "pre_HL2"
# Applying a suffix to the name of an indicator.
endhl2 = df . ta . hl2 ( suffix = "post" )
print ( endhl2 . name ) # "HL2_post"
# Applying a prefix and suffix to the name of an indicator.
bothhl2 = df . ta . hl2 ( prefix = "pre" , suffix = "post" )
print ( bothhl2 . name ) # "pre_HL2_post"
# Returns the time range of the DataFrame as a float.
# By default, it returns the time in "years"
df . ta . time_range
# Available time_ranges include: "years", "months", "weeks", "days", "hours", "minutes". "seconds"
df . ta . time_range = "days"
df . ta . time_range # prints DataFrame time in "days" as float
# Sets the DataFrame index to UTC format.
df . ta . to_utc
import numpy as np
# Add constant '1' to the DataFrame
df . ta . constants ( True , [ 1 ])
# Remove constant '1' to the DataFrame
df . ta . constants ( False , [ 1 ])
# Adding constants for charting
import numpy as np
chart_lines = np . append ( np . arange ( - 4 , 5 , 1 ), np . arange ( - 100 , 110 , 10 ))
df . ta . constants ( True , chart_lines )
# Removing some constants from the DataFrame
df . ta . constants ( False , np . array ([ - 60 , - 40 , 40 , 60 ]))
# Prints the indicators and utility functions
df . ta . indicators ()
# Returns a list of indicators and utility functions
ind_list = df . ta . indicators ( as_list = True )
# Prints the indicators and utility functions that are not in the excluded list
df . ta . indicators ( exclude = [ "cg" , "pgo" , "ui" ])
# Returns a list of the indicators and utility functions that are not in the excluded list
smaller_list = df . ta . indicators ( exclude = [ "cg" , "pgo" , "ui" ], as_list = True )
# Download Chart history using yfinance. (pip install yfinance) https://github.com/ranaroussi/yfinance
# It uses the same keyword arguments as yfinance (excluding start and end)
df = df . ta . ticker ( "aapl" ) # Default ticker is "SPY"
# Period is used instead of start/end
# Valid periods: 1d,5d,1mo,3mo,6mo,1y,2y,5y,10y,ytd,max
# Default: "max"
df = df . ta . ticker ( "aapl" , period = "1y" ) # Gets this past year
# History by Interval by interval (including intraday if period < 60 days)
# Valid intervals: 1m,2m,5m,15m,30m,60m,90m,1h,1d,5d,1wk,1mo,3mo
# Default: "1d"
df = df . ta . ticker ( "aapl" , period = "1y" , interval = "1wk" ) # Gets this past year in weeks
df = df . ta . ticker ( "aapl" , period = "1mo" , interval = "1h" ) # Gets this past month in hours
# BUT WAIT!! THERE'S MORE!!
help ( ta . yf )
Pola yang tidak berani , membutuhkan ta-lib untuk dipasang: pip install TA-Lib
# Get all candle patterns (This is the default behaviour)
df = df . ta . cdl_pattern ( name = "all" )
# Get only one pattern
df = df . ta . cdl_pattern ( name = "doji" )
# Get some patterns
df = df . ta . cdl_pattern ( name = [ "doji" , "inside" ])
ta.linreg(series, r=True)
lazybear=True
df.ta.strategy()
.Divergence konvergensi rata -rata bergerak (MACD) |
---|
help(ta.ichimoku)
.lookahead=False
menjatuhkan kolom chikou span untuk mencegah potensi kebocoran data.Simple Moving Average (SMA) dan Bollinger Bands (BBands) |
---|
Gunakan parameter: kumulatif = benar untuk hasil kumulatif.
Persen Return (Kumulatif) dengan Simple Moving Average (SMA) |
---|
Skor z |
---|
lookahead=False
untuk menonaktifkan pemusatan dan menghapus potensi kebocoran data.Indeks gerakan arah rata -rata (ADX) |
---|
Rata -rata rentang sejati (ATR) |
---|
Volume On-Balance (Obv) |
---|
Metrik kinerja adalah tambahan baru untuk paket dan akibatnya kemungkinan tidak dapat diandalkan. Gunakan dengan risiko Anda sendiri. Metrik ini mengembalikan pelampung dan bukan bagian dari ekstensi DataFrame . Mereka disebut cara standar. Misalnya:
import pandas_ta as ta
result = ta . cagr ( df . close )
Untuk integrasi yang lebih mudah dengan metode portofolio VectorBT from_signals
, metode ta.trend_return
telah diganti dengan metode ta.tsignals
untuk menyederhanakan generasi sinyal perdagangan. Sebagai contoh yang komprehensif, lihat contoh backtest jupyter notebook vectorbt dengan panda TA di direktori contoh.
import pandas as pd
import pandas_ta as ta
import vectorbt as vbt
df = pd . DataFrame (). ta . ticker ( "AAPL" ) # requires 'yfinance' installed
# Create the "Golden Cross"
df [ "GC" ] = df . ta . sma ( 50 , append = True ) > df . ta . sma ( 200 , append = True )
# Create boolean Signals(TS_Entries, TS_Exits) for vectorbt
golden = df . ta . tsignals ( df . GC , asbool = True , append = True )
# Sanity Check (Ensure data exists)
print ( df )
# Create the Signals Portfolio
pf = vbt . Portfolio . from_signals ( df . close , entries = golden . TS_Entries , exits = golden . TS_Exits , freq = "D" , init_cash = 100_000 , fees = 0.0025 , slippage = 0.0025 )
# Print Portfolio Stats and Return Stats
print ( pf . stats ())
print ( pf . returns_stats ())
mamode
kwarg mereka diperbarui dengan lebih banyak pilihan rata -rata bergerak dengan fungsi utilitas rata -rata bergerak ta.ma()
. Untuk kesederhanaan, semua pilihan adalah rata -rata sumber tunggal yang bergerak . Ini terutama merupakan utilitas internal yang digunakan oleh indikator yang memiliki mamode
kwarg . Ini termasuk indikator: Accbands , Amat , AOBV , ATR , Bands , Bias , EFI , Hilo , KC , Natr , QQE , RVI , dan Thermo ; Parameter mamode
default belum berubah. Namun, ta.ma()
dapat digunakan oleh pengguna juga jika diperlukan. Untuk informasi lebih lanjut: help(ta.ma)
to_utc
, untuk mengonversi indeks basis data ke UTC. Lihat: help(ta.to_utc)
Sekarang sebagai properti Pandas TA DataFrame untuk dengan mudah mengonversi indeks DataFrame ke UTC. close > sma(close, 50)
ia mengembalikan tren, entri perdagangan dan keluar dari tren tren itu untuk membuatnya kompatibel dengan VectorBT dengan menetapkan asbool=True
untuk mendapatkan entri dan keluar perdagangan Boolean. Lihat help(ta.tsignals)
help(ta.alma)
Akun Perdagangan, atau Dana. Lihat help(ta.drawdown)
help(ta.cdl_pattern)
help(ta.cdl_z)
help(ta.cti)
help(ta.xsignals)
help(ta.dm)
help(ta.ebsw)
help(ta.jma)
help(ta.kvo)
help(ta.stc)
help(ta.squeeze_pro)
df.ta.strategy()
untuk alasan kinerja. Lihat help(ta.td_seq)
help(ta.tos_stdevall)
help(ta.vhf)
mamode
yang diganti namanya menjadi mode
. Lihat help(ta.accbands)
.mamode
dengan default " RMA " dan dengan opsi mamode
yang sama dengan TradingView. Argumen baru lensig
sehingga berperilaku seperti indikator ADX bawaan TradingView. Lihat help(ta.adx)
.drift
dan nama kolom yang lebih deskriptif.mamode
default sekarang " RMA " dan dengan opsi mamode
yang sama dengan TradingView. Lihat help(ta.atr)
.ddoff
untuk mengendalikan derajat kebebasan. Juga termasuk BB persen (BBP) sebagai kolom terakhir. Default adalah 0. Lihat help(ta.bbands)
.ln
untuk menggunakan logaritma alami (true) alih -alih logaritma standar (false). Default salah. Lihat help(ta.chop)
.tvmode
dengan default True
. Ketika tvmode=False
, CKSP mengimplementasikan "pedagang teknis baru" dengan nilai default. Lihat help(ta.cksp)
.talib
akan menggunakan versi Ta Lib dan jika ta lib diinstal. Default itu benar. Lihat help(ta.cmo)
.strict
jika seri terus menurun dari length
periode dengan perhitungan lebih cepat. Default: False
. Argumen percent
juga telah ditambahkan dengan tidak ada default. Lihat help(ta.decreasing)
.strict
jika seri terus meningkat dari length
periode dengan perhitungan yang lebih cepat. Default: False
. Argumen percent
juga telah ditambahkan dengan tidak ada default. Lihat help(ta.increasing)
.help(ta.kvo)
.as_strided
atau metode sliding_window_view
yang lebih baru. Ini harus menyelesaikan masalah dengan Google Colab dan ini merupakan pembaruan ketergantungan yang tertunda serta ketergantungan TensorFlow seperti yang dibahas dalam masalah #285 dan #329.asmode
memungkinkan sebagai versi MACD. Default salah. Lihat help(ta.macd)
.sar
TradingView. Argumen baru af0
untuk menginisialisasi faktor akselerasi. Lihat help(ta.psar)
.mamode
sebagai opsi. Default adalah SMA untuk mencocokkan ta lib. Lihat help(ta.ppo)
.signal
dengan default 13
dan MODE MA mamode
dengan EMA default sebagai argumen. Lihat help(ta.tsi)
.help(ta.vp)
.help(ta.vwma)
.anchor
. Default: "D" untuk "harian". Lihat Timeseries Offset Aliases untuk opsi tambahan. Membutuhkan indeks DataFrame untuk menjadi datetimeIndex. Lihat help(ta.vwap)
.help(ta.vwma)
.Z_length
ke ZS_length
. Lihat help(ta.zscore)
.Ta-lib asli | TradingView | Bagan Sierra | Mql5 | FM Labs | Kode Nyata Pro | Pengguna 42
Merasa murah hati, seperti paket atau ingin melihatnya menjadi lebih merupakan paket yang matang?