Skip to content
ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

69 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŒซ๏ธ Haze-Library

CI PyPI License: Proprietary Python Rust

ๅŸบไบŽ Rust ็š„้ซ˜ๆ€ง่ƒฝ้‡ๅŒ–ไบคๆ˜“ๆŒ‡ๆ ‡ๅบ“


โœจ ๆ ธๅฟƒ็‰นๆ€ง

็‰นๆ€ง ๆ่ฟฐ
๐Ÿš€ 215+ ๆŠ€ๆœฏๆŒ‡ๆ ‡ ๅฎŒๆ•ด่ฆ†็›– TA-Libใ€pandas-taใ€่ฐๆณขๅฝขๆ€็ญ‰
โšก Rust ้ซ˜ๆ€ง่ƒฝ ๆฏ”็บฏ Python ๅฟซ 5-10 ๅ€
๐Ÿ“Š ๆตๅผ่ฎก็ฎ— O(1) ๅฎžๆ—ถๅขž้‡ๆŒ‡ๆ ‡่ฎก็ฎ—
๐Ÿค– ๆœบๅ™จๅญฆไน  ๅ†…็ฝฎ SVMใ€็บฟๆ€งๅ›žๅฝ’็ญ‰ ML ๆจกๅž‹
๐ŸŽฏ LT ็ป„ๅˆๆŒ‡ๆ ‡ 10 ไธช SFG ไธ“ไธšไบคๆ˜“ไฟกๅท + ๅธ‚ๅœบ็Šถๆ€่‡ช้€‚ๅบ”
๐Ÿ”— ๅคšๆก†ๆžถๆ”ฏๆŒ NumPyใ€Pandasใ€Polarsใ€PyTorch
๐Ÿ’น ไบคๆ˜“ๆ‰ง่กŒ CCXT ไบคๆ˜“ๆ‰€ๆŽฅๅฃๅฐ่ฃ…
๐ŸŽฏ ้ซ˜็ฒพๅบฆ ่ฏฏๅทฎๅฎนๅฟๅบฆ < 1e-9
๐Ÿ”’ ็ฑปๅž‹ๅฎ‰ๅ…จ ๅฎŒๆ•ด็š„็ฑปๅž‹ๆณจ่งฃ

๐Ÿ“ฆ ๅฎ‰่ฃ…

ไปŽ PyPI ๅฎ‰่ฃ…๏ผˆๆŽจ่๏ผ‰

# ๅฎ‰่ฃ…ๆœ€ๆ–ฐ็‰ˆๆœฌ (v1.1.1+)
pip install haze-library

# ๆˆ–ๆŒ‡ๅฎš็‰ˆๆœฌ
pip install haze-library==1.1.1

ๅฏ้€‰ไพ่ต–

# ไบคๆ˜“ๆ‰ง่กŒๅŠŸ่ƒฝ๏ผˆCCXT๏ผ‰
pip install haze-library[execution]

# Pandas ๆ”ฏๆŒ
pip install haze-library[pandas]

# ๅฎŒๆ•ดๅฎ‰่ฃ…
pip install haze-library[full]

ไปŽๆบ็ ๆž„ๅปบ

git clone https://github.com/kwannz/haze.git
cd haze
pip install maturin
maturin develop --release --features python

็Žฏๅขƒ่ฆๆฑ‚

  • Python 3.14+
  • Rust 1.75+๏ผˆไป…ๆบ็ ๆž„ๅปบ้œ€่ฆ๏ผ‰

๐Ÿš€ ๅฟซ้€Ÿๅผ€ๅง‹

ๅŸบ็ก€็”จๆณ•

import haze_library as haze

# ไปทๆ ผๆ•ฐๆฎ
close = [100.0, 101.0, 102.0, 101.5, 103.0, 102.5, 104.0]
high = [101.0, 102.0, 103.0, 102.5, 104.0, 103.5, 105.0]
low = [99.0, 100.0, 101.0, 100.5, 102.0, 101.5, 103.0]
volume = [1000, 1200, 1100, 1300, 1250, 1150, 1400]

# ็งปๅŠจๅนณๅ‡็บฟ
sma = haze.sma(close, period=5)
ema = haze.ema(close, period=5)

# ๅŠจ้‡ๆŒ‡ๆ ‡
rsi = haze.rsi(close, period=14)
macd, signal, hist = haze.macd(close, fast=12, slow=26, signal=9)

# ๆณขๅŠจ็އๆŒ‡ๆ ‡
atr = haze.atr(high, low, close, period=14)
upper, middle, lower = haze.bollinger_bands(close, period=20, std_dev=2.0)

# ่ถ‹ๅŠฟๆŒ‡ๆ ‡
supertrend, direction = haze.supertrend(high, low, close, period=10, multiplier=3.0)
adx = haze.adx(high, low, close, period=14)

# ๆˆไบค้‡ๆŒ‡ๆ ‡
obv = haze.obv(close, volume)
vwap = haze.vwap(high, low, close, volume)

Pandas ้›†ๆˆ

import pandas as pd
import haze_library

# ๅŠ ่ฝฝๆ•ฐๆฎ
df = pd.read_csv('ohlcv.csv')

