FX-Arabia

جديد المواضيع











الملاحظات

منتدى المؤشرات و الاكسبيرتات تعليم برمجة الاكسبيرت ، اكسبيرت مجانى ، برمجة مؤشرات ، مؤشر ، تصميم اكسبيرت مجانا ، اكسبيرتات جديدة ، مؤشرات جديدة ، كل ما يتعلق بالتحليل و الخاص بالمؤشرات الفنية او الرقمية ، Expert advisor ، mql ، mql4 ، دورة برمجة ، برمجة اكسبيرت ، اكسبيرت رابح ، اكسبيرت جيد ، ادارة حسابات ، تداول الى ، ميتاتريدر ، تحميل منصة ، منصة تداول ، برمجة مؤشر ، مكتبة مؤشرات ، مؤشر جديد ، مؤشرات جديدة ، مؤشر حصرى ، احدث مؤشر .


طلب التعديل فى إكسبيرت

منتدى المؤشرات و الاكسبيرتات


إضافة رد
 
أدوات الموضوع
قديم 23-10-2016, 12:20 AM   المشاركة رقم: 1
الكاتب
originallaptop
عضو جديد

البيانات
تاريخ التسجيل: Dec 2015
رقم العضوية: 28713
العمر: 37
المشاركات: 11
بمعدل : 0.00 يوميا

الإتصالات
الحالة:
originallaptop غير متواجد حالياً
وسائل الإتصال:

المنتدى : منتدى المؤشرات و الاكسبيرتات
8 طلب التعديل فى إكسبيرت

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


كود:
 
//+------------------------------------------------------------------+ //|                                                     GuruEx03.mq4 | //|     Copyright © 2009, Marketing Dreams Ltd. All Rights Reserved. | //|                                         http://trading-gurus.com | //|                                                                  | //| GuruTrader™ example 3                                            | //| Version 1.0                                                      | //|                                                                  | //| A basic moving average crossover system                          | //|                                                                  | //| Wealth Warning! This expert is for educational purposes only.    | //| It should NEVER be used on a live account. Past performance is   | //| in no way indicative of future results!                          | //+------------------------------------------------------------------+ #property copyright "Copyright © 2009, Marketing Dreams Ltd." #property link      "http://trading-gurus.com"  #define SLEEP_OK     250 #define SLEEP_ERR    250  //---- input parameters extern int     Magic = 12347; extern int     Slippage=30; extern double  Lots=1.0; extern int     FastPeriod=10; extern int     SlowPeriod=50; extern int     Hysteresis=4; //---- static variables static int     Dig; static double  Points;  static bool    Initialized = FALSE; static bool    Running = FALSE; static bool    Long = FALSE; static double  Fast; static double  Slow; static double  LastFast; static double  LastSlow; static int     OrderNumber; static double  PositionSize;  static color   clBuy = DodgerBlue; static color   clSell = Crimson;  //+------------------------------------------------------------------+ //| Utility functions                                                | //+------------------------------------------------------------------+ #include <stdlib.mqh> #include <stderror.mqh> #include <WinUser32.mqh>  //+------------------------------------------------------------------+ //| Expert helper functions                                          | //+------------------------------------------------------------------+  //+------------------------------------------------------------------+ //| Closes an order at market                                        | //+------------------------------------------------------------------+ int CloseMarket(int Ticket) {    int    Type, ErrorCode;    double Price, Quantity;     OrderSelect(Ticket, SELECT_BY_TICKET);    Type = OrderType();     Quantity = OrderLots();     while (TRUE) {             // Keep trying until the order really is closed       if (Type == OP_BUY)          Price=Bid;       else if (Type == OP_SELL)          Price=Ask;       else          return (-1);       Print("CLOSE ", Ticket, ", ", Quantity, ", ", Price);       if (OrderClose(Ticket, Quantity, Price, Slippage, CLR_NONE) == TRUE) {          Sleep(SLEEP_OK);          return (0);       }       else {          ErrorCode = GetLastError();          Print("Error closing order ", Ticket, ": ", ErrorDescription(ErrorCode),                " (", ErrorCode, ")", " size: ", Quantity, ", prices: ",                Price, ", ", Bid, ", ", Ask);          Sleep(SLEEP_ERR);          RefreshRates();       }    }    return (-1); }  //+------------------------------------------------------------------+ //| Places an order                                                  | //+------------------------------------------------------------------+ int Order(string symbol, int Type, double Entry, double Quantity,           double TargetPrice, double StopPrice, string comment="") {    string TypeStr;    color  TypeCol;    int    ErrorCode, Ticket;    double Price, FillPrice;     Price = NormalizeDouble(Entry, Dig);     switch (Type) {       case OP_BUY:          TypeStr = "BUY";          TypeCol = clBuy;          break;       case OP_SELL:          TypeStr = "SELL";          TypeCol = clSell;          break;       default:          Print("Unknown order type ", Type);          break;    }     Ticket = OrderSend(symbol, Type, Quantity, Price, Slippage,               StopPrice, TargetPrice, comment, Magic, 0, TypeCol);    if (Ticket >= 0) {       Sleep(SLEEP_OK);       if (OrderSelect(Ticket, SELECT_BY_TICKET) == TRUE) {          FillPrice = OrderOpenPrice();          if (Entry != FillPrice) {             RefreshRates();             Print("Slippage on order ", Ticket, " - Requested = ",                   Entry, ", Fill = ", FillPrice, ", Current Bid = ",                   Bid, ", Current Ask = ", Ask);          }       }       else {          ErrorCode = GetLastError();          Print("Error selecting new order ", Ticket, ": ",                ErrorDescription(ErrorCode), " (", ErrorCode, ")");       }       return (Ticket);    }     ErrorCode = GetLastError();    RefreshRates();    Print("Error opening ", TypeStr, " order: ", ErrorDescription(ErrorCode),          " (", ErrorCode, ")", ", Entry = ", Price, ", Target = ",          TargetPrice, ", Stop = ", StopPrice, ", Current Bid = ", Bid,          ", Current Ask = ", Ask);    Sleep(SLEEP_ERR);     return (-1); }  //+------------------------------------------------------------------+ //| Performs system initialisation                                   | //+------------------------------------------------------------------+ void InitSystem() {    Running = FALSE;     PositionSize = Lots;     RefreshRates();     LastFast = iMA(Symbol(), 0, FastPeriod, 0, MODE_EMA, PRICE_MEDIAN, 0);    LastSlow = iMA(Symbol(), 0, SlowPeriod, 0, MODE_EMA, PRICE_MEDIAN, 0);     if (LastFast > LastSlow)       Long = TRUE;     Initialized = TRUE; }  //+------------------------------------------------------------------+ //| Checks for entry to a trade - Exits previous trade also          | //+------------------------------------------------------------------+ int CheckEntry(double Size) {    if (!Long && (Fast > (Slow + Hysteresis * Points))) {       // Fast MA crossed above slow MA so GO LONG!       if (OrderNumber > 0)          CloseMarket(OrderNumber);  // Close previous short order       OrderNumber = Order(Symbol(), OP_BUY, Ask, Size, 0, 0);       if (OrderNumber > 0) {          Long = TRUE;          return(1);       }    }    else if (Long && (Fast < (Slow - Hysteresis * Points))) {       // Fast MA crossed below slow MA so GO SHORT!       if (OrderNumber > 0)          CloseMarket(OrderNumber);  // Close previous long order       OrderNumber = Order(Symbol(), OP_SELL, Bid, Size, 0, 0);       if (OrderNumber > 0) {          Long = FALSE;          return(1);       }    }    return(0); }  //+------------------------------------------------------------------+ //| Expert initialization function                                   | //+------------------------------------------------------------------+ int init() {    Dig = MarketInfo(Symbol(), MODE_DIGITS);    Points = MarketInfo(Symbol(), MODE_POINT);     Print("Digits = ", Dig, ", Points = ", DoubleToStr(Points, 5));     if (!IsDemo() && !IsTesting()) {       MessageBox("Wealth Warning! This expert is for educational purposes only." +             " It should NEVER be used on a live account." +             " Past performance is in no way indicative of future results!");       Print("Initialization Failure");       return(-1);    }     InitSystem();     Print("Initialized OK");     return(0); }  //+------------------------------------------------------------------+ //| Expert deinitialization function                                 | //+------------------------------------------------------------------+ int deinit() {     Print("DeInitialized OK");      return(0); }  //+------------------------------------------------------------------+ //| Expert start function                                            | //| Executed on every tick                                           | //+------------------------------------------------------------------+ int start() {    if (!Initialized) {       return(-1);    }     LastFast = Fast;    LastSlow = Slow;    Fast = iMA(Symbol(), 0, FastPeriod, 0, MODE_EMA, PRICE_MEDIAN, 0);    Slow = iMA(Symbol(), 0, SlowPeriod, 0, MODE_EMA, PRICE_MEDIAN, 0);     if (CheckEntry(PositionSize) > 0) { // Entered a trade?       Running = TRUE;                  // Yes - Indicate that we're in a trade    }     return(0); }



