P
PipsGrowth

mplfinance للرسوم البيانية المالية

مكتبة متخصصة لرسم الرسوم البيانية المالية. شموع يابانية و OHLC ورسوم بيانية مع مؤشرات فنية.

الصعوبة: مبتدئ
الفئة: تصور بياني

التثبيت

$ pip install mplfinance

أنواع الرسوم البيانية المدعومة

candle
Classic candlestick chart
ohlc
OHLC bar chart
line
Simple line chart
renko
Renko brick chart
pnf
Point & Figure chart
hollow_candle
Hollow candlestick variant

أمثلة الكود

Installation

Install mplfinance

Python
pip install mplfinance
# Verify
python -c "import mplfinance; print('mplfinance ready!')"

Basic Candlestick Chart

Create a professional candlestick chart with one line

Python
import mplfinance as mpf
import yfinance as yf
# Get data
df = yf.download("EURUSD=X", period="3mo")
# One-line candlestick chart!
mpf.plot(df, type='candle', title='EUR/USD',
style='charles', volume=True)

Custom Styled Charts

Create dark-themed professional charts

Python
import mplfinance as mpf
import yfinance as yf
df = yf.download("EURUSD=X", period="6mo")
# Create custom dark style
custom_style = mpf.make_mpf_style(
base_mpf_style='nightclouds',
marketcolors=mpf.make_marketcolors(
up='#00ff88', down='#ff4444',
edge='inherit', wick='inherit',
volume='in', ohlc='i'
),
gridstyle='-', gridcolor='#333333'
)
mpf.plot(df, type='candle', style=custom_style,
title='EUR/USD - Dark Theme',
volume=True, figsize=(14, 8))

Chart with Technical Indicators

Overlay moving averages and volume on the chart

Python
import mplfinance as mpf
import yfinance as yf
df = yf.download("EURUSD=X", period="6mo")
# Moving Averages
mpf.plot(df, type='candle',
mav=(10, 20, 50), # Add 3 moving averages
volume=True,
title='EUR/USD with Moving Averages',
style='yahoo',
figsize=(14, 8))

Multi-Panel Charts with RSI

Add RSI and custom indicators as subplots

Python
import mplfinance as mpf
import yfinance as yf
import pandas as pd
df = yf.download("EURUSD=X", period="6mo")
# Calculate RSI
delta = df['Close'].diff()
gain = (delta.where(delta > 0, 0)).rolling(window=14).mean()
loss = (-delta.where(delta < 0, 0)).rolling(window=14).mean()
rs = gain / loss
rsi = 100 - (100 / (1 + rs))
# Create additional plots
apds = [
mpf.make_addplot(rsi, panel=2, color='purple',
ylabel='RSI', ylim=(0, 100)),
# Add overbought/oversold lines
mpf.make_addplot([70]*len(df), panel=2,
color='red', linestyle='--'),
mpf.make_addplot([30]*len(df), panel=2,
color='green', linestyle='--'),
]
mpf.plot(df, type='candle', addplot=apds,
volume=True, title='EUR/USD with RSI',
style='charles', figsize=(14, 10),
panel_ratios=(3, 1, 1))

Save Charts as Images

Export publication-quality charts

Python
import mplfinance as mpf
import yfinance as yf
df = yf.download("EURUSD=X", period="3mo")
# Save as PNG (high resolution)
mpf.plot(df, type='candle', volume=True,
title='EUR/USD',
style='yahoo',
savefig=dict(fname='chart.png', dpi=300,
bbox_inches='tight'))
print("Chart saved as chart.png")

أفضل الممارسات

تنسيق البيانات

Your DataFrame must have a DatetimeIndex — use df.index = pd.to_datetime(df.index)

التخصيص

Add custom indicators as subplots with full control over colors and placement

الدقة

For interactive charts, consider plotly or lightweight-charts instead

Memory Usage

Large datasets can consume significant memory — limit to 6-12 months of data

PipsGrowth - مراجعات خبراء الوسطاء، استراتيجيات التداول والأدوات