![]() |
رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
سؤال برمجى لو تكرمتم
لما نحب ندخل فى أكسبرت pip_step & pip_step_exponent ونيجى نعرف الـ steps ونقول ; int step2,step3 وبعدها فى البرمجة نكتب ;Step2=pip_step_exponent*Step ;Step3=pip_step_exponent*Step2 يبقى أنا لى سؤالين : السؤال الأول : مش المفروض أن step2 و step3 تاخد القيمة double ؟ ليه بقى ؟ لأن أولا الـstep مرتبطة بالـpoints بمعنى أنى لو pip step = 25وعملت pip step exponent = 1.5 يبقى المفروض الـstep2 = 37.5 لو int هتطلع 38 مش هتطلع بالقيمة الصح ,وبالتالى هتؤثر على قيمة كووووووووووول الـsteps اللى بعدها وهتيجى عند مرحلة معينة وتلاقى الـsteps كلها بقت زى بعضها .. صح ولا غلط ؟ السؤال الثانى : أنا لما اعرّف الـ step2 و الـstep3 فى أول الأكسبرت ، الأكسبرت هيطبق الـpip step exponent على الأتنين دول بس ولا كل الـsteps اللى بعدها ؟ يعنى لو هيطبق الـpip step exponent على الستبين دول بس يبقى انا محتاج أعرف عدد من الـsteps فى الأول بعدد صفقات التبريد اللى أنا محتاجها ؟؟؟؟؟؟؟؟؟؟؟؟؟؟ أرجو الرد ولكم منى جزيل الشكر |
رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
السلام عليكم ورحمة الله تعالى وبركاته
جزاكم الله الف خير على جميع المعلومات التي تقدمونها و جعلها الله صدقة جارية في الدنيا و الاخرة عندي سؤال برمجي الله يبارك فيكم : اذا اردت ان يتم فتح صفقات كلما تحرك السعر عدد من النقاط ستيب , مع شرط ان لا يفتح نفس نوع الصفقة من نفس السعر حاولت كثيرا ان اجد صيغة الشرط او الدالة و لكن لم أفلح اذا ممكن مساعدة //+------------------------------------------------------------------+ //| Hajsoft1.mq4 | //| Copyright 2015, HajSoft | / //+------------------------------------------------------------------+ #property copyright "Copyright 2015, HajSoft"" #property version "1.00" #property strict extern double Lot = 0.01 ; extern int StepOp = 3 ; extern int StepReO = 1 ; extern int TakeProfit = 0 ; extern int HTP = 7 ; extern int MagicNumber = 868380 ; int T,B1,S1,C,B2,S2; double TPB,TPS; bool BE,SE ; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { T = 1 ; if ( Digits == 5 || Digits == 3 ){ T = 10 ;} if ( TakeProfit == 0 ) {TPB = 0;} else {TPB = Ask+TakeProfit*Point*T;} if ( TakeProfit == 0 ) {TPS = 0;} else {TPS = Bid-TakeProfit*Point*T;} B1= OrderSend(Symbol(),OP_BUY,Lot,Ask,4,0,TPB," Buy Initial ",MagicNumber,0,clrSeaGreen); S1 = OrderSend(Symbol(),OP_SELL,Lot,Bid,4,0,TPS," Sell Initial ",MagicNumber,0,clrDarkOrange); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- double OrderStepPriceB2 = LastOpenPriceB() + StepOp*Point*T ; double OrderStepPriceS2 = LastOpenPriceS() - StepOp*Point*T ; //if ( Ask != OrderOpenPrice() ) //if ( Ask >= OrderOpenPrice() + StepReO*Point*T ) //if ( Ask <= OrderOpenPrice ()- StepReO*Point*T ) { if ( Ask > OrderStepPriceB2 ) { B2 = OrderSend(Symbol(),OP_BUY,Lot,Ask,4,0,TPB," Buy Initial ",MagicNumber,0,clrSeaGreen); S2 = OrderSend(Symbol(),OP_SELL,Lot,Bid,4,0,TPS," Sell Initial ",MagicNumber,0,clrDarkOrange); } if ( Bid < OrderStepPriceS2 ) { B2 = OrderSend(Symbol(),OP_BUY,Lot,Ask,4,0,TPB," Buy Initial ",MagicNumber,0,clrSeaGreen); S2 = OrderSend(Symbol(),OP_SELL,Lot,Bid,4,0,TPS," Sell Initial ",MagicNumber,0,clrDarkOrange); } } } double LastOpenPriceB() { for(int i=OrdersTotal()-1;i>=0;i--) { bool s1=OrderSelect(i,SELECT_BY_TICKET,MODE_TRADES); if(OrderSymbol()==Symbol()&&OrderMagicNumber()== MagicNumber && OrderType() == OP_BUY ) { return(OrderOpenPrice());} } return(0); } //--------------------- LastOpenPrice For Sell Order -----------------------+ double LastOpenPriceS() { for(int i=OrdersTotal()-1;i>=0;i--) { bool s1=OrderSelect(i,SELECT_BY_TICKET,MODE_TRADES); if(OrderSymbol()==Symbol()&&OrderMagicNumber()== MagicNumber && OrderType() == OP_SELL ) { return(OrderOpenPrice());} } return(0); } ////////////////////// //+------------------------ Hide TakeProfit For Buy Orders ------------------------------------------+ int HBuyTP() { for( int i=OrdersTotal() ; i>=0 ; i-- ) { if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderType() == OP_BUY) { if (Bid>(OrderOpenPrice() + HTP * Point * T)) { C = OrderClose(OrderTicket(),OrderLots(),Bid,4*T,clrAq uamarine); } } } } return(0); } //+----------------------- Hide TakeProfit For Sell Orders ------------------------------------------+ int HSellTP() { for( int i=OrdersTotal() ; i>=0 ; i-- ) { if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderType() == OP_SELL) { if (Ask<(OrderOpenPrice() - HTP * Point * T)) { C = OrderClose(OrderTicket(),OrderLots(),Ask,4*T,clrAq uamarine); } } } } return(0); } |
رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
السلام عليكم ورحمة الله وبركاته
بارك الله فيكم و رزقكم خير الدنيا و الآخرة على كل المجهودات و المعلومات القيمة عند استفسار جزاكم الله الف خير هل توجد دالة او وظيفة برمجية تمكنني من حفظ قيمة متغير او بمعنى ادق ان اجعل الإكسبيرت يقرأ الاكيوتى قبل فتح اى صفقات ويحتفظ بقيمته وفى الاعدادات نضع خانه ونسميها profit مثلا ونضع شرط الاغلاق اذا كان الاكيوتى الحالى اكبر من او يساوى اخر اكيوتى + profit اغلق جميع العقود ثم يقوم بتخزين قيمة الاكيوتى الجديد ويصبح اخر اكيوتى ثم يبدأ ويستدعى اخر اكيوتى مره اخرى ارجو ان يكون الشرح واضح وفى الحقيقه لا اعلم اذا كانت هذه الفكره قابله للتنفيذ ام لا تقبلو تحياتي |
رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
اقتباس:
،،،وعليكم السلام ورحمة الله وبركاته،،، ،،،يمكن عمل ذلك عن طريق انشاء متغير static ثم نقوم باعطاؤه قيمة الايكويتى الحالى فى الوظيفة oninit وبعد ذلك نقوم فى امر الاغلاق بوضع الشرط المطلوب ثم عند تحقيق الشرط والاغلاق يتم تخزين قيمة الايكويتى الجديدة فى المتغير الذى قمنا بانشائه،،، ،،،وبذلك ستظل قيمة المتغير ثابته ولن تتغير سوى بتحقيق شرط الاغلاق،،، ،،،تقبل تحياتى،،، |
رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
اقتباس:
شكرا جزيلا:1 (73)::1 (105): |
رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
اقتباس:
بارك الله فيك اخي الفاضل الآن عملت متغير static في oninit . و نجحت في حفظ القيمة ثابتة بعد كل تيك . لكن مع اقفال جميع الصفقات ؛ تبقى قيمة المتغير ثابتة لأنه في oninit . و محافظة على نفس القيمة السابقة . فهل من طريقة لتحديثه بعد اغلاق جميع الصفقات ؟ الله يكرمك . و تقبل تحياتي |
رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
اقتباس:
،،،نعم اخى الفاضل يوجد طريقة وهى كما ذكرت لك من قبل يتم اعطاء المتغير القيمة الجديدة بعد تحقق شرط الاغلاق او يمكن بطريقة اخرى وهى التحقق من عدد صفقات الزوج واذا كانت صفر يتم اعطاء المتغير القيمة الجديدة،،، ،،،تحياتى،،، |
رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
السلام عليكم و رحمة الله و بركاته
جزاكم الله الف خير ما هي الصيغة البرمجية او الدالة التي تمكنني من تغيير لون الخلفية للشارت و الوان الشموع فور تشغيل الاكسبيرت او تحميل تمبليت فور وضع الاكسبيرت على الشارت شكرا جزيلا |
رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
مساء الخير
اين قائمه ستارت اللى هبدء وضع الكود فيه بالاصدار الحديث void OnTick() void OnDeinit(const int reason) int OnInit() |
رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
أخى الكريم اسلام العوامى |
الساعة الآن 08:53 PM |
Powered by vBulletin® Copyright ©2000 - 2024
جميع الحقوق محفوظة الى اف اكس ارابيا www.fx-arabia.com