عرض البوم صور originallaptop  
رد مع اقتباس


  #1  
قديم 23-10-2016, 12:20 AM
originallaptop originallaptop غير متواجد حالياً
عضو جديد
8 طلب التعديل فى إكسبيرت

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


كود:
 
//+------------------------------------------------------------------+ //|                                                     GuruEx03.mq4 | //|     Copyright © 2009, Marketing Dreams Ltd. All Rights Reserved. | //|                                         http://trading-gurus.com | //|                                                                  | //| GuruTrader™ example 3                                            | //| Version 1.0                                                      | //|                                                                  | //| A basic moving average crossover system                          | //|                                                                  | //| Wealth Warning! This expert is for educational purposes only.    | //| It should NEVER be used on a live account. Past performance is   | //| in no way indicative of future results!                          | //+------------------------------------------------------------------+ #property copyright "Copyright © 2009, Marketing Dreams Ltd." #property link      "http://trading-gurus.com"  #define SLEEP_OK     250 #define SLEEP_ERR    250  //---- input parameters extern int     Magic = 12347; extern int     Slippage=30; extern double  Lots=1.0; extern int     FastPeriod=10; extern int     SlowPeriod=50; extern int     Hysteresis=4; //---- static variables static int     Dig; static double  Points;  static bool    Initialized = FALSE; static bool    Running = FALSE; static bool    Long = FALSE; static double  Fast; static double  Slow; static double  LastFast; static double  LastSlow; static int     OrderNumber; static double  PositionSize;  static color   clBuy = DodgerBlue; static color   clSell = Crimson;  //+------------------------------------------------------------------+ //| Utility functions                                                | //+------------------------------------------------------------------+ #include <stdlib.mqh> #include <stderror.mqh> #include <WinUser32.mqh>  //+------------------------------------------------------------------+ //| Expert helper functions                                          | //+------------------------------------------------------------------+  //+------------------------------------------------------------------+ //| Closes an order at market                                        | //+------------------------------------------------------------------+ int CloseMarket(int Ticket) {    int    Type, ErrorCode;    double Price, Quantity;     OrderSelect(Ticket, SELECT_BY_TICKET);    Type = OrderType();     Quantity = OrderLots();     while (TRUE) {             // Keep trying until the order really is closed       if (Type == OP_BUY)          Price=Bid;       else if (Type == OP_SELL)          Price=Ask;       else          return (-1);       Print("CLOSE ", Ticket, ", ", Quantity, ", ", Price);       if (OrderClose(Ticket, Quantity, Price, Slippage, CLR_NONE) == TRUE) {          Sleep(SLEEP_OK);          return (0);       }       else {          ErrorCode = GetLastError();          Print("Error closing order ", Ticket, ": ", ErrorDescription(ErrorCode),                " (", ErrorCode, ")", " size: ", Quantity, ", prices: ",                Price, ", ", Bid, ", ", Ask);          Sleep(SLEEP_ERR);          RefreshRates();       }    }    return (-1); }  //+------------------------------------------------------------------+ //| Places an order                                                  | //+------------------------------------------------------------------+ int Order(string symbol, int Type, double Entry, double Quantity,           double TargetPrice, double StopPrice, string comment="") {    string TypeStr;    color  TypeCol;    int    ErrorCode, Ticket;    double Price, FillPrice;     Price = NormalizeDouble(Entry, Dig);     switch (Type) {       case OP_BUY:          TypeStr = "BUY";          TypeCol = clBuy;          break;       case OP_SELL:          TypeStr = "SELL";          TypeCol = clSell;          break;       default:          Print("Unknown order type ", Type);          break;    }     Ticket = OrderSend(symbol, Type, Quantity, Price, Slippage,               StopPrice, TargetPrice, comment, Magic, 0, TypeCol);    if (Ticket >= 0) {       Sleep(SLEEP_OK);       if (OrderSelect(Ticket, SELECT_BY_TICKET) == TRUE) {          FillPrice = OrderOpenPrice();          if (Entry != FillPrice) {             RefreshRates();             Print("Slippage on order ", Ticket, " - Requested = ",                   Entry, ", Fill = ", FillPrice, ", Current Bid = ",                   Bid, ", Current Ask = ", Ask);          }       }       else {          ErrorCode = GetLastError();          Print("Error selecting new order ", Ticket, ": ",                ErrorDescription(ErrorCode), " (", ErrorCode, ")");       }       return (Ticket);    }     ErrorCode = GetLastError();    RefreshRates();    Print("Error opening ", TypeStr, " order: ", ErrorDescription(ErrorCode),          " (", ErrorCode, ")", ", Entry = ", Price, ", Target = ",          TargetPrice, ", Stop = ", StopPrice, ", Current Bid = ", Bid,          ", Current Ask = ", Ask);    Sleep(SLEEP_ERR);     return (-1); }  //+------------------------------------------------------------------+ //| Performs system initialisation                                   | //+------------------------------------------------------------------+ void InitSystem() {    Running = FALSE;     PositionSize = Lots;     RefreshRates();     LastFast = iMA(Symbol(), 0, FastPeriod, 0, MODE_EMA, PRICE_MEDIAN, 0);    LastSlow = iMA(Symbol(), 0, SlowPeriod, 0, MODE_EMA, PRICE_MEDIAN, 0);     if (LastFast > LastSlow)       Long = TRUE;     Initialized = TRUE; }  //+------------------------------------------------------------------+ //| Checks for entry to a trade - Exits previous trade also          | //+------------------------------------------------------------------+ int CheckEntry(double Size) {    if (!Long && (Fast > (Slow + Hysteresis * Points))) {       // Fast MA crossed above slow MA so GO LONG!       if (OrderNumber > 0)          CloseMarket(OrderNumber);  // Close previous short order       OrderNumber = Order(Symbol(), OP_BUY, Ask, Size, 0, 0);       if (OrderNumber > 0) {          Long = TRUE;          return(1);       }    }    else if (Long && (Fast < (Slow - Hysteresis * Points))) {       // Fast MA crossed below slow MA so GO SHORT!       if (OrderNumber > 0)          CloseMarket(OrderNumber);  // Close previous long order       OrderNumber = Order(Symbol(), OP_SELL, Bid, Size, 0, 0);       if (OrderNumber > 0) {          Long = FALSE;          return(1);       }    }    return(0); }  //+------------------------------------------------------------------+ //| Expert initialization function                                   | //+------------------------------------------------------------------+ int init() {    Dig = MarketInfo(Symbol(), MODE_DIGITS);    Points = MarketInfo(Symbol(), MODE_POINT);     Print("Digits = ", Dig, ", Points = ", DoubleToStr(Points, 5));     if (!IsDemo() && !IsTesting()) {       MessageBox("Wealth Warning! This expert is for educational purposes only." +             " It should NEVER be used on a live account." +             " Past performance is in no way indicative of future results!");       Print("Initialization Failure");       return(-1);    }     InitSystem();     Print("Initialized OK");     return(0); }  //+------------------------------------------------------------------+ //| Expert deinitialization function                                 | //+------------------------------------------------------------------+ int deinit() {     Print("DeInitialized OK");      return(0); }  //+------------------------------------------------------------------+ //| Expert start function                                            | //| Executed on every tick                                           | //+------------------------------------------------------------------+ int start() {    if (!Initialized) {       return(-1);    }     LastFast = Fast;    LastSlow = Slow;    Fast = iMA(Symbol(), 0, FastPeriod, 0, MODE_EMA, PRICE_MEDIAN, 0);    Slow = iMA(Symbol(), 0, SlowPeriod, 0, MODE_EMA, PRICE_MEDIAN, 0);     if (CheckEntry(PositionSize) > 0) { // Entered a trade?       Running = TRUE;                  // Yes - Indicate that we're in a trade    }     return(0); }




