النتائج 1 إلى 4 من 4
  1. #1
    تاريخ التسجيل
    Jul 2011
    الإقامة
    السعودية
    المشاركات
    11,147

    افتراضي كود تحديد حركة السعر داخل شموع الفريمات الأكبر

    السلام عليكم اخي اسامة
    هل يمكن ان احدد على شمعة الاربع ساعات او الديلي هاي او للو شمعة الدقيقة ايهما سبق ...
    يعني لدي شمعة للاربع ساعات نازلة ويكون السعر صعد اولا ثم نزل كيف اعرف دلك ... اقصد برمجيا

    -------
    نحتاج هذا الكود كثيرا في الباكتستر الفوري اذا لزم الأمر, خصوصا لأوامر محددة الأهداف والتي دخولها وةالخورج منها على نفس شمعة الديلي مثلاً,
    لذا نعزله في موضوع مستقل,

    سيكون اسمه كبرنامج quasi_search.mq4

    الخوارزم كتابة:
    1) تسجل تاريخ بدء الشمعة على الاربع ساعات
    2) تسجيل تاريخ نهاية الشمعة (يعني بدء الشمعة بعدها)
    فهذا جسد شمعة الاربع ساعات زمنيا
    3) تذهب الى فريم 1 دقيقة
    4) تحول تاريخ البدء الى رقم البارة
    5) تحاول تاريخ النهاية الى رقم بارة
    فيصبح لديك رقمين
    5) تستخدم دوال اكتشاف الهاي او اللو بين الرقمين
    -
    6) رقم بارة الهاي و بارة اللو -- تقارن بينهم ومنها تعرف ايهما سبق.
    ------------
    الكود (دون اخطاء)
    كود PHP:
    int OnInit()
      {
       
    EventSetTimer(1);
       return(
    INIT_SUCCEEDED);
      }
    double high;
    double low;;
    void OnTimer()
    {
       
    int j =  bar_1M_Frame_Start;
       
    int k =  bar_1M_Frame_E_N_D;
       
    high  =  iHigh(NULLPERIOD_M1,   bar_1M_Frame_Start);
       
    low   =  iLow (NULLPERIOD_M1,   bar_1M_Frame_Start);
       
    int iH=bar_1M_Frame_Start;
       
    int iL=bar_1M_Frame_Start;
       for(
    int i=j;i>k;i--)
       {
          if(
    high<iHigh(NULLPERIOD_M1,   i))
          {
             
    high=iHigh(NULLPERIOD_M1,   i);
             
    iH=i;      
          }
          if(
    low>iLow (NULLPERIOD_M1,   i))
          {
             
    low=iHigh(NULLPERIOD_M1,   i);
             
    iL=i;      
          }
       }
             if(
    iH>iLstring  aa="HighFirst";
       else  if(
    iH<iL)         aa="LowxFirst";
       else  if(
    iH==iL)        aa="@sameCandle";
       else                    
    aa="ambiguous";
          
       
    ObjectCreate"aa",OBJ_LABEL,0,0,0);   
       
    ObjectSet(    "aa",OBJPROP_CORNER,0);
       
    ObjectSet(    "aa",OBJPROP_XDISTANCE,0);
       
    ObjectSet(    "aa",OBJPROP_YDISTANCE,60);
       
    ObjectSetText("aa",aa,13,"TAHOMA",clrLime);

          
       
    ObjectCreate"high",OBJ_LABEL,0,0,0);   
       
    ObjectSet(    "high",OBJPROP_CORNER,0);
       
    ObjectSet(    "high",OBJPROP_XDISTANCE,0);
       
    ObjectSet(    "high",OBJPROP_YDISTANCE,20);
       
    ObjectSetText("high","H: "+DoubleToStr(high,MarketInfo(NULL,MODE_DIGITS))+"@"+TimeToStr(iTime(NULL,PERIOD_M1,iH),TIME_DATE|TIME_MINUTES),13,"TAHOMA",clrLime);
       
    ObjectCreate"low",OBJ_LABEL,0,0,0);   
       
    ObjectSet(    "low",OBJPROP_CORNER,0);
       
    ObjectSet(    "low",OBJPROP_XDISTANCE,0);
       
    ObjectSet(    "low",OBJPROP_YDISTANCE,40);
       
    ObjectSetText("low","L: "+DoubleToStr(low,MarketInfo(NULL,MODE_DIGITS))+"@"+TimeToStr(iTime(NULL,PERIOD_M1,iL),TIME_DATE|TIME_MINUTES),13,"TAHOMA",clrOrange);
       
    }
    //+------------------------------------------------------------------+
    //| ChartEvent function                                              |
    ///////////////////////////////////////////////////////////////////
    int bar_1M_Frame_Start;
    int barThisFrame_Start;
    int bar_1M_Frame_E_N_D;
    int barThisFrame_E_N_D;

    void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam)
    {
       if(
    id==CHARTEVENT_CLICK)
       {
          
    //--- Prepare variables
          
    if(Period()>PERIOD_M1)
          {
          
    int      x     =(int)lparam;
          
    int      y     =(int)dparam;
          
    datetime dt    =0;
          
    double   price =0;
          
    int      window=0;
          
    //--- Convert the X and Y coordinates in terms of date/time
          
    if(ChartXYToTimePrice(0,x,y,window,dt,price))
          {

             
    bar_1M_Frame_Start=iBarShift(NULL,PERIOD_M1,dt);
             
    barThisFrame_Start=iBarShift(NULL,0,dt);
             
    barThisFrame_E_N_D=iBarShift(NULL,0,dt)-1;
             
    dt=iTime(NULL,0,barThisFrame_E_N_D);
             
    bar_1M_Frame_E_N_D=iBarShift(NULL,PERIOD_M1,dt);
             }
       }
       }   
      }
    //+------------------------------------------------------------------+ 
    آخر تعديل بواسطة فيلسوف البادية ، 01-08-2017 الساعة 03:39 PM

  2. #2
    تاريخ التسجيل
    Jul 2011
    الإقامة
    السعودية
    المشاركات
    11,147

    افتراضي

    افترض شمعة الديلي قبل سنة! وفريم دقيقة متاح اخر شهرين مثلاً
    لابد هذا الكود يدرك ذلك, فيمتنع عن اي يوم اقدم من الشهرين
    ويذهب لفريم 5 دقيقة
    ثم ربع ساعة

    البرنامج من البداية لابد يعرف ايش تستخدم هل دقيقة ام 5 دقيقة الخ
    آخر تعديل بواسطة فيلسوف البادية ، 01-08-2017 الساعة 03:43 PM

  3. #3
    تاريخ التسجيل
    Jul 2011
    الإقامة
    السعودية
    المشاركات
    11,147

    افتراضي

    https://forum.arabictrader.com/t241406.html

    هذا الموضوع على الرابط--افترض تبي تسوي له باكتست
    وفتحت تشارت الديلي-- هل سعر الهدف وصل له قبل الدخول اساسا ام بعده لو كانت الاوامر لمت في الرابط اعلاه؟؟

    طبعا الرابط اعلاه اوامر باي ستوب وسل ستوب وبالتالي مانحتاج برنامج الكوازي---لأنه يصل السعر اولا ثم يصعد للهدف او العكس في حالة البيع.
    فاومر الستوب بتوعيها---برمجيا اسهل شيء (السبب منطقي مع الاتجاه وبالتالي الدخول حتما قبل الهدف)
    والاشكالية في اومر اللمت التي قد نحتاج فيها برنامج الكوازي سيرتش.

    فأنت وضعت شراء على بعد 20 نقطة من الافتتاح والهدف 50 (يعني 70 نقطة من الافتتاح)---منطقيا يصبل لسعر الدخول ثم لو صعد يجد الهدف
    ولكن مستحيل يطمر للهدف ثم ينزل لسعر الدخول. !!
    آخر تعديل بواسطة فيلسوف البادية ، 01-08-2017 الساعة 03:52 PM

  4. #4
    تاريخ التسجيل
    Jul 2011
    الإقامة
    السعودية
    المشاركات
    11,147

    افتراضي

    https://forum.arabictrader.com/t241456.html
    الرابط ف الرد السابق بالخطأ


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