All Projects → flare9x → MarketCycles.jl

flare9x / MarketCycles.jl

Licence: other
Digital Signal Processing Indicators For Market Data.

Programming Languages

julia
2034 projects

Projects that are alternatives of or similar to MarketCycles.jl

robinhood.tools
📈🤑💰 Advanced trading tools and resources for Robinhood Web.
Stars: ✭ 27 (+3.85%)
Mutual labels:  stock-market, stock-trading
stockbot
Alpaca algo stock trading bot
Stars: ✭ 105 (+303.85%)
Mutual labels:  stock-market, stock-trading
Ta Rs
Technical analysis library for Rust language
Stars: ✭ 248 (+853.85%)
Mutual labels:  stock-market, indicator
alpha-vantage-cli
Command line tool and API for retrieving stock market data from Alpha Vantage
Stars: ✭ 33 (+26.92%)
Mutual labels:  stock-market, stock-trading
TradeAlgo
Stock trading algorithm written in Python for TD Ameritrade.
Stars: ✭ 147 (+465.38%)
Mutual labels:  stock-market, stock-trading
StockScreener
A handy tool for screening stocks based on certain criteria from several markets around the world. The list can then be delivered to your email address (one-off or regularly via crontab).
Stars: ✭ 51 (+96.15%)
Mutual labels:  stock-market, stock-trading
insomnia-workspace
An Insomnia Workspace for Alpaca API
Stars: ✭ 34 (+30.77%)
Mutual labels:  stock-market, stock-trading
investopedia simulator api
A simple Python API for Investopedia's stock simulator games. This programmatically logs into Investopedia and can retrieve portfolio summary, get stock quotes & option chain lookups, execute trades - buy & sell shares, puts, calls, sell short, etc.
Stars: ✭ 22 (-15.38%)
Mutual labels:  stock-market, stock-trading
TradeTheEvent
Implementation of "Trade the Event: Corporate Events Detection for News-Based Event-Driven Trading." In Findings of ACL2021
Stars: ✭ 64 (+146.15%)
Mutual labels:  stock-market, stock-trading
Alpaca Backtrader Api
Alpaca Trading API integrated with backtrader
Stars: ✭ 246 (+846.15%)
Mutual labels:  stock-market
intrinio-realtime-java-sdk
Intrinio Java SDK for Real-Time Stock Prices
Stars: ✭ 22 (-15.38%)
Mutual labels:  stock-market
Deep Learning Machine Learning Stock
Stock for Deep Learning and Machine Learning
Stars: ✭ 240 (+823.08%)
Mutual labels:  stock-market
Chase
Automatic trading bot (WIP)
Stars: ✭ 73 (+180.77%)
Mutual labels:  stock-market
FAIG
Fully Automated IG Trading
Stars: ✭ 134 (+415.38%)
Mutual labels:  stock-market
Forex-and-Stock-Python-Pattern-Recognizer
A machine learning program that is able to recognize patterns inside Forex or stock data
Stars: ✭ 134 (+415.38%)
Mutual labels:  stock-trading
Stocks.js
💰 stocks.js is an easy-to-use stock market API for Javascript
Stars: ✭ 240 (+823.08%)
Mutual labels:  stock-market
Stock Bot
An application that allows you to design and test your own stock trading algorithms in an attempt to beat the market.
Stars: ✭ 240 (+823.08%)
Mutual labels:  stock-market
plutus-algo-backtesting
Algorithmic Trading : A python framework to run backtest on stocks using your own custom algorithmic strategies
Stars: ✭ 28 (+7.69%)
Mutual labels:  stock-market
finance-news-aggregator
A news aggregator in python, that focuses primarily on business and market news sources.
Stars: ✭ 59 (+126.92%)
Mutual labels:  stock-market
flirt
Are you ready to FLIRT with your wearable data?
Stars: ✭ 41 (+57.69%)
Mutual labels:  digital-signal-processing

Build Status HitCount

MarketCycles

This package provides digital signal processing indicators developed by John F. Ehlers.

Currently the original indicators shared in his book: Cycle Analytics for Traders, Advanced Technical Trading Concepts are provided with intent to explore the DSP space and provide new intuitions based on the Ehlers framework.

