المساعد الشخصي الرقمي

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


babouche007
05-11-2015, 02:08 AM
السلام عليكم إخواني
لقد بدأت في تطبيق ماتعلمته في لغة 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),Bi d-(TP*t),NULL,magic,0,Red);
}

وشكرا

اسلام العوامى
05-11-2015, 10:44 AM
السلام عليكم إخواني
لقد بدأت في تطبيق ماتعلمته في لغة 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),Bi d-(TP*t),NULL,magic,0,Red);
}
وشكرا

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

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

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

babouche007
05-11-2015, 04:36 PM
شكرااااااا لك يا أستاذ اسلام (http://www.fx-arabia.com/vb/member.php?u=9148) على الرد
كان عندي الخطأ
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
شكرااااااا لك يا أستاذ اسلام (http://www.fx-arabia.com/vb/member.php?u=9148) على الرد
كان عندي الخطأ
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
ما شاء الله ممكن صاحب الموضوع لو تكرمت وسيله تواصل مباشره معاك او تراسلنى هنا للضرورة
،،،تم حذف الرابط ، ممنوع وضع بيانات تواصل شخصية،،،