# ไฝฟ็”จ .haze ่ฎฟ้—ฎๅ™จ
df['sma_20'] = df['close'].haze.sma(20)
df['rsi_14'] = df['close'].haze.rsi(14)
df['atr_14'] = df.haze.atr(14)

# ๅธƒๆž—ๅธฆ๏ผˆ่ฟ”ๅ›žๅคšๅˆ—๏ผ‰
bb = df['close'].haze.bollinger_bands(20, 2.0)
df['bb_upper'] = bb['upper']
df['bb_middle'] = bb['middle']
df['bb_lower'] = bb['lower']

NumPy ๆŽฅๅฃ

import numpy as np
from haze_library import np_ta

close = np.random.randn(1000) + 100

# ่ฎก็ฎ—ๆŒ‡ๆ ‡๏ผˆ่ฟ”ๅ›ž np.ndarray๏ผ‰
sma = np_ta.sma(close, period=20)
rsi = np_ta.rsi(close, period=14)
macd, signal, hist = np_ta.macd(close)

ๆตๅผ่ฎก็ฎ—๏ผˆๅฎžๆ—ถๆ•ฐๆฎ๏ผ‰

from haze_library.streaming import (
    IncrementalSMA,
    IncrementalRSI,
    IncrementalMACD,
    IncrementalBollingerBands,
)

# ๅˆ›ๅปบๆตๅผ่ฎก็ฎ—ๅ™จ
sma = IncrementalSMA(period=20)
rsi = IncrementalRSI(period=14)
macd = IncrementalMACD(fast=12, slow=26, signal=9)

# ้€ไธชๆ•ฐๆฎ็‚นๆ›ดๆ–ฐ๏ผˆO(1) ๅคๆ‚ๅบฆ๏ผ‰
for price in realtime_prices:
    sma_value = sma.update(price)
    rsi_value = rsi.update(price)
    macd_line, signal_line, histogram = macd.update(price)

    print(f"SMA: {sma_value:.2f}, RSI: {rsi_value:.2f}")

่ฐๆณขๅฝขๆ€ๆฃ€ๆต‹

import haze_library as haze

# ๆฃ€ๆต‹ XABCD ่ฐๆณขๅฝขๆ€
# ่ฟ”ๅ›ž๏ผšไฟกๅท(1=็œ‹ๆถจ/-1=็œ‹่ทŒ)ใ€PRZไธŠๆฒฟใ€PRZไธ‹ๆฒฟใ€ๅฎŒๆˆๆฆ‚็އ
signals, prz_up, prz_lo, prob = haze.harmonics(high, low, close)

# ่Žทๅ–่ฏฆ็ป†ๅฝขๆ€ไฟกๆฏ
patterns = haze.harmonics_patterns(high, low, left_bars=5, right_bars=5)
for p in patterns:
    print(f"{p.pattern_type_zh}: {p.state}")
    print(f"  PRZ ไธญๅฟƒ: {p.prz_center:.2f}")
    print(f"  ๅฎŒๆˆๆฆ‚็އ: {p.completion_probability:.1%}")

ๆœบๅ™จๅญฆไน ๆจกๅž‹

from haze_library import ml

# ็‰นๅพๆๅ–
features = ml.extract_features(close, high, low, volume)

# ่ฎญ็ปƒ SVM ๆจกๅž‹
model = ml.train_svm(features, labels)

# ้ข„ๆต‹
predictions = model.predict(new_features)

๐Ÿค– LT ็ป„ๅˆๆŒ‡ๆ ‡็ณป็ปŸ (v1.1.0+)

LT (Long-Term) ็ป„ๅˆๆŒ‡ๆ ‡็ณป็ปŸ้›†ๆˆไบ† 10 ไธช SFG (Smart Financial Group) ไธ“ไธšไบคๆ˜“ไฟกๅทๆŒ‡ๆ ‡๏ผŒๅ…ทๅค‡ๅธ‚ๅœบ็Šถๆ€่‡ช้€‚ๅบ”ๆƒ้‡่ฐƒๆ•ดๅ’ŒๅŠ ๆƒ้›†ๆˆๆŠ•็ฅจ้€ป่พ‘๏ผŒ้€‚็”จไบŽไธญ้•ฟๆœŸ่ถ‹ๅŠฟไบคๆ˜“ใ€‚

ๅฟซ้€Ÿๅผ€ๅง‹

import numpy as np
from haze_library import lt_indicator

# ๅ‡†ๅค‡ไปทๆ ผๆ•ฐๆฎ๏ผˆ่‡ณๅฐ‘ 500+ ไธชๆ•ฐๆฎ็‚นไปฅ่Žทๅพ—็จณๅฎšไฟกๅท๏ผ‰
n = 1000
high = np.array([100.0 + i * 0.1 + np.random.rand() * 2 for i in range(n)])
low = np.array([100.0 + i * 0.1 - np.random.rand() * 2 for i in range(n)])
close = np.array([100.0 + i * 0.1 for i in range(n)])
volume = np.array([1000.0 + np.random.rand() * 500 for _ in range(n)])

# ่ฎก็ฎ— LT ็ป„ๅˆๆŒ‡ๆ ‡
result = lt_indicator(high, low, close, volume)

