اف اكس ارابيا..الموقع الرائد فى تعليم فوركس Forex

اف اكس ارابيا..الموقع الرائد فى تعليم فوركس Forex (https://fx-arabia.com/vb/index.php)
-   منتدى المؤشرات و الاكسبيرتات (https://fx-arabia.com/vb/forumdisplay.php?f=6)
-   -   مشكل عند إنتهاء برمجة اكسبيرت تقاطع موفنجين (https://fx-arabia.com/vb/showthread.php?t=51212)

babouche007 05-11-2015 02:08 AM

مشكل عند إنتهاء برمجة اكسبيرت تقاطع موفنجين
 
1 مرفق
السلام عليكم إخواني
لقد بدأت في تطبيق ماتعلمته في لغة mql4
(اكسبيرت تقاطع موفنجين 5 و 14)
أعرف أن المشكل في ordersend
وجدت بعض الشروحات لكن لم أفهم لذا أرجو فقط تصحيح خطئي (أضن أن هكذا سوف أفهم )

كود:

#property copyright "Copyright 2015, Hamza Corp."
#property link      "https://www.mql5.com"
#property version  "1.00"
#property strict

extern string s1 = "Fast Mouving";
extern int FMperiod = 5;
extern int FMshift = 0;
extern int FMmethod = 0;
extern int FMapplied = 0;
extern string s2 = "Low Mouving";
extern int LMperiod = 14;
extern int LMshift = 3;
extern int LMmethod = 0;
extern int LMapplied = 0;
extern string s3 = "Money Manage";
extern int TP = 30;
extern int SL = 10;
extern double lot = 0.1;
extern int magic = 12345;


double t;


//+------------------------------------------------------------------+
//| Expert initialization function                                  |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
double ticksize = MarketInfo (Symbol(),MODE_TICKSIZE);
if ( ticksize == 0.00001 || 0.001 )
  t = ticksize * 10;
else
  t = ticksize ;
//---
  return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
 
  }
//+------------------------------------------------------------------+
//| Expert tick function                                            |
//+------------------------------------------------------------------+
void OnTick()
  {
  double Fnow = iMA(NULL,0,FMperiod,FMshift,FMmethod,FMapplied,1);
  double Flast = iMA(NULL,0,FMperiod,FMshift,FMmethod,FMapplied,2);
  double Lnow = iMA(NULL,0,LMperiod,LMshift,LMmethod,LMapplied,1);
  double Llast = iMA(NULL,0,LMperiod,LMshift,LMmethod,LMapplied,2);
//---
  if ( Fnow > Lnow && Flast < Llast )
  if (OrdersTotal()==0)
  OrderSend(Symbol(),OP_BUY,lot,Ask,3,Ask-(SL*t),Ask+(TP*t),NULL,magic,0,Blue);
 
  if ( Fnow < Lnow && Flast > Llast )
  if (OrdersTotal()==0)
  OrderSend(Symbol(),OP_SELL,lot,Bid,3,Bid+(SL*t),Bid-(TP*t),NULL,magic,0,Red);
  }

وشكرا

اسلام العوامى 05-11-2015 10:44 AM

رد: مشكل عند إنتهاء برمجة اكسبيرت تقاطع موفنجين
 
اقتباس:

المشاركة الأصلية كتبت بواسطة babouche007 (المشاركة 836275)
السلام عليكم إخواني
لقد بدأت في تطبيق ماتعلمته في لغة mql4
(اكسبيرت تقاطع موفنجين 5 و 14)
أعرف أن المشكل في ordersend
وجدت بعض الشروحات لكن لم أفهم لذا أرجو فقط تصحيح خطئي (أضن أن هكذا سوف أفهم )

كود:

#property copyright "Copyright 2015, Hamza Corp."
#property link      "https://www.mql5.com"
#property version  "1.00"
#property strict

extern string s1 = "Fast Mouving";
extern int FMperiod = 5;
extern int FMshift = 0;
extern int FMmethod = 0;
extern int FMapplied = 0;
extern string s2 = "Low Mouving";
extern int LMperiod = 14;
extern int LMshift = 3;
extern int LMmethod = 0;
extern int LMapplied = 0;
extern string s3 = "Money Manage";
extern int TP = 30;
extern int SL = 10;
extern double lot = 0.1;
extern int magic = 12345;


double t;


//+------------------------------------------------------------------+
//| Expert initialization function                                  |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
double ticksize = MarketInfo (Symbol(),MODE_TICKSIZE);
if ( ticksize == 0.00001 || 0.001 )
  t = ticksize * 10;
else
  t = ticksize ;
//---
  return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
 
  }
//+------------------------------------------------------------------+
//| Expert tick function                                            |
//+------------------------------------------------------------------+
void OnTick()
  {
  double Fnow = iMA(NULL,0,FMperiod,FMshift,FMmethod,FMapplied,1);
  double Flast = iMA(NULL,0,FMperiod,FMshift,FMmethod,FMapplied,2);
  double Lnow = iMA(NULL,0,LMperiod,LMshift,LMmethod,LMapplied,1);
  double Llast = iMA(NULL,0,LMperiod,LMshift,LMmethod,LMapplied,2);
//---
  if ( Fnow > Lnow && Flast < Llast )
  if (OrdersTotal()==0)
  OrderSend(Symbol(),OP_BUY,lot,Ask,3,Ask-(SL*t),Ask+(TP*t),NULL,magic,0,Blue);
 
  if ( Fnow < Lnow && Flast > Llast )
  if (OrdersTotal()==0)
  OrderSend(Symbol(),OP_SELL,lot,Bid,3,Bid+(SL*t),Bid-(TP*t),NULL,magic,0,Red);
  }

وشكرا

،،،وعليكم السلام ورحمة الله وبركاته،،،

،،،اهلا بك اخى الفاضل ، لا توجد اى مشكلة بالاكسبيرت ويعمل بشكل صحيح،،،

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

babouche007 05-11-2015 04:36 PM

رد: مشكل عند إنتهاء برمجة اكسبيرت تقاطع موفنجين
 
شكرااااااا لك يا أستاذ اسلام على الرد
كان عندي الخطأ
return value of 'OrderSend' should be checked
الحمد لله وجدت الحل
كود:

//+------------------------------------------------------------------+
//|                                                  new-Experts.mq4 |
//|                                      Copyright 2015, Hamza Corp. |
//|                                            https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, Hamza Corp."
#property link      "https://www.mql5.com"
#property version  "1.00"
#property strict

extern string s1 = "Fast Mouving";
extern int FMperiod = 5;
extern int FMshift = 0;
extern int FMmethod = 0;
extern int FMapplied = 0;
extern string s2 = "Low Mouving";
extern int LMperiod = 14;
extern int LMshift = 3;
extern int LMmethod = 0;
extern int LMapplied = 0;
extern string s3 = "Money Manage";
extern int TP = 30;
extern int SL = 10;
extern double lot = 0.1;
extern int magic = 12345;


double t;


//+------------------------------------------------------------------+
//| Expert initialization function                                  |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
double ticksize = MarketInfo (Symbol(),MODE_TICKSIZE);
if ( ticksize == 0.00001 || 0.001 )
  t = ticksize * 10;
else
  t = ticksize ;
//---
  return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
 
  }
