Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Discover our Python package designed for algorithmic trading. It brings ICT's smart money concepts to Python, offering a range of indicators for your algorithmic trading strategies.
| Date | Stars |
|---|---|
| 2026-07-24 | 1876 |
| 2026-07-25 | 1877 |
| 2026-07-28 | 1877 |
| 2026-07-30 | 1877 |
| 2026-08-06 | 1877 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day
[](https://pypi.org/project/smartmoneyconcepts/) [](https://pepy.tech/project/smartmoneyconcepts/month) [](https://github.com/ambv/black) [](https://blockstream.info/address/bc1petss2mlqyjsajyzhu06wzl667v0f8svc0hnpqjj2d32frtx77g4sg5s0pg) <p align="center"> <img src="https://github.com/joshyattridge/smart-money-concepts/blob/f0c0fc28cc290cdd9dfcc6a6ac246ed1d59061be/tests/test.gif" alt="Candle Graph Showing Indicators"/> </p> # Smart Money Concepts (smc) The Smart Money Concepts Python Indicator is a sophisticated financial tool developed for traders and investors to gain insights into market sentiment, trends, and potential reversals. This indicator is inspired by Inner Circle Trader (ICT) concepts like Order blocks, Liquidity, Fair Value Gap, Swing Highs and Lows, Break of Structure, Change of Character, and more. Please Take a look and contribute to the project. ## Installation ```bash pip install smartmoneyconcepts ``` ## Usage ```python from smartmoneyconcepts import smc ``` Prepare data to use with smc: smc expects properly formated ohlc DataFrame, with column names in lowercase: ["open", "high", "low", "close"] and ["volume"] for indicators that expect ohlcv input. ## Indicators ### Fair Value Gap (FVG) ```python smc.fvg(ohlc, join_consecutive=False) ``` A fair value gap is when the previous high is lower than the next low if the current candle is bullish. Or when the previous low is higher than the next high if the current candle is bearish. parameters:<br> join_consecutive: bool - if there are multiple FVG in a row then they will be merged into one using the highest top and the lowest bottom<br> returns:<br> FVG = 1 if bullish fair value gap, -1 if bearish fair value gap<br> Top = the top of the fair value gap<br> Bottom = the bottom of the fair value gap<br> MitigatedIndex = the index of the candle that mitigated the fair value gap<br> ### Swing Highs and Lows ```python smc.swing_highs_lows(ohlc, swing_length = 50) ``` A swing high is when the current high is the highest high out of the swing_length amount of candles before and after. A swing low is when the current low is the lowest low out of the swing_length amount of candles before and after. parameters:<br> swing_length: int - the amount of candles to look back and forward to determine the swing high or low<br> returns:<br> HighLow = 1 if swing high, -1 if swing low<br> Level = the level of the swing high or low<br> ### Break of Structure (BOS) & Change of Character (CHoCH) ```python smc.bos_choch(ohlc, swing_highs_lows, close_break = True) ``` These are both indications of market structure changing parameters:<br> swing_highs_lows: DataFrame - provide the dataframe from the swing_highs_lows function<br> close_break: bool - if True then the break of structure will be mitigated based on the close of the candle otherwise it will be the high/low.<br> returns:<br> BOS = 1 if bullish break of structure, -1 if bearish break of structure<br> CHOCH = 1 if bullish change of character, -1 if bearish change of character<br> Level = the level of the break of structure or change of character<br> BrokenIndex = the index of the candle that broke the level<br> ### Order Blocks (OB) ```python smc.ob(ohlc, swing_highs_lows, close_mitigation = False) ``` This method detects order blocks when there is a high amount of market orders exist on a price range. parameters:<br> swing_highs_lows: DataFrame - provide the dataframe from the swing_highs_lows function<br> close_mitigation: bool - if True then the order block will be mitigated based on the close of the candle otherwise it will be the high/low. returns:<br> OB = 1 if bullish order block, -1 if bearish orde
Excerpt of 7,930 characters
Read on GitHub121
8
4
4
3
2
1
1
Would you bet a product on this? Bounded 0–100 and slow moving.
matched fp:9720115b99c40427, topic:trading, readme:financial