# ๆŸฅ็œ‹ๆœ€็ปˆไฟกๅท
print(f"ไบคๆ˜“ไฟกๅท: {result['ensemble']['final_signal']}")  # BUY / SELL / NEUTRAL
print(f"ไฟกๅทๅผบๅบฆ: {result['ensemble']['confidence']:.2%}")  # 0-100%
print(f"ๅธ‚ๅœบ็Šถๆ€: {result['market_regime']}")  # TRENDING / RANGING / VOLATILE

10 ไธช SFG ๆŒ‡ๆ ‡่ฏฆ่งฃ

# ๆŒ‡ๆ ‡ๅ็งฐ ่ฏดๆ˜Ž ้€‚็”จๅœบๆ™ฏ
1 AI SuperTrend KNN + SuperTrend ๆœบๅ™จๅญฆไน ๅขžๅผบ ่ถ‹ๅŠฟ่ทŸ่ธช + ๆ™บ่ƒฝ้ข„ๆต‹
2 ATR2 Signals ATR + MLMI ๅคšๅฑ‚ๆฌก้ข„ๆต‹ ๆณขๅŠจ็އ่‡ช้€‚ๅบ”ๅ…ฅๅœบ
3 Pivot Points ๆžข่ฝด็‚น + ่ทŸ่ธชๆญขๆŸ ๆ”ฏๆ’‘้˜ปๅŠ›ไฝ็ช็ ด
4 AI Momentum KNN + RSI ๅ…ณ็ณป้ข„ๆต‹ ๅŠจ้‡ๅ่ฝฌๆ•ๆ‰
5 Volume Profile ๆˆไบค้‡ๅˆ†ๅธƒ + POC/VAH/VAL ้ซ˜ๆˆไบค้‡ๅŒบๅŸŸ่ฏ†ๅˆซ
6 General Parameters ๅŠจๆ€ EMA ้€š้“ ่ถ‹ๅŠฟๅผบๅบฆ็กฎ่ฎค
7 Market Structure BOS/CHoCH + Fair Value Gap ๅธ‚ๅœบ็ป“ๆž„่ฝฌๆข
8 PD Array Premium/Discount + ็ช็ ดๅŒบๅ— ไปทๆ ผๅคฑ่กกไฟฎๅค
9 Linear Regression ๅคšๆ—ถ้—ดๆก†ๆžถๆ”ฏๆ’‘้˜ปๅŠ› ๅ‡ๅ€ผๅ›žๅฝ’ไบคๆ˜“
10 Dynamic MACD + HA MACD + ๅนณๅ‡ K ็บฟ ่ถ‹ๅŠฟๅปถ็ปญ้ชŒ่ฏ

ๅธ‚ๅœบ็Šถๆ€่‡ช้€‚ๅบ”

็ณป็ปŸ่‡ชๅŠจๆฃ€ๆต‹ 3 ็งๅธ‚ๅœบ็Šถๆ€ๅนถๅŠจๆ€่ฐƒๆ•ดๆŒ‡ๆ ‡ๆƒ้‡๏ผš

# ๆŸฅ็œ‹ๅฝ“ๅ‰ๅธ‚ๅœบ็Šถๆ€
regime = result['market_regime']
print(f"ๅธ‚ๅœบ็Šถๆ€: {regime}")

# ไธๅŒๅธ‚ๅœบ็Šถๆ€็š„ๆƒ้‡็ญ–็•ฅ
if regime == "TRENDING":
    # ่ถ‹ๅŠฟๆŒ‡ๆ ‡ๆƒ้‡้ซ˜ (SuperTrend, MACD, Regression)
    print("โ†’ ้€‚ๅˆ่ถ‹ๅŠฟ่ทŸ่ธช็ญ–็•ฅ")
elif regime == "RANGING":
    # ๅ‡ๅ€ผๅ›žๅฝ’ๆŒ‡ๆ ‡ๆƒ้‡้ซ˜ (Pivot, Volume Profile)
    print("โ†’ ้€‚ๅˆๅŒบ้—ดไบคๆ˜“็ญ–็•ฅ")
elif regime == "VOLATILE":
    # ๆณขๅŠจ็އๆŒ‡ๆ ‡ๆƒ้‡้ซ˜ (ATR2, Market Structure)
    print("โ†’ ้€‚ๅˆๆณขๅŠจ็އ็ช็ ด็ญ–็•ฅ")

่ฏฆ็ป†ไฟกๅทๅˆ†ๆž

# ๆŸฅ็œ‹ๆ‰€ๆœ‰ๆŒ‡ๆ ‡็š„็‹ฌ็ซ‹ไฟกๅท
for name, data in result['indicators'].items():
    signal = data.get('signal', 'N/A')
    confidence = data.get('confidence', 0.0)
    print(f"{name:30} -> {signal:8} ({confidence:.1%})")

# ็คบไพ‹่พ“ๅ‡บ:
# ai_supertrend               -> BUY      (85.3%)
# atr2_signals                -> BUY      (72.1%)
# ai_momentum                 -> NEUTRAL  (45.0%)
# volume_profile              -> SELL     (38.2%)
# ...