رد مع اقتباس

قديم 23-10-2016, 12:03 PM   المشاركة رقم: 2
الكاتب
اسلام العوامى
عضو ذهبى
الصورة الرمزية اسلام العوامى

البيانات
تاريخ التسجيل: Apr 2012
رقم العضوية: 9148
الدولة: alexandria - egypt
المشاركات: 5,888
بمعدل : 1.28 يوميا

الإتصالات
الحالة:
اسلام العوامى غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : originallaptop المنتدى : منتدى المؤشرات و الاكسبيرتات
افتراضي رد: طلب التعديل فى إكسبيرت

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


كود:
 
//+------------------------------------------------------------------+ //|                                                     GuruEx03.mq4 | //|     Copyright © 2009, Marketing Dreams Ltd. All Rights Reserved. | //|                                         http://trading-gurus.com | //|                                                                  | //| GuruTrader™ example 3                                            | //| Version 1.0                                                      | //|                                                                  | //| A basic moving average crossover system                          | //|                                                                  | //| Wealth Warning! This expert is for educational purposes only.    | //| It should NEVER be used on a live account. Past performance is   | //| in no way indicative of future results!                          | //+------------------------------------------------------------------+ #property copyright "Copyright © 2009, Marketing Dreams Ltd." #property link      "http://trading-gurus.com"  #define SLEEP_OK     250 #define SLEEP_ERR    250  //---- input parameters extern int     Magic = 12347; extern int     Slippage=30; extern double  Lots=1.0; extern int     FastPeriod=10; extern int     SlowPeriod=50; extern int     Hysteresis=4; //---- static variables static int     Dig; static double  Points;  static bool    Initialized = FALSE; static bool    Running = FALSE; static bool    Long = FALSE; static double  Fast; static double  Slow; static double  LastFast; static double  LastSlow; static int     OrderNumber; static double  PositionSize;  static color   clBuy = DodgerBlue; static color   clSell = Crimson;  //+------------------------------------------------------------------+ //| Utility functions                                                | //+------------------------------------------------------------------+ #include <stdlib.mqh> #include <stderror.mqh> #include <WinUser32.mqh>  //+------------------------------------------------------------------+ //| Expert helper functions                                          | //+------------------------------------------------------------------+  //+------------------------------------------------------------------+ //| Closes an order at market                                        | //+------------------------------------------------------------------+ int CloseMarket(int Ticket) {    int    Type, ErrorCode;    double Price, Quantity;     OrderSelect(Ticket, SELECT_BY_TICKET);    Type = OrderType();     Quantity = OrderLots();     while (TRUE) {             // Keep trying until the order really is closed       if (Type == OP_BUY)          Price=Bid;       else if (Type == OP_SELL)          Price=Ask;       else          return (-1);       Print("CLOSE ", Ticket, ", ", Quantity, ", ", Price);       if (OrderClose(Ticket, Quantity, Price, Slippage, CLR_NONE) == TRUE) {          Sleep(SLEEP_OK);          return (0);       }       else {          ErrorCode = GetLastError();          Print("Error closing order ", Ticket, ": ", ErrorDescription(ErrorCode),                " (", ErrorCode, ")", " size: ", Quantity, ", prices: ",                Price, ", ", Bid, ", ", Ask);          Sleep(SLEEP_ERR);          RefreshRates();       }    }    return (-1); }  //+------------------------------------------------------------------+ //| Places an order                                                  | //+------------------------------------------------------------------+ int Order(string symbol, int Type, double Entry, double Quantity,           double TargetPrice, double StopPrice, string comment="") {    string TypeStr;    color  TypeCol;    int    ErrorCode, Ticket;    double Price, FillPrice;     Price = NormalizeDouble(Entry, Dig);     switch (Type) {       case OP_BUY:          TypeStr = "BUY";          TypeCol = clBuy;          break;       case OP_SELL:          TypeStr = "SELL";          TypeCol = clSell;          break;       default:          Print("Unknown order type ", Type);          break;    }     Ticket = OrderSend(symbol, Type, Quantity, Price, Slippage,               StopPrice, TargetPrice, comment, Magic, 0, TypeCol);    if (Ticket >= 0) {       Sleep(SLEEP_OK);       if (OrderSelect(Ticket, SELECT_BY_TICKET) == TRUE) {          FillPrice = OrderOpenPrice();          if (Entry != FillPrice) {             RefreshRates();             Print("Slippage on order ", Ticket, " - Requested = ",                   Entry, ", Fill = ", FillPrice, ", Current Bid = ",                   Bid, ", Current Ask = ", Ask);          }       }       else {          ErrorCode = GetLastError();          Print("Error selecting new order ", Ticket, ": ",                ErrorDescription(ErrorCode), " (", ErrorCode, ")");       }       return (Ticket);    }     ErrorCode = GetLastError();    RefreshRates();    Print("Error opening ", TypeStr, " order: ", ErrorDescription(ErrorCode),          " (", ErrorCode, ")", ", Entry = ", Price, ", Target = ",          TargetPrice, ", Stop = ", StopPrice, ", Current Bid = ", Bid,          ", Current Ask = ", Ask);    Sleep(SLEEP_ERR);     return (-1); }  //+------------------------------------------------------------------+ //| Performs system initialisation                                   | //+------------------------------------------------------------------+ void InitSystem() {    Running = FALSE;     PositionSize = Lots;     RefreshRates();     LastFast = iMA(Symbol(), 0, FastPeriod, 0, MODE_EMA, PRICE_MEDIAN, 0);    LastSlow = iMA(Symbol(), 0, SlowPeriod, 0, MODE_EMA, PRICE_MEDIAN, 0);     if (LastFast > LastSlow)       Long = TRUE;     Initialized = TRUE; }  //+------------------------------------------------------------------+ //| Checks for entry to a trade - Exits previous trade also          | //+------------------------------------------------------------------+ int CheckEntry(double Size) {    if (!Long && (Fast > (Slow + Hysteresis * Points))) {       // Fast MA crossed above slow MA so GO LONG!       if (OrderNumber > 0)          CloseMarket(OrderNumber);  // Close previous short order       OrderNumber = Order(Symbol(), OP_BUY, Ask, Size, 0, 0);       if (OrderNumber > 0) {          Long = TRUE;          return(1);       }    }    else if (Long && (Fast < (Slow - Hysteresis * Points))) {       // Fast MA crossed below slow MA so GO SHORT!       if (OrderNumber > 0)          CloseMarket(OrderNumber);  // Close previous long order       OrderNumber = Order(Symbol(), OP_SELL, Bid, Size, 0, 0);       if (OrderNumber > 0) {          Long = FALSE;          return(1);       }    }    return(0); }  //+------------------------------------------------------------------+ //| Expert initialization function                                   | //+------------------------------------------------------------------+ int init() {    Dig = MarketInfo(Symbol(), MODE_DIGITS);    Points = MarketInfo(Symbol(), MODE_POINT);     Print("Digits = ", Dig, ", Points = ", DoubleToStr(Points, 5));     if (!IsDemo() && !IsTesting()) {       MessageBox("Wealth Warning! This expert is for educational purposes only." +             " It should NEVER be used on a live account." +             " Past performance is in no way indicative of future results!");       Print("Initialization Failure");       return(-1);    }     InitSystem();     Print("Initialized OK");     return(0); }  //+------------------------------------------------------------------+ //| Expert deinitialization function                                 | //+------------------------------------------------------------------+ int deinit() {     Print("DeInitialized OK");      return(0); }  //+------------------------------------------------------------------+ //| Expert start function                                            | //| Executed on every tick                                           | //+------------------------------------------------------------------+ int start() {    if (!Initialized) {       return(-1);    }     LastFast = Fast;    LastSlow = Slow;    Fast = iMA(Symbol(), 0, FastPeriod, 0, MODE_EMA, PRICE_MEDIAN, 0);    Slow = iMA(Symbol(), 0, SlowPeriod, 0, MODE_EMA, PRICE_MEDIAN, 0);     if (CheckEntry(PositionSize) > 0) { // Entered a trade?       Running = TRUE;                  // Yes - Indicate that we're in a trade    }     return(0); }
،،،تم التعديل،،،

