النتائج 8,071 إلى 8,085 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 01-03-2017, 09:19 PM #8071
- 01-03-2017, 10:20 PM #8072
هادى لحضرتك مثال على الرد السابق علشان توضح الصوره اكتر لحضرتك وتفهمنى (دا تبع المشاركه الى فاتت علطول)
يعنى مثلا السطر دا
if (Use.Bar.instead.of.MA) Gi_460 = 1000;
بيقولى انه فيه 4 اخطاء برمجيه لوحده , الى انا فهمته انه ف مشكله فى التعامل مع . دوت . المؤشر انا لما فتحت الكود بتاعه وهو كدا قديم من سنة 2008
دول الاربع اخطاء الى ف الجزء دا , مش عارف المفروض اعمل ايه ف دوت دى المفروض احذفها ولا اعمل فيها ايه حذفتها وبردوا المشكله لسه موجوده
- 01-03-2017, 11:34 PM #8073
- 01-03-2017, 11:38 PM #8074
نعم بسبب التحديث الجديد للغة mq4 فبالتالي الcompiler يقوم بترجمته بناء على اللغه الجديده وفي التحديث الجديد لا يمكن إستخدام النقطه في إسم المتغيرات بالتالي تحتاج إلى تعديل هذه الأخطاء
أو إذا كان لديك نسخة ميتاتريدر قديمه قبل التحديث للغه فيمكنك عمل كمبايل له وسوف يعمل بدون مشاكل
- 02-03-2017, 12:51 AM #8075
شكرا لرد حضرتك السريع استاذ اسامه بس انا دورت على التعديلات الجديده ومش لاقي مش عارف احل المشكله دى ازاى , يعنى المفروض اعدل الكود دا
if (Use.Bar.instead.of.MA) Gi_460 = 1000; ازاى اشيل الدوت واحط ايه طيب او اعملها ازاى ؟
معلش وعندى سؤال اخير هل الحروف دى ليها دلالات برمجيه معينه (Gi و Gd و Gs و Li ) هل ليها دلالات برمجيه معينه ؟
- 02-03-2017, 06:43 AM #8076
- 02-03-2017, 05:51 PM #8077
- 02-03-2017, 07:56 PM #8078
أسعد الله أيامك أستاذ مستر دولار
فضلا طريقة معرفة سعر أقصى هاي من بداية شمعة الساعة 6 لليوم السابق إلى شمعة الساعة 6 لليوم الحالي
استخدمت الطريقة التالية لكنها خاطئة يعطيني سعر مختلف
كود PHP:int b0=iBarShift(Symbol(),0,StrToTime(TimeToStr(TimeCurrent(),TIME_DATE)+" "+"06:00"),false);
int b1=iBarShift(Symbol(),0,StrToTime(TimeToStr(iTime(Symbol(),1440,1),TIME_DATE)+" "+"06:00"),false);
double HighPos=High[iHighest(Symbol(),0,MODE_HIGH,b1,b0)];
Comment(HighPos);
- 03-03-2017, 12:01 AM #8079
السلام عليكم ورحمة الله
أستأذنك أستاذ أسامة كنت محتاج كود لهذة الفكرة
عندى مؤشر وله قيم فى الداتا ويندوز وهى مثلا value1 وهى لليوروvalue2 للدولار value3 للباوند وهكذا بقية العملات
اريد متغير خارجى أكتبة بحيث أختار عملتين على شارت اليورو دولار وهكذا لبقية العملات وذلك لعمل تنبيه وذلك عن طريق عمل مؤشر اخر
لان المشكلة مش هعرف اضيف هذا الكود على نفس المؤشر لانة مغلق الكود
أرجوا ن اكون وضحت لك افكرة
تحياتى لكآخر تعديل بواسطة mohamed2012 ، 03-03-2017 الساعة 12:11 AM
- 03-03-2017, 05:01 AM #8080السلام عليكم
استاذنا القدير أسامة
ما هو الكود الخاص بإضافة عدد من الاوامر المعلقة سيل ستوب وباي ستوب كل مسافة معينة ثابتة
بحيث يمكنني تحديد المسافة بين الصفقات المعلقة من خارج الاكسبيرت
وأيضا يمكنني تحديد عددها
- 03-03-2017, 05:36 PM #8081
السلام عليكم اخي كيف الحال عساك بخير وسعاده
قمت بتكوين دالة خارجيه باستخدام الـ Modify وهي كالاتي :-
كود:void OrdersModify(int type)//دالة تعديل الاهداف حسب النوع { bool s,m; for(int cnt=0;cnt<OrdersTotal();cnt++) { s=OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); string sy=OrderSymbol(); double op=OrderOpenPrice(), sl=OrderStopLoss(), tp=OrderTakeProfit(); int tk=OrderTicket(), ty=OrderType(), mn=OrderMagicNumber() ; if(sy==Symbol()&&mn==magic&&ty==type) { if(ty==OP_SELL) { if(NormalizeDouble(tp,Digits)!=NormalizeDouble(LastOrder("Price",2,OP_SELL),Digits)) { m=OrderModify(tk,op,sl,LastOrder("Price",2,OP_SELL),0,Red); } } if(ty==OP_BUY) { if(NormalizeDouble(tp,Digits)!=NormalizeDouble(LastOrder("Price",2,OP_BUY),Digits)) { m=OrderModify(tk,op,sl,LastOrder("Price",2,OP_BUY),0,Blue); } } } } }
كود:if(Orderscnt(OP_BUY)>1&&Orderscnt(OP_SELL)==0)OrdersModify(OP_BUY);//إذا تحقق وجود أكثر من صفقة شراء يقوم بتفعيل دالة تعديل if(Orderscnt(OP_SELL)>1&&Orderscnt(OP_BUY)==0)OrdersModify(OP_SELL);//إذا تحقق وجود أكثر من صفقة بيع يقوم بتفعيل دالة تعديل
يستمر فتح الصفقات ولكن لا يحرك او يضع الـ Modify فما هو الخلل وهل استخدامي للدالة NormalizeDouble كده صحيح
لاني اشك ان هيا السبب في هذا الموضوع انتظر رد حضرتك وسوف اضع صوره توضيح من الباك تست
حيث ان الـ Modify كانت تعمل بالشكل المطلوب من البداية حتى رقم الصفقة 63 ثم بعد ذلك توقفت عن العمل
لكن دالة الصفقات المعاكسه ودالة ارقام الصفقات تعمل ايضا كل المشكله توقف الـ Modify
وكل الشكر والتقدير لك
- 03-03-2017, 10:11 PM #8082
تم حل الاشكالية ولي استفسار اخر
خلاص اخي مستر دولار بعد عدة محاولات تم اكتشاف الحل جزاك الله كل خير
هذا كود لفتح صفقات عكسيه في حال عكس السعر
كود:if(Orderscnt(OP_BUY)>0&&Ask<=LastOrder("Price",OP_BUY)-Takeprofit*point) { NewLots=LastOrder("Lots",1,OP_BUY)+LastOrder("Lots",2,OP_BUY); buy = OrderSend (Symbol(),OP_BUY,NewLots,Ask,3,0,0,NULL,magic,0,Blue); } //////////////////////////////////////////////////////////////////////////////// if(Orderscnt(OP_SELL)>0&&Bid>=LastOrder("Price",OP_SELL)+Takeprofit*point) { NewLots=LastOrder("Lots",1,OP_SELL)+LastOrder("Lots",2,OP_SELL); sell = OrderSend (Symbol(),OP_SELL,NewLots,Bid,3,0,0,NULL,magic,0,Red); }
مثال على ذلك لدي صفقة Buy وSell وليهم اهداف في حالة اصابة احد الاهداف وليكن Buy الكود يفتح من هدفها واحده Sell معاكسة
بلوت مضاعف يصبح عندي 2 ٍSell بناء على دوال خارجيه عندي احتاج ان اقوله ايضا من نفس المكان افتح واحده اخرى Buy باللوت الافتراضي
جربت باكثر من طريقة لكن لم تفلح معي
وكل الشكر والتقدير لكم
- 04-03-2017, 11:15 PM #8083
- 04-03-2017, 11:23 PM #8084
لدي استفسار بخصوص دالة Modify
بمتابعتي لاحد الاساتذه جزاه الله كل الخير تحصلت على هذا الكود
كود:void OrdersModify(int type) { bool s,m; for(int cnt=0;cnt<OrdersTotal();cnt++) { s=OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); string sy=OrderSymbol(); double op=OrderOpenPrice(), sl=OrderStopLoss(), tp=OrderTakeProfit(); int tk=OrderTicket(), ty=OrderType(), mn=OrderMagicNumber() ; if(sy==Symbol()&&mn==magic&&ty==type) { if(ty==OP_SELL) { if(NormalizeDouble(tp,Digits)!=NormalizeDouble(LastOrder("Price",2,OP_SELL),Digits)) { m=OrderModify(tk,op,sl,LastOrder("Price",2,OP_SELL),0,Red); } } if(ty==OP_BUY) { if(NormalizeDouble(tp,Digits)!=NormalizeDouble(LastOrder("Price",2,OP_BUY),Digits)) { m=OrderModify(tk,op,sl,LastOrder("Price",2,OP_BUY),0,Blue); } } } } }
وكنت اريده ان يضعه للصفقة قبل قبل الاخير يعني للصفقة رقم 3 من اخر صفقة
وقمت بالتعديل على رقم 2 الموجوده في الـ Price واصبح الكود يعمل ولكن بعد اضافة تعديل على التعزيز
في باقي الكود وهو المحدد باللون الاحمر بحيث يفتح صفقة عادية مع التعزيز العكسي في نفس الاتجاه
كود:if(Orderscnt(OP_BUY)>0&&Ask<=LastOrder("Price",OP_BUY)-Takeprofit*point) { SellOrder(); NewLots=LastOrder("Lots",1,OP_BUY)+LastOrder("Lots",2,OP_BUY); buy = OrderSend (Symbol(),OP_BUY,NewLots,Ask,3,0,0,NULL,magic,0,Blue); }
فماهو السبب وكل الشكر لكم جميعا
- 05-03-2017, 02:50 AM #8085
تم الوصول الى الحل الحمد لله وهو انا الرقم 2 لم يعد يعمل بسبب اني فتحت مع التعزيز صفقات في نفسك الاتجاح
وبالتالي عدد الصفقات المترتب على ذلك رالرقم اصبح يزيد رقم وبعد ما حولتها الى 4 تحتلت المشكله الحمد لله
كل الشكر لكم جميعا
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM