مشاهدة النسخة كاملة : مشكل بعد الإنتهاء من برمجة اكسبيرت بصيط
babouche007
16-11-2015, 02:43 AM
السلام عليكم إخواني
لقد بدأت في تطبيق ماتعلمته في لغة mql4
قمت ببرمجة اكسبيرت إغلاق الشمعة 1 > هاي الشمعة 2 ===> شراء
لكن لاحضت أن صفقة واحدة هي التي تفتح (لاتفتح صفقات على الأزواج الأخرى)
لقد قمت بتجربت تغيير إسم الإكسبيرت و أيضا الماجيك كود لكن بدون جدوى
//+------------------------------------------------------------------+
//| boujie.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
input string s1 = "--------------Trend--------------";
extern int TMperiod = 200;
extern int TMshift = 0;
extern int TMmethod = 0;
extern int TMapplied = 0;
input string s2 = "---------Money Management--------------";
input int TP = 30 ;
input int SL = 15 ;
input double lots = 0.1 ;
input int Magic = 11111 ;
double pclose = iClose(Symbol(),PERIOD_D1,1);
double popo = iClose(Symbol(),0,1);
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 Tnow = iMA(NULL,0,TMperiod,TMshift,TMmethod,TMapplied,1);
//---
if(Close[1]>High[2] ){
if(OrdersTotal()==0)
bool Buy = OrderSend(NULL,OP_BUY,lots,Ask,3,Ask-(SL*t),Ask+(TP*t),NULL,Magic,0,Blue);
}
if(Close[1]<Low[2] ){
if(OrdersTotal()==0)
bool n=OrderSend(Symbol(),OP_SELL,lots,Bid,3,Bid+(SL*t) ,Bid-(TP*t),NULL,Magic,0,Red);
}
}
//+------------------------------------------------------------------+
أرجو المساعدة
اسلام العوامى
16-11-2015, 11:39 AM
السلام عليكم إخواني
لقد بدأت في تطبيق ماتعلمته في لغة mql4
قمت ببرمجة اكسبيرت إغلاق الشمعة 1 > هاي الشمعة 2 ===> شراء
لكن لاحضت أن صفقة واحدة هي التي تفتح (لاتفتح صفقات على الأزواج الأخرى)
لقد قمت بتجربت تغيير إسم الإكسبيرت و أيضا الماجيك كود لكن بدون جدوى
//+------------------------------------------------------------------+
//| boujie.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
input string s1 = "--------------Trend--------------";
extern int TMperiod = 200;
extern int TMshift = 0;
extern int TMmethod = 0;
extern int TMapplied = 0;
input string s2 = "---------Money Management--------------";
input int TP = 30 ;
input int SL = 15 ;
input double lots = 0.1 ;
input int Magic = 11111 ;
double pclose = iClose(Symbol(),PERIOD_D1,1);
double popo = iClose(Symbol(),0,1);
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 Tnow = iMA(NULL,0,TMperiod,TMshift,TMmethod,TMapplied,1);
//---
if(Close[1]>High[2] ){
if(OrdersTotal()==0)
bool Buy = OrderSend(NULL,OP_BUY,lots,Ask,3,Ask-(SL*t),Ask+(TP*t),NULL,Magic,0,Blue);
}
if(Close[1]<Low[2] ){
if(OrdersTotal()==0)
bool n=OrderSend(Symbol(),OP_SELL,lots,Bid,3,Bid+(SL*t) ,Bid-(TP*t),NULL,Magic,0,Red);
}
}
//+------------------------------------------------------------------+
أرجو المساعدة
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،اهلا بك اخى الفاضل ، الخطأ مظلل بالاحمر فى الاقتباس ، يجب استخدام وظيفة خارجية لحساب عدد صفقات الزوج ولكن الكود المستخدم حاليا يقوم بحساب عدد الصفقات المفتوحة على الحساب عموما،،،
،،،تحياتى،،،
babouche007
16-11-2015, 04:09 PM
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،اهلا بك اخى الفاضل ، الخطأ مظلل بالاحمر فى الاقتباس ، يجب استخدام وظيفة خارجية لحساب عدد صفقات الزوج ولكن الكود المستخدم حاليا يقوم بحساب عدد الصفقات المفتوحة على الحساب عموما،،،
،،،تحياتى،،،
أرجو أن تصحح لي خطئي إن لم يكن عندك مانع
وشكرا
اسلام العوامى
16-11-2015, 04:37 PM
أرجو أن تصحح لي خطئي إن لم يكن عندك مانع
وشكرا
،،،يتم اضافة وظيفة خارجية لحساب صفقات الزوج الحالى فقط،،،
int orderscnt(){
int cnt=0;
for(int i =0;i<=OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic){
cnt++;
}
}
}
return(cnt);
}
،،،ثم يتم استبدال السطر الذى تم تظليله بالاحمر فى المشاركة السابقة بالسطر التالى،،،
if(orderscnt()==0)
babouche007
16-11-2015, 05:42 PM
لازال عندي نفس المشكل
الصفقات تفتح فقط على زوج واحد
هل يمكن أن تكون المشكلة من كثرة الأزواج
أو لأني أستخدم إكسبرت آخر على نفس MT4
أرجو المساعدة http://www.borsaat.com/vb/images/smilies/frown.gif
//+------------------------------------------------------------------+
//| boujie.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
input string s1 = "--------------Trend--------------";
extern int TMperiod = 200;
extern int TMshift = 0;
extern int TMmethod = 0;
extern int TMapplied = 0;
input string s2 = "---------Money Management--------------";
input int TP = 100 ;
input int SL = 100 ;
input double lots = 0.1 ;
input int Magic = 11111 ;
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()
{
//---
if(Close[1]>High[2]){
if(orderscnt()==0)
bool Buy = OrderSend(NULL,OP_BUY,lots,Ask,3,Ask-(SL*t),Ask+(TP*t),NULL,Magic,0,Blue);
}
if(Close[1]<Low[2]){
if(orderscnt()==0)
bool n=OrderSend(Symbol(),OP_SELL,lots,Bid,3,Bid+(SL*t) ,Bid-(TP*t),NULL,Magic,0,Red);
}
}
//+------------------------------------------------------------------+
int orderscnt(){
int cnt=0;
for(int i =0;i<=OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic){
cnt++;
}
}
}
return(cnt);
}
babouche007
16-11-2015, 06:14 PM
هل إدا عدلت في الإكسبرت وضغط على Compile
سوف تتغير الإعداداتها القديمة أوطوماتيكيا في كل زوج لحاط فيها الإكسبرت
أم تبقى محافضة على إعداداتها القديمة
??????????
اسلام العوامى
16-11-2015, 06:27 PM
لازال عندي نفس المشكل
الصفقات تفتح فقط على زوج واحد
هل يمكن أن تكون المشكلة من كثرة الأزواج
أو لأني أستخدم إكسبرت آخر على نفس MT4
أرجو المساعدة http://www.borsaat.com/vb/images/smilies/frown.gif
//+------------------------------------------------------------------+
//| boujie.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
input string s1 = "--------------Trend--------------";
extern int TMperiod = 200;
extern int TMshift = 0;
extern int TMmethod = 0;
extern int TMapplied = 0;
input string s2 = "---------Money Management--------------";
input int TP = 100 ;
input int SL = 100 ;
input double lots = 0.1 ;
input int Magic = 11111 ;
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()
{
//---
if(Close[1]>High[2]){
if(orderscnt()==0)
bool Buy = OrderSend(NULL,OP_BUY,lots,Ask,3,Ask-(SL*t),Ask+(TP*t),NULL,Magic,0,Blue);
}
if(Close[1]<Low[2]){
if(orderscnt()==0)
bool n=OrderSend(Symbol(),OP_SELL,lots,Bid,3,Bid+(SL*t) ,Bid-(TP*t),NULL,Magic,0,Red);
}
}
//+------------------------------------------------------------------+
int orderscnt(){
int cnt=0;
for(int i =0;i<=OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic){
cnt++;
}
}
}
return(cnt);
}
،،،لاتوجد مشكلة فى الكود تمنعه من العمل على اكثر من زوج ، قم مؤقتا بايقاف الاكسبيرت الاخر وقم بوضع الاكسبيرت الحالى على اكثر من زوج مع تغيير الماجيك نمبر،،،
،،،تحياتى،،،
babouche007
17-11-2015, 12:15 AM
شكرا يا أستاذ اسلام لقد إشتغل معي جيدا دون تغيير الماجيك نمبر
اليوم أكملت (دورة تعليم البرمجة الاحترافية بلغة mql4) الخاصة بك فوجدت في الدرس 14 الجواب
شكرا على كل ما قدمته لي :)