،،،تحياتي،،،



الملفات المرفقة
نوع الملف: ex4 ma.ex4‏ (16.7 كيلوبايت, المشاهدات 4)
التوقيع

عرض البوم صور اسلام العوامى  
رد مع اقتباس
  #2  
قديم 23-10-2016, 12:03 PM
اسلام العوامى اسلام العوامى غير متواجد حالياً
عضو ذهبى
افتراضي رد: طلب التعديل فى إكسبيرت

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


كود:
 
//+------------------------------------------------------------------+ //|                                                     GuruEx03.mq4 | //|     Copyright © 2009, Marketing Dreams Ltd. All Rights Reserved. | //|                                         http://trading-gurus.com | //|                                                                  | //| GuruTrader™ example 3                                            | //| Version 1.0                                                      | //|                                                                  | //| A basic moving average crossover system                          | //|                                                                  | //| Wealth Warning! This expert is for educational purposes only.    | //| It should NEVER be used on a live account. Past performance is   | //| in no way indicative of future results!                          | //+------------------------------------------------------------------+ #property copyright "Copyright © 2009, Marketing Dreams Ltd." #property link      "http://trading-gurus.com"  #define SLEEP_OK     250 #define SLEEP_ERR    250  //---- input parameters extern int     Magic = 12347; extern int     Slippage=30; extern double  Lots=1.0; extern int     FastPeriod=10; extern int     SlowPeriod=50; extern int     Hysteresis=4; //---- static variables static int     Dig; static double  Points;  static bool    Initialized = FALSE; static bool    Running = FALSE; static bool    Long = FALSE; static double  Fast; static double  Slow; static double  LastFast; static double  LastSlow; static int     OrderNumber; static double  PositionSize;  static color   clBuy = DodgerBlue; static color   clSell = Crimson;  //+------------------------------------------------------------------+ //| Utility functions                                                | //+------------------------------------------------------------------+ #include <stdlib.mqh> #include <stderror.mqh> #include <WinUser32.mqh>  //+------------------------------------------------------------------+ //| Expert helper functions                                          | //+------------------------------------------------------------------+  //+------------------------------------------------------------------+ //| Closes an order at market                                        | //+------------------------------------------------------------------+ int CloseMarket(int Ticket) {    int    Type, ErrorCode;    double Price, Quantity;     OrderSelect(Ticket, SELECT_BY_TICKET);    Type = OrderType();     Quantity = OrderLots();     while (TRUE) {             // Keep trying until the order really is closed       if (Type == OP_BUY)          Price=Bid;       else if (Type == OP_SELL)          Price=Ask;       else          return (-1);       Print("CLOSE ", Ticket, ", ", Quantity, ", ", Price);       if (OrderClose(Ticket, Quantity, Price, Slippage, CLR_NONE) == TRUE) {          Sleep(SLEEP_OK);          return (0);       }       else {          ErrorCode = GetLastError();          Print("Error closing order ", Ticket, ": ", ErrorDescription(ErrorCode),                " (", ErrorCode, ")", " size: ", Quantity, ", prices: ",                Price, ", ", Bid, ", ", Ask);          Sleep(SLEEP_ERR);          RefreshRates();       }    }    return (-1); }  //+------------------------------------------------------------------+ //| Places an order                                                  | //+------------------------------------------------------------------+ int Order(string symbol, int Type, double Entry, double Quantity,           double TargetPrice, double StopPrice, string comment="") {    string TypeStr;    color  TypeCol;    int    ErrorCode, Ticket;    double Price, FillPrice;     Price = NormalizeDouble(Entry, Dig);     switch (Type) {       case OP_BUY:          TypeStr = "BUY";          TypeCol = clBuy;          break;       case OP_SELL:          TypeStr = "SELL";          TypeCol = clSell;          break;       default:          Print("Unknown order type ", Type);          break;    }     Ticket = OrderSend(symbol, Type, Quantity, Price, Slippage,               StopPrice, TargetPrice, comment, Magic, 0, TypeCol);    if (Ticket >= 0) {       Sleep(SLEEP_OK);       if (OrderSelect(Ticket, SELECT_BY_TICKET) == TRUE) {          FillPrice = OrderOpenPrice();          if (Entry != FillPrice) {             RefreshRates();             Print("Slippage on order ", Ticket, " - Requested = ",                   Entry, ", Fill = ", FillPrice, ", Current Bid = ",                   Bid, ", Current Ask = ", Ask);          }       }       else {          ErrorCode = GetLastError();          Print("Error selecting new order ", Ticket, ": ",                ErrorDescription(ErrorCode), " (", ErrorCode, ")");       }       return (Ticket);    }     ErrorCode = GetLastError();    RefreshRates();    Print("Error opening ", TypeStr, " order: ", ErrorDescription(ErrorCode),          " (", ErrorCode, ")", ", Entry = ", Price, ", Target = ",          TargetPrice, ", Stop = ", StopPrice, ", Current Bid = ", Bid,          ", Current Ask = ", Ask);    Sleep(SLEEP_ERR);     return (-1); }  //+------------------------------------------------------------------+ //| Performs system initialisation                                   | //+------------------------------------------------------------------+ void InitSystem() {    Running = FALSE;     PositionSize = Lots;     RefreshRates();     LastFast = iMA(Symbol(), 0, FastPeriod, 0, MODE_EMA, PRICE_MEDIAN, 0);    LastSlow = iMA(Symbol(), 0, SlowPeriod, 0, MODE_EMA, PRICE_MEDIAN, 0);     if (LastFast > LastSlow)       Long = TRUE;     Initialized = TRUE; }  //+------------------------------------------------------------------+ //| Checks for entry to a trade - Exits previous trade also          | //+------------------------------------------------------------------+ int CheckEntry(double Size) {    if (!Long && (Fast > (Slow + Hysteresis * Points))) {       // Fast MA crossed above slow MA so GO LONG!       if (OrderNumber > 0)          CloseMarket(OrderNumber);  // Close previous short order       OrderNumber = Order(Symbol(), OP_BUY, Ask, Size, 0, 0);       if (OrderNumber > 0) {          Long = TRUE;          return(1);       }    }    else if (Long && (Fast < (Slow - Hysteresis * Points))) {       // Fast MA crossed below slow MA so GO SHORT!       if (OrderNumber > 0)          CloseMarket(OrderNumber);  // Close previous long order       OrderNumber = Order(Symbol(), OP_SELL, Bid, Size, 0, 0);       if (OrderNumber > 0) {          Long = FALSE;          return(1);       }    }    return(0); }  //+------------------------------------------------------------------+ //| Expert initialization function                                   | //+------------------------------------------------------------------+ int init() {    Dig = MarketInfo(Symbol(), MODE_DIGITS);    Points = MarketInfo(Symbol(), MODE_POINT);     Print("Digits = ", Dig, ", Points = ", DoubleToStr(Points, 5));     if (!IsDemo() && !IsTesting()) {       MessageBox("Wealth Warning! This expert is for educational purposes only." +             " It should NEVER be used on a live account." +             " Past performance is in no way indicative of future results!");       Print("Initialization Failure");       return(-1);    }     InitSystem();     Print("Initialized OK");     return(0); }  //+------------------------------------------------------------------+ //| Expert deinitialization function                                 | //+------------------------------------------------------------------+ int deinit() {     Print("DeInitialized OK");      return(0); }  //+------------------------------------------------------------------+ //| Expert start function                                            | //| Executed on every tick                                           | //+------------------------------------------------------------------+ int start() {    if (!Initialized) {       return(-1);    }     LastFast = Fast;    LastSlow = Slow;    Fast = iMA(Symbol(), 0, FastPeriod, 0, MODE_EMA, PRICE_MEDIAN, 0);    Slow = iMA(Symbol(), 0, SlowPeriod, 0, MODE_EMA, PRICE_MEDIAN, 0);     if (CheckEntry(PositionSize) > 0) { // Entered a trade?       Running = TRUE;                  // Yes - Indicate that we're in a trade    }     return(0); }
،،،تم التعديل،،،

