Common financial technical indicators implemented in Pandas.

Overview

FinTA (Financial Technical Analysis)

License: LGPL v3 PyPI Downloads Code style: black Build Status Patrons

Common financial technical indicators implemented in Pandas.

example

This is work in progress, bugs are expected and results of some indicators may not be accurate.

Supported indicators:

Finta supports over 80 trading indicators:

* Simple Moving Average 'SMA'
* Simple Moving Median 'SMM'
* Smoothed Simple Moving Average 'SSMA'
* Exponential Moving Average 'EMA'
* Double Exponential Moving Average 'DEMA'
* Triple Exponential Moving Average 'TEMA'
* Triangular Moving Average 'TRIMA'
* Triple Exponential Moving Average Oscillator 'TRIX'
* Volume Adjusted Moving Average 'VAMA'
* Kaufman Efficiency Indicator 'ER'
* Kaufman's Adaptive Moving Average 'KAMA'
* Zero Lag Exponential Moving Average 'ZLEMA'
* Weighted Moving Average 'WMA'
* Hull Moving Average 'HMA'
* Elastic Volume Moving Average 'EVWMA'
* Volume Weighted Average Price 'VWAP'
* Smoothed Moving Average 'SMMA'
* Fractal Adaptive Moving Average 'FRAMA'
* Moving Average Convergence Divergence 'MACD'
* Percentage Price Oscillator 'PPO'
* Volume-Weighted MACD 'VW_MACD'
* Elastic-Volume weighted MACD 'EV_MACD'
* Market Momentum 'MOM'
* Rate-of-Change 'ROC'
* Relative Strenght Index 'RSI'
* Inverse Fisher Transform RSI 'IFT_RSI'
* True Range 'TR'
* Average True Range 'ATR'
* Stop-and-Reverse 'SAR'
* Bollinger Bands 'BBANDS'
* Bollinger Bands Width 'BBWIDTH'
* Momentum Breakout Bands 'MOBO'
* Percent B 'PERCENT_B'
* Keltner Channels 'KC'
* Donchian Channel 'DO'
* Directional Movement Indicator 'DMI'
* Average Directional Index 'ADX'
* Pivot Points 'PIVOT'
* Fibonacci Pivot Points 'PIVOT_FIB'
* Stochastic Oscillator %K 'STOCH'
* Stochastic oscillator %D 'STOCHD'
* Stochastic RSI 'STOCHRSI'
* Williams %R 'WILLIAMS'
* Ultimate Oscillator 'UO'
* Awesome Oscillator 'AO'
* Mass Index 'MI'
* Vortex Indicator 'VORTEX'
* Know Sure Thing 'KST'
* True Strength Index 'TSI'
* Typical Price 'TP'
* Accumulation-Distribution Line 'ADL'
* Chaikin Oscillator 'CHAIKIN'
* Money Flow Index 'MFI'
* On Balance Volume 'OBV'
* Weighter OBV 'WOBV'
* Volume Zone Oscillator 'VZO'
* Price Zone Oscillator 'PZO'
* Elder's Force Index 'EFI'
* Cummulative Force Index 'CFI'
* Bull power and Bear Power 'EBBP'
* Ease of Movement 'EMV'
* Commodity Channel Index 'CCI'
* Coppock Curve 'COPP'
* Buy and Sell Pressure 'BASP'
* Normalized BASP 'BASPN'
* Chande Momentum Oscillator 'CMO'
* Chandelier Exit 'CHANDELIER'
* Qstick 'QSTICK'
* Twiggs Money Index 'TMF'
* Wave Trend Oscillator 'WTO'
* Fisher Transform 'FISH'
* Ichimoku Cloud 'ICHIMOKU'
* Adaptive Price Zone 'APZ'
* Squeeze Momentum Indicator 'SQZMI'
* Volume Price Trend 'VPT'
* Finite Volume Element 'FVE'
* Volume Flow Indicator 'VFI'
* Moving Standard deviation 'MSD'
* Schaff Trend Cycle 'STC'

Dependencies:

  • python (3.5+)
  • pandas (0.21.1+)

TA class is very well documented and there should be no trouble exploring it and using with your data. Each class method expects proper ohlc DataFrame as input.

Install:

pip install finta

or latest development version:

pip install git+git://github.com/peerchemist/finta.git

Import

from finta import TA

Prepare data to use with finta:

finta expects properly formated ohlc DataFrame, with column names in lowercase: ["open", "high", "low", "close"] and ["volume"] for indicators that expect ohlcv input.

to resample by time period (you can choose different time period)

ohlc = resample(df, "24h")

You can also load a ohlc DataFrame from .csv file

data_file = ("data/bittrex:btc-usdt.csv")

ohlc = pd.read_csv(data_file, index_col="date", parse_dates=True)


Examples:

will return Pandas Series object with the Simple moving average for 42 periods

TA.SMA(ohlc, 42)

will return Pandas Series object with "Awesome oscillator" values

TA.AO(ohlc)

expects ["volume"] column as input

TA.OBV(ohlc)

will return Series with Bollinger Bands columns [BB_UPPER, BB_LOWER]

