SystemSelf reportedCryptoPythoncircleconceptscryptoforexfvg

smart-money-concepts

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.

System Structure

Data Used
암호화폐 거래소 시장 데이터OHLCV/호가/체결 데이터
Rules / Strategy

저장소별 전략/실행 조건 확인 필요

Execution

주문 실행은 사용자가 별도 통합/설정

Editor Summary

저장소 설명과 공개 메타데이터 기준으로 Python 기반 구현, 암호화폐 거래 봇, 거래소 API/프레임워크, 기술적 분석 성격의 프로젝트로 파악했습니다. 확인 근거는 README, 저장소 토픽, 저장소 설명, GitHub 지표, 파이프라인 필드이며, 주요 데이터는 암호화폐 거래소 시장 데이터, OHLCV/호가/체결 데이터입니다. 전략/실행 조건은 저장소별 문서와 코드 확인이 필요하며, 실행 방식은 "주문 실행은 사용자가 별도 통합/설정"라고 보수적으로 기록했습니다. GitHub 지표는 별 1845개, 포크 795개입니다.

Repositoryjoshyattridge/smart-money-concepts
Creatorjoshyattridge
Stars / Forks★ 1845 / 795
LicenseMIT
Last Updated2026-04-03
Snapshot Date2026-07-08 (README below is a copy from this date)

This is third-party open-source code. QuantField does not guarantee its behavior or safety. Review the code before installing or running it.

README

PyPI Downloads Code style: black Bitcoin Donate

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

pip install smartmoneyconcepts

Usage

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)

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: 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

returns: FVG = 1 if bullish fair value gap, -1 if bearish fair value gap Top = the top of the fair value gap Bottom = the bottom of the fair value gap MitigatedIndex = the index of the candle that mitigated the fair value gap

Swing Highs and Lows

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: swing_length: int - the amount of candles to look back and forward to determine the swing high or low

returns: HighLow = 1 if swing high, -1 if swing low Level = the level of the swing high or low

Break of Structure (BOS) & Change of Character (CHoCH)

smc.bos_choch(ohlc, swing_highs_lows, close_break = True)

These are both indications of market structure changing

parameters: swing_highs_lows: DataFrame - provide the dataframe from the swing_highs_lows function 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.

returns: BOS = 1 if bullish break of structure, -1 if bearish break of structure CHOCH = 1 if bullish change of character, -1 if bearish change of character Level = the level of the break of structure or change of character BrokenIndex = the index of the candle that broke the level

Orde