،،،تحياتي،،،




الملفات المرفقة
نوع الملف: ex4 ma.ex4‏ (16.7 كيلوبايت, المشاهدات 4)
رد مع اقتباس
قديم 23-10-2016, 04:30 PM   المشاركة رقم: 3
الكاتب
originallaptop
عضو جديد

البيانات
تاريخ التسجيل: Dec 2015
رقم العضوية: 28713
العمر: 37
المشاركات: 11
بمعدل : 0.00 يوميا

الإتصالات
الحالة:
originallaptop غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : originallaptop المنتدى : منتدى المؤشرات و الاكسبيرتات
Smile رد: طلب التعديل فى إكسبيرت

المشاركة الأصلية كتبت بواسطة اسلام العوامى نقره لعرض الصورة في صفحة مستقلة


،،،تم التعديل،،،

،،،تحياتي،،،

شكرا جزيلا لحضرتك يا أستاذى الفاضل . ممكن ترفق الملف بصيغة MQ4 أو ترفق نص الكود
نقره لعرض الصورة في صفحة مستقلة
وشكرا جزيلا



عرض البوم صور originallaptop  
رد مع اقتباس
  #3  
قديم 23-10-2016, 04:30 PM
originallaptop originallaptop غير متواجد حالياً
عضو جديد
Smile رد: طلب التعديل فى إكسبيرت

