اعلانات المواقع والشركات

جميع المؤشرات والاستراتيجيات خادعه  
[ 1 من 10 ] [ الكاتب : amrhamdy ] [ آخر مشاركة : short ] [ عدد الزوار : 305 ] [ عدد الردود : 17 ]
سؤال لعملاء انتربانك  
[ 2 من 10 ] [ الكاتب : zagar ] [ آخر مشاركة : zagar ] [ عدد الزوار : 7 ] [ عدد الردود : 0 ]
خطة عمل رقميه (قسمة 4)  
[ 3 من 10 ] [ الكاتب : عمران حسن ] [ آخر مشاركة : Ala'a Al.kofahi ] [ عدد الزوار : 4404 ] [ عدد الردود : 251 ]
****صافرة تحذير*****  
[ 4 من 10 ] [ الكاتب : غواص بحر الفوركس ] [ آخر مشاركة : شارت يومي ] [ عدد الزوار : 734 ] [ عدد الردود : 35 ]
اخ لكم في محنه ويسالكم الدعاء بظهر الغيب  
[ 5 من 10 ] [ الكاتب : حكيم سلماني ] [ آخر مشاركة : Unknown ] [ عدد الزوار : 709 ] [ عدد الردود : 65 ]
حكايات المسابقه  
[ 6 من 10 ] [ الكاتب : mr_x9909 ] [ آخر مشاركة : smartart ] [ عدد الزوار : 5623 ] [ عدد الردود : 415 ]
هام لمن ترك صفقات مفتوحه  
[ 7 من 10 ] [ الكاتب : خليل الدعجه ] [ آخر مشاركة : alshame123 ] [ عدد الزوار : 206 ] [ عدد الردود : 15 ]
MILLIONAIRE TRADERS  
[ 8 من 10 ] [ الكاتب : amr s khadr ] [ آخر مشاركة : Ala'a Al.kofahi ] [ عدد الزوار : 124 ] [ عدد الردود : 2 ]
اكسبيرت تم برمجته من احد الاخوة ارجو توضيح مشكلة فيه  
[ 9 من 10 ] [ الكاتب : TEXXON ] [ آخر مشاركة : :: إبراهيم :: ] [ عدد الزوار : 349 ] [ عدد الردود : 36 ]
@@ توصيــــــــــات يوميــــــــــــه على الباونـــد / دولار @@  
[ 10 من 10 ] [ الكاتب : ماجد ،،،، ] [ آخر مشاركة : alshame123 ] [ عدد الزوار : 492909 ] [ عدد الردود : 11641 ]

اعلانات منتجات وخدمات المتداول العربي

العودة   منتديات المتداول العربي > مـنـتـديــات الـمـتـداول الـعـربي > منتدى المؤشرات والاكسبيرتات والبرمجة Indicators & Experts Advisors
التسجيل مركز رفع الملفات الأسئلة الشائعة التقويم اجعل كافة المشاركات مقروءة

رد
 
LinkBack أدوات الموضوع
قديم 15-05-2008, 05:17 PM   #1 (permalink)
معلومات العضو
المتداول العربي

إحصائية العضو
افتراضي طلب مساعدة في صناعة اكسبيرت

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

الكود مرفق
المطلوب فضلا لا امرا
1- اضافة خاصية المضاعفة .
2-اضافة خاصية ايقاف الاكسبيرت عن العمل في فترة زمنية يتم تحديدها من الخارج مثلا من الساعة كذا الى الساعة كذا(لعدم زيادة المضاعفات في فترة التذبذب (الفترة الاسيوية ونهاية الامريكية))


والشكر مقدما مع خالص الدعاء


رمز:
extern double TakeProfit = 30;
extern double StopLoss = 30;
extern double Lots = 0.1;
extern double TrailingStop = 20;
extern double MACDByeLevel = 0.001;
extern double MACDSellLevel = -0.001;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   double MacdCurrent, MacdPrevious;
   int cnt, ticket, total;
   // initial data checks
// it is important to make sure that the expert works with a normal
// chart and the user did not make any mistakes setting external 
// variables (Lots, StopLoss, TakeProfit, 
// TrailingStop) in our case, we check TakeProfit
// on a chart of less than 100 bars
   if(Bars<100)
     {
      Print("bars less than 100");
      return(0);  
     }
   if(TakeProfit<10)
     {
      Print("TakeProfit less than 10");
      return(0);  // check TakeProfit
     }
     // to simplify the coding and speed up access
// data are put into internal variables
   MacdCurrent=iMACD(NULL,0,5,13,1,PRICE_CLOSE,MODE_MAIN,0);
   MacdPrevious=iMACD(NULL,0,5,13,1,PRICE_CLOSE,MODE_MAIN,1);
   total=OrdersTotal();
   if(total<1) 
     {
      // no opened orders identified
      if(AccountFreeMargin()<(1000*Lots))
        {
         Print("We have no money. Free Margin = ", AccountFreeMargin());
         return(0);  
        }
         if(MacdCurrent>MACDByeLevel && MacdPrevious<MacdCurrent)
        {
         ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"macd sample",16384,0,Green);
         if(ticket>0)
           {
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
           }
         else Print("Error opening BUY order : ",GetLastError()); 
         return(0); 
        }
        // check for short position (SELL) possibility
      if(MacdCurrent<MACDSellLevel && MacdPrevious>MacdCurrent)
        {
         ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,"macd sample",16384,0,Red);
         if(ticket>0)
           {
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
           }
         else Print("Error opening SELL order : ",GetLastError()); 
         return(0); 
        }
      return(0);
     }
      // it is important to enter the market correctly, 
   // but it is more important to exit it correctly...   
   for(cnt=0;cnt<total;cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELL &&   // check for opened position 
         OrderSymbol()==Symbol())  // check for symbol
        {
         if(OrderType()==OP_BUY)   // long position is opened
           {
           // should it be closed?
              if(Bid < OrderOpenPrice()-Point*StopLoss)
            {
                 OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position
                 return(0); // exit
                }
            // check for trailing stop
             // check for trailing stop
            if(TrailingStop>0)  
              {                 
               if(Bid-OrderOpenPrice()>Point*TrailingStop)
                 {
                  if(OrderStopLoss()<Bid-Point*TrailingStop)
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
                     return(0);
                    }
                 }
              }
           }
         else // go to short position
           {
            // should it be closed?
               if(Ask > OrderOpenPrice()+ Point*StopLoss)
               {
               OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close position
               return(0); // exit
              }
            // check for trailing stop
            if(TrailingStop>0)  
              {                 
               if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
                 {
                  if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
                     return(0);
                    }
                 }
              }
           }
        }
     }
   return(0);
  }
// the end

Al-Mosuli غير متواجد حالياً   رد باقتباس
قديم 16-05-2008, 12:49 AM   #2 (permalink)
معلومات العضو
المتداول العربي

إحصائية العضو
افتراضي رد: طلب مساعدة في صناعة اكسبيرت

للرفع

Al-Mosuli غير متواجد حالياً   رد باقتباس
رد


أدوات الموضوع

تعليمات المشاركة
لا تستطيع كتابة مواضيع جديدة
لا تستطيع كتابة ردود جديدة
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

رمز [IMG] متاحة
رمز HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة



Powered by vBulletin Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.1.0

الساعة الآن: 07:34 PM.
المتداول العربي RSS Feeds - الاتصال بنا - اقتراحات الزوار - المتداول العربي - الأرشيف - الأعلى تحذير المخاطرة - Risk Disclosure
جميع الحقوق محفوظة لموقع المتداول العربي تصميم الإستايل بواسطة شركة ويب تو أراب
جميع مايطرح في المنتدى لا يعبر بالضرورة عن رأي إدارة المنتدى، وإنما يعبر عن رأي كاتبه، لذلك تخلي إدارة المنتدى مسؤوليتها عما يطرح فيه من آراء وتوصيات

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27