# ้›†ๆˆๆŠ•็ฅจ็ป“ๆžœ
ensemble = result['ensemble']
print(f"\nๆœ€็ปˆไฟกๅท: {ensemble['final_signal']}")
print(f"ๅคšๅคด็ฅจๆ•ฐ: {ensemble['bullish_votes']}")
print(f"็ฉบๅคด็ฅจๆ•ฐ: {ensemble['bearish_votes']}")
print(f"ไธญๆ€ง็ฅจๆ•ฐ: {ensemble['neutral_votes']}")
print(f"็ปผๅˆไฟกๅฟƒ: {ensemble['confidence']:.2%}")

ๅฎžๆˆ˜ๅบ”็”จ็คบไพ‹

import pandas as pd
from haze_library import lt_indicator

# ๅŠ ่ฝฝ็œŸๅฎžๅธ‚ๅœบๆ•ฐๆฎ
df = pd.read_csv('BTC_USDT_1h.csv')  # ่‡ณๅฐ‘ 500+ ่กŒๆ•ฐๆฎ

# ่ฎก็ฎ— LT ไฟกๅท
result = lt_indicator(
    df['high'].values,
    df['low'].values,
    df['close'].values,
    df['volume'].values
)

# ่Žทๅ–ๆœ€ๆ–ฐไฟกๅท
signal = result['ensemble']['final_signal']
confidence = result['ensemble']['confidence']
regime = result['market_regime']

# ไบคๆ˜“้€ป่พ‘
if signal == "BUY" and confidence > 0.6:
    if regime == "TRENDING":
        print("โœ… ๅผบ็ƒˆ็œ‹ๆถจไฟกๅท - ๅผ€ๅคšไป“ (่ถ‹ๅŠฟ่ทŸ่ธช)")
    elif regime == "RANGING":
        print("โœ… ็œ‹ๆถจไฟกๅท - ๅŒบ้—ดไธ‹ๆฒฟๅšๅคš")
    else:
        print("โš ๏ธ  ็œ‹ๆถจไฟกๅท - ้ซ˜ๆณขๅŠจๆœŸ่ฐจๆ…Žๆ“ไฝœ")

elif signal == "SELL" and confidence > 0.6:
    if regime == "TRENDING":
        print("โŒ ๅผบ็ƒˆ็œ‹่ทŒไฟกๅท - ๅผ€็ฉบไป“ (่ถ‹ๅŠฟ่ทŸ่ธช)")
    elif regime == "RANGING":
        print("โŒ ็œ‹่ทŒไฟกๅท - ๅŒบ้—ดไธŠๆฒฟๅš็ฉบ")
    else:
        print("โš ๏ธ  ็œ‹่ทŒไฟกๅท - ้ซ˜ๆณขๅŠจๆœŸ่ฐจๆ…Žๆ“ไฝœ")

else:
    print("โธ๏ธ  ไธญๆ€งไฟกๅท - ่ง‚ๆœ›็ญ‰ๅพ…ๆ›ดๆ˜Ž็กฎๆœบไผš")

# ้ฃŽ้™ฉ็ฎก็†ๅปบ่ฎฎ
if confidence < 0.4:
    print("โš ๏ธ  ไฝŽไฟกๅฟƒไฟกๅท - ๅปบ่ฎฎๅ‡ๅฐไป“ไฝๆˆ–ไธไบคๆ˜“")
elif confidence < 0.6:
    print("โ„น๏ธ  ไธญ็ญ‰ไฟกๅฟƒ - ๆ ‡ๅ‡†ไป“ไฝ")
else:
    print("๐Ÿ’ช ้ซ˜ไฟกๅฟƒไฟกๅท - ๅฏ้€‚ๅฝ“ๅขžๅŠ ไป“ไฝ๏ผˆไธ่ถ…่ฟ‡ๆœ€ๅคงไป“ไฝ้™ๅˆถ๏ผ‰")

ๆœ€ไฝณๅฎž่ทต

  1. ๆ•ฐๆฎ้‡่ฆๆฑ‚: ่‡ณๅฐ‘ 500 ไธชๆ•ฐๆฎ็‚น๏ผˆๆŽจ่ 1000+๏ผ‰ไปฅ่Žทๅพ—็จณๅฎšไฟกๅท
  2. ๆ—ถ้—ดๅ‘จๆœŸ: ้€‚็”จไบŽ 1H / 4H / 1D ๅ‘จๆœŸ๏ผŒไธญ้•ฟๆœŸ่ถ‹ๅŠฟไบคๆ˜“
  3. ไฟกๅท็กฎ่ฎค:
    • confidence > 0.6 ไธบ้ซ˜่ดจ้‡ไฟกๅท
    • confidence < 0.4 ๅปบ่ฎฎ่ง‚ๆœ›
  4. ๅธ‚ๅœบ้€‚ๅบ”:
    • TRENDING: ้กบๅŠฟไบคๆ˜“๏ผŒๆŒไป“ๆ—ถ้—ด่พƒ้•ฟ
    • RANGING: ๅŒบ้—ดไบคๆ˜“๏ผŒๅฟซ่ฟ›ๅฟซๅ‡บ
    • VOLATILE: ่ฐจๆ…Žๆ“ไฝœ๏ผŒไธฅๆ ผๆญขๆŸ
  5. ้ฃŽ้™ฉๆŽงๅˆถ:
    • ๆฐธ่ฟœ่ฎพ็ฝฎๆญขๆŸ๏ผˆๅปบ่ฎฎ 2-3 ๅ€ ATR๏ผ‰
    • ๅ•็ฌ”ไป“ไฝไธ่ถ…่ฟ‡ๆ€ป่ต„้‡‘ 5-10%
    • ๅคšไธชไฟกๅท็กฎ่ฎคๅŽๅ†ๅ…ฅๅœบ