المشاركة الأصلية كتبت بواسطة اسلام العوامى نقره لعرض الصورة في صفحة مستقلة


،،،تم التعديل،،،

،،،تحياتي،،،

شكرا جزيلا لحضرتك يا أستاذى الفاضل . ممكن ترفق الملف بصيغة MQ4 أو ترفق نص الكود
نقره لعرض الصورة في صفحة مستقلة
وشكرا جزيلا




رد مع اقتباس
قديم 23-10-2016, 04:45 PM   المشاركة رقم: 4
الكاتب
originallaptop
عضو جديد

البيانات
تاريخ التسجيل: Dec 2015
رقم العضوية: 28713
العمر: 37
المشاركات: 11
بمعدل : 0.00 يوميا

الإتصالات
الحالة:
originallaptop غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : originallaptop المنتدى : منتدى المؤشرات و الاكسبيرتات
افتراضي رد: طلب التعديل فى إكسبيرت

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


//+------------------------------------------------------------------+
//| GuruEx03.mq4 |
//| Copyright © 2009, Marketing Dreams Ltd. All Rights Reserved. |
//| http://trading-gurus.com |
//| |
//| GuruTrader™ example 3 |
//| Version 1.0 |
//| |
//| A basic moving average crossover system |
//| |
//| Wealth Warning! This expert is for educational purposes only. |
//| It should NEVER be used on a live account. Past performance is |
//| in no way indicative of future results! |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, Marketing Dreams Ltd."
#property link "http://trading-gurus.com"

#define SLEEP_OK 250
#define SLEEP_ERR 250

//---- input parameters
extern int Magic = 12347;
extern int Slippage=30;
extern double Lots=0.1;
extern int FastPeriod=10;
extern int SlowPeriod=100;
extern int Hysteresis=4;
//---- static variables
static int Dig;
static double Points;

static bool Initialized = FALSE;
static bool Running = FALSE;
static bool Long = FALSE;
static double Fast;
static double Slow;
static double LastFast;
static double LastSlow;
static int OrderNumber;
static double PositionSize;

static color clBuy = DodgerBlue;
static color clSell = Crimson;

//+------------------------------------------------------------------+
//| Utility functions |
//+------------------------------------------------------------------+
#include <stdlib.mqh>
#include <stderror.mqh>
#include <WinUser32.mqh>

//+------------------------------------------------------------------+
//| Expert helper functions |
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//| Closes an order at market |
//+------------------------------------------------------------------+
int CloseMarket(int Ticket)
{
int Type, ErrorCode;
double Price, Quantity;

OrderSelect(Ticket, SELECT_BY_TICKET);
Type = OrderType();

Quantity = OrderLots();

while (TRUE) { // Keep trying until the order really is closed
if (Type == OP_BUY)
Price=Bid;
else if (Type == OP_SELL)
Price=Ask;
else
return (-1);
Print("CLOSE ", Ticket, ", ", Quantity, ", ", Price);
if (OrderClose(Ticket, Quantity, Price, Slippage, CLR_NONE) == TRUE) {
Sleep(SLEEP_OK);
return (0);
}
else {
ErrorCode = GetLastError();
Print("Error closing order ", Ticket, ": ", ErrorDescription(ErrorCode),
" (", ErrorCode, ")", " size: ", Quantity, ", prices: ",
Price, ", ", Bid, ", ", Ask);
Sleep(SLEEP_ERR);
RefreshRates();
}
}
return (-1);
}

//+------------------------------------------------------------------+
//| Places an order |
//+------------------------------------------------------------------+
int Order(string symbol, int Type, double Entry, double Quantity,
double TargetPrice, double StopPrice, string comment="")
{
string TypeStr;
color TypeCol;
int ErrorCode, Ticket;
double Price, FillPrice;

Price = NormalizeDouble(Entry, Dig);

switch (Type) {
case OP_BUY:
TypeStr = "BUY";
TypeCol = clBuy;
break;
case OP_SELL:
TypeStr = "SELL";
TypeCol = clSell;
break;
default:
Print("Unknown order type ", Type);
break;
}

Ticket = OrderSend(symbol, Type, Quantity, Price, Slippage,
StopPrice, TargetPrice, comment, Magic, 0, TypeCol);
if (Ticket >= 0) {
Sleep(SLEEP_OK);
if (OrderSelect(Ticket, SELECT_BY_TICKET) == TRUE) {
FillPrice = OrderOpenPrice();
if (Entry != FillPrice) {
RefreshRates();
Print("Slippage on order ", Ticket, " - Requested = ",
Entry, ", Fill = ", FillPrice, ", Current Bid = ",
Bid, ", Current Ask = ", Ask);
}
}
else {
ErrorCode = GetLastError();
Print("Error selecting new order ", Ticket, ": ",
ErrorDescription(ErrorCode), " (", ErrorCode, ")");
}
return (Ticket);
}

ErrorCode = GetLastError();
RefreshRates();
Print("Error opening ", TypeStr, " order: ", ErrorDescription(ErrorCode),
" (", ErrorCode, ")", ", Entry = ", Price, ", Target = ",
TargetPrice, ", Stop = ", StopPrice, ", Current Bid = ", Bid,
", Current Ask = ", Ask);
Sleep(SLEEP_ERR);

return (-1);
}

//+------------------------------------------------------------------+
//| Performs system initialisation |
//+------------------------------------------------------------------+
void InitSystem()
{
Running = FALSE;

PositionSize = Lots;

RefreshRates();

LastFast = iMA(Symbol(), 0, FastPeriod, 0, MODE_EMA, PRICE_MEDIAN, 0);
LastSlow = iMA(Symbol(), 0, SlowPeriod, 0, MODE_EMA, PRICE_MEDIAN, 0);

if (LastFast > LastSlow)
Long = TRUE;

Initialized = TRUE;
}

//+------------------------------------------------------------------+
//| Checks for entry to a trade - Exits previous trade also |
//+------------------------------------------------------------------+
int CheckEntry(double Size)
{
if (!Long && (Fast > (Slow + Hysteresis * Points))) {
// Fast MA crossed above slow MA so GO LONG!
if (OrderNumber > 0)CloseMarket(OrderNumber); // Close previous short order
OrderNumber = Order(Symbol(), OP_BUY, Ask, Size, 0, 0);
if (OrderNumber > 0) {
Long = TRUE;
return(1);
}
}
else if (Long && (Fast < (Slow - Hysteresis * Points))) {
// Fast MA crossed below slow MA so GO SHORT!
if (OrderNumber > 0)
CloseMarket(OrderNumber); // Close previous long order
OrderNumber = Order(Symbol(), OP_SELL, Bid, Size, 0, 0);
if (OrderNumber > 0) {
Long = FALSE;
return(1);
}
}
return(0);
}

