PHP Warning: file_get_contents(https://www.arabictrader.com/arabictrader_storage_server/live_json_feed/at_latest_news.json): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in ..../includes/arabictrader/blue_theme/at_latest_news.php on line 13
النتائج 1 إلى 4 من 4
  1. #1
    الصورة الرمزية yousef2025
    yousef2025 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Dec 2024
    الإقامة
    السعودية
    المشاركات
    48

    افتراضي ارجو من الاساتذة المبرمجين القاء نظرة على هذا الكود

    السلام عليكم ورحمة الله
    اساتذتنا المبرمجين الكرام

    قمت بمحاولة لبرمجة هذا الاكسبيرت
    ارجو القاء نظرة على الكود
    لانه لايعمل للاسف

    فكرة الاكسبيرت
    انه عند بداية التشغيل يقوم برسم 3 مستويات على الشارت
    مستوى رئيسي L1
    مستوى فوقه L2
    مستوى اسفه L3

    يتم تحديد سعر المستوى الرئيسي و المسافة بين الخطوط بادخالها في بداية عمل الاكسبيرت

    المهم
    المفروض اذا لمس السعر المستوى اللي فوق
    يقوم بسحب المستويات الثلاثة الى اعلى

    وعند لمس السعر المستوى اللي في الاسفل
    يقوم بسحب المستويات الثلاثة الى اسفل

    وهكذا
    الفكرة بسيطة

    مرفق صورة تشرح الفكرة
    والكود الذي حاولت كتابته دون جدوى
    كرما القاء نظرة عليه

    هل الدالة
    OnTick()
    لاتقوم بتحديث قيم المستويات الثلاث ؟؟

    كود:
    //+------------------------------------------------------------------+ //| levelsEA.mq4 | //| Copyright 2024, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2024, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" #property strict //--- input parameters extern double trigger; // starting level extern double spacing ; // number of points between levels //--- global variables string L1name = " Trigger level"; string L2name = " level above"; string L3name = " level below"; //calculations double distance = spacing / 100000; // for EURUSD 5 digits plateform double L1 = trigger; double L2 = L1 + distance; double L3 = L1 - distance; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //draw lines //--- create a horizontal line L1 ObjectCreate(0,L1name,OBJ_HLINE,0,0,L1); //--- set line color ObjectSetInteger(0,L1name,OBJPROP_COLOR,clrWhite); //--- set line display style ObjectSetInteger(0,L1name,OBJPROP_STYLE,STYLE_DASH); //--- set line width ObjectSetInteger(0,L1name,OBJPROP_WIDTH,1); //--- create a horizontal line L2 ObjectCreate(0,L2name,OBJ_HLINE,0,0,L2); //--- set line color ObjectSetInteger(0,L2name,OBJPROP_COLOR,clrWhite); //--- set line display style ObjectSetInteger(0,L2name,OBJPROP_STYLE,STYLE_DASH); //--- set line width ObjectSetInteger(0,L2name,OBJPROP_WIDTH,1); //--- create a horizontal line L3 ObjectCreate(0,L3name,OBJ_HLINE,0,0,L3); //--- set line color ObjectSetInteger(0,L3name,OBJPROP_COLOR,clrWhite); //--- set line display style ObjectSetInteger(0,L3name,OBJPROP_STYLE,STYLE_DASH); //--- set line width ObjectSetInteger(0,L3name,OBJPROP_WIDTH,1); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- delete a horizontal line ObjectDelete(0,L1name); ObjectDelete(0,L2name); ObjectDelete(0,L3name); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //------------------------------------------------ // Check if the price reached level above if(Bid == L2) { // change levels to above // calculations L1 = L2; L2 = L1 + distance; L3 = L1 - distance; // move levels on chart ObjectMove(0,L1name,0,0,L1); // move L1 ObjectMove(0,L2name,0,0,L2); // move L2 ObjectMove(0,L3name,0,0,L3); // move L3 } //------------------------------------------------- // Check if the price reached level below if(Bid == L3) { // change levels to below // move levels on chart L1 = L3; L2 = L1 + distance; L3 = L1 - distance; // move levels on chart ObjectMove(0,L1name,0,0,L1); // move L1 ObjectMove(0,L2name,0,0,L2); // move L2 ObjectMove(0,L3name,0,0,L3); // move L3 } } //+------------------------------------------------------------------+
    الصور المصغرة للصور المرفقة الصور المصغرة للصور المرفقة levels.jpg‏  

  2. #2
    الصورة الرمزية yousef2025
    yousef2025 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Dec 2024
    الإقامة
    السعودية
    المشاركات
    48

    افتراضي

    وجدت الحل في الكود
    بدلت ==
    >=
    <=
    لانه السعر احيانا يتحرك بقوة
    ويصير SLIPPAGE
    وانحلت مشكلة الكود

  3. #3
    الصورة الرمزية Algo_Master
    Algo_Master غير متواجد حالياً مشرف المتداول العربي
    تاريخ التسجيل
    Dec 2011
    الإقامة
    مصر
    المشاركات
    1,634

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة yousef2025 مشاهدة المشاركة
    وجدت الحل في الكود
    بدلت ==
    >=
    <=
    لانه السعر احيانا يتحرك بقوة
    ويصير SLIPPAGE
    وانحلت مشكلة الكود
    نعم اخى ،
    و لكن يبقى هذا جزء من حل المشكله ،
    فيجب حصر جميع الاحتمالات اولا ، ثم وضع شرط لكل احتمال ،
    حتى لا يحدث تضارب فى الشروط و بالتالي تضارب بالنتائج ، و هذا مكلف جدا إن حدث ،
    يجب حصر جميع الاحتمالات على مسوده اولا ،،،
    بالتوفيق اخى الكريم
    توقيع العضو
    قسم البرمجه بمنتدى المتداول العربى
    يرحب بكم
    https://forum.arabictrader.com/f31.html

  4. #4
    الصورة الرمزية yousef2025
    yousef2025 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Dec 2024
    الإقامة
    السعودية
    المشاركات
    48

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة Algo_Master مشاهدة المشاركة
    نعم اخى ،
    و لكن يبقى هذا جزء من حل المشكله ،
    فيجب حصر جميع الاحتمالات اولا ، ثم وضع شرط لكل احتمال ،
    حتى لا يحدث تضارب فى الشروط و بالتالي تضارب بالنتائج ، و هذا مكلف جدا إن حدث ،
    يجب حصر جميع الاحتمالات على مسوده اولا ،،،
    بالتوفيق اخى الكريم

    تمام شكرا جزيلا


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17