//+------------------------------------------------------------------+
//| Expert tick function                                            |
//+------------------------------------------------------------------+
void OnTick()
  {
  double Fnow = iMA(NULL,0,FMperiod,FMshift,FMmethod,FMapplied,1);
  double Flast = iMA(NULL,0,FMperiod,FMshift,FMmethod,FMapplied,2);
  double Lnow = iMA(NULL,0,LMperiod,LMshift,LMmethod,LMapplied,1);
  double Llast = iMA(NULL,0,LMperiod,LMshift,LMmethod,LMapplied,2);
//---
    if ( Fnow > Lnow && Flast < Llast )
  if (OrdersTotal()==0)
  bool m= OrderSend(Symbol(),OP_BUY,lot,Ask,3,Ask-(SL*t),Ask+(TP*t),NULL,magic,0,Blue);
 
  if ( Fnow < Lnow && Flast > Llast )
  if (OrdersTotal()==0)
  bool n=OrderSend(Symbol(),OP_SELL,lot,Bid,3,Bid+(SL*t),Bid-(TP*t),NULL,magic,0,Red);
  }
//+------------------------------------------------------------------+

و شكرا

اسلام العوامى 05-11-2015 05:38 PM

رد: مشكل عند إنتهاء برمجة اكسبيرت تقاطع موفنجين
 
اقتباس:

المشاركة الأصلية كتبت بواسطة babouche007 (المشاركة 836370)
شكرااااااا لك يا أستاذ اسلام على الرد
كان عندي الخطأ
return value of 'OrderSend' should be checked
الحمد لله وجدت الحل
كود:

//+------------------------------------------------------------------+
//|                                                  new-Experts.mq4 |
//|                                      Copyright 2015, Hamza Corp. |
//|                                            https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, Hamza Corp."
#property link      "https://www.mql5.com"
#property version  "1.00"
#property strict

extern string s1 = "Fast Mouving";
extern int FMperiod = 5;
extern int FMshift = 0;
extern int FMmethod = 0;
extern int FMapplied = 0;
extern string s2 = "Low Mouving";
extern int LMperiod = 14;
extern int LMshift = 3;
extern int LMmethod = 0;
extern int LMapplied = 0;
extern string s3 = "Money Manage";
extern int TP = 30;
extern int SL = 10;
extern double lot = 0.1;
extern int magic = 12345;


double t;


//+------------------------------------------------------------------+
//| Expert initialization function                                  |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
double ticksize = MarketInfo (Symbol(),MODE_TICKSIZE);
if ( ticksize == 0.00001 || 0.001 )
  t = ticksize * 10;
else
  t = ticksize ;
//---
  return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
 
  }
//+------------------------------------------------------------------+
//| Expert tick function                                            |
//+------------------------------------------------------------------+
void OnTick()
  {
  double Fnow = iMA(NULL,0,FMperiod,FMshift,FMmethod,FMapplied,1);
  double Flast = iMA(NULL,0,FMperiod,FMshift,FMmethod,FMapplied,2);
  double Lnow = iMA(NULL,0,LMperiod,LMshift,LMmethod,LMapplied,1);
  double Llast = iMA(NULL,0,LMperiod,LMshift,LMmethod,LMapplied,2);
//---
    if ( Fnow > Lnow && Flast < Llast )
  if (OrdersTotal()==0)
  bool m= OrderSend(Symbol(),OP_BUY,lot,Ask,3,Ask-(SL*t),Ask+(TP*t),NULL,magic,0,Blue);
 
  if ( Fnow < Lnow && Flast > Llast )
  if (OrdersTotal()==0)
  bool n=OrderSend(Symbol(),OP_SELL,lot,Bid,3,Bid+(SL*t),Bid-(TP*t),NULL,magic,0,Red);
  }
//+------------------------------------------------------------------+

و شكرا

،،،العفو اخى ولكن هذا ليس خطأ ولكن تنبيه او ملاحظة من البرنامج ، الخطأ يكون باللون الاحمر ويمنع عمل الاكسبيرت ولكن الملاحظة لا تمنع عمله،،،

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

cmstorm 19-11-2016 03:30 PM

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


الساعة الآن 12:29 PM

Powered by vBulletin® Copyright ©2000 - 2024

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