//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int init()
{
Dig = MarketInfo(Symbol(), MODE_DIGITS);
Points = MarketInfo(Symbol(), MODE_POINT);

Print("Digits = ", Dig, ", Points = ", DoubleToStr(Points, 5));


InitSystem();

Print("Initialized OK");

return(0);
}

//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
Print("DeInitialized OK");

return(0);
}

//+------------------------------------------------------------------+
//| Expert start function |
//| Executed on every tick |
//+------------------------------------------------------------------+
int start()
{
if (!Initialized) {
return(-1);
}

LastFast = Fast;
LastSlow = Slow;
Fast = iMA(Symbol(), 0, FastPeriod, 0, MODE_EMA, PRICE_MEDIAN, 0);
Slow = iMA(Symbol(), 0, SlowPeriod, 0, MODE_EMA, PRICE_MEDIAN, 0);

if (CheckEntry(PositionSize) > 0) { // Entered a trade?
Running = TRUE; // Yes - Indicate that we're in a trade
}

return(0);
}



عرض البوم صور originallaptop  
رد مع اقتباس
  #4  
قديم 23-10-2016, 04:45 PM
originallaptop originallaptop غير متواجد حالياً
عضو جديد
افتراضي رد: طلب التعديل فى إكسبيرت

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


//+------------------------------------------------------------------+
//| GuruEx03.mq4 |
//| Copyright © 2009, Marketing Dreams Ltd. All Rights Reserved. |
//| http://trading-gurus.com |
//| |
//| GuruTrader™ example 3 |
//| Version 1.0 |
//| |
//| A basic moving average crossover system |
//| |
//| Wealth Warning! This expert is for educational purposes only. |
//| It should NEVER be used on a live account. Past performance is |
//| in no way indicative of future results! |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, Marketing Dreams Ltd."
#property link "http://trading-gurus.com"

#define SLEEP_OK 250
#define SLEEP_ERR 250

//---- input parameters
extern int Magic = 12347;
extern int Slippage=30;
extern double Lots=0.1;
extern int FastPeriod=10;
extern int SlowPeriod=100;
extern int Hysteresis=4;
//---- static variables
static int Dig;
static double Points;

static bool Initialized = FALSE;
static bool Running = FALSE;
static bool Long = FALSE;
static double Fast;
static double Slow;
static double LastFast;
static double LastSlow;
static int OrderNumber;
static double PositionSize;

static color clBuy = DodgerBlue;
static color clSell = Crimson;

//+------------------------------------------------------------------+
//| Utility functions |
//+------------------------------------------------------------------+
#include <stdlib.mqh>
#include <stderror.mqh>
#include <WinUser32.mqh>

//+------------------------------------------------------------------+
//| Expert helper functions |
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//| Closes an order at market |
//+------------------------------------------------------------------+
int CloseMarket(int Ticket)
{
int Type, ErrorCode;
double Price, Quantity;

OrderSelect(Ticket, SELECT_BY_TICKET);
Type = OrderType();

Quantity = OrderLots();

while (TRUE) { // Keep trying until the order really is closed
if (Type == OP_BUY)
Price=Bid;
else if (Type == OP_SELL)
Price=Ask;
else
return (-1);
Print("CLOSE ", Ticket, ", ", Quantity, ", ", Price);
if (OrderClose(Ticket, Quantity, Price, Slippage, CLR_NONE) == TRUE) {
Sleep(SLEEP_OK);
return (0);
}
else {
ErrorCode = GetLastError();
Print("Error closing order ", Ticket, ": ", ErrorDescription(ErrorCode),
" (", ErrorCode, ")", " size: ", Quantity, ", prices: ",
Price, ", ", Bid, ", ", Ask);
Sleep(SLEEP_ERR);
RefreshRates();
}
}
return (-1);
}

//+------------------------------------------------------------------+
//| Places an order |
//+------------------------------------------------------------------+
int Order(string symbol, int Type, double Entry, double Quantity,
double TargetPrice, double StopPrice, string comment="")
{
string TypeStr;
color TypeCol;
int ErrorCode, Ticket;
double Price, FillPrice;

Price = NormalizeDouble(Entry, Dig);

switch (Type) {
case OP_BUY:
TypeStr = "BUY";
TypeCol = clBuy;
break;
case OP_SELL:
TypeStr = "SELL";
TypeCol = clSell;
break;
default:
Print("Unknown order type ", Type);
break;
}

Ticket = OrderSend(symbol, Type, Quantity, Price, Slippage,
StopPrice, TargetPrice, comment, Magic, 0, TypeCol);
if (Ticket >= 0) {
Sleep(SLEEP_OK);
if (OrderSelect(Ticket, SELECT_BY_TICKET) == TRUE) {
FillPrice = OrderOpenPrice();
if (Entry != FillPrice) {
RefreshRates();
Print("Slippage on order ", Ticket, " - Requested = ",
Entry, ", Fill = ", FillPrice, ", Current Bid = ",
Bid, ", Current Ask = ", Ask);
}
}
else {
ErrorCode = GetLastError();
Print("Error selecting new order ", Ticket, ": ",
ErrorDescription(ErrorCode), " (", ErrorCode, ")");
}
return (Ticket);
}

ErrorCode = GetLastError();
RefreshRates();
Print("Error opening ", TypeStr, " order: ", ErrorDescription(ErrorCode),
" (", ErrorCode, ")", ", Entry = ", Price, ", Target = ",
TargetPrice, ", Stop = ", StopPrice, ", Current Bid = ", Bid,
", Current Ask = ", Ask);
Sleep(SLEEP_ERR);

return (-1);
}

//+------------------------------------------------------------------+
//| Performs system initialisation |
//+------------------------------------------------------------------+
void InitSystem()
{
Running = FALSE;

PositionSize = Lots;

RefreshRates();

LastFast = iMA(Symbol(), 0, FastPeriod, 0, MODE_EMA, PRICE_MEDIAN, 0);
LastSlow = iMA(Symbol(), 0, SlowPeriod, 0, MODE_EMA, PRICE_MEDIAN, 0);

if (LastFast > LastSlow)
Long = TRUE;

Initialized = TRUE;
}

//+------------------------------------------------------------------+
//| Checks for entry to a trade - Exits previous trade also |
//+------------------------------------------------------------------+
int CheckEntry(double Size)
{
if (!Long && (Fast > (Slow + Hysteresis * Points))) {
// Fast MA crossed above slow MA so GO LONG!
if (OrderNumber > 0)CloseMarket(OrderNumber); // Close previous short order
OrderNumber = Order(Symbol(), OP_BUY, Ask, Size, 0, 0);
if (OrderNumber > 0) {
Long = TRUE;
return(1);
}
}
else if (Long && (Fast < (Slow - Hysteresis * Points))) {
// Fast MA crossed below slow MA so GO SHORT!
if (OrderNumber > 0)
CloseMarket(OrderNumber); // Close previous long order
OrderNumber = Order(Symbol(), OP_SELL, Bid, Size, 0, 0);
if (OrderNumber > 0) {
Long = FALSE;
return(1);
}
}
return(0);
}