๐Ÿ“Š ๆŒ‡ๆ ‡ๅˆ†็ฑป

็งปๅŠจๅนณๅ‡็บฟ๏ผˆ16 ไธช๏ผ‰

ๆŒ‡ๆ ‡ ่ฏดๆ˜Ž ๅ‡ฝๆ•ฐ
SMA ็ฎ€ๅ•็งปๅŠจๅนณๅ‡ sma(close, period)
EMA ๆŒ‡ๆ•ฐ็งปๅŠจๅนณๅ‡ ema(close, period)
WMA ๅŠ ๆƒ็งปๅŠจๅนณๅ‡ wma(close, period)
DEMA ๅŒ้‡ๆŒ‡ๆ•ฐ็งปๅŠจๅนณๅ‡ dema(close, period)
TEMA ไธ‰้‡ๆŒ‡ๆ•ฐ็งปๅŠจๅนณๅ‡ tema(close, period)
KAMA ่€ƒๅคซๆ›ผ่‡ช้€‚ๅบ”็งปๅŠจๅนณๅ‡ kama(close, period)
HMA ่ตซๅฐ”็งปๅŠจๅนณๅ‡ hma(close, period)
ZLMA ้›ถๅปถ่ฟŸ็งปๅŠจๅนณๅ‡ zlma(close, period)
T3 T3 ็งปๅŠจๅนณๅ‡ t3(close, period)
ALMA ้˜ฟๅฐ”่ฏบๅพท็งปๅŠจๅนณๅ‡ alma(close, period)
FRAMA ๅˆ†ๅฝข่‡ช้€‚ๅบ”็งปๅŠจๅนณๅ‡ frama(close, period)
VIDYA ๅ˜้‡ๆŒ‡ๆ•ฐๅŠจๆ€ๅนณๅ‡ vidya(close, period)
RMA ็›ธๅฏน็งปๅŠจๅนณๅ‡ rma(close, period)
SWMA ๆญฃๅผฆๅŠ ๆƒ็งปๅŠจๅนณๅ‡ swma(close)
PWMA ๅธ•ๆ–ฏๅกๅŠ ๆƒ็งปๅŠจๅนณๅ‡ pwma(close, period)
SINWMA ๆญฃๅผฆๆƒ้‡็งปๅŠจๅนณๅ‡ sinwma(close, period)

ๅŠจ้‡ๆŒ‡ๆ ‡๏ผˆ17 ไธช๏ผ‰

ๆŒ‡ๆ ‡ ่ฏดๆ˜Ž ๅ‡ฝๆ•ฐ
RSI ็›ธๅฏนๅผบๅผฑๆŒ‡ๆ ‡ rsi(close, period)
MACD ๆŒ‡ๆ•ฐๅนณๆป‘ๅผ‚ๅŒ็งปๅŠจๅนณๅ‡ macd(close, fast, slow, signal)
Stochastic ้šๆœบๆŒ‡ๆ ‡ stochastic(high, low, close, k, d)
CCI ๅ•†ๅ“้€š้“ๆŒ‡ๆ•ฐ cci(high, low, close, period)
MFI ่ต„้‡‘ๆต้‡ๆŒ‡ๆ ‡ mfi(high, low, close, volume, period)
Williams %R ๅจๅป‰ๆŒ‡ๆ ‡ willr(high, low, close, period)
ROC ๅ˜ๅŒ–็އ roc(close, period)
MOM ๅŠจ้‡ mom(close, period)
KDJ ้šๆœบๆŒ‡ๆ ‡ KDJ kdj(high, low, close, k, d, j)
TSI ็œŸๅฎžๅผบๅบฆๆŒ‡ๆ•ฐ tsi(close, fast, slow)
Stoch RSI ้šๆœบ RSI stochrsi(close, period)
Ultimate ็ปˆๆžๆŒฏ่กๅ™จ ultimate(high, low, close)
Awesome ๅŠจ้‡้œ‡่กๆŒ‡ๆ ‡ awesome(high, low)
Fisher ่ดน่ˆๅฐ”ๅ˜ๆข fisher(high, low, period)
APO ็ปๅฏนไปทๆ ผๆŒฏ่กๅ™จ apo(close, fast, slow)
PPO ็™พๅˆ†ๆฏ”ไปทๆ ผๆŒฏ่กๅ™จ ppo(close, fast, slow)
CMO ้’ฑๅพทๅŠจ้‡ๆŒฏ่กๅ™จ cmo(close, period)

ๆณขๅŠจ็އๆŒ‡ๆ ‡๏ผˆ10 ไธช๏ผ‰

