![]() |
الاخ MOVING _AVERAGE
السلام عليكم الاخ MOVING_AVERAGE عندي اكسبرت مشغله على حسابي الحقيقي شغال كويس لكن المشكله اللي في انه في اوقات ما ينفذ الاوامر بالرغم من توفر الشرط مع العلم انه لا يعطي رسائل خطاء من السيرفر او غيره لمنع تنفيذ الامر ... وعند عمل باكتست للفرص التي لم ينفذها ... على الحقيقي تجدها ينفذها على الباكتست وهذا كودا الاكسبرت [PHP] datetime Time0; double digits,point; ////////////////////////////////////////////////////// int init() { if((Digits==5) || (Digits==3)) digits=Digits; if((Point==0.001) || (Point==0.00001)) point=Point; return(0); } ////////////////////////////////////////////////////////////// int orderscnt(int type){ int cnt=0; for(int i =0;i<OrdersTotal();i++){ if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){ if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()&&OrderType()==type ){ cnt++; } } } return(cnt); } ///////////////////////////////////////////////////////////////////////// ////////////////// Buy////////////// if (Open[2]<Close[2]&&(Close[2]-Open[2])/point>310&&Open[1]<Close[1]&&Time0!=Time[0]){ if(orderscnt(OP_BUY)+orderscnt(OP_SELL)<1){ if(StopLoss==0){SL=0;}else{SL=Ask-StopLoss*point;} if(TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*poi nt;} OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask ,digits),3*digits,SL,TP,"EA",MagicNumber,0,Blue); Time0=Time[0]; } } ///////////////////// Sell//////////////////////// if (Open[2]>Close[2]&&(Open[2]-Close[2])/point>310&&Open[1]>Close[1]&&Time0!=Time[0]){ if(orderscnt(OP_BUY)+orderscnt(OP_SELL)<1){ if(StopLoss==0){SL=0;}else{SL=Bid+StopLoss*point;} if(TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*point;} OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bi d,digits),3*digits,SL,TP," EA",MagicNumber,0,Red); Time0=Time[0]; } } } [/PHP] الاكسبرت لا يعتمد على اي موشر فقط على الشموع وهذه هي شروط الدخول الاكسبرت جعلته يعمل فقط على منصه الخمسه ارقام لان البروكر خمسه ارقام اخي الكريم اذا ترى اي خطاء في اي كود او صيغة اخرى ممكن كتابة بها الاوامر على هذه الشروط اكون شاكر لك ..... تحاتي |
رد: الاخ MOVING_AVERAGE
هذا الكود غير كامل اخي
تم تجزئة الكود فيه متغيرات كثيرة غير معرفة مثل الستوب لوز والتيك بروفت و النمبرماجيك ياريت تضع الكود الكامل للاكسبريت لكي افحصه |
رد: الاخ MOVING_AVERAGE
شكرا لتكرمك الرد بالنسبة للاكسبرت مكتمل طبعا [PHP] extern string MM_Parameters = " Money Management"; extern double Lots = 1; extern bool UseMoneyManagement = TRUE; extern int RiskPercent = 80; extern string S5=" Order Management"; extern int TakeProfit=100; extern int StopLoss=400; datetime Time0; double digits,point; extern int MagicNumber=3030; int init() { if((Digits==5) || (Digits==3)) digits=Digits; if((Point==0.001) || (Point==0.00001)) point=Point; return(0); } //+------------------------------------------------------------------+ //| FUNCTION DEFINITIONS deinitialization function | //+------------------------------------------------------------------+ void deinit() { Comment("SAeed"); } int orderscnt(int type){ int cnt=0; for(int i =0;i<OrdersTotal();i++){ if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){ if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()&&OrderType()==type ){ cnt++; } } } return(cnt); } //+------------------------------------------------------------------+ //| FUNCTION DEFINITIONS Start function | //+------------------------------------------------------------------+ int start() { double SL,TP; if(UseMoneyManagement) Lots = LotManage(); ////////////////// Buy////////////// if (Open[2]<Close[2]&&(Close[2]-Open[2])/point>310&&Open[1]<Close[1]&&Time0!=Time[0]){ if(orderscnt(OP_BUY)+orderscnt(OP_SELL)<1){ if(StopLoss==0){SL=0;}else{SL=Ask-StopLoss*point;} if(TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*poi nt;} OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask ,digits),3*digits,SL,TP,"EA",MagicNumber,0,Blue); Time0=Time[0]; } } ///////////////////// Sell//////////////////////// if (Open[2]>Close[2]&&(Open[2]-Close[2])/point>310&&Open[1]>Close[1]&&Time0!=Time[0]){ if(orderscnt(OP_BUY)+orderscnt(OP_SELL)<1){ if(StopLoss==0){SL=0;}else{SL=Bid+StopLoss*point;} if(TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*point;} OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bi d,digits),3*digits,SL,TP," EA",MagicNumber,0,Red); Time0=Time[0]; } } } /////////////////////////////////////////////////////////////////////////////////////////////////////// double LotManage() { double lot = MathCeil(AccountFreeMargin() * RiskPercent / 1000) / 100; if(lot<MarketInfo(Symbol(),MODE_MINLOT))lot=Market Info(Symbol(),MODE_MINLOT); if(lot>MarketInfo(Symbol(),MODE_MAXLOT))lot=Market Info(Symbol(),MODE_MAXLOT); return (lot); } [/PHP] مثل ما ذكرت لحظرتك الاكسبرت شغال فقط احيانا يتوفر الشرط لكن لا يدخل باي امر وخاصة في شموع معينة والتي تكون اكبر من الشرط بكثير |
رد: الاخ MOVING_AVERAGE
يالريت تذكر اي بروكر تعمل عليه
|
رد: الاخ MOVING_AVERAGE
اقتباس:
FXDD ايضا نفس المشكله واجهتها على بروكر 4 ارقام |
رد: الاخ MOVING_AVERAGE
ساعمل عليه اليوم اخي
|
رد: الاخ MOVING_AVERAGE
اقتباس:
الاكسبرت فرص الدخول تبعه قليله ... لذلك مراقبته فيها صعوبه شويه لانه يمكن يمر الاسبوع ما يعمل اوامر وخاصه انه يعمل على فريم 15 بالنسبه للنتيجه مذهل جدا ارجو من حضرتك التركيز على كود الدخول بالنسبة للشمعات هل كتابته صحيحه لانه بعد مراجعتي للشارت اجد انه الفرص التي لم يدخل بها عندما يكون اغلاق الشمعات بفارق كبير جدا مثلا عند اغلاق الشمعه (2) وكان الفارق بين الافتتاح والاغلاق اكبرمن 50 نقطه او الشمعه (1) كان فارق كبير بين افتتاحها واغلاقها [PHP] if (Open[2]<Close[2]&&(Close[2]-Open[2])/point>310&&Open[1]<Close[1]&&Time0!=Time[0]){ [/PHP] هل كتابة الكود صحيحه او ممكن كتابته بصيغه اخرى |
رد: الاخ MOVING_AVERAGE
انا راجعت كتابة الكود واضفت بعض التعديلات
الان الاكسبريت يعمل علي كل البروكرات 4 و 5 اضفتلك اضهار تعليق فوق حسب الشمعة رقم 2 اذا كانت صاعدة او هابطة يضهر لك الفرق بين بين الابن و الكلوز للشمعة رقم 2 الاستراتجية تعتمد علي 1- في حالة الصعود صعود الشمعة رقم 2 اكثر من 31 نقطة اذا كانت الشمعة رقم 1 صاعدة ايضا يدخل شراء 2-في خالة الهبوط هبوط الشمعة رقم 2 اكثر او يساوي 31 نقطة اذا كانت الشمعة رقم 1 هابطة يدخل بيع شئ اخر الاستراتجية تعتمد علي هبوطاو صعود كبير في الشمعة والهبوط او الصعود الكبير يكون في اغلب الاحيان في وقت الاخبار حيث يرتفع السبريت كثيرا وكلما ارتفع السبريد يرتفع الستوب لوز الادني الذي تقبله الشركة لتنفيذ الاوامر اخيرا ياريت ترفقلي الاماكن التي لم يدخل فيها |
رد: الاخ MOVING _AVERAGE
شكرا لك تمام كذى الاستراتيجييه هكذى بالنسبه للبروكر هو كان يعمل على 4و 5 لكن قمت بتعديله على ان يعمل على بروكر 5 توقعت يمكن يكون السبب ثانيا بالنسبه للاسبريد والاستوب لوز الاكسبرت دخوله ليس مع الاخبار مباشره يعني بعد شمعتين 15 يكون مر على الخبر نصف ساعة حتى الشركات اللي ترفع الاسبريد اعتقد يكون قد عاد الى طبيعته بعد هذه الفتره الاستوب لوز هو يعمل على استوب لوز 40 نقطه وما اعتقد انها تسبب مشكله ثالثا ... لو الاكسبرت ارسل الامر وتم رفضة من السيرفر لسبب ما اعتقد انه نجده في التعليق تبع الاكسبرت على المنصه ////////////////////////////////////////////////// بالنسبه لفرص الدخول ناخذ مثلا شهر يناير منصه اف اكس دي دي فرص الدخول المتوفره كانت 4 فرص للاسف لم يدخل الا واحده فقط وهذه الاولى التي دخل بها بتاريخ 3/1/2013 13:00 http://im35.gulfup.com/BThd1.gif هذه لم يدخل بها 10/1/2013 16:30 http://im35.gulfup.com/e0Ak2.gif فرصه اخرى ضائعه 11/1/2013 16:00 http://im35.gulfup.com/V0cn3.gif فرصه لم يتم ايضا الدخول بها 22/1/2013 13:30 http://im35.gulfup.com/OQzt4.gif والله اخي احترت في هذا الاكسبرت رغم انه شروط الدخول بسيطه لكن هذه المشكله والاغرب انه على الباك تست شغال تمام ايه المتغيرات اللي تحصل مش عارف رجاء لو تكرمت لو تقدر تعيد صياغة شرط الدخول بطريقتك بالنسبه للبروكر مش مشكله على الخمس نقاط لو اشتغل كويس |
رد: الاخ MOVING _AVERAGE
على فريم 15 على الحقيقي فرص الدخول http://im32.gulfup.com/ssbz1.gif فرصه لم يتم الخول عليها http://im32.gulfup.com/NeW42.gif لم يتم الدخول http://im32.gulfup.com/KfNT3.gif لم يتم الدخول http://im32.gulfup.com/KVR74.gif |
الساعة الآن 10:45 PM |
Powered by vBulletin® Copyright ©2000 - 2025
جميع الحقوق محفوظة الى اف اكس ارابيا www.fx-arabia.com