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

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

اسلام العوامى 26-03-2014 11:28 AM

رد: اكسبيرت تقاطع 3 متوسطات
 
اقتباس:

المشاركة الأصلية كتبت بواسطة حندوسه (المشاركة 688052)
هل من الممكن أننا نعمل متغيرل Orderhistorytotal وندخله جوه لوب بيدأ من وقت الافتتاح للشمعة الحالية وينتهي بعد أربع ساعات بحيث ان Orderhistorytotal يزيد بمقدار 1 فقط خلال الشمعة ولو زاد بمقدار واحد يروح لدالة if بقيمة معينة مثلاً 0 والقيمة دية تكون شرط من الشروط .

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

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

حندوسه 06-04-2014 12:21 AM

رد: اكسبيرت تقاطع 3 متوسطات
 
أخي العزيز شكراً جزيلاً علي تفاعلكم وأيضاً علي الشرح الرائع والبسيط وبناءاً علي هذا الشرح قمت بعمل اكسبيرت لتقاطع تلات متوسطات و قطع موفنج 26 ولم أحصل علي نتائج جيدة لذلك أرجو المساعدةوتوضيح السبب
كود:

//+------------------------------------------------------------------+
//|                                                      sherif.mq4 |
//|                        Copyright 2014, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

extern string M26 = "Moving Average 26";     
extern int period26 = 26;   
extern int shift26 = 0;     
extern int appliedto26 =0;     
extern int method26 = 0;
extern string M156 = "Moving Average 156";     
extern int period156 = 26;   
extern int shift156 = 0;     
extern int appliedto156 =0;     
extern int method156 = 0; 
extern string M01 = "Moving Average 1";     
extern int period1 = 1;   
extern int shift1 = 0;     
extern int appliedto1=0;     
extern int method1 = 0;
extern string M8 = "Moving Average 8";     
extern int period8 = 8;   
extern int shift8 = 0;     
extern int appliedto8 =0;     
extern int method8 = 0;
extern string M0 = "Money Management";     
extern int takeprofit = 40;   
extern int stoploss = 10;     
extern double lot = 1;
double t;
extern int Magic = 12345;
 int time0;
extern int breakeven = 1;
extern int trailingstop = 1 ;
extern int risk = 1 ;
extern bool ESMM = False ;
extern int Multi = 2 ;
//+------------------------------------------------------------------+
//| expert initialization function                                  |
//+------------------------------------------------------------------+
int init()
  {
  double ticksize = MarketInfo(Symbol(),MODE_TICKSIZE);
  if(ticksize == 0.00001 ||0.001)
  t = ticksize*10;
  else
  t = ticksize;
 
  return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                |
//+------------------------------------------------------------------+
int deinit()
  {
//----
 
//----
  return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
  double LMA26 = iMA(Symbol(),PERIOD_H4,period26,shift26,method26,appliedto26,2);
  double NMA26 = iMA(Symbol(),PERIOD_H4,period26,shift26,method26,appliedto26,1);
  double LMA156 = iMA(Symbol(),PERIOD_D1,period156,shift156,method156,appliedto156,2);
  double NMA156 = iMA(Symbol(),PERIOD_D1,period156,shift156,method156,appliedto156,1);
  double LMA8 = iMA(Symbol(),PERIOD_H4,period8,shift8,method8,appliedto8,1);
  double NMA8 = iMA(Symbol(),PERIOD_H4,period8,shift8,method8,appliedto8,1);
  double LMA1 = iMA(Symbol(),PERIOD_H4,period1,shift1,method1,appliedto1,1);
  double NMA1 = iMA(Symbol(),PERIOD_H4,period1,shift1,method1,appliedto1,0);
  double crosspip = 2 ;
  double Newlot = lot ;
 
 
  Print("time0="+time0);
  if(ESMM == TRUE )lot = Lots();
  if(Profitorloss()==false)Newlot =lastlot()*Multi;
  if(Profitorloss()==true)Newlot =lot ;
 
//----BUY CASE+
  if(((NMA1-NMA26>crosspip*t) && LMA1 < NMA26 ) ||( LMA8>LMA1 && NMA1-LMA8>crosspip*t && LMA8>LMA26 && NMA8>NMA26  ))
  if(LMA26>LMA156 && NMA26>NMA156)
  if(time0 != Time[0])
  if( OrdersTotal()==0)
    {
  OrderSend(Symbol(),OP_BUY,Newlot,Ask,3,Ask-(stoploss*t),Ask+(takeprofit*t),"NEW BUY ORDER",Magic,0,clrBlue);
  time0=( Time[0]);
  }
 
//----SELL CASE+
  if(time0 != Time[0] )
  if((NMA26-NMA1 > crosspip*t && NMA26 < LMA1)  ||(LMA8<LMA26 && NMA8<NMA26 && LMA1>LMA8 && LMA8-NMA1 > crosspip*t))
  if(LMA26<LMA156 && NMA26<NMA156 )
  if( OrdersTotal()==0)
    {
  OrderSend(Symbol(),OP_SELL,Newlot,Bid,3,Bid+(stoploss*t),Bid-(takeprofit*t),"NEW SELL ORDER",Magic,0,clrBlue);
  time0=( Time[0]);
  }
  if(breakeven>0)BreakEven();
  if(trailingstop>0)TrailingStop();
//----
  return(0);
  }
//+------------------------------------------------------------------+
//+-------------BREAKEVEN CODE --------------------------------------+
//+------------------------------------------------------------------+

 void BreakEven()
 {
  for(int i =0 ; i<=OrdersTotal() ; i++)
  {
  if(OrderSelect(i,SELECT_BY_POS ,MODE_TRADES))
  if(OrderSymbol()==Symbol())
  if(OrderMagicNumber()==Magic)
  if(OrderType()==OP_BUY)
  if((Bid-OrderOpenPrice())>(breakeven*t))
  if(OrderOpenPrice()>OrderStopLoss())
  OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,CLR_NONE);
  }
  for(int ii =0 ; ii<=OrdersTotal() ; ii++)
  {
  if(OrderSelect(ii,SELECT_BY_POS ,MODE_TRADES))
  if(OrderSymbol()==Symbol())
  if(OrderMagicNumber()==Magic)
  if(OrderType()== OP_SELL)
  if((OrderOpenPrice()-Ask)>breakeven*t)
  if(OrderOpenPrice()< OrderStopLoss())
  OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,clrCyan);
  }
 }
