Github Repo Updates, Requests for Contribution
Here’s an update on the Github repo. We have added quite abit of code documentation, as well as tests. Here is the relevant commit:
https://github.com/hangukquant/hanguk_collab/commit/30148ab190b8a64eb229c242152cf2864692c75d
For the paid readers who have yet to join our Github:
For unpaid readers who have reached out to me for special permission to get access - I have done so in many cases. I trust that you do intend to follow through with your promises to contribute to the discussion and implementation on the project. I am very thankful for those of you who have already pointed out some bugs in the source code.
For those of you who have yet to gain access - and are unpaid - you can offer to contribute some unique/helpful features or regularly offer to pick up some of the pending tasks. We already some interesting features suggested by readers, and I look forward to go through them It is also a fantastic way for beginner programmers to learn how to do source control and participate in larger codebases.
Here is some help we would like actually - and a super, duper easy one. Two lines code only.
We would like some more primitives in our mathematical parser-evaluator, particularly, compound functions. All you have to do is write down equivalent string representations composed of the already present primitives/terminals in or quantlib.gene module:
if self.prim == "grssret":
equiv=Gene.str_to_gene(f"div(close,delay_{space}(close))")
if self.prim == "logret":
equiv=Gene.str_to_gene(f"log(grssret_{space}())")
if self.prim == "netret":
equiv=Gene.str_to_gene(f"minus(grssret_{space}(),const_1)")
if self.prim == "volatility":
equiv=Gene.str_to_gene(f"std_{space}(logret_1())")
The rest of the infra would take care of it, so if you specify the formula correctly - then our evaluator would handle computation of any formulas using that primitive.
Here are some suggestions you may want to implement:
Moving Averages:
Simple Moving Average (SMA)
Exponential Moving Average (EMA)
Weighted Moving Average (WMA)
Hull Moving Average (HMA)
Adaptive Moving Average (AMA)
Volume Weighted Moving Average (VWMA)
Triangular Moving Average (TMA)
Double Exponential Moving Average (DEMA)
Triple Exponential Moving Average (TEMA)
Kaufman's Adaptive Moving Average (KAMA)
etc.
Oscillators:
Relative Strength Index (RSI)
Stochastic Oscillator
Moving Average Convergence Divergence (MACD)
Commodity Channel Index (CCI)
Money Flow Index (MFI)
Rate of Change (ROC)
Williams %R
Ultimate Oscillator
Detrended Price Oscillator (DPO)
Awesome Oscillator (AO)
True Strength Index (TSI)
Accumulation/Distribution (A/D)
Chaikin Oscillator
Momentum
Percentage Price Oscillator (PPO)
Percentage Volume Oscillator (PVO)
etc.
Volume-Based Indicators:
Volume
Volume Weighted Average Price (VWAP)
On-Balance Volume (OBV)
Chaikin Money Flow (CMF)
Price-Volume Trend (PVT)
Money Flow Index (MFI)
Accumulation/Distribution Line (A/D Line)
Ease of Movement (EOM)
Force Index
Volume Profile
Volume Rate of Change (VROC)
etc.
Trend Indicators:
Average Directional Index (ADX)
Parabolic SAR (PSAR)
Ichimoku Cloud
SuperTrend
Bollinger Bands
Donchian Channels
Keltner Channels
Pivot Points
Fibonacci Retracement/Extension
Trendlines
Linear Regression Lines