P
PipsGrowth
سكالبينجمفتوح المصدر - مجاني

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()
الرمز الزائف (Pseudocode)
// 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)

ملف التحسين

الوسطاء المُحسّنون:
ExnessIC Markets
الرموز المُحسّنة:
XAUUSD
الأطر الزمنية المُحسّنة:
M5H1

كيفية تثبيت الإكسبرت على MT5

  1. 1حمّل ملف .mq5 بالضغط على زر التحميل أعلاه
  2. 2افتح برنامج MetaTrader 5 على حاسوبك
  3. 3من القائمة العلوية اختر File → Open Data Folder
  4. 4انتقل إلى مجلد MQL5 → Experts والصق الملف هناك
  5. 5في MT5، انقر بالزر الأيمن على Expert Advisors في لوحة Navigator → Refresh
  6. 6اسحب الإكسبرت من Navigator وأفلته على أي رسم بياني (يُنصح بـ M1 أو M5)
  7. 7في نافذة الإعدادات، فعّل Allow Algo Trading وحدد حجم اللوت
  8. 8اضغط OK — سيبدأ الإكسبرت بالتداول تلقائياً

معاملات الإكسبرت

المعاملالافتراضيالوصف
InpMagicNumber22214008Magic Number
InpTradeComment"Psgrowth.com Expert_14008"Trade Comment
isVolume_PercenttrueAllow Volume Percent
InpRisk3Risk Percentage of Balance (%)
Inpuser_lot0.01Lots
InpSL_Pips3.5Stoploss (in Pips)
InpTP_Pips7TP (in Pips) (0 = No TP)
InpMax_slippage3Maximum slippage allow_Pips.
InpMax_spread5Maximum allowed spread (in Point) (0 = floating)
InpTimeFiltertrueTrading Time Filter
InpStartHour2Start Hour
InpStartMinute30Start Minute
InpEndHour21End Hour
InpEndMinute0End Minute
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX14008.mq5
#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                                   |
//+------------------------------------------------------------------+

الكود المصدري الكامل متاح عند التحميل

لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.

الوسوم:ex14008scalperpipsgrowthfreemt5xauusd

تحذير صريح: لأغراض تعليمية فقط

تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.

وسطاء موصى بهم لهذا الإكسبرت

هذه الروبوتات تعمل على MT5 — استخدم وسيطاً موثوقاً بتنفيذ سريع وسبريد منخفض

مجتمع المستخدمين

سجّل دخولك للمشاركةتسجيل الدخول

لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.

اسم الملفPipsgrowth_com_EX14008.mq5
حجم الملف25.5 KB
الإصدارv2.00
PlatformMetaTrader 5
نوع الملف.mq5 Source
الاستراتيجيةسكالبينج
المخاطرةمخاطرة عالية
الأطر الزمنية
M5H1
أزواج العملات
XAUUSD
الحد الأدنى للإيداع$100