//+------------------------------------------------------------------+
 //+--------------TRAILING STOP CODE---------------------------------+
 //+-----------------------------------------------------------------+
 
 void TrailingStop()
 {
  for(int i =0 ; i<=OrdersTotal() ; i++)
  {
  if(OrderSelect(i,SELECT_BY_POS ,MODE_TRADES))
  if(OrderSymbol()==Symbol())
  if(OrderMagicNumber()==Magic)
  if(OrderType()==OP_BUY)
  if((Bid-OrderOpenPrice())>(trailingstop*t))
  if(OrderStopLoss()<Bid-trailingstop*t)
  OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(trailingstop*t),OrderTakeProfit(),0,CLR_NONE);
  }
  for(int ii =0 ; ii<=OrdersTotal() ; ii++)
  {
  if(OrderSelect(ii,SELECT_BY_POS ,MODE_TRADES))
  if(OrderSymbol()==Symbol())
  if(OrderMagicNumber()==Magic)
  if(OrderType()== OP_SELL)
  if((OrderOpenPrice()-Ask)>trailingstop*t)
  if(OrderStopLoss()> Ask+trailingstop*t)
  OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(trailingstop*t),OrderTakeProfit(),0,clrCyan);
  }
 } 
 
 
//+-----ESMM------------------------------------------------------------+
//+-----ESMM------------------------------------------------------------+
//+-----ESMM------------------------------------------------------------+
 double Lots()
 {
 double lots = MathCeil(AccountFreeMargin()*risk/1000)/100 ;
 if(lots<MarketInfo(Symbol(),MODE_MINLOT))
 lots = MarketInfo(Symbol(),MODE_MINLOT) ;
 if(lots>MarketInfo(Symbol(),MODE_MAXLOT))
 lots = MarketInfo(Symbol(),MODE_MAXLOT) ;
 return(lots);
 }
 
 //+--------MULTI-MULTI----------------------------------------------------------+
 //+--------MULTI-MULTI----------------------------------------------------------+
 
 bool Profitorloss()
 {
 bool Y = true;
 for(int i =0 ; i<=OrdersHistoryTotal() ;i++)
 {
 OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
 if(Symbol()==OrderSymbol()&& OrderMagicNumber() == Magic)
 {
 if(OrderProfit()>0)
 {
 Y=True;
 }
 else
 {
 Y=false;
 }
 }
 }
 return(Y);
 }
 //+------------------------------------------------------------------+
  double lastlot()
  {
  for(int ii =0 ; ii<=OrdersHistoryTotal() ;ii++)
  {
  OrderSelect(ii,SELECT_BY_POS,MODE_HISTORY);
  if(OrderSymbol()== Symbol()&& OrderMagicNumber() == Magic)
  double z = OrderLots();
  }
 return(z);
 }
 //+------------------------------------------------------------------+


سوق ون 13-04-2014 01:28 AM

رد: اكسبيرت تقاطع 3 متوسطات
 
الله يعافيكم ياشباب على هالمجهود
بس عندي استفسار سريع ارجو المعذرة
المؤشر ماحصلته عندي بالمنصة ممكن احد يفيدن وشكرا لكم

سوق ون 14-04-2014 12:30 AM

رد: اكسبيرت تقاطع 3 متوسطات
 
اخوي البدوي بحثت عن الاكسبيرت الي حطيت اعداداته ماحصلته اتمنا ارفاقه وشكرا

المحروم 14-04-2014 12:38 AM

رد: اكسبيرت تقاطع 3 متوسطات
 
كيف احصل على هذا المؤشر

omar barakat 14-04-2014 03:16 PM

رد: اكسبيرت تقاطع 3 متوسطات
 
اقتباس:

المشاركة الأصلية كتبت بواسطة مرشد اليافعي (المشاركة 671505)
أهلا اخي الكريم

هذا اكسبيرت وللاسف لا يوجد له موضوع

الاكسبيرت مدفوع واشتريته من مبرمج عربي أسأل الله أن يوفقه

موفق

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


الساعة الآن 02:00 PM

Powered by vBulletin® Copyright ©2000 - 2024

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