النتائج 2,626 إلى 2,640 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 17-08-2012, 06:06 AM #2626
وعليكم السلام ورحمة الله وبركاته
بالنسبه لكود الإكسبرت فهو صحيح لكن لي فقط بعض الملاحظات
أولا بالنسبه للشروط
كود PHP:if (true)
ticket = OrderSend(Symbol(), OP_SELL, SellLots11, Bid, 3, 0, 0, "My Expert", MagicNo, 0, Red);
else
ticket = OrderSend(Symbol(), OP_SELL, SellLots11, Bid, 3, SL, TP, "My Expert", MagicNo, 0, Red);
فسوف تجعله فقط
كود PHP:ticket = OrderSend(Symbol(), OP_SELL, SellLots11, Bid, 3, 0, 0, "My Expert", MagicNo, 0, Red);
if (ticket > -1)
{
if (true)
{
OrderSelect(ticket, SELECT_BY_TICKET);
bool ret = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Red);
if (ret == false)
Print("OrderModify() error - ", ErrorDescription(GetLastError()));
}
}
حتى تستطيع معرفة سبب الخطأ فالإكسبرت يقوم بطباعة رقم الخطأ ووصفه فيجب أن تتأكد ما هو الخطأ الذي يظهر والمفروض أنه طالما يعمل على الديمو فيجب أن يعمل على الحقيقي أيضا
- 17-08-2012, 06:10 AM #2627
نعم يجب أن تنتظر إسبوع كامل حتى تثبت الإشاره وإلا فإنك قد تجد أن الإشارة لجميع الشمعات السابقه الخاصة بالإسبوع تغيرت إشارتها لكن كحل آخر يمكنك إعتماد شمعة التايم فريم التي أغلقت
فمثلا لو كنا نعتمد على فريم الساعه والفريم الصغير هو فريم الربع ساعه
الطبيعي أن الساعه 3:15 و 3:30 فسوف يعتمد على شمعة الساعه 3 الحاليه على فريم الساعه فالحل أن تعتمد على شمعة الساعه 2 لوضع الإشارة الحاليه وهكذا كل شمعه ستأخذ الشمعه التي أغلقت على الفريم الكبير
- 17-08-2012, 07:34 AM #2628
رد:موضوع مخصص للأسئلة البرمجية
- 18-08-2012, 03:05 AM #2629
رد:موضوع مخصص للأسئلة البرمجية
نعم أقصد فـ الإكسيبرتات التي نستخدم معها أمر مودفاي بعد فتح الصفقة وبالنسبة للتيكيت فـ هذه الحالة لدى سؤال
إذا إفترضنا شروط الشراء التى تم تعريف متغير تيكيت داخلها هى
كود PHP:if(SAR1<Open[0]&&SAR2>Close[1]&& T!=Time[0]&&orderstotal()<0){
if(orderstotal()<MaxTrades){
if(StopLoss==0){SL=0;}else{SL=Ask-StopLoss*Point;}
if(TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*Point;}
int ticket=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,digits),5*Q,0,0," EA",MagicNumber,0,Blue);
OrderModify(ticket,OrderOpenPrice(),NormalizeDouble(SL,digits),NormalizeDouble(TP,digits),0,Blue);
T=Time[0];
}
}
كود PHP:if(SAR1>Open[0]&&SAR2<Close[1]&&T!=Time[0]){
if(orderstotal()<MaxTrades){
if(StopLoss==0){SL=0;}else{SL=Bid+StopLoss*Point;}
if(TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*Point;}
ticket=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,digits),5*Q,0,0," EA",MagicNumber,0,Red);
OrderModify(ticket,OrderOpenPrice(),NormalizeDouble(SL,digits),NormalizeDouble(TP,digits),0,Red);
T=Time[0];
}
}
فـ هذه الحالة لماذا لا يظهر خطـأ لعدم تعريف التيكيت !!
- 18-08-2012, 06:20 AM #2630
إذا كنت ستعتمد على تايم فريم أصغر من التايم فريم الحالي لأني لاحظت أنك تستخدم 5 و 15 و 30 دقيقة كفلتر أيضا
فهذا سيجعل المؤشر يعيد رسم الإشاره
هذه المره ستكون المشكله عكس المشكله السابقه في كل مره تتغير إشارة التايم فريم الأصغر ستكون إشارة التايم فريم الحالي ثابته وعند المقارنه قبل إنتهاء الشمعه الحاليه قد تتغير الإشاره لأن قيم شمعة التايم فريم الأصغر قد تغيرت أكثر من مره
- 18-08-2012, 06:31 AM #2631
لأ المتغير تم تعريفه في المره الأولى حتى لو لم تتحقق الشروط
ما أقصده في المشاركه السابقه ليس خطأ عدم تعريف المتغير لكن خطأ أن قيمة المتغير عاد للقيمه الإفتراضيه وهي صفر
--------
لكن في هذا الكود الذي أرفقته فبعد فتح الصفقه مباشرة الآن قيمة ticket= رقم التيكيت للصفقه
تم تنفيذ الأمر OrderModify للصفقه برقم التيكيت الصحيح
عندما تنفيذ الداله start من جديد سوف يتغير رقم التيكيت ليصبح 0
- 18-08-2012, 10:39 AM #2632
رد:موضوع مخصص للأسئلة البرمجية
قمت بعمل الدالة
كود PHP:void ModifyOrders(){
for(int i=0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
int ticket=OrderTicket();
double SL,TP;
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==OP_BUYSTOP){
if(OpenPrice(OP_BUYSTOP)-Bid>30*point){
if(StopLoss==0){SL=0;}else{SL=(Bid+30*point-StopLoss*point);}
if(TakeProfit==0){TP=0;}else{TP=(Bid+30*point+TakeProfit*point);}
OrderModify(ticket,Bid+30*point,SL,TP,0,Blue);
}
}
}
}
كود PHP:if(orderstotal3()>0&&orderstotal2(OP_BUYSTOP)<1&&Shifting_Pending_Orders==true){
ticket2=OrderSend(Symbol(),OP_BUYSTOP,Lots*2,OpenPrice2()+20*point,5*Q,0,0," EA",MagicNumber,0,Blue);}
ModifyOrders();
OrderModify error 1
- 18-08-2012, 08:49 PM #2633
السلام عليكم كل عام والجميع بخير وتقبل الله طاعتكم
اخواني لي طلب بسيط محتاج امر مضاعفات هدج من غير تسكير عقود الاوبزت سقنال
اغلب الاكواد الي عندي تعتمد المضاعفه بعد تسكير العقود الاولى انا ارغب بكود يسمحلي بالمضاعفه مع بقاء العقود الاوليه
لانه عند تسكير العقد الاولي تكون الخساره محققه اما اذا كان مفتوح ممكن تكون معلقه فقط
والمستويات الثابته ماتفرق معاها عملية الهيدج بعكس المستويات المعتمده على مؤشر لانه تكون المضاعفه من مستويات اقرب
اي كود يكون يعتمد على مؤشر وليس مستويات سعريه طبعا مع اغلاق جميع العقود على ربح معين من النقاط اذا هناك اكسبريت شبيه دلوني عليه وانا افكك الاوامر
وكل عام والجميع بخير وعاده الله عليكم بالصحه والعافيه
- 18-08-2012, 10:34 PM #2634
رد:موضوع مخصص للأسئلة البرمجية
كل سنه وانت طيب استاذ اسامه
لدى مشكله بسيطه بأذن الله
اردت ان اعمل داله لغلق الصفقات بعد فتره محدده ولتكن بعد دقيقه واحده
فكتبت الكود بهذا الشكل
كود PHP:bool nowperiod(){
for(int i=0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==magicnumber){
int t=TimeCurrent()-OrderOpenTime()/60;
if (t>1&&closeor==true){return(true);}
if (t<1&&closeor==false){return(false);}
}}
وكتبت فى شروط الدخول
كود PHP:if(nowperiod()){closeorders();}
فأضفت متغير خارجى وهو closeor==false
واضافته بعد ال ordersend لكى يقوم بتعطيل الداله ثم فتحها حينما تتحقق مره اخرى
ولاكن لم يؤثر هذا
فأريد حل لهذه المشكله تجعل الصفقات تغلق بعد وقت محدد ثم يتم فتح الصفقات بصوره طبيعيه مره اخرى اذا تحققت الشروط من جديد
اى توضيح اترك رد لى
وجزاك الله عنا كل خير وكنت عونا لنا دائما
- 20-08-2012, 12:55 AM #2635
- 20-08-2012, 12:56 AM #2636
- 20-08-2012, 01:01 AM #2637
لا يوجد في الكود ما يمنع أن تفتح الصفقات مره أخرى لذلك غالبا المشكله لديك في كود آخر في الإكسبرت
ثانيا لدي ملاحظه
بالنسبه لدالة حساب الوقت في هذا الجزء
كود PHP:int t=TimeCurrent()-OrderOpenTime()/60;
كود PHP:int t=(TimeCurrent()-OrderOpenTime())/60;
- 20-08-2012, 03:14 AM #2638
رد:موضوع مخصص للأسئلة البرمجية
جزاك الله خيرا زعيمنا اسامه بيه
الخطأ لسه مكتشفه حالا كان فى حلقة دالة الاغلاق كانت i-- بدلا من i++
ولاكن يوجد مشكله فى فترات الاغلاق غير متساويه تماما على الرغم انى وضعت الاقواس التى اشرت اليها
ولاكن لا عليك الان بهذه المشكله حتى لا اضيع وقتك سأحاول مع نفسى واذا فشلت فلا ملجأ بعد الله الا اليك
- 20-08-2012, 05:27 PM #2639
رد:موضوع مخصص للأسئلة البرمجية
أعتقد إنك المفروض تعرف المتغير t على أساس إنه رقم عشري double وليس int
لإن ناتج طرح الوقت الحالي من وقت فتح الصفقة مقسوم ÷ 60 ستكون النواتج عشرية
وعندما تقوم بتعريف t على أساس إنه عدد صحيح فإنه سيأخذ الاعداد الصحيحة فقط من الناتج
------------------------------
وأيضاً لو إنت عايزة يقفل بعد دقيقة يجب ان يكون الشرط >= و <=
كود PHP:if (t>=1&&closeor==true){return(true);}
if (t<=1&&closeor==false){return(false);}
- 22-08-2012, 03:40 AM #2640
رد:موضوع مخصص للأسئلة البرمجية
اخي القدير مستر دولار
كنت قد طلبت مساعدتك فربما لم تنتبه لها لكثرة اعمالك الخيرة
في المرفقات يوجد اكسبيرت يعتمد على اغلاقات اول شمعة لفريم الاربع ساعات فقط
وبعد اغلاقها يقوم بعمل حسابات موجودة داخله
لينتظر عند تحقق اي من الشروط ليقوم بفتح صفقة بيع او شراء حسب الشروط
لكن المشكلة انه رغم تفعل الشروط لم يفتح اي صفقة رغم عدم وجود اي خطا واضح
فارجو التكرم والنظر له
الاكسبيرت في المرفقات والمشاركة السابقة في صفحة 172
وتقبل ودي
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM