Pipsgrowth EX14008 Scalper — إكسبرت أدفايزر إكسبرت أدفايزر
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M5، H1
Pipsgrowth EX14008 Scalper — AK-47 Scalper EA using pending stop orders with fixed pip-based SL/TP, time filtering, trailing stops, and spread contro. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
EA Pipsgrowth EX14008 (المسمى داخلياً "AK-47 EA") مضارب أوامر معلقة بتصميم غير معتاد: لا يحمل أي مؤشرات فنية، ولا يولد أي إشارة زخم أو نظام، ويضع أمره في نفس الاتجاه في كل دورة. الفرع الفعلي الوحيد في دالة الدخول يثبّت OrdType = ORDER_TYPE_SELL، لذا فإن ذراع buy-stop كود ميت غير قابل للوصول، والسلوك الحقيقي للروبوت هو نشر أوامر sell-stop مستمرة على بعد نصف قيمة وقف الخسارة تحت سعر العرض (Bid)، مع وقف خسارة ثابت بالنقاط، هدف ربح ثابت بالنقاط، ودالة م trailing تطارد السعر قبل وبعد تفعيل الأمر.
آلية الدخول. في كل تيكت داخل نافذة التداول يمشي الـ EA على دفتر المراكز والأوامر المعلقة. إذا لم يوجد أي منهما (تعيد UpdateOrders() ضبط isOrder على false)، يُرسل m_trade.SellStop واحداً عند OpenPrice = Bid - InpSL_Pips/2 * Pips2Double. يُضبط وقف الخسارة للمركز الناتج عند Ask + InpSL_Pips/2 وجني الأرباح عند OpenPrice - InpTP_Pips. ولأن Ask و Bid يفصلهما السبريد، فإن المسافة الكلية من OpenPrice إلى SL تساوي تقريباً InpSL_Pips + spread، ومن OpenPrice إلى TP تساوي InpTP_Pips. إعداد 3.5 نقطة SL و 7 نقاط TP افتراضياً يعطي نسبة عائد إلى مخاطرة 2:1 لحظة ملء الأمر، بافتراض سبريد XAUUSD طبيعي.
بنية بلا إشارة ولا تأكيد. يعلن الرأس عن 12 طبقة: REGIME و SIGNAL و ENTRY و CONFIRM و NO-TRADE و CAPITAL CAP و RISK و SIZING و MANAGE و EXIT و SCALING و OnTester، لكن التطبيق يغطي أربعاً فقط. لا يوجد مصنف نظام، ولا إشارة متذبذب، ولا مرحلة تأكيد، ولا طبقة تحجيم، ولا مقياس OnTester() مخصص. طبقة "NO-TRADE" هي الفلتر الوحيد، وتكدس خمسة فحوصات متتالية: سبريد ≤ 5 نقاط، نافذة الوقت، مسافة freeze level، مسافة stop level، توفر الهامش. "ENTRY" هو أمر الإيقاف المعلق الوحيد. "MANAGE" هي دالة TrailingStop(). "RISK" هي كتلة CalculateVolume(). الطبقات الثماني الأخرى نص طموح في الرأس، وليست كوداً نشطاً.
للدالة TrailingStop مهمتان. تُستدعى TrailingStop() كل تيكت بعد UpdateOrders(). أولاً، تمشي على كل مركز مفتوح يحمل الرقم السحري 22214008، وإذا كانت المسافة الحالية من الوقف الموضوع من الوسيط أكبر من InpSL_Pips، تشد الوقف للداخل إلى Bid - InpSL_Pips للشراء أو Bid + InpSL_Pips للبيع عبر TryModify_EX14008(). ثانياً — وهذا النصف غير المعتاد — تمشي الدالة نفسها على دفتر الأوامر المعلقة وتعيد تثبيت سعر الفتح لكل أمر إيقاف معلق بحيث يبقى وقف الخسارة على بعد InpSL_Pips/2 بالضبط من سعر العرض الحالي (لـ sell-stops) أو سعر الطلب (لـ buy-stops). الأثر الصافي: مع نزول السعر عبر مستوى تفعيل sell-stop، يُعاد تسعير الأمر إلى الأسفل للحفاظ على فجوة نصف النقطة من الـ Bid. بمجرد التفعيل، يتولى ذيل المراكز المفتوحة الأمر ويتوقف إعادة التثبيت.
المخاطرة والتحجيم. تحجيم اللوت قائم على نسبة المخاطرة عبر CalculateVolume(). الصيغة هي LotSize = InpRisk * m_account.FreeMargin() / 100000، ثم يُقرب إلى أقرب خطوة Inpuser_lot (افتراضي 0.01)، مع حد أدنى ثابت عند Inpuser_lot وحد أقصى عند LotsMax() للوسيط. القيمة الافتراضية InpRisk البالغة 3% على حساب 1,000 دولار تنتج نحو 0.3 لوت عند مستويات الهامش الحر النموذجية للذهب، وعلى حساب 100 دولار يتدخل الحد الأدنى 0.01. مفتاح التبديل isVolume_Percent (افتراضي true) يُحول الحساب إلى وضع Inpuser_lot الثابت بدلاً من ذلك. لا يوجد حساب لوت قائم على مسافة وقف الخسارة لكل صفقة، ولا martingale، ولا طبقة استرداد، ولا سقف drawdown عالمي على مستوى الحساب — سطح التحكم في الخسارة الوحيد هو وقف الخسارة الثابت لكل أمر.
بوابة الجلسة والوسيط. فلتر وقت التداول (InpTimeFilter، افتراضي مفعّل) يقبل ساعة 24 مع ساعة بداية، دقيقة بداية، ساعة نهاية، ودقيقة نهاية. النافذة الافتراضية 02:30 → 21:00 تمتد من افتتاح آسيا إلى معظم جلسة نيويورك بتوقيت الوسيط. اختبار TimeCurrent() >= timeStart && TimeCurrent() < timeEnd قائم على الساعة المحلية، وليس GMT الخادم، لذا فإن تغطية الجلسة الفعلية تعتمد على فرق توقيت خادم الوسيط. فلتر السبريد (InpMax_spread، افتراضي 5 نقاط) بوحدات SYMBOL_SPREAD الخام؛ على عرض أسعار XAUUSD بـ 2 رقم هذا يساوي 5 دولارات سبريد — بوابة حقيقية لكنها معتدلة لتغذية الذهب من وسطاء التجزئة، وحاجز مطلق على حسابات التجزئة القياسية التي تعرض 20-30 نقطة في الساعات الهادئة.
حراس ما قبل الإقلاع. قبل إرسال أي أمر، تجري OpenOrder() خمسة فحوصات متتابعة: CheckSpreadAllow() ضد InpMax_spread؛ و CheckVolumeValue(lot1) ضد SYMBOL_VOLUME_MIN/MAX/STEP للوسيط؛ و CheckOrderForFREEZE_LEVEL() لمسافة سعر التفعيل من Bid/Ask؛ و CheckStopLoss() لمسافة الوقف من SYMBOL_TRADE_STOPS_LEVEL للوسيط؛ و CheckMoneyForTrade() لكفاية الهامش. إذا فشل أي منها، يُتخطى الأمر بصمت وترجع الدالة دون طباعة. يُضبط SetDeviationInPoints(slippage) على InpMax_slippage * 10 على رموز 3/5 خانات و InpMax_slippage على 2/4 خانات، مع افتراضي 3 نقاط انزلاق مسموح. سطر m_trade.SetTypeFillingBySymbol(m_symbol.Name()) في OnInit() يكشف تلقائياً عن نمط الملء FOK أو IOC أو RETURN حسب الوسيط.
مساعدات إعادة المحاولة المعرّفة لكن غير المستخدمة. ثلاثة مساعدات معرّفة في أسفل الملف — TryClose_EX14008() و TryClosePartial_EX14008() و TryModify_EX14008() — كل منها يحاول ثلاث محاولات عند أكواد الإرجاع REQUOTE أو TIMEOUT أو PRICE_OFF أو PRICE_CHANGED، مع نوم 200 مللي ثانية (100 مللي ثانية للتعديل) بين المحاولات. لا يُستدعى أي منها فعلياً في مسار الكود الحي: تستخدم TrailingStop() الرئيسية m_trade.OrderModify و m_trade.PositionModify مباشرة، ولا يوجد استدعاء Close أو ClosePartial في الـ EA على الإطلاق — بمجرد فتح المركز، تحدث المخارج فقط عبر SL أو TP من جانب الوسيط أو عبر شد الوقف المتحرك. هذه المساعدات سقالة متبقية من قشرة عائلة EX14 محفوظة في المصدر لكن غير مدمجة.
التفعيل غير المتماثل كمشبك انزلاق. يجلس تفعيل sell-stop عند Bid - SL_Pips/2 بدلاً من المعتاد Bid - spread/2. عند ملء ناجح، يعني هذا أن سعر الدخول أكثر ملاءمة بقليل من سعر الطلب — يقص فعلياً نصف نقطة انزلاق لكل ملء على إعداد SL 3.5 نقطة. المقايضة هي احتمال ملء أرق: الأمر يجلس أبعد من السعر مما يفعل أمر اختراق معلق نموذجي، لذا على السعر أن يكسر المستوى فعلياً بدلاً من مجرد لمسه. مع بوابة السبريد 5 نقاط وسقف الانزلاق 3 نقاط، تحدث حالات الملء في الغالب عندما يكون الكسر الهبوطي قيد التقدم بدلاً من ضوضاء التيكت.
ما تراه فعلياً على الشارت. أمر sell-stop واحد منشور تحت Bid بقليل، يجلس هناك عبر الساعات الآسيوية، ثم لندن، ثم نيويورك. عندما يكسر السعر المستوى للأسفل، يُملأ الأمر ويفتح المركز ويبدأ وقفه في المطاردة من المستوى الموضوع من الوسيط إلى الداخل. إذا لم يصل السعر أبداً إلى مستوى التفعيل خلال نافذة التداول، يبقى الأمر المعلق دون مساس حتى الجلسة التالية. تعليق الشارت يطبع اسم الروبوت والإصدار ووقت الخادم ويوم الأسبوع ونافذة التدوال المكونة والسبريد الحالي في كل تيكت — وسيلة تصحيح صغيرة، لا إشارات على الشارت، لا طبقة مؤشرات. لا يتحجّم المركز للخارج أو للداخل أبداً؛ يحتفظ الـ EA بمركز واحد أو أمر معلق واحد في كل مرة.
تفاصيل الاستراتيجية
في كل تيكت تعيد UpdateOrders() ضبط علامة isOrder العامة عبر مسح دفتر المراكز والأوامر المعلقة، ثم تعيد TrailingStop() تثبيت سعر الفتح لكل sell-stop معلق بحيث يبقى وقفه على بعد InpSL_Pips/2 بالضبط من سعر العرض الحالي. إذا تحققت نافذة التداول (InpTimeFilter، افتراضي مفعّل، 02:30 → 21:00) وظل isOrder يساوي false، تجري OpenOrder() خمسة فحوصات متتالية قبل الإقلاع — سبريد، حجم، freeze level، stop level، هامش — ثم ترسل m_trade.SellStop واحداً. تحتوي دالة OpenOrder() على ذراع بيع وذراع شراء، لكن OrdType مثبت على ORDER_TYPE_SELL، لذا ذراع sell-stop فقط هو الذي ينفذ. مساعدات إعادة المحاولة الثلاثة TryClose_EX14008 و TryClosePartial_EX14008 و TryModify_EX14008 معرّفة في أسفل الملف لكن لا تستدعى من أي مسار كود حي — سقالة متبقية من عائلة EX14. تعليمة Comment() على الشارت تطبع اسم الروبوت والإصدار ووقت الخادم ويوم الأسبوع ونافذة التداول المكونة والسبريد الحالي في كل تيكت.
يضع الـ EA أمر sell-stop معلقاً واحداً — ذراع الشراء في OpenOrder() كود ميت غير قابل للوصول مع تثبيت OrdType على ORDER_TYPE_SELL — عند Bid ناقص InpSL_Pips/2 في كل تيكت داخل نافذة التداول عندما لا يوجد مركز أو أمر معلق بالرقم السحري 22214008. يُضبط وقف الخسارة للأمر الناتج عند Ask زائد InpSL_Pips/2 وجني الأرباح عند OpenPrice ناقص InpTP_Pips، لذا فإن الزوج الافتراضي 3.5/7 نقطة يعطي نسبة عائد إلى مخاطرة 2:1 لحظة ملء الأمر.
تأتي المخارج من إما ضرب جني الأرباح من جانب الوسيط (InpTP_Pips ثابت، افتراضي 7 نقاط) أو ضرب وقف الخسارة من جانب الوسيط (InpSL_Pips، افتراضي 3.5 نقاط). تقوم دالة TrailingStop() بشد وقف المركز المفتوح إلى Bid زائد أو ناقص InpSL_Pips بمجرد أن يتحرك السعر بأكثر من InpSL_Pips في الربح، لذا يمكن الخروج من مركز رابح بوقف أضيق مما ضبطه الوسيط أصلاً.
كل أمر له وقف ثابت قدره InpSL_Pips (افتراضي 3.5 نقطة) موزع بشكل متماثل حول سعر التفعيل — نصف تحت لـ sell-stops، نصف فوق — ويحافظ عليه على تلك المسافة بالضبط مشبك الأوامر المعلقة داخل TrailingStop(). لا يوجد سقف drawdown عالمي على مستوى الحساب، ولا حامي حقوق ملكية، ولا حد خسارة يومي، ولا طبقة استرداد martingale.
جني أرباح ثابت قدره InpTP_Pips (افتراضي 7 نقاط) يُقاس من سعر التفعيل، وليس من سعر الملء — لذا يحجز الأمر نسبة عائد إلى مخاطرة 2:1 ضد وقف الخسارة الموضوع من الوسيط عند الزوج الافتراضي 3.5/7. اضبط InpTP_Pips على 0 لتعطيل جني الأرباح وجعل مشبك الوقف المتحرك مسار الخروج الوحيد.
الحد الأدنى الموصى به للرصيد: 100 دولار (الحد الأدنى الثابت للـ EA عبر Inpuser_lot = 0.01)، ويفضل 1,000 دولار فأكثر حتى تنتج نسبة المخاطرة 3% فعلياً لوتاً ذا معنى عند مستويات الهامش الحر النموذجية للذهب. بوابة السبريد 5 نقاط وسقف الانزلاق 3 نقاط تفترض فعلياً وسيط ECN أو خام سبريد منخفض — على حساب تجزئة قياسي بسبريد 20-30 نقطة على XAUUSD، سترفض معظم التيكتات عبر CheckSpreadAllow(). يشغّل بأفضل شكل على XAUUSD M5 خلال النافذة الافتراضية 02:30 → 21:00 (آسيا + لندن + معظم نيويورك بتوقيت الوسيط)، على خادم يتطابق توقيته مع هذا الامتداد.
منطق الاستراتيجية
Pipsgrowth EX14008 Scalper — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: Scalper
الماجيك: 22214008
الإصدار: 2.00
الوصف:
AK-47 Scalper EA using pending stop orders with fixed pip-based SL/TP, time filtering, trailing stops, and spread control. Places sell-stop or buy-stop orders with configurable risk-based or fixed lot sizing
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
OpenOrder()TrailingStop()UpdateOrders()CalculateVolume()CheckStopLoss_Takeprofit()CheckVolumeValue()CheckOrderForFREEZE_LEVEL()CheckMoneyForTrade()CheckSpreadAllow()CheckStopLoss()
// Pipsgrowth EX14008 Scalper — Execution Flow (from source analysis)
// Family: Scalper
// AK-47 Scalper EA using pending stop orders with fixed pip-based SL/TP, time filtering, trailing stops, and spread control. Places sell-stop or buy-stop orders with configurable risk-based or fixed lot sizing
ON_INIT:
Create indicator handles: standard set
Initialize state variables
Detect broker GMT offset
ON_TICK:
1. Refresh indicator buffers (closed-bar shift=1)
2. Manage existing positions:
- Break-even check
- ATR trailing stop
- Profit lock ratchet
- Time-based exit
- Opposite-signal exit
3. If new bar:
a. ClassifyRegime() — ADX/ATR/BB regime detection
b. NoTradeGate() checks:
- Market open + session filter
- Spread limit
- Cooldown after loss
- Consecutive loss limit
- Kill switch
- Max drawdown
- Max concurrent positions
- Daily/weekly loss limits
c. GenerateSignal() — strategy-specific entry logic
d. CheckConfirm() — HTF alignment + R:R + ADX minimum
e. Calculate position size from risk %
f. Execute with retry logic
g. Mark bar to prevent duplicates
ON_TESTER:
Custom fitness = weighted(RecoveryFactor, ROI, ProfitFactor, TradeCount, Sharpe, Drawdown)ملف التحسين
كيفية تثبيت الإكسبرت على MT5
- 1حمّل ملف .mq5 بالضغط على زر التحميل أعلاه
- 2افتح برنامج MetaTrader 5 على حاسوبك
- 3من القائمة العلوية اختر File → Open Data Folder
- 4انتقل إلى مجلد MQL5 → Experts والصق الملف هناك
- 5في MT5، انقر بالزر الأيمن على Expert Advisors في لوحة Navigator → Refresh
- 6اسحب الإكسبرت من Navigator وأفلته على أي رسم بياني (يُنصح بـ M1 أو M5)
- 7في نافذة الإعدادات، فعّل Allow Algo Trading وحدد حجم اللوت
- 8اضغط OK — سيبدأ الإكسبرت بالتداول تلقائياً
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| InpMagicNumber | 22214008 | Magic Number |
| InpTradeComment | "Psgrowth.com Expert_14008" | Trade Comment |
| isVolume_Percent | true | Allow Volume Percent |
| InpRisk | 3 | Risk Percentage of Balance (%) |
| Inpuser_lot | 0.01 | Lots |
| InpSL_Pips | 3.5 | Stoploss (in Pips) |
| InpTP_Pips | 7 | TP (in Pips) (0 = No TP) |
| InpMax_slippage | 3 | Maximum slippage allow_Pips. |
| InpMax_spread | 5 | Maximum allowed spread (in Point) (0 = floating) |
| InpTimeFilter | true | Trading Time Filter |
| InpStartHour | 2 | Start Hour |
| InpStartMinute | 30 | Start Minute |
| InpEndHour | 21 | End Hour |
| InpEndMinute | 0 | End Minute |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX14008 AK-47 Scalper EA — pending stop order scalper, full 12-layer stack."
#define ExtBotName "AK-47 EA" //Bot Name
#define Version "2.00"
//Import trade class
#include <Trade\PositionInfo.mqh>
#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>
#include <Trade\AccountInfo.mqh>
#include <Trade\OrderInfo.mqh>
//--- introduce predefined variables for code readability
#define Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)
#define Bid SymbolInfoDouble(_Symbol, SYMBOL_BID)
//--- input parameters
input group "=== Identity ==="
input int InpMagicNumber = 22214008; //Magic Number
input string InpTradeComment = "Psgrowth.com Expert_14008"; // Trade Comment
input group "=== Money Settings ==="
input bool isVolume_Percent = true; //Allow Volume Percent
input double InpRisk = 3; //Risk Percentage of Balance (%)
input group "=== Trading Settings ==="
input double Inpuser_lot = 0.01; //Lots
input double InpSL_Pips = 3.5; //Stoploss (in Pips)
input double InpTP_Pips = 7; //TP (in Pips) (0 = No TP)
input int InpMax_slippage = 3; //Maximum slippage allow_Pips.
input double InpMax_spread = 5; //Maximum allowed spread (in Point) (0 = floating)
input group "=== Trading Time Settings ==="
input bool InpTimeFilter = true; //Trading Time Filter
input int InpStartHour = 2; //Start Hour
input int InpStartMinute = 30; //Start Minute
input int InpEndHour = 21; //End Hour
input int InpEndMinute = 0; //End Minute
//--- Variables
int Pips2Points; // slippage 3 pips 3=points 30=points
double Pips2Double; // Stoploss 15 pips 0.015 0.0150
bool isOrder = false;
int slippage;
long acSpread;
string strComment = "";
CPositionInfo m_position; // trade position object
CTrade m_trade; // trading object
CSymbolInfo m_symbol; // symbol info object
CAccountInfo m_account; // account info wrapper
COrderInfo m_order; // pending orders object
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على MT5 — استخدم وسيطاً موثوقاً بتنفيذ سريع وسبريد منخفض
إكسبرتات مشابهة
عرض جميع الإكسبرتاتإكسبرتات أخرى بنفس استراتيجية سكالبينج
Pipsgrowth EX14020 Scalper — إكسبرت أدفايزر إكسبرت أدفايزر
Pipsgrowth EX14020 Scalper — AI-assisted XAUUSD scalper using a multi-filter signal scoring system combining RSI, MACD, EMA50/200 and ATR. Entry trig. إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX10006 Momentum-Scalper — إكسبرت أدفايزر إكسبرت أدفايزر
Pipsgrowth EX10006 Momentum-Scalper — USDJPY M1 pullback scalp — fast EMA above slow EMA (uptrend), then a micro dip toward the pullback EMA, with bar-1 close. إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX14021 Scalper — إكسبرت أدفايزر إكسبرت أدفايزر
Pipsgrowth EX14021 Scalper — EURUSD scalper using Bollinger Bands + MACD divergence. Entry triggers on BB band touch confirmed by MACD crossover. إكسبرت أدفايزر MT5 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.