العودة إلى الأنماط
أدوات اكتشاف الأنماط
حزم Python وأساليب MT5 وأمثلة أكواد للتعرف الآلي على أنماط الشموع اليابانية.
3
مكتبات Python
4
أمثلة MQL5
60+
أنماط قابلة للاكتشاف
آلي
اكتشاف
مكتبات Python لاكتشاف الأنماط
TA-Lib
أشمل مكتبة تحليل فني مع أكثر من 60 دالة للتعرف على أنماط الشموع اليابانية. المعيار الصناعي للتداول الخوارزمي.
pip install TA-Lib61 نمطالميزات الرئيسية
- المعيار الصناعي المستخدم من قبل المحترفين حول العالم
- محرك C فائق السرعة للكشف في الوقت الحقيقي
- تغطية شاملة لـ 61 نمط شموع يابانية
- توثيق جيد مع دعم مجتمعي واسع
- مُختبر في أنظمة تداول إنتاجية حقيقية
مثال كود
Python
import talib
import numpy as np
# Get OHLC data
open_prices = np.array([...])
high_prices = np.array([...])
low_prices = np.array([...])
close_prices = np.array([...])
# Detect Hammer pattern
hammer = talib.CDLHAMMER(open_prices, high_prices, low_prices, close_prices)
# Detect Engulfing pattern
engulfing = talib.CDLENGULFING(open_prices, high_prices, low_prices, close_prices)
# Detect Morning Star
morning_star = talib.CDLMORNINGSTAR(open_prices, high_prices, low_prices, close_prices)
# Value: 100 = bullish signal, -100 = bearish signal, 0 = no pattern
pandas-ta
مكتبة تحليل فني حديثة متوافقة مع pandas مع التعرف البديهي على أنماط الشموع، مصممة لسير عمل بيانات Python.
pip install pandas-ta30+ نمطالميزات الرئيسية
- Python خالص — تثبيت في أي مكان بدون تبعيات
- تكامل سلس مع DataFrame من pandas
- اكتشاف جميع الأنماط دفعة واحدة باستدعاء دالة واحدة
- تحديثات منتظمة وصيانة نشطة
- تصميم API نظيف وبأسلوب Python
مثال كود
Python
import pandas as pd
import pandas_ta as ta
# Load your OHLC data into a DataFrame
df = pd.DataFrame({
'open': [...],
'high': [...],
'low': [...],
'close': [...]
})
# Detect Doji pattern
df['doji'] = ta.cdl_doji(df['open'], df['high'], df['low'], df['close'])
# Detect all patterns at once (returns DataFrame with all patterns)
df.ta.cdl_pattern(name="all")
# Specific pattern
df.ta.cdl_pattern(name="engulfing")
candlestick-patterns
مكتبة Python خفيفة مصممة خصيصاً للتعرف على أنماط الشموع اليابانية مع حد أدنى من الموارد.
pip install candlestick-patterns20+ نمطالميزات الرئيسية
- خفيفة الوزن مع أقل استهلاك للذاكرة
- واجهة بسيطة وبديهية للتكامل السريع
- Python خالص — لا تبعيات خارجية مطلوبة
- مركّزة خصيصاً على اكتشاف الأنماط
- سهلة التوسيع بأنماط مخصصة
مثال كود
Python
from candlestick import candlestick
# Detect patterns on DataFrame
# Returns DataFrame with boolean columns for each pattern
patterns = candlestick.hammer(df, target='signal')
patterns = candlestick.inverted_hammer(df, target='signal')
patterns = candlestick.doji(df, target='signal')
patterns = candlestick.engulfing(df, target='signal')
اكتشاف الأنماط في MT5 / MQL5
اكتشاف نمط المطرقة
دالة MQL5 لاكتشاف أنماط شموع المطرقة برمجياً في MetaTrader 5.
MQL5
// MQL5 - Hammer Pattern Detection
bool IsHammer(int bar) {
double open = iOpen(_Symbol, _Period, bar);
double close = iClose(_Symbol, _Period, bar);
double high = iHigh(_Symbol, _Period, bar);
double low = iLow(_Symbol, _Period, bar);
double body = MathAbs(close - open);
double upperShadow = high - MathMax(open, close);
double lowerShadow = MathMin(open, close) - low;
double totalRange = high - low;
// Hammer criteria:
// 1. Small body (< 30% of total range)
// 2. Long lower shadow (> 2x body)
// 3. Little or no upper shadow (< 10% of range)
if(totalRange == 0) return false;
bool smallBody = (body / totalRange) < 0.30;
bool longLowerShadow = lowerShadow >= (body * 2);
bool noUpperShadow = upperShadow < (totalRange * 0.10);
return smallBody && longLowerShadow && noUpperShadow;
}
اكتشاف نمط الابتلاع
اكتشاف أنماط الابتلاع الصعودي والهبوطي في MQL5 للتداول الآلي.
MQL5
// MQL5 - Engulfing Pattern Detection
int DetectEngulfing(int bar) {
double open1 = iOpen(_Symbol, _Period, bar);
double close1 = iClose(_Symbol, _Period, bar);
double open2 = iOpen(_Symbol, _Period, bar + 1);
double close2 = iClose(_Symbol, _Period, bar + 1);
bool prevBearish = close2 < open2;
bool prevBullish = close2 > open2;
bool currBullish = close1 > open1;
bool currBearish = close1 < open1;
// Bullish Engulfing: Previous bearish, current bullish
// Current candle body completely covers previous
if(prevBearish && currBullish) {
if(open1 <= close2 && close1 >= open2) {
return 1; // Bullish Engulfing
}
}
// Bearish Engulfing
if(prevBullish && currBearish) {
if(open1 >= close2 && close1 <= open2) {
return -1; // Bearish Engulfing
}
}
return 0; // No pattern
}
اكتشاف نجمة الصباح/المساء
اكتشاف أنماط الانعكاس ثلاثية الشموع لدخول صفقات عالية الاحتمالية.
MQL5
// MQL5 - Morning Star Detection
bool IsMorningStar(int bar) {
// First candle (oldest) - Long bearish
double o1 = iOpen(_Symbol, _Period, bar + 2);
double c1 = iClose(_Symbol, _Period, bar + 2);
// Second candle (star) - Small body
double o2 = iOpen(_Symbol, _Period, bar + 1);
double c2 = iClose(_Symbol, _Period, bar + 1);
double h2 = iHigh(_Symbol, _Period, bar + 1);
double l2 = iLow(_Symbol, _Period, bar + 1);
// Third candle - Long bullish
double o3 = iOpen(_Symbol, _Period, bar);
double c3 = iClose(_Symbol, _Period, bar);
double body1 = MathAbs(c1 - o1);
double body2 = MathAbs(c2 - o2);
double body3 = MathAbs(c3 - o3);
bool firstBearish = c1 < o1 && body1 > body2 * 2;
bool smallStar = body2 < body1 * 0.5;
bool thirdBullish = c3 > o3 && body3 > body2 * 2;
bool closesIntoFirst = c3 > (o1 + c1) / 2;
return firstBearish && smallStar && thirdBullish && closesIntoFirst;
}
إطار عمل ماسح الأنماط
إطار عمل Expert Advisor كامل لمسح أنماط شموع متعددة في وقت واحد.
MQL5
// MQL5 - Pattern Scanner Framework
enum SIGNAL { NONE, BULLISH, BEARISH };
SIGNAL ScanPatterns(int bar) {
// Check reversal patterns
if(IsHammer(bar)) return BULLISH;
if(IsShootingStar(bar)) return BEARISH;
int engulf = DetectEngulfing(bar);
if(engulf == 1) return BULLISH;
if(engulf == -1) return BEARISH;
if(IsMorningStar(bar)) return BULLISH;
if(IsEveningStar(bar)) return BEARISH;
// Add more patterns...
return NONE;
}
void OnTick() {
// Scan for patterns on the last completed candle
SIGNAL signal = ScanPatterns(1);
if(signal == BULLISH && PositionsTotal() == 0) {
// Open buy position
double sl = iLow(_Symbol, _Period, 1) - 10 * _Point;
double tp = Ask + 2 * (Ask - sl);
trade.Buy(0.1, _Symbol, Ask, sl, tp);
}
}
📋 مرجع دوال أنماط TA-Lib
قائمة كاملة بدوال أنماط الشموع المتوفرة في TA-Lib:
أنماط الانعكاس
CDLHAMMER
CDLINVERTEDHAMMER
CDLSHOOTINGSTAR
CDLHANGINGMAN
CDLENGULFING
CDLMORNINGSTAR
CDLEVENINGSTAR
CDLPIERCING
CDLDARKCLOUDCOVER
CDLHARAMI
CDLHARAMICROSS
أنماط الاستمرارية
CDLRISEFALL3METHODS
CDLTASUKIGAP
CDLSEPARATINGLINES
CDLMATHOLD
CDL3LINESTRIKE
أنماط الدوجي
CDLDOJI
CDLDOJISTAR
CDLDRAGONFLYDOJI
CDLGRAVESTONEDOJI
CDLLONGLEGGEDDOJI
أنماط متعددة الشموع
CDL3WHITESOLDIERS
CDL3BLACKCROWS
CDL3INSIDE
CDL3OUTSIDE
CDLABANDONEDBABY
CDLKICKING
أخرى
CDLSPINNINGTOP
CDLHIGHWAVE
CDLBELTHOLD
CDLCOUNTERATTACK
💡 أفضل ممارسات اكتشاف الأنماط
لـ Python / الاختبار الرجعي
- استخدم TA-Lib للإنتاج — الأسرع والأكثر موثوقية
- ادمج أنماط متعددة لإشارات أقوى
- فلتر الأنماط حسب اتجاه الترند
- أضف سياق الدعم/المقاومة
- اختبر رجعياً قبل التداول الحقيقي
لـ MT5 Expert Advisors
- تحقق دائماً من الشمعة 1 (المكتملة)، وليس الشمعة 0
- استخدم هوامش تسامح في اكتشاف الأنماط
- أضف فلاتر الترند (المتوسطات المتحركة)
- ضع في الاعتبار تأكيد الحجم
- اختبر على مختبر الاستراتيجيات أولاً