عرض مشاركة واحدة
قديم 20-09-2017, 03:33 AM   المشاركة رقم: 1
الكاتب
Rushdi
عضو متميز
الصورة الرمزية Rushdi

البيانات
تاريخ التسجيل: Oct 2011
رقم العضوية: 6474
الدولة: تركيا & العراق
العمر: 40
المشاركات: 1,334
بمعدل : 0.29 يوميا

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

المنتدى : منتدى المؤشرات و الاكسبيرتات
4 سؤال عاجل للاساتذة المبرمجين

صباح الخير

انا احاول تعلم البرمجة لكن اواجه بعض المشاكل بسبب عدم وجود اساس برمجة لدي لكن اتمنى تجاوز المشاكل عبر مساعدة الاساتذة في المنتدى وخاصة الاستاذ اسلام .
حاولت برمجة اكسبرت افتراضي يفتح ويغلق الصفقات عبر تقاطع الموفينك و الباربوليك سار وكان كل شيء على ما يرام ويفتح ويغلق بدون مشاكل الى ان حاولت اضافة خاصية التريلنج ستوب حيث بعد اضافته ورغم عدم اعطائه لاي اخطاء في الكود يتوقف البرنامج بالكامل اول ما احاول تشغيله في التستر كما يحصل في نهاية فيديو الاستاذ اسلام ذو الاسم (درس رقم 10 من سلسلة دورة البرمجة الاحترافية على منتديات اف اكس ارابيا http://www.fx-arabia.com ) .

ارجوا من الاخوة المبرمجين المساعدة لحل هذا المشكلة.




الكود
نقره لعرض الصورة في صفحة مستقلة



كود:
//+------------------------------------------------------------------+
//|                                                 Byu_Sell_Day.mq4 |
//|                              Copyright © 2007, www.****forex.net |
//|                                         http://www.****forex.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, www.****forex.net"
#property link      "http://www.****forex.net"




extern double LotSize=0.01;
extern double StopLossPips=30;
extern double TakeProfitPips=30;
extern int MagicNumber = 55558;
extern int breakEven = 20 ; 
extern int TrailingStop = 30;

extern int matimeframe = 240;
extern int maperiod = 8;
extern int mashift  = 0;
extern int mamethod = 0;
extern int maappliedprice=0;

extern int sartimeframe=240;
extern double sarstep=0.02;
extern double sarmaximum=0.2;
extern int sarshift=0;
double buySL,buyTP,selSl,selTP;


double ma1,ma2,sma1,sma2,sar1,sar2;
void Indicators(){
ma1 = iMA(NULL,matimeframe,maperiod,mashift,mamethod,maappliedprice,1);
ma2 = iMA(NULL,matimeframe,maperiod,mashift,mamethod,maappliedprice,2);



sar1 = iSAR (NULL,sartimeframe,sarstep,sarmaximum,1);
sar2 = iSAR (NULL,sartimeframe,sarstep,sarmaximum,2);
}






//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
double t;
int init()
  {
//----
double tik=MarketInfo(Symbol(),MODE_TICKSIZE);
   if(tik==0.00001 || tik==0.001)
      t=tik*10;
   else t=tik;
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
Indicators();

if(count(1)==0&&count(2)==0){
   if(sar1 < ma1 &&  sar2 > ma2) {
     if (StopLossPips ==0)buySL =0 ;
   else buySL =Ask - (StopLossPips*t);
   if(TakeProfitPips==0)buyTP=0;
   else buyTP = Ask +(TakeProfitPips*t);
   bool x = OrderSend
   (Symbol(),OP_BUY,LotSize,Ask,5,buySL,buyTP,NULL,MagicNumber,0,Green);
 }
  }
if(count(2)==0&&count(1)==0){
   if(sar1 > ma1 &&  sar2 < ma2){  
      if(StopLossPips ==0)selSl=0;
   else  selSl= Bid+(StopLossPips*t);
   if(TakeProfitPips==0)selTP=0;
   else selTP=Bid -(TakeProfitPips*t); 
 bool xx = OrderSend
    (Symbol(),OP_SELL,LotSize,Bid,5,selSl,selTP,NULL,MagicNumber,0,Red);
    }
   
    }
    if (sar1 > ma1 &&  sar2 < ma2) 
    bool g = OrderClose(OrderTicket() ,LotSize ,Bid,5,Red);
    if (sar1 < ma1 &&  sar2 > ma2)
    bool gg= OrderClose(OrderTicket() ,LotSize ,Ask,5,Red);
    
     if (breakEven > 0)breakeven();
     if (TrailingStop > 0) Trailingstop ();
     
   
   
//----
   return(0);
  }
//+------------------------------------------------------------------+

void breakeven ()

 {
 
 for (int i= OrdersTotal ()-1; i >=0;i--)
 {
 if (OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
 if (OrderSymbol() == Symbol ())
 if (OrderMagicNumber() == MagicNumber )
 if (OrderType() == OP_BUY)
 if (Bid - OrderOpenPrice ()> breakEven*t )
 if (OrderOpenPrice() > OrderStopLoss ())
 bool xx= OrderModify (OrderTicket(),OrderOpenPrice (),OrderOpenPrice (),OrderTakeProfit(),0,Pink);
}
 
 for (int ii= OrdersTotal()-1; ii >=0;ii--)
 {
 if (OrderSelect (ii,SELECT_BY_POS,MODE_TRADES))
 if (OrderSymbol() == Symbol ())
 if (OrderMagicNumber() == MagicNumber )
 if (OrderType() == OP_SELL)
 if (OrderOpenPrice() - Ask > breakEven*t )
 if (OrderOpenPrice() < OrderStopLoss ())
 bool x= OrderModify (OrderTicket(),OrderOpenPrice (),OrderOpenPrice (),OrderTakeProfit(),0,Pink);



 }
}
void Trailingstop ()

 {
 
 for (int i= OrdersTotal ()-1; i >=0;i--)
 {
 if (OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
 if (OrderSymbol() == Symbol ())
 if (OrderMagicNumber() == MagicNumber )
 if (OrderType() == OP_BUY)
 if (Bid - OrderOpenPrice ()> TrailingStop*t )
 if (OrderStopLoss()< Bid- TrailingStop*t )
 bool xx= OrderModify (OrderTicket(),OrderOpenPrice (), Bid - (TrailingStop*t),OrderTakeProfit(),0,CLR_NONE);
}



for (int ii= OrdersTotal ()-1; ii >=0;i--)
 {
 if (OrderSelect (ii,SELECT_BY_POS,MODE_TRADES))
 if (OrderSymbol() == Symbol ())
 if (OrderMagicNumber() == MagicNumber )
 if (OrderType() == OP_SELL)
 if (OrderOpenPrice()-Ask> TrailingStop*t )
 if (OrderStopLoss()> Ask+ TrailingStop*t )
 bool x =OrderModify (OrderTicket(),OrderOpenPrice (), Ask + (TrailingStop*t),OrderTakeProfit(),0,CLR_NONE);

}
}

int count(int t){
int T=0;
for (int i = 0; i < OrdersTotal(); i++) {
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
if (OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber) {

    if(OrderType() == OP_BUY&&t==1)T++;
    if(OrderType() == OP_SELL&&t==2)T++;
         
         
      }
   }
   } 
 return(T);
}



التوقيع

نقره لعرض الصورة في صفحة مستقلة

أزل عن نفسك ضغط السوق مع استراحة طربية


استراحة طربية

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


  #1  
قديم 20-09-2017, 03:33 AM
Rushdi Rushdi غير متواجد حالياً
عضو متميز
4 سؤال عاجل للاساتذة المبرمجين

صباح الخير

انا احاول تعلم البرمجة لكن اواجه بعض المشاكل بسبب عدم وجود اساس برمجة لدي لكن اتمنى تجاوز المشاكل عبر مساعدة الاساتذة في المنتدى وخاصة الاستاذ اسلام .
حاولت برمجة اكسبرت افتراضي يفتح ويغلق الصفقات عبر تقاطع الموفينك و الباربوليك سار وكان كل شيء على ما يرام ويفتح ويغلق بدون مشاكل الى ان حاولت اضافة خاصية التريلنج ستوب حيث بعد اضافته ورغم عدم اعطائه لاي اخطاء في الكود يتوقف البرنامج بالكامل اول ما احاول تشغيله في التستر كما يحصل في نهاية فيديو الاستاذ اسلام ذو الاسم (درس رقم 10 من سلسلة دورة البرمجة الاحترافية على منتديات اف اكس ارابيا http://www.fx-arabia.com ) .

ارجوا من الاخوة المبرمجين المساعدة لحل هذا المشكلة.




الكود
نقره لعرض الصورة في صفحة مستقلة



كود:
//+------------------------------------------------------------------+
//|                                                 Byu_Sell_Day.mq4 |
//|                              Copyright © 2007, www.****forex.net |
//|                                         http://www.****forex.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, www.****forex.net"
#property link      "http://www.****forex.net"




extern double LotSize=0.01;
extern double StopLossPips=30;
extern double TakeProfitPips=30;
extern int MagicNumber = 55558;
extern int breakEven = 20 ; 
extern int TrailingStop = 30;

extern int matimeframe = 240;
extern int maperiod = 8;
extern int mashift  = 0;
extern int mamethod = 0;
extern int maappliedprice=0;

extern int sartimeframe=240;
extern double sarstep=0.02;
extern double sarmaximum=0.2;
extern int sarshift=0;
double buySL,buyTP,selSl,selTP;


double ma1,ma2,sma1,sma2,sar1,sar2;
void Indicators(){
ma1 = iMA(NULL,matimeframe,maperiod,mashift,mamethod,maappliedprice,1);
ma2 = iMA(NULL,matimeframe,maperiod,mashift,mamethod,maappliedprice,2);



sar1 = iSAR (NULL,sartimeframe,sarstep,sarmaximum,1);
sar2 = iSAR (NULL,sartimeframe,sarstep,sarmaximum,2);
}






//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
double t;
int init()
  {
//----
double tik=MarketInfo(Symbol(),MODE_TICKSIZE);
   if(tik==0.00001 || tik==0.001)
      t=tik*10;
   else t=tik;
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
Indicators();

if(count(1)==0&&count(2)==0){
   if(sar1 < ma1 &&  sar2 > ma2) {
     if (StopLossPips ==0)buySL =0 ;
   else buySL =Ask - (StopLossPips*t);
   if(TakeProfitPips==0)buyTP=0;
   else buyTP = Ask +(TakeProfitPips*t);
   bool x = OrderSend
   (Symbol(),OP_BUY,LotSize,Ask,5,buySL,buyTP,NULL,MagicNumber,0,Green);
 }
  }
if(count(2)==0&&count(1)==0){
   if(sar1 > ma1 &&  sar2 < ma2){  
      if(StopLossPips ==0)selSl=0;
   else  selSl= Bid+(StopLossPips*t);
   if(TakeProfitPips==0)selTP=0;
   else selTP=Bid -(TakeProfitPips*t); 
 bool xx = OrderSend
    (Symbol(),OP_SELL,LotSize,Bid,5,selSl,selTP,NULL,MagicNumber,0,Red);
    }
   
    }
    if (sar1 > ma1 &&  sar2 < ma2) 
    bool g = OrderClose(OrderTicket() ,LotSize ,Bid,5,Red);
    if (sar1 < ma1 &&  sar2 > ma2)
    bool gg= OrderClose(OrderTicket() ,LotSize ,Ask,5,Red);
    
     if (breakEven > 0)breakeven();
     if (TrailingStop > 0) Trailingstop ();
     
   
   
//----
   return(0);
  }
//+------------------------------------------------------------------+

void breakeven ()

 {
 
 for (int i= OrdersTotal ()-1; i >=0;i--)
 {
 if (OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
 if (OrderSymbol() == Symbol ())
 if (OrderMagicNumber() == MagicNumber )
 if (OrderType() == OP_BUY)
 if (Bid - OrderOpenPrice ()> breakEven*t )
 if (OrderOpenPrice() > OrderStopLoss ())
 bool xx= OrderModify (OrderTicket(),OrderOpenPrice (),OrderOpenPrice (),OrderTakeProfit(),0,Pink);
}
 
 for (int ii= OrdersTotal()-1; ii >=0;ii--)
 {
 if (OrderSelect (ii,SELECT_BY_POS,MODE_TRADES))
 if (OrderSymbol() == Symbol ())
 if (OrderMagicNumber() == MagicNumber )
 if (OrderType() == OP_SELL)
 if (OrderOpenPrice() - Ask > breakEven*t )
 if (OrderOpenPrice() < OrderStopLoss ())
 bool x= OrderModify (OrderTicket(),OrderOpenPrice (),OrderOpenPrice (),OrderTakeProfit(),0,Pink);



 }
}
void Trailingstop ()

 {
 
 for (int i= OrdersTotal ()-1; i >=0;i--)
 {
 if (OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
 if (OrderSymbol() == Symbol ())
 if (OrderMagicNumber() == MagicNumber )
 if (OrderType() == OP_BUY)
 if (Bid - OrderOpenPrice ()> TrailingStop*t )
 if (OrderStopLoss()< Bid- TrailingStop*t )
 bool xx= OrderModify (OrderTicket(),OrderOpenPrice (), Bid - (TrailingStop*t),OrderTakeProfit(),0,CLR_NONE);
}



for (int ii= OrdersTotal ()-1; ii >=0;i--)
 {
 if (OrderSelect (ii,SELECT_BY_POS,MODE_TRADES))
 if (OrderSymbol() == Symbol ())
 if (OrderMagicNumber() == MagicNumber )
 if (OrderType() == OP_SELL)
 if (OrderOpenPrice()-Ask> TrailingStop*t )
 if (OrderStopLoss()> Ask+ TrailingStop*t )
 bool x =OrderModify (OrderTicket(),OrderOpenPrice (), Ask + (TrailingStop*t),OrderTakeProfit(),0,CLR_NONE);

}
}

int count(int t){
int T=0;
for (int i = 0; i < OrdersTotal(); i++) {
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
if (OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber) {

    if(OrderType() == OP_BUY&&t==1)T++;
    if(OrderType() == OP_SELL&&t==2)T++;
         
         
      }
   }
   } 
 return(T);
}




رد مع اقتباس