Available Indicators

  • Available Indicators

    • Supersmoother
    • Decycler
    • Decycler Oscillator
    • Band Pass Filter
    • Hurst Coefficient
    • HP-LP Roofing Filter
    • Zero Mean Roofing Filter
    • Roofing Filter
    • Modified Stochastic
    • Modified RSI
    • Autocorrelation (Multiple Lag Matrix)
    • Autocorrelation (Single Lag)
    • Autocorrelation Periodogram
    • Autocorrelation Reversals
    • Adaptive RSI
    • Adaptive Stochastic Indicator
    • Adaptive CCI Indicator
    • Adaptive Band Pass Filter
    • Fisher Transform (Price)
  • TO DO

    • Dominant Cycle - Fix DC Portion
    • DFT Spectral Estimate - Fix MaxPwr Calculation
    • Comb Filter Spectral Estimate
    • Even Better SineWave Indicator
    • Compute and Display Convolution
    • Classic Hilbert Transformer
    • Hilbert Transformer Indicator
    • Dominant Cycle Using the Dual Differentiator Method
    • Dominant Cycle Using the Phase Accumulation Method
    • Dominant Cycle Using the Homodyne Method
    • Fisher Transform to the Adaptive RSI Indicator
    • SwamiCharts RSI
    • SwamiCharts Stochastic

Usage

]
add https://github.com/flare9x/MarketCycles.jl

Each indicator function requires an input of a single dimension array of Float64 type. Call @doc function_name to see the associated documentation for each specific indicator. A list of indicator function names can be found at the bottom of the page. Here is an exmaple of calling the @doc for AutoCorrelationReversals:

julia> @doc AutoCorrelationReversals
Autocorrelation Reversals - Equation 8-3

  The indicated reversals are very sensitive to the smoothing of the price data.
 ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡

  LPLength is made available as an indicator input to decrease or increase the number of
indicated reversals as desired.
 ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡

  The AvgLength parameter is also made available as an indicator because this averaging also
impacts the number of indicated reversals.
 ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡

  Care should be taken when increasing the value of this input because the lag of the
indicator increases in direct proportion to the increase of the value of the AvgLength.
 ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡

  Typical delay of the indicator will be about three bars when the AvgLength parameter is set
to a value of 3.
 ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡

AutoCorrelationReversals(x::Array{Float64}; min_lag::Int64=1, max_lag::Int64=48,
LPLength::Int64=10, HPLength::Int64=48, AvgLength::Int64=3)::Array{Float64}

Call the function as below for lags 1 to 48:

AutoCorrelationReversals(your_data,min_lag=1,max_lag=48,LPLength=10,HPLength=48,AvgLength=3)

Below is an exmaple of calling the AutoCorrelationReversals reversals over dummy market data:

using MarketCycles
using Gadfly

# Generate dummy data
using Random
Random.seed!(1234)
n = 1000
op = 100.0 .+ cumsum(randn(n))
hi = op + rand(n)
lo = op - rand(n)
cl = 100.0 .+ cumsum(randn(n))
index = collect(1:1:length(cl))
for i = 1:n
if cl[i] > hi[i]
  cl[i] = hi[i]
elseif cl[i] < lo[i]
  cl[i] = lo[i]
 end
end


# Apply autocorrelation reversals function
auto_cor_reversals = AutoCorrelationReversals(cl; min_lag=1, max_lag=48, LPPeriod=10, HPPeriod=48, AvgLength=3)

# Plot
white_panel = Theme(
 panel_fill="white",
 default_color="blue",
 background_color="white"
)
p1 = plot(x=index,y=cl,Geom.line,
Guide.xlabel(nothing), Guide.ylabel("Price"), Guide.title("Dummy Data"),white_panel)
p2 = plot(x=index,y=auto_cor_reversals,Geom.line,Guide.xlabel("Time Index"),Guide.title("Autocorrelation Reversals"),white_panel)
out = vstack(p1,p2)

# Save Plot
draw(PNG("C:/Users/Andrew.Bannerman/Desktop/Julia/auto_correlation_reversals.png", 1500px, 800px), out)

For the output:

John Ehlers Autocorrelation Reversals

Available Function Names

    SuperSmoother, Decycler, Decycle_OSC, BandPassFilter, DominantCycle, HurstCoefficient, HPLPRoofingFilter,
    ZeroMeanRoofingFilterK0, ZeroMeanRoofingFilterK1, RoofingFilterIndicator,
    ModifiedStochastic, ModifiedRSI, AutoCorrelationIndicator, SingleLagAutoCorrelationIndicator, AutoCorrelationPeriodogram,
    AutoCorrelationReversals, DFTS, AdaptiveRSI, AdaptiveStochastic, AdaptiveCCI

Feel free to explore any of the functions with:

@doc SuperSmoother
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].