ๆŒ‡ๆ ‡ ่ฏดๆ˜Ž ๅ‡ฝๆ•ฐ
ATR ๅนณๅ‡็œŸๅฎžๆณขๅน… atr(high, low, close, period)
NATR ๅฝ’ไธ€ๅŒ– ATR natr(high, low, close, period)
Bollinger ๅธƒๆž—ๅธฆ bollinger_bands(close, period, std)
Keltner ่‚ฏ็‰น็บณ้€š้“ keltner(high, low, close, period)
Donchian ๅ”ๅฅ‡ๅฎ‰้€š้“ donchian(high, low, period)
Chandelier ๅŠ็ฏๆญขๆŸ chandelier(high, low, close, period)
HV ๅކๅฒๆณขๅŠจ็އ historical_volatility(close, period)
Ulcer ๆบƒ็–กๆŒ‡ๆ•ฐ ulcer_index(close, period)
Mass ่ดจ้‡ๆŒ‡ๆ•ฐ mass_index(high, low)
True Range ็œŸๅฎžๆณขๅน… true_range(high, low, close)

่ถ‹ๅŠฟๆŒ‡ๆ ‡๏ผˆ14 ไธช๏ผ‰

ๆŒ‡ๆ ‡ ่ฏดๆ˜Ž ๅ‡ฝๆ•ฐ
SuperTrend ่ถ…็บง่ถ‹ๅŠฟ supertrend(high, low, close, period, mult)
ADX ๅนณๅ‡่ถ‹ๅ‘ๆŒ‡ๆ•ฐ adx(high, low, close, period)
SAR ๆŠ›็‰ฉ็บฟ่ฝฌๅ‘ sar(high, low, accel, max_accel)
Aroon ้˜ฟ้š†ๆŒ‡ๆ ‡ aroon(high, low, period)
DMI ๆ–นๅ‘็งปๅŠจๆŒ‡ๆ•ฐ dmi(high, low, close, period)
TRIX ไธ‰้‡ๅนณๆป‘ EMA trix(close, period)
DPO ๅŽป่ถ‹ๅŠฟไปทๆ ผๆŒฏ่กๅ™จ dpo(close, period)
Vortex ๆถกๆตๆŒ‡ๆ ‡ vortex(high, low, close, period)
Choppiness ้œ‡่กๆŒ‡ๆ•ฐ choppiness(high, low, close, period)
VHF ๅž‚็›ดๆฐดๅนณ่ฟ‡ๆปคๅ™จ vhf(close, period)
QStick ้‡ไปทๆฃ’ qstick(open, close, period)
DX ่ถ‹ๅ‘ๆŒ‡ๆ•ฐ dx(high, low, close, period)
+DI ๆญฃๅ‘ๆŒ‡ๆ ‡ plus_di(high, low, close, period)
-DI ่ดŸๅ‘ๆŒ‡ๆ ‡ minus_di(high, low, close, period)

ๆˆไบค้‡ๆŒ‡ๆ ‡๏ผˆ11 ไธช๏ผ‰

ๆŒ‡ๆ ‡ ่ฏดๆ˜Ž ๅ‡ฝๆ•ฐ
OBV ่ƒฝ้‡ๆฝฎ obv(close, volume)
VWAP ๆˆไบค้‡ๅŠ ๆƒๅ‡ไปท vwap(high, low, close, volume)
CMF ่”ก้‡‘่ต„้‡‘ๆต้‡ cmf(high, low, close, volume, period)
Force ๅŠฒ้“ๆŒ‡ๆ•ฐ force_index(close, volume, period)
VO ๆˆไบค้‡ๆŒฏ่กๅ™จ volume_oscillator(volume, fast, slow)
AD ็ดฏ็งฏ/ๆดพๅ‘็บฟ ad(high, low, close, volume)
PVT ไปท้‡่ถ‹ๅŠฟ pvt(close, volume)
NVI ่ดŸ้‡ๆŒ‡ๆ ‡ nvi(close, volume)
PVI ๆญฃ้‡ๆŒ‡ๆ ‡ pvi(close, volume)
EOM ็ฎ€ๆ˜“ๆณขๅŠจๆŒ‡ๆ ‡ eom(high, low, volume, period)
ADOSC AD ๆŒฏ่กๅ™จ adosc(high, low, close, volume, fast, slow)

่œก็ƒ›ๅ›พๅฝขๆ€๏ผˆ61 ไธช๏ผ‰

ๆ”ฏๆŒๆ‰€ๆœ‰ไธปๆต K ็บฟๅฝขๆ€่ฏ†ๅˆซ๏ผš

  • ๅ่ฝฌๅฝขๆ€๏ผš้”คๅญ็บฟใ€ไธŠๅŠ็บฟใ€ๅžๆฒกๅฝขๆ€ใ€ๅญ•็บฟใ€ๅๅญ—ๆ˜Ÿใ€ๆ—ฉๆ™จไน‹ๆ˜Ÿใ€้ป„ๆ˜ไน‹ๆ˜Ÿ็ญ‰
  • ๆŒ็ปญๅฝขๆ€๏ผšไธ‰็™ฝๅ…ตใ€ไธ‰้ป‘้ธฆใ€่ทณ็ฉบ็ผบๅฃ็ญ‰
  • ไธญๆ€งๅฝขๆ€๏ผš้ซ˜ๆตช็บฟใ€้™€่žบ็บฟ็ญ‰