//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int init()
{
Dig = MarketInfo(Symbol(), MODE_DIGITS);
Points = MarketInfo(Symbol(), MODE_POINT);

Print("Digits = ", Dig, ", Points = ", DoubleToStr(Points, 5));


InitSystem();

Print("Initialized OK");

return(0);
}

//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
Print("DeInitialized OK");

return(0);
}

//+------------------------------------------------------------------+
//| Expert start function |
//| Executed on every tick |
//+------------------------------------------------------------------+
int start()
{
if (!Initialized) {
return(-1);
}

LastFast = Fast;
LastSlow = Slow;
Fast = iMA(Symbol(), 0, FastPeriod, 0, MODE_EMA, PRICE_MEDIAN, 0);
Slow = iMA(Symbol(), 0, SlowPeriod, 0, MODE_EMA, PRICE_MEDIAN, 0);

if (CheckEntry(PositionSize) > 0) { // Entered a trade?
Running = TRUE; // Yes - Indicate that we're in a trade
}

return(0);
}




رد مع اقتباس
قديم 23-10-2016, 05:24 PM   المشاركة رقم: 5
الكاتب
originallaptop
عضو جديد

البيانات
تاريخ التسجيل: Dec 2015
رقم العضوية: 28713
العمر: 37
المشاركات: 11
بمعدل : 0.00 يوميا

الإتصالات
الحالة:
originallaptop غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : originallaptop المنتدى : منتدى المؤشرات و الاكسبيرتات
8 رد: طلب التعديل فى إكسبيرت

المشاركة الأصلية كتبت بواسطة اسلام العوامى نقره لعرض الصورة في صفحة مستقلة


،،،تم التعديل،،،

،،،تحياتي،،،

أستاذى الفاضل . أيضا أريد التحكم فى إعداد المتوسط الجديد التى تمت إضافته .
وشكرا جزيلا لحضرتك وأعتذر لكثرة الطلبات



عرض البوم صور originallaptop  
رد مع اقتباس
  #5  
قديم 23-10-2016, 05:24 PM
originallaptop originallaptop غير متواجد حالياً
عضو جديد
8 رد: طلب التعديل فى إكسبيرت

المشاركة الأصلية كتبت بواسطة اسلام العوامى نقره لعرض الصورة في صفحة مستقلة


،،،تم التعديل،،،

،،،تحياتي،،،

أستاذى الفاضل . أيضا أريد التحكم فى إعداد المتوسط الجديد التى تمت إضافته .
وشكرا جزيلا لحضرتك وأعتذر لكثرة الطلبات




رد مع اقتباس
قديم 23-10-2016, 05:31 PM   المشاركة رقم: 6
الكاتب
اسلام العوامى
عضو ذهبى
الصورة الرمزية اسلام العوامى

البيانات
تاريخ التسجيل: Apr 2012
رقم العضوية: 9148
الدولة: alexandria - egypt
المشاركات: 5,888
بمعدل : 1.28 يوميا

الإتصالات
الحالة:
اسلام العوامى غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : originallaptop المنتدى : منتدى المؤشرات و الاكسبيرتات
افتراضي رد: طلب التعديل فى إكسبيرت

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

،،،تحياتي،،،



الملفات المرفقة
نوع الملف: mq4 ma.mq4‏ (6.7 كيلوبايت, المشاهدات 8)
التوقيع

عرض البوم صور اسلام العوامى  
رد مع اقتباس
  #6  
قديم 23-10-2016, 05:31 PM
اسلام العوامى اسلام العوامى غير متواجد حالياً
عضو ذهبى
افتراضي رد: طلب التعديل فى إكسبيرت

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

،،،تحياتي،،،




الملفات المرفقة
نوع الملف: mq4 ma.mq4‏ (6.7 كيلوبايت, المشاهدات 8)
رد مع اقتباس
قديم 23-10-2016, 06:12 PM   المشاركة رقم: 7
الكاتب
originallaptop
عضو جديد

البيانات
تاريخ التسجيل: Dec 2015
رقم العضوية: 28713
العمر: 37
المشاركات: 11
بمعدل : 0.00 يوميا

الإتصالات
الحالة:
originallaptop غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : originallaptop المنتدى : منتدى المؤشرات و الاكسبيرتات
افتراضي رد: طلب التعديل فى إكسبيرت

المشاركة الأصلية كتبت بواسطة اسلام العوامى نقره لعرض الصورة في صفحة مستقلة


،،،مرفق الكود وتم اضافة متغير للتحكم في قيمة الموفينج الجديد،،،

،،،تحياتي،،،
شكرا جزيلا لك استاذى الفاضل
نقره لعرض الصورة في صفحة مستقلة



عرض البوم صور originallaptop  
رد مع اقتباس
  #7  
قديم 23-10-2016, 06:12 PM
originallaptop originallaptop غير متواجد حالياً
عضو جديد
افتراضي رد: طلب التعديل فى إكسبيرت

المشاركة الأصلية كتبت بواسطة اسلام العوامى نقره لعرض الصورة في صفحة مستقلة


،،،مرفق الكود وتم اضافة متغير للتحكم في قيمة الموفينج الجديد،،،

،،،تحياتي،،،
شكرا جزيلا لك استاذى الفاضل
نقره لعرض الصورة في صفحة مستقلة




رد مع اقتباس
إضافة رد

مواقع النشر (المفضلة)

الكلمات الدلالية (Tags)
إكسبيرت, التعديل


تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة



الساعة الآن 07:24 AM



جميع الحقوق محفوظة الى اف اكس ارابيا www.fx-arabia.com

تحذير المخاطرة

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

تنبيه هام

موقع اف اكس ارابيا هو موقع تعليمي خالص يهدف الي توعية المستثمر العربي مبادئ الاستثمار و التداول الناجح ولا يتحصل علي اي اموال مقابل ذلك ولا يقوم بادارة محافظ مالية وان ادارة الموقع غير مسؤولة عن اي استغلال من قبل اي شخص لاسمها وتحذر من ذلك.

اتصل بنا

البريد الإلكتروني للدعم الفنى : support@fx-arabia.com
جميع الحقوق محفوظة اف اكس ارابيا – احدى مواقع Inwestopedia Sp. Z O.O. للاستشارات و التدريب – جمهورية بولندا الإتحادية.
Powered by vBulletin® Copyright ©2000 - 2024 , Designed by Fx-Arabia Team