TA.BBANDS(ohlc)

will return Series with calculated BBANDS values but will use KAMA instead of MA for calculation, other types of Moving Averages are allowed as well.

TA.BBANDS(ohlc, TA.KAMA(ohlc, 20))

For more examples see examples directory.


I welcome pull requests with new indicators or fixes for existing ones. Please submit only indicators that belong in public domain and are royalty free.

Contributing

  1. Fork it (https://github.com/peerchemist/finta/fork)
  2. Study how it's implemented.
  3. Create your feature branch (git checkout -b my-new-feature).
  4. Run black code formatter on the finta.py to ensure uniform code style.
  5. Commit your changes (git commit -am 'Add some feature').
  6. Push to the branch (git push origin my-new-feature).
  7. Create a new Pull Request.

Donate

Buy me a beer 🍺 :

Bitcoin: 3NibjuvQPzcfuLaefhUEEFBcmHpXgKgs4m

Peercoin: P9dAfWoxT7kksKAStubDQR6RhdXk5z12rV

Comments
  • CCI output not matching with Tv results ;OBV result too not matching with tradingview

    CCI output not matching with Tv results ;OBV result too not matching with tradingview

    Tested this TA.CCI(df) output comparing with tradingview.com(TV) chart inbuilt CCI ,the output is not matching .

    In finta.py did a small change and the output CCI is almost closest to tradingview output but not sure how this is very close to the result shown in TV.

    Modified Code:def CCI(cls... part tp = cls.TP(ohlc) return pd.Series( (tp - tp.rolling(window=period,center=False).mean()) / (0.015 * tp.rolling(window=period,center=False).std()), name="{0} period CCI".format(period), )

    Here is the calculation method ,TV is the standard worldwide proven indicator methods ,it would be good if we see your indicator output same as TV result. I have checked many source yours is very closest.Run the above code you will get only 20points differrence in the result.

    In summary if we calculate the "Mean Deviation" correctly the output will be matching with global standards.

    There are several steps involved in calculating the Commodity Channel Index. The following example is for a typical 20 Period CCI:

    CCI = (Typical Price - 20 Period SMA of TP) / (.015 x Mean Deviation)

    Typical Price (TP) = (High + Low + Close)/3

    Constant = .015 The Constant is set at .015 for scaling purposes. By including the constant, the majority of CCI values will fall within the 100 to -100 range.

    There are three steps to calculating the Mean Deviation.

    1. Subtract the most recent 20 Period Simple Moving from each typical price (TP) for the Period.
    2. Sum these numbers strictly using absolute values.
    3. Divide the value generated in step 3 by the total number of Periods (20 in this case).
    opened by mbmarx 11
  • What did I do wrong about my BBANDS?

    What did I do wrong about my BBANDS?

    Hi!

    Here is my program that uses Pandas and Finta and MatPlotLib to chart the dataframe.: https://gist.github.com/Industrial/597379bd4ba5168c26e49a9be8817a91/a195a385dd170fa81ca597240418eb178f3ff5dc

    I am trying to add Bollinger Bands, and later a Keltner Channel and after that create my own indicator "Squeeze" which uses a BB and a KC and implement it in te same fashion as Finta methods. I hope to at some point land at BUY/SELL signals in a column and one final "Equity" which would model out what would happen to your equity over time running this"algorithm". Does that sound like a correct approach?

    What is currently not working is this: big bb

    1. How do I get the BBANDS values normal?
    2. I added the Standard Deviation as a column because It's used in a BBand and in your BBANDS implementation and I am noticing that it's value is linear across the whole thing. Is that a bug or?

    gr,

    Tom

    opened by Industrial 9
  • Windows Filename issue

    Windows Filename issue

    $ git clone https://github.com/peerchemist/finta Cloning into 'finta'... remote: Enumerating objects: 160, done. remote: Counting objects: 100% (160/160), done. remote: Compressing objects: 100% (109/109), done. remote: Total 1227 (delta 84), reused 112 (delta 49), pack-reused 1067 Receiving objects: 100% (1227/1227), 522.49 KiB | 1.59 MiB/s, done. Resolving deltas: 100% (657/657), done. error: invalid path 'tests/data/bittrex:btc-usdt.csv' fatal: unable to checkout working tree warning: Clone succeeded, but checkout failed. You can inspect what was checked out with 'git status' and retry with 'git restore --source=HEAD :/'

    Colon (:) is an illegal character in Windows, changed filenames so I can clone the repo.

    opened by cyber-jack 6
  • Add Excess of Kurtosis Curve

    Add Excess of Kurtosis Curve

    Hi, several Statistical Features of the "Stylized Facts of Asset Returns" are missing in the Library. In particular: Asset Returns, Kurtosis, Skewness, of a Non-Gaussian Distribution of Asset Returns.

    I would like that you could introduce at least the Excess of Kurtosis Curve.

    Kurtosis measures the "fatness" of the tails of a distribution. Positive excess kurtosis means that distribution has fatter tails than a normal distribution. Fat tails means there is a higher than normal probability of big positive and negative returns realizations.

    When calculating kurtosis, a result of +3.00 indicates the absence of kurtosis (distribution is mesokurtic). For simplicity in its interpretation, some statisticians adjust this result to zero (i.e. kurtosis minus 3 equals zero), and then any reading other than zero is referred to as Excess Kurtosis. Negative numbers indicate a platykurtic distribution; positive numbers indicate a leptokurtic distribution.

    Here a video that shows what are Kurtosis and Skewness. Besides, it shows also their Mathematical Formula:

    https://www.youtube.com/watch?v=-pb86fuZqr8

    I made a Pine Script Function by myself to get this curve on my Trading View Chart, integrating it in several scripts or mine. It becomes relevant to get the Leptokurtic Pivots caused by Outliers (Anomalies) in the market and the Platykurtosis which shows where the risk of trading is low and acceptable.

    Please, can you add Excess of Kurtosis into the Lybrary?

    Kind regards

    G. Aloe

    opened by jscmal 5
  • help needed: how to pull indicator value from all time frame at one shot?

    help needed: how to pull indicator value from all time frame at one shot?

    help wanted on how to pull an indicator value from all time-frame at one shot?

    on TradingView, i pull out these values from an indicator

    ['GBPUSD', 'M: -53.00460785710888', 'W: -53.00460785710888', 'D: -18.48497324001634', 'H4: -7.875243664717016', 'H1: -33.94957983193184', 'M30: -32.47422680412316', 'M15: -22.485207100590525', 'M5: -31.232876712327133', 'M2: -41.45454545454205'] ['GBPUSD']

    let's take RSI as a sample, TA.RSI(ohlc).tail(10) will pull out for Daily and the past 10 days. i would like to see current data.

    no idea how to get these info hence asking for help

    pandas 1.03 python 3.7.6

    opened by fxdt 5
  • TA.EV_MACD UnboundLocalError: local variable 'x' referenced before assignment

    TA.EV_MACD UnboundLocalError: local variable 'x' referenced before assignment

    Example: import finta print(df) macd = finta.TA.EV_MACD(df)

    Output(Partial) open close high low volume 2018-03-19 264.293667 261.528421 265.308880 259.720376 109208442.0 2018-03-20 261.963513 261.973181 262.669327 261.228692 59757271.0 2018-03-21 261.924838 261.470409 264.216318 261.238361 78709578.0 2018-03-22 259.033899 254.934374 259.962094 254.634645 148785916.0 2018-03-23 255.417809 249.500570 255.775550 249.287859 183534751.0 [446 rows x 5 columns]

    macd = finta.TA.EV_MACD(df)
    

    File "/home/xxx/.local/lib/python3.6/site-packages/finta/finta.py", line 517, in EV_MACD evwma_slow = cls.EVWMA(ohlcv, period_slow) File "/home/xxx/.local/lib/python3.6/site-packages/finta/finta.py", line 317, in EVWMA for x, y in zip(x.fillna(0).iteritems(), y.iteritems()): UnboundLocalError: local variable 'x' referenced before assignment

    Versions: python 3.6.7 (default, Oct 22 2018, 11:32:17) [GCC 8.2.0] on linux Type "help", "copyright", "credits" or "license" for more information.

    Pandas 0.25.3

    opened by higuamo 4
  • SSMA - smoothed simple moving average

    SSMA - smoothed simple moving average

    Hi,

    first of all thank you for your amazing job.

    I would like to ask you if do you know how to calculate ssma?

    I saw this indicator on iqoption site but I can't found how to calc this.

    I found SMA but not SSMA

    Feature Request 
    opened by rrfaria 4
  • Fixed STC calculation + test

    Fixed STC calculation + test

    STC calculation is a double smoothed Stoch on the MACD. The source you were using (referenced in doc string) schaff equation makes no sense. This version aligns with what is produced on Yahoo Finance and TOS.

    Calculation: MACD = macd("close", fast, slow) K_LINE, D_LINE = fastStoch(macd, k_period, d_period) STC = sma(D_LINE, d_period) // second smoothing on d line

    Notes: Some sources use a default second smoothing period of 3. Some default to half the k_period. And some just let you choose the d_period.

    Referenced Source: https://tlc.thinkorswim.com/center/reference/Tech-Indicators/studies-library/R-S/SchaffTrendCycle

    opened by jamesyrose 3
  • Poor performance of some indicators

    Poor performance of some indicators

    Some functions (especially ones which use Pandas.Series and DataFrame instead on numpy arrays) are very slow. I have OHLCV dataset with 26k records and I'm having such execution times with default parameters: WMA - 25.37s HMA - 75.044s SAR - 14.03s CCI - 64.758s SQZMI - 6.877s MFI - 7.054s IFT_RSI - 25.08s

    Could be that there are other slow functions, but I tested the same dataset on just these ones and performance was pretty good: SMA, EMA, DEMA, TEMA, ZLEMA, VWAP, SMMA, BBANDS, KC, DO, TP, CHANDELIER, APZ, TRIX, KST, TSI, ER, MACD, VW_MACD, EV_MACD, MOM, AO, CHAIKIN, RSI, STOCHRSI, STC, CMO, QSTICK, WTO, ATR, VORTEX, COPP are under 0.1s; KAMA and UO just a bit more than 1s.

    I did some experiments and at least in a case of WMA and IFT_RSI I've got time about 0.3s for a really small adjustment in code: weights = pd.Series(np.arange(1, period + 1)) replace with weights = np.arange(1, period + 1) For CCI adding raw=True increases speed drastically (about x60-x70): mad = tp_rolling.apply(lambda s: abs(s - s.mean()).mean(), raw=True)

    opened by giollord 3
  • Error Calculating Ease Of movement

    Error Calculating Ease Of movement

    Hey Man! this issue is very short! There an error in the calculation of Ease of Movement only replace for this:

    distance = pd.Series( ((data['high'] + data['low']) / 2) - ((data['high'].shift(1) + data['low'].shift(1)) / 2) ) #First error in postive sign!

    box_ratio = pd.Series( (data['volume'] / 1000000.00) / (data['high'] - data['low']) )

    Second, like a good programming practice, you can use the .00 to say its a "floating" number.

    Thanks a lot man! i'm doing a big trading bot with your library!

    opened by Physicworld 3
  • DataFrame input validation

    DataFrame input validation

    To stick to the "batteries included" style of the package and standardize inputs of indicators that do not allow flexibility (ADL, OBV etc...), I have added an interceptor to verify that the data frame contains ohlc. This decorator is applied to all indicators but to add validation to those that require ohlcv, override the decorator by adding @inputvalidator(input_="ohlcv"). This method of verification is easily expandable; simply add another letter to the decorator/dict. Additionally capitalized words (Open, cLoSe) are mapped to their lowercase counterparts ensuring a standardized input.

    (also, many small changes were made as a result of running black)

    opened by nathanielCherian 3
  • Please update your license in pypi.org to LGPL-3.0

    Please update your license in pypi.org to LGPL-3.0

    LICENSE is not visible in pypi.org , can't use the package without license in pypi.org can you please update your setup.py with license

    setup ( license = "LGPL-3.0" )

    opened by shaktisd 0
  • SSMA and SMMA are the same function

    SSMA and SMMA are the same function

    SSMA and SMMA are the same function

    both SSMA and SMMA are the smoothed simple moving average that first run the EMA on input prices, then run the SMA on the EMA smoothed data.

    I think SMMA can be removed and keep SSMA.

    opened by xxxxyyyy80008 0
  • Suggestion, BBands MA argument should be enforced to be a supported type (Series or None)

    Suggestion, BBands MA argument should be enforced to be a supported type (Series or None)

    BBands MA argument is silently ignored if it is not a pd.Series. As the fool that I am I gave an integer as MA argument instead of a pd.Series and did not notice my mistake immediately. What I expected: If it is not a supported type an error should be raised or a warning should be printed. Example:

    from finta import TA
    # MA argument is not correct type and will be ignored
    bbands = TA.BBANDS(df, 20, MA=50)
    

    This was in Fintra 1.3

    Thanks for a fantastic library!

    opened by fredrik-corneliusson 0
  • VAMA Issues?

    VAMA Issues?

    When using VAMA for 'x' periods, the average doesn't appear until 2 x 'x' periods have passed.

    Ex. VAMA is merged with OHLC and the periods value is set to 50, MA data doesn't show up until row 99

    ticker  timestamp   open     high      low   close     volume     vama50
    

    0 AAWW 2011-01-03 56.42 57.0900 55.7900 55.860 250482.0 NaN 1 AAWW 2011-01-04 56.00 56.0000 53.4400 53.950 217936.0 NaN 2 AAWW 2011-01-05 53.90 54.4999 53.5400 53.970 233455.0 NaN 3 AAWW 2011-01-06 53.96 54.2300 53.2100 53.210 180882.0 NaN 4 AAWW 2011-01-07 53.30 53.5300 50.4800 52.890 878998.0 NaN 5 AAWW 2011-01-10 52.71 53.2100 51.6100 51.950 460816.0 NaN 6 AAWW 2011-01-11 51.95 52.9000 51.5000 51.970 225537.0 NaN 7 AAWW 2011-01-12 52.40 52.9600 52.0500 52.120 275923.0 NaN 8 AAWW 2011-01-13 52.01 52.2400 51.1000 51.500 429052.0 NaN 9 AAWW 2011-01-14 51.30 51.9200 50.9200 51.520 410293.0 NaN 10 AAWW 2011-01-18 51.20 51.6200 50.8200 50.990 260334.0 NaN 11 AAWW 2011-01-19 50.86 51.1500 49.7700 50.070 381814.0 NaN 12 AAWW 2011-01-20 49.94 53.6400 49.9400 51.070 464625.0 NaN 13 AAWW 2011-01-21 51.39 51.7575 50.2000 50.760 228706.0 NaN 14 AAWW 2011-01-24 50.90 52.4400 50.7600 51.970 233905.0 NaN 15 AAWW 2011-01-25 51.82 51.9900 51.0000 51.580 193316.0 NaN 16 AAWW 2011-01-26 51.80 54.4600 51.8000 53.540 388650.0 NaN 17 AAWW 2011-01-27 53.64 53.7800 52.9600 53.140 232715.0 NaN 18 AAWW 2011-01-28 53.03 53.2200 50.5100 50.550 230310.0 NaN 19 AAWW 2011-01-31 50.68 51.0100 49.7900 50.810 197588.0 NaN 20 AAWW 2011-02-01 51.40 54.2300 51.4000 53.920 301654.0 NaN 21 AAWW 2011-02-02 53.50 54.2200 52.7301 52.780 174943.0 NaN 22 AAWW 2011-02-03 52.44 54.3400 52.4400 53.620 174714.0 NaN 23 AAWW 2011-02-04 53.58 54.4800 53.4600 53.490 266042.0 NaN 24 AAWW 2011-02-07 53.82 55.0400 53.5900 54.100 107566.0 NaN 25 AAWW 2011-02-08 54.01 54.6500 53.3200 54.220 127963.0 NaN 26 AAWW 2011-02-09 53.93 54.2500 53.2200 53.820 121059.0 NaN 27 AAWW 2011-02-10 53.21 54.8000 52.7500 54.530 139654.0 NaN 28 AAWW 2011-02-11 54.73 56.4700 54.7000 56.450 407284.0 NaN 29 AAWW 2011-02-14 60.48 66.8800 59.8000 63.770 1521914.0 NaN 30 AAWW 2011-02-15 64.00 68.4500 63.7900 68.430 1153665.0 NaN 31 AAWW 2011-02-16 68.01 70.0000 68.0100 69.400 778724.0 NaN 32 AAWW 2011-02-17 69.17 71.2400 69.0000 71.070 341801.0 NaN 33 AAWW 2011-02-18 71.00 73.1900 70.8000 72.260 587041.0 NaN 34 AAWW 2011-02-22 70.93 71.6800 69.3400 69.360 545901.0 NaN 35 AAWW 2011-02-23 68.54 69.3600 64.6300 66.980 466318.0 NaN 36 AAWW 2011-02-24 66.87 68.0700 65.9100 67.960 283164.0 NaN 37 AAWW 2011-02-25 67.94 68.7900 66.9410 68.190 239011.0 NaN 38 AAWW 2011-02-28 68.34 68.3500 67.2500 68.280 284275.0 NaN 39 AAWW 2011-03-01 68.65 68.7600 67.0400 67.430 289047.0 NaN 40 AAWW 2011-03-02 67.17 68.7200 66.6090 67.880 249609.0 NaN 41 AAWW 2011-03-03 68.33 70.0000 68.3100 69.840 205738.0 NaN 42 AAWW 2011-03-04 69.74 69.7400 67.2800 67.940 160877.0 NaN 43 AAWW 2011-03-07 68.18 68.1800 65.6650 67.000 209896.0 NaN 44 AAWW 2011-03-08 66.93 69.1200 65.8700 68.850 178668.0 NaN 45 AAWW 2011-03-09 68.87 69.3500 66.8600 67.820 195902.0 NaN 46 AAWW 2011-03-10 66.61 67.3050 65.3700 65.480 284765.0 NaN 47 AAWW 2011-03-11 65.40 65.9500 64.1100 65.100 191970.0 NaN 48 AAWW 2011-03-14 64.51 65.7000 64.0000 64.180 201079.0 NaN 49 AAWW 2011-03-15 62.58 63.8500 61.4900 63.290 291966.0 NaN 50 AAWW 2011-03-16 62.96 63.2250 61.6300 61.670 198811.0 NaN 51 AAWW 2011-03-17 63.44 64.9600 62.5300 63.310 362542.0 NaN 52 AAWW 2011-03-18 64.42 66.1300 64.0850 64.940 416276.0 NaN 53 AAWW 2011-03-21 65.89 67.8700 65.4700 67.080 281223.0 NaN 54 AAWW 2011-03-22 67.15 67.4400 64.9500 66.230 520671.0 NaN 55 AAWW 2011-03-23 66.21 67.4600 65.8200 67.250 234836.0 NaN 56 AAWW 2011-03-24 67.60 68.3800 66.9012 67.930 184111.0 NaN 57 AAWW 2011-03-25 68.42 69.5200 67.5900 68.940 211872.0 NaN 58 AAWW 2011-03-28 68.58 69.0200 67.8800 68.080 217268.0 NaN 59 AAWW 2011-03-29 67.98 68.3600 67.5800 68.220 133061.0 NaN 60 AAWW 2011-03-30 68.69 69.3500 68.0900 69.280 81869.0 NaN 61 AAWW 2011-03-31 68.93 69.8800 68.6200 69.720 168068.0 NaN 62 AAWW 2011-04-01 70.00 70.0000 67.5600 68.900 222983.0 NaN 63 AAWW 2011-04-04 69.00 69.0784 67.5507 67.720 195077.0 NaN 64 AAWW 2011-04-05 67.46 68.4900 67.1900 67.780 135415.0 NaN 65 AAWW 2011-04-06 68.18 68.2800 67.4000 67.670 72680.0 NaN 66 AAWW 2011-04-07 67.50 67.8400 66.0300 66.480 217313.0 NaN 67 AAWW 2011-04-08 66.97 66.9700 65.1600 65.670 136135.0 NaN 68 AAWW 2011-04-11 65.72 66.5000 64.3600 64.590 105707.0 NaN 69 AAWW 2011-04-12 64.23 64.7300 63.3721 64.150 380797.0 NaN 70 AAWW 2011-04-13 64.64 65.0700 62.3900 63.280 142037.0 NaN 71 AAWW 2011-04-14 62.85 64.5300 62.3800 64.320 215431.0 NaN 72 AAWW 2011-04-15 63.97 65.2050 63.8500 65.110 205071.0 NaN 73 AAWW 2011-04-18 64.14 64.1400 61.7900 63.080 272225.0 NaN 74 AAWW 2011-04-19 63.48 64.2800 60.8300 61.970 351371.0 NaN 75 AAWW 2011-04-20 63.45 63.7300 61.5400 61.930 359317.0 NaN 76 AAWW 2011-04-21 62.71 65.1700 62.0000 64.650 167208.0 NaN 77 AAWW 2011-04-22 62.71 65.1700 62.0000 64.650 167208.0 NaN 78 AAWW 2011-04-25 64.43 65.6700 63.6500 65.260 290126.0 NaN 79 AAWW 2011-04-26 65.38 68.3700 64.9200 67.340 274549.0 NaN 80 AAWW 2011-04-27 67.27 68.1000 65.4600 67.180 135414.0 NaN 81 AAWW 2011-04-28 66.83 68.0400 66.6100 67.750 97484.0 NaN 82 AAWW 2011-04-29 68.00 69.8700 67.4680 68.910 188897.0 NaN 83 AAWW 2011-05-02 69.42 69.6600 66.9600 68.870 193959.0 NaN 84 AAWW 2011-05-03 65.25 65.5300 62.3714 63.710 1523565.0 NaN 85 AAWW 2011-05-04 63.98 64.7400 62.1000 63.100 380172.0 NaN 86 AAWW 2011-05-05 63.98 64.7400 62.1000 63.100 380172.0 NaN 87 AAWW 2011-05-06 63.79 64.7700 63.7100 64.140 279825.0 NaN 88 AAWW 2011-05-09 64.26 64.2600 62.8900 63.420 390623.0 NaN 89 AAWW 2011-05-10 63.75 65.2400 63.6100 65.210 250555.0 NaN 90 AAWW 2011-05-11 64.85 65.4100 64.2001 65.210 243792.0 NaN 91 AAWW 2011-05-12 64.52 65.1200 63.7800 64.670 144966.0 NaN 92 AAWW 2011-05-13 64.90 65.4700 63.8200 64.770 219334.0 NaN 93 AAWW 2011-05-16 64.15 64.7700 62.3900 62.430 226573.0 NaN 94 AAWW 2011-05-17 62.06 62.1350 60.7300 61.410 184623.0 NaN 95 AAWW 2011-05-18 61.50 62.5100 60.7700 62.420 348219.0 NaN 96 AAWW 2011-05-19 62.92 64.5300 62.5000 64.360 203170.0 NaN 97 AAWW 2011-05-20 63.80 64.2600 63.5500 63.970 212646.0 NaN 98 AAWW 2011-05-23 62.84 63.7800 60.8700 61.390 206661.0 64.827385 99 AAWW 2011-05-24 61.59 61.5900 60.2500 60.610 119298.0 64.815625 100 AAWW 2011-05-25 60.61 61.2199 59.9100 60.520 153389.0 64.801616 101 AAWW 2011-05-26 60.21 61.2700 59.2400 60.910 108287.0 64.801178 102 AAWW 2011-05-27 61.29 61.4300 60.7200 61.320 65454.0 64.776985 103 AAWW 2011-05-31 62.08 63.4710 61.4600 63.290 219817.0 64.702128 104 AAWW 2011-06-01 63.01 63.3000 60.3200 60.330 312813.0 64.522823 105 AAWW 2011-06-02 60.87 61.7400 60.1900 61.460 186278.0 64.423926 106 AAWW 2011-06-03 60.07 60.3900 59.0600 59.310 214454.0 64.280076 107 AAWW 2011-06-06 59.33 60.7200 58.5500 58.690 124206.0 64.145179 108 AAWW 2011-06-07 59.29 59.2900 58.3600 58.370 165903.0 63.996618 109 AAWW 2011-06-08 57.98 58.9400 57.7500 58.050 235494.0 63.833340 110 AAWW 2011-06-09 58.67 58.8600 57.7500 57.800 118907.0 63.737747 111 AAWW 2011-06-10 57.30 57.7400 56.9900 57.140 170533.0 63.564074 112 AAWW 2011-06-13 57.53 58.2700 57.0000 57.140 87853.0 63.420941 113 AAWW 2011-06-14 57.65 58.2300 57.1000 57.680 223438.0 63.244719 114 AAWW 2011-06-15 56.87 57.6300 56.2800 56.390 208976.0 63.077368 115 AAWW 2011-06-16 56.39 57.3000 55.6600 56.380 141250.0 62.973372 116 AAWW 2011-06-17 56.86 57.3500 55.6500 56.300 330411.0 62.736948 117 AAWW 2011-06-20 56.00 56.9200 55.5500 56.350 168595.0 62.620115 118 AAWW 2011-06-21 56.77 58.4700 56.0100 58.400 172802.0 62.544530 119 AAWW 2011-06-22 58.20 60.7000 58.2000 59.280 181476.0 62.448103 120 AAWW 2011-06-23 58.28 58.5300 56.5700 58.340 194291.0 62.372537 121 AAWW 2011-06-24 58.40 59.1900 57.0500 57.340 139650.0 62.282537 122 AAWW 2011-06-27 57.22 59.0300 56.6100 58.910 118978.0 62.203562 123 AAWW 2011-06-28 59.14 59.7000 58.9000 59.600 100631.0 62.162188 124 AAWW 2011-06-29 59.72 59.8338 58.6400 59.010 73263.0 62.145703 125 AAWW 2011-06-30 59.21 60.0100 58.9280 59.510 79213.0 62.130994 126 AAWW 2011-07-01 59.45 61.2000 59.0400 60.830 96705.0 62.085839 127 AAWW 2011-07-05 60.83 61.1500 60.2700 60.600 133550.0 62.032877 128 AAWW 2011-07-06 60.59 61.3500 59.5300 61.230 114406.0 61.949265 129 AAWW 2011-07-07 61.92 63.9900 60.0600 63.710 190522.0 61.854345 130 AAWW 2011-07-08 62.46 63.5000 62.2800 63.230 125784.0 61.804209 131 AAWW 2011-07-11 62.31 63.2500 61.5700 61.890 281351.0 61.748784 132 AAWW 2011-07-12 61.42 61.7300 58.2000 58.860 402105.0 61.502527 133 AAWW 2011-07-13 59.01 59.0600 56.5500 57.790 342235.0 61.240205 134 AAWW 2011-07-14 58.03 59.8300 57.2500 57.630 159030.0 60.797592 135 AAWW 2011-07-15 57.79 58.1162 56.1400 56.590 239371.0 60.591607 136 AAWW 2011-07-18 56.42 56.7300 54.2300 54.320 204220.0 60.346238 137 AAWW 2011-07-19 54.72 55.3800 54.3300 55.090 168611.0 60.129774 138 AAWW 2011-07-20 55.15 55.2300 54.3500 54.570 129502.0 59.905769 139 AAWW 2011-07-21 54.78 55.4400 53.9600 54.420 286329.0 59.570437 140 AAWW 2011-07-22 54.48 56.7600 54.2500 56.110 258052.0 59.312388 141 AAWW 2011-07-25 55.48 57.1000 55.3060 56.220 135516.0 59.177789 142 AAWW 2011-07-26 56.15 56.4000 55.5200 56.070 151237.0 58.988862 143 AAWW 2011-07-27 55.54 55.8800 54.7700 54.980 186171.0 58.816289 144 AAWW 2011-07-28 55.24 55.6700 53.7600 53.870 289049.0 58.598460 145 AAWW 2011-07-29 53.29 53.7200 52.2000 52.390 313311.0 58.241398 146 AAWW 2011-08-01 52.96 52.9600 49.8600 50.530 561729.0 57.669403 147 AAWW 2011-08-02 50.75 55.5600 49.1500 51.200 1225403.0 56.861493 148 AAWW 2011-08-03 51.15 53.0000 49.5900 50.040 529559.0 56.493687 149 AAWW 2011-08-04 49.26 50.4539 45.5200 45.610 810325.0 55.873850 150 AAWW 2011-08-05 46.28 47.9900 41.9000 45.480 579232.0 55.446289 151 AAWW 2011-08-08 44.07 46.5000 42.2700 42.450 545059.0 55.014000 152 AAWW 2011-08-09 43.45 46.4600 41.5000 44.150 487155.0 54.697196 153 AAWW 2011-08-10 43.01 43.9500 40.5000 40.730 301910.0 54.333765 154 AAWW 2011-08-11 41.07 44.4800 40.6027 43.810 268719.0 54.030362 155 AAWW 2011-08-12 44.16 45.0100 42.9400 43.390 121339.0 53.845486 156 AAWW 2011-08-15 43.49 44.7200 43.2000 44.680 152435.0 53.672027 157 AAWW 2011-08-16 44.10 44.4500 43.0900 43.350 186382.0 53.517025 158 AAWW 2011-08-17 43.37 43.8100 42.8600 43.760 261633.0 53.313100 159 AAWW 2011-08-18 42.11 42.4400 40.5700 40.770 434248.0 52.953196 160 AAWW 2011-08-19 39.66 42.4000 39.6600 41.510 331962.0 52.719770 161 AAWW 2011-08-22 43.02 43.3200 40.9800 41.230 239756.0 52.526428 162 AAWW 2011-08-23 41.50 43.8400 40.9900 43.580 248974.0 52.381439

    opened by BigDaddyBastonkadonkz 0
  • Chandelier Correct?

    Chandelier Correct?

    Unfortunately no time to describe, but Chandelier doesn't look correct. Especially when comparing to https://school.stockcharts.com/doku.php?id=technical_indicators:chandelier_exit.

    Finta's short line is never above the original price series when testing with SPX. The formula is very simple, must be the ATR calc.

    opened by bscully27 0
Releases(1.3)
Owner
Project leader at @peercoin project.
bt - flexible backtesting for Python

bt - Flexible Backtesting for Python bt is currently in alpha stage - if you find a bug, please submit an issue. Read the docs here: http://pmorissett

Philippe Morissette 1.6k Jan 05, 2023
Q-Fin: A Python library for mathematical finance.

Q-Fin A Python library for mathematical finance. Installation https://pypi.org/project/QFin/ pip install qfin Bond Pricing Option Pricing Black-Schol

Roman Paolucci 247 Jan 01, 2023
Technical Analysis Library using Pandas and Numpy

Technical Analysis Library in Python It is a Technical Analysis library useful to do feature engineering from financial time series datasets (Open, Cl

Darío López Padial 3.4k Jan 02, 2023
Common financial risk and performance metrics. Used by zipline and pyfolio.

empyrical Common financial risk metrics. Table of Contents Installation Usage Support Contributing Testing Installation pip install empyrical Usage S

Quantopian, Inc. 1k Dec 26, 2022
A python wrapper for Alpha Vantage API for financial data.

alpha_vantage Python module to get stock data/cryptocurrencies from the Alpha Vantage API Alpha Vantage delivers a free API for real time financial da

Romel Torres 3.8k Jan 07, 2023
Zipline, a Pythonic Algorithmic Trading Library

Zipline is a Pythonic algorithmic trading library. It is an event-driven system for backtesting. Zipline is currently used in production as the backte

Quantopian, Inc. 15.7k Jan 02, 2023
High-performance TensorFlow library for quantitative finance.

TF Quant Finance: TensorFlow based Quant Finance Library Table of contents Introduction Installation TensorFlow training Development roadmap Examples

Google 3.5k Jan 01, 2023
Python Backtesting library for trading strategies

backtrader Yahoo API Note: [2018-11-16] After some testing it would seem that data downloads can be again relied upon over the web interface (or API v

DRo 9.8k Dec 30, 2022
ffn - a financial function library for Python

ffn - Financial Functions for Python Alpha release - please let me know if you find any bugs! If you are looking for a full backtesting framework, ple

Philippe Morissette 1.4k Jan 01, 2023
Python library for backtesting trading strategies & analyzing financial markets (formerly pythalesians)

finmarketpy (formerly pythalesians) finmarketpy is a Python based library that enables you to analyze market data and also to backtest trading strateg

Cuemacro 3k Dec 30, 2022
rotki is an open source portfolio tracking, analytics, accounting and tax reporting tool that respects your privacy.

rotki is an open source portfolio tracking, analytics, accounting and tax reporting tool that respects your privacy. The mission of rotki is to bring transparency into the crypto and financial sector

Rotki 2k Dec 30, 2022
stock data on eink with raspberry

small python skript to display tradegate data on a waveshare e-ink important you need locale "de_AT.UTF-8 UTF-8" installed. do so in raspi-config's Lo

Simon Oberhammer 24 Feb 22, 2022
crypto utilities as a way of learning

cryptos Just me developing a pure Python from-scratch zero-dependency implementation of Bitcoin for educational purposes. This includes a lot of the c

Andrej 958 Jan 02, 2023
A banking system is a group or network of institutions that provide financial services for us

A banking system is a group or network of institutions that provide financial services for us. These institutions are responsible for operating a payment system, providing loans, taking deposits, and

UTTKARSH PARMAR 1 Oct 24, 2021
Find big moving stocks before they move using machine learning and anomaly detection

Surpriver - Find High Moving Stocks before they Move Find high moving stocks before they move using anomaly detection and machine learning. Surpriver

Tradytics 1.5k Dec 31, 2022
:mag_right: :chart_with_upwards_trend: :snake: :moneybag: Backtest trading strategies in Python.

Backtesting.py Backtest trading strategies with Python. Project website Documentation the project if you use it. Installation $ pip install backtestin

3.1k Dec 31, 2022
'Personal Finance' is a project where people can manage and track their expenses

Personal Finance by Abhiram Rishi Pratitpati 'Personal Finance' is a project where people can manage and track their expenses. It is hard to keep trac

Abhiram Rishi Prattipati 1 Dec 21, 2021
Software for quick purchase of mystery boxes on Binance.

english | русский язык Software for quick purchase of mystery boxes on Binance. Purpose Installation & setup Motivation Specification Disclaimer Purpo

Ellis 5 Mar 08, 2022
scrilla: A Financial Optimization Application

A python application that wraps around AlphaVantage, Quandl and IEX APIs, calculates financial statistics and optimizes portfolio allocations.

Grant Moore 6 Dec 17, 2022
personal finance tracker, written in python 3 and using the wxPython GUI toolkit.

personal finance tracker, written in python 3 and using the wxPython GUI toolkit.

wenbin wu 23 Oct 30, 2022