# ๆฃ€ๆต‹่œก็ƒ›ๅ›พๅฝขๆ€
patterns = haze.detect_candlestick_patterns(open, high, low, close)

ๅ…ถไป–ๆŒ‡ๆ ‡

  • ็ปŸ่ฎกๆŒ‡ๆ ‡๏ผˆ13 ไธช๏ผ‰๏ผš็บฟๆ€งๅ›žๅฝ’ใ€็›ธๅ…ณๆ€งใ€Z ๅˆ†ๆ•ฐใ€่ดๅก”็ณปๆ•ฐ็ญ‰
  • ไปทๆ ผๅ˜ๆข๏ผˆ4 ไธช๏ผ‰๏ผšๅนณๅ‡ไปทๆ ผใ€ไธญ้—ดไปทใ€ๅ…ธๅž‹ไปทๆ ผ็ญ‰
  • ๆ•ฐๅญฆ่ฟ็ฎ—๏ผˆ25 ไธช๏ผ‰๏ผšๅ„็ฑปๆ•ฐๅญฆๅ‡ฝๆ•ฐ
  • ๅ‘จๆœŸๆŒ‡ๆ ‡๏ผˆ5 ไธช๏ผ‰๏ผšๅธŒๅฐ”ไผฏ็‰นๅ˜ๆข็ณปๅˆ—
  • ่ฐๆณขๅฝขๆ€๏ผˆ3 ไธช๏ผ‰๏ผšXABCD ๅฝขๆ€ๆฃ€ๆต‹
  • ้ซ˜็บงไฟกๅท๏ผˆ4 ไธช๏ผ‰๏ผšAI SuperTrendใ€ๅŠจๆ€ MACD ็ญ‰

๐Ÿ—๏ธ ็ณป็ปŸๆžถๆž„

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    Python ๅบ”็”จๅฑ‚                          โ”‚
โ”‚            ๏ผˆไบคๆ˜“็ญ–็•ฅ / ๆ•ฐๆฎๅˆ†ๆž / ๅ›žๆต‹็ณป็ปŸ๏ผ‰               โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                          โ”‚
          โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
          โ”‚               โ”‚               โ”‚
          โ–ผ               โ–ผ               โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  np_ta      โ”‚   โ”‚  pandas     โ”‚   โ”‚  polars_ta  โ”‚
โ”‚  (NumPy)    โ”‚   โ”‚  accessor   โ”‚   โ”‚  (Polars)   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜
       โ”‚                 โ”‚                 โ”‚
       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                         โ”‚
                         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚              haze_library (PyO3 ็ป‘ๅฎš)                     โ”‚
โ”‚         215+ ๆŒ‡ๆ ‡ๅ‡ฝๆ•ฐ + ๆตๅผ่ฎก็ฎ—ๅ™จ + ML ๆจกๅž‹              โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                          โ”‚
                          โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                   Rust ๆ ธๅฟƒๅบ“                             โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”         โ”‚
โ”‚  โ”‚ indicators โ”‚  โ”‚  streaming โ”‚  โ”‚     ml     โ”‚         โ”‚
โ”‚  โ”‚ ๆŠ€ๆœฏๆŒ‡ๆ ‡   โ”‚  โ”‚  ๆตๅผ่ฎก็ฎ—   โ”‚  โ”‚  ๆœบๅ™จๅญฆไน    โ”‚         โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜         โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”         โ”‚
โ”‚  โ”‚   utils    โ”‚  โ”‚   types    โ”‚  โ”‚   errors   โ”‚         โ”‚
โ”‚  โ”‚  ๅทฅๅ…ทๅ‡ฝๆ•ฐ   โ”‚  โ”‚   ็ฑปๅž‹ๅฎšไน‰  โ”‚  โ”‚   ้”™่ฏฏๅค„็†  โ”‚         โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜         โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐ŸŽฏ ๆ€ง่ƒฝๅŸบๅ‡†

ๆต‹่ฏ•็Žฏๅขƒ๏ผš10,000 ไธชๆ•ฐๆฎ็‚น

ๆŒ‡ๆ ‡ pandas-ta TA-Lib Haze-Library ๅŠ ้€Ÿๆฏ”
RSI (14) 12.5 ms 8.2 ms 1.3 ms 6.3x
Bollinger (20) 15.8 ms 10.1 ms 2.1 ms 4.8x
MACD (12/26/9) 18.3 ms 11.4 ms 1.9 ms 6.0x
SuperTrend (10) 22.1 ms - 2.8 ms 7.9x
ADX (14) 19.5 ms 12.3 ms 2.2 ms 5.6x

๐Ÿงฎ ๆ•ฐๅ€ผ็จณๅฎšๆ€ง

Haze-Library ้‡‡็”จๅคš็งๆŠ€ๆœฏ็กฎไฟๆ•ฐๅ€ผ่ฎก็ฎ—็š„็ฒพ็กฎๆ€ง๏ผš

  • f64 ็ฒพๅบฆ๏ผšๆ‰€ๆœ‰่ฎก็ฎ—ไฝฟ็”จ 64 ไฝๆตฎ็‚นๆ•ฐ
  • Kahan ๆฑ‚ๅ’Œ๏ผš้•ฟๅบๅˆ—็ดฏๅŠ ไฝฟ็”จ่กฅๅฟๆฑ‚ๅ’Œ็ฎ—ๆณ•
  • Welford ็ฎ—ๆณ•๏ผšๆ–นๅทฎ/ๆ ‡ๅ‡†ๅทฎไฝฟ็”จๅขž้‡็ฎ—ๆณ•้ฟๅ…ๆ•ฐๅ€ผๆบขๅ‡บ
  • ็ฒพๅบฆ้ชŒ่ฏ๏ผšๆ‰€ๆœ‰ๆŒ‡ๆ ‡ไธŽๅ‚่€ƒๅฎž็Žฐๅฏนๆฏ”่ฏฏๅทฎ < 1e-9

โš ๏ธ ้”™่ฏฏๅค„็†

import haze_library as haze

try:
    # ๅ‘จๆœŸ่ฟ‡ๅคง
    rsi = haze.rsi([100, 101, 102], period=14)
except ValueError as e:
    print(f"้”™่ฏฏ: {e}")
    # ่พ“ๅ‡บ: Invalid period: 14 (must be > 0 and <= data length 3)

try:
    # ๆ•ฐ็ป„้•ฟๅบฆไธๅŒน้…
    atr = haze.atr([101, 102], [99, 100], [100, 101, 102], period=2)
except ValueError as e:
    print(f"้”™่ฏฏ: {e}")
    # ่พ“ๅ‡บ: Length mismatch

try:
    # ็ฉบๆ•ฐๆฎ
    rsi = haze.rsi([], period=14)
except ValueError as e:
    print(f"้”™่ฏฏ: {e}")
    # ่พ“ๅ‡บ: Empty input

๐Ÿ’น ไบคๆ˜“ๆ‰ง่กŒ๏ผˆๅฏ้€‰๏ผ‰

้œ€่ฆๅฎ‰่ฃ… haze-library[execution]๏ผš

from haze_library.execution import ExecutionEngine, ExecutionPermissions
from haze_library.execution.providers.ccxt import CCXTProvider

# ๅˆ›ๅปบไบคๆ˜“ๆ‰ง่กŒๅผ•ๆ“Ž
provider = CCXTProvider(
    exchange="binance",
    api_key="your_key",
    api_secret="your_secret",
)

permissions = ExecutionPermissions(
    live_trading=True,
    max_notional_per_order=1000.0,  # ๅ•็ฌ”ๆœ€ๅคง 1000 USDT
)

engine = ExecutionEngine(provider=provider, permissions=permissions)

# ไธ‹ๅ•
from haze_library.execution.models import CreateOrderRequest

order_req = CreateOrderRequest(
    symbol="BTC/USDT",
    side="buy",
    order_type="limit",
    amount=0.001,
    price=50000.0,
)

order, check = engine.place_order(order_req)
print(f"่ฎขๅ• ID: {order.id}")

๐Ÿ“œ ่ฎธๅฏ่ฏ / License

ๆœฌ้กน็›ฎไธบไธ“ๆœ‰่ฝฏไปถ๏ผŒไฟ็•™ๆ‰€ๆœ‰ๆƒๅˆฉใ€‚

This project is proprietary software. All rights reserved.

  • โŒ ็ฆๆญขๆœช็ปๆŽˆๆƒ็š„ไฝฟ็”จ / Unauthorized use prohibited
  • โœ… ๅ•†ไธš่ฎธๅฏๅฏ็”จ / Commercial licenses available

่ฎธๅฏๅ’จ่ฏข / Licensing inquiries: team@haze-library.com


๐Ÿค ่ดก็Œฎ

ๆฌข่ฟŽๆไบค Issue ๅ’Œ Pull Request๏ผ

่ฏฆ่ง CONTRIBUTING.md


๐Ÿ™ ่‡ด่ฐข

  • TA-Lib - ๆŠ€ๆœฏๅˆ†ๆžๅ‚่€ƒๅฎž็Žฐ
  • pandas-ta - Pandas ้›†ๆˆ็ตๆ„Ÿ
  • PyO3 - Rust-Python ็ป‘ๅฎš
  • Maturin - ๆž„ๅปบๅทฅๅ…ท

Made with โค๏ธ by the Haze Team

็‰ˆๆœฌ: 1.1.3 | ๆ›ดๆ–ฐๆ—ฅๆœŸ: 2025-12-30

About

๐ŸŒซ๏ธ Haze-Library: 212 ไธชๆŠ€ๆœฏๆŒ‡ๆ ‡๏ผŒ็”ฑ Rust ้ฉฑๅŠจ๏ผŒ้‡ๅŒ–ไบคๆ˜“้€Ÿๅบฆๆๅ‡ 5-10 ๅ€ใ€‚ๅŸบไบŽ PyO3 ็š„ Python ็ป‘ๅฎš๏ผŒ้ซ˜็ฒพๅบฆ๏ผˆ่ฏฏๅทฎ < 1e-9๏ผ‰ใ€‚้žๅ•†ไธš่ฎธๅฏ่ฏ (CC BY-NC 4.0)ใ€‚

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages