سؤال برمجى للاستاذ اسلام والاخوة الخبراء
كيف اجعل اللوت فى الاكسبيرت يكون بناءا على نسبة مخاطرة معينة من الحساب لانه احيانا تكون الستوبات متغيرة احيانا 50 نقطة واحيانا 100 نقطة على حسب شروط الاستراتيجية
اريد ان اجعل المخاطرة متساوية دائما يعنى اذا كانت المخاطرة المطلوبة 50 دولار ورصيد الحساب 1000 دولار فعندما يكون الستوب 50 نقطة يتم الدخول الصفقة بواحد دولار للنقطة وعندما يكون الستوب 25 نقطة يتم دخول الصفقة ب2 دولار للنقطة وعندما يكون الستوب 100 نقطة يتم دخول الصفقة بنصف دولار للنقطة ...وهكذا تكون المخاطرة متساوية فى كل الصفقات وهى 50 دولار فى حالة الخسارة تحياتى |
رد: سؤال برمجى للاستاذ اسلام والاخوة الخبراء
اقتباس:
،،،اهلا بك اخي الفاضل ، يمكن عمل ذلك عن طريق عمل متغير خارجي يتم فيه كتابة مبلغ المخاطرة وليكن في مثالك 50 دولار ثم داخل الاكسبيرت يتم كتابة سطر لقسمة هذا المبلغ علي عدد نقاط الاستوب وليكن 50 وسينتج لديك قيمة الدخول للنقطة الواحدة وفي هذا المثال هو 1 دولار ثم نقوم بالقسمة علي 10 لنحصل علي لوت الدخول 0.1 ،،، ،،،تحياتي،،، |
رد: سؤال برمجى للاستاذ اسلام والاخوة الخبراء
اقتباس:
انا حاولت كتابة الكود لكن فى كل مرة تكون الخسارة مختلفة ممكن القاء نظرة على هذا الكود لاكسبيرت تقاطع السعر للموفينج انا كتبت متغير المخاطرة risk بالاعلى وسطر القسمة هو double speed5=risk/SL; Comment(speed5); double Lot=speed5/10; //+------------------------------------------------------------------+ //| ppp.mq4 | //| Copyright 2016, MetaQuotes Software Corp. | //| MQL5: automated forex trading, strategy tester and custom indicators with MetaTrader | //+------------------------------------------------------------------+ #property copyright "Copyright 2016, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict extern double MagicNumber ; extern double risk; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- double ma1,ma2,ma3; ma1=iMA(NULL,0,15,0,MODE_SMA,PRICE_CLOSE,1); ma2=iMA(NULL,0,15,0,MODE_SMA,PRICE_CLOSE,2); ma3=iMA(NULL,0,30,0,MODE_SMA,PRICE_CLOSE,1); double Speed=MathAbs(ma3-Close[1])/Point; Comment(Speed); double Speed2=Speed+400; double SL,TP; if ( ma1>ma3&&Close[2]<ma2&&Close[1]>ma1 ){ SL=Ask-Speed2*Point; TP=Ask+Speed2*Point; ///////////// double speed5=risk/SL; Comment(speed5); double Lot=speed5/10; ////////////// OrderSend(Symbol(),OP_BUY,Lot,Ask,3,SL,TP,"klk",Ma gicNumber,0,Blue); PlaySound("Alert.wav");}} //+------------------------------------------------------------------+ |
رد: سؤال برمجى للاستاذ اسلام والاخوة الخبراء
1 مرفق
هذا هو الاكسبيرت
|
رد: سؤال برمجى للاستاذ اسلام والاخوة الخبراء
1 مرفق
،،،جرب بعد اضافة التعديل المرفق،،، ،،،تحياتي،،، |
رد: سؤال برمجى للاستاذ اسلام والاخوة الخبراء
شكرا استاذ اسلام لكن للاسف فى الباك تست حجم الصفقات الخاسرة بالدولار متغير يفترض انها تكون متساوية
توجد صفقات خاسرة مثلا 1000 دولار وصفقات اخرى خاسرة 500 وصفقات رابحة 400 او 700 وهكذا والصفقات التى ستوبها كبير مثلا 170 او 200 نقطة لا يتم تقليل اللوت بما يكفى لتكون الخسارة مثلا 50 او 500 دولار كما فى اعدادت الاكسبيرت |
الساعة الآن 11:43 PM |
Powered by vBulletin® Copyright ©2000 - 2024
جميع الحقوق محفوظة الى اف اكس ارابيا www.fx-arabia.com