النتائج 1 إلى 13 من 13
  1. #1
    الصورة الرمزية Freax
    Freax غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Oct 2016
    الإقامة
    المغرب
    المشاركات
    13

    Question مساعدة في رسم خط عمودي بعد عدد محدد من الشموع

    السلام عليكم

    احاول لجعل مؤشر بسيط يضع خط عمودي بعد عدد معين من الشموع
    مثال ..... سأدخل التاريخ والمؤشر سيرسم خط عمودي بعد 48 شمعة

    كود:
            
    extern datetime      StartTime=D'2017.09.08 00:00';
    
    datetime time=StartTime+48*PeriodSeconds();
            
            if(ObjectFind("Time48_Vline") != 0){
               ObjectCreate("Time48_Vline", OBJ_VLINE, 0, time, 0);
               ObjectMove("Time48_Vline", 0, time, 0);
             }else{
               ObjectMove("Time48_Vline", 0, time, 0);
             }
    المشكلة في انه سيرسم الخط بعد 34 شمعة من تاريخ البدء !!! وليس 48 كما هو محدد

    أي مساعدة سيكون موضع ترحيب

    شكرا

  2. #2
    الصورة الرمزية Freax
    Freax غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Oct 2016
    الإقامة
    المغرب
    المشاركات
    13

    افتراضي

    تم حل المشكلة شكرا لكم

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة Freax مشاهدة المشاركة
    تم حل المشكلة شكرا لكم
    نرجو طرح الحل هنا اخي
    على مذهبي اي شيء له علاقة بادخال التاريخ افضل ان يكون ضغط بالماوس على شمعة محددة ومنها يلقط تاريخها--ويكون المتغير الخارجي ترفي في هذه الحالة لمن احبه

  4. #4
    الصورة الرمزية Freax
    Freax غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Oct 2016
    الإقامة
    المغرب
    المشاركات
    13

    افتراضي

    بكل سرور اخي

    كود PHP:
            int shift=iBarShift(Symbol(),0,StartTime,false);
            
    int time_48=iTime(Symbol(),PERIOD_CURRENT,shift-48);
            
            if(
    ObjectFind("Current_Time48_Vline") != 0){
               
    ObjectCreate("Current_Time48_Vline"OBJ_VLINE0time_480);
               
    ObjectMove("Current_Time48_Vline"0time_480);
             }else{
               
    ObjectMove("Current_Time48_Vline"0time_480);
             } 

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

    افتراضي

    shift-48 اذا كانت سالب ايش الحل عندك؟

  6. #6
    الصورة الرمزية Freax
    Freax غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Oct 2016
    الإقامة
    المغرب
    المشاركات
    13

    افتراضي

    كود PHP:
    if(126<=shift-1){int time_48=iTime(Symbol(),PERIOD_CURRENT,shift-48);}
    else {
                
    int time_48=iTime(Symbol(),PERIOD_CURRENT,0)+MathAbs(shift-48)*PeriodSeconds(); 
    المرجو التصحيح لو تكرمت

    لاني مازلت جديد في هذه اللغة

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة Freax مشاهدة المشاركة
    كود PHP:
    if(126<=shift-1){int time_48=iTime(Symbol(),PERIOD_CURRENT,shift-48);}
    else {
                
    int time_48=iTime(Symbol(),PERIOD_CURRENT,0)+MathAbs(shift-48)*PeriodSeconds(); 
    المرجو التصحيح لو تكرمت

    لاني مازلت جديد في هذه اللغة
    ممكن يجي منك والله طالما لقطت الاشارة في ردي!

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

    افتراضي

    عرفت ليش يعطيك 34 بدلا من 48---بسبب ثواني السبت والاحد

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

    افتراضي

    اضغط على تايم-1 لالغاء التغيير ةتثبيت القيم بحيث ماتتغير بعد ذلك مهما ضغطت
    وتايم 2 للتغيير-اي ضغطة يأخذ زمنها
    واي ضغط بعد الصفر سيرفضه
    الملفات المرفقة الملفات المرفقة

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

    افتراضي

    كود PHP:
    bool     COND=FALSE;
    string   pairs[28] ;
    string   S[] = {"EUR" ,"GBP" ,"AUD" ,"NZD" ,"USD" ,"CAD" ,"CHF" ,"JPY"};
    string   str;
    int      SetTimer=1;
    extern int bars=48;
    extern color clr_user_time=clrAqua;
    extern color clr_shifted_line=clrYellow;
    string time_1;
    string time_2;
    string Activate="time_2";
    datetime time1;
    datetime time2;
    int bar;

    void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
    {
       if(
    id==CHARTEVENT_CLICK)
       {
       
          
    int      x     =(int)lparam;
          
    int      y     =(int)dparam;
          
    datetime dt    =0;
          
    double   price =0;
          
    int      window=0;
          if(
    ChartXYToTimePrice(0,x,y,window,dt,price))
          {
             
    bar=iBarShift(NULL,0,dt);
             if(
    bar<0bar=0;
             if(
    Activate=="time_2" && bar>=0)
             {   
             
    string NAME1="name_1";
             
    string NAME2="name_2";
             
    time1=Time[bar]; 
             

             
    ObjectDelete(NAME1);
       
    ObjectCreate(NAME1,OBJ_VLINE,0,time1,0);
       
    ObjectSet(   NAME1,OBJPROP_COLOR,clr_user_time);
       
    ObjectSet(   NAME1,OBJPROP_WIDTH,1);
       
    ObjectSet(   NAME1,OBJPROP_SELECTED,FALSE);
       
    ObjectSet(   NAME1,OBJPROP_SELECTABLE,FALSE);   
       
    ObjectSetString(0,NAME1,OBJPROP_TOOLTIP,"user");
       
    ObjectSet(NAME1,OBJPROP_STYLE,0);
       
    int a=bar-bars;
    if(
    a<0)time2=Time[0]+MathAbs(a)*Period()*60;
    else 
    time2=Time[bar-bars];
             
    ObjectDelete(NAME2);
       
    ObjectCreate(NAME2,OBJ_VLINE,0,time2,0);
       
    ObjectSet(   NAME2,OBJPROP_COLOR,clr_shifted_line);
       
    ObjectSet(   NAME2,OBJPROP_WIDTH,1);
       
    ObjectSet(   NAME2,OBJPROP_SELECTED,FALSE);
       
    ObjectSet(   NAME2,OBJPROP_SELECTABLE,FALSE);   
       
    ObjectSetString(0,NAME2,OBJPROP_TOOLTIP,"user");
       
    ObjectSet(NAME2,OBJPROP_STYLE,0);
             
    time_1=TimeToString(time1,TIME_DATE|TIME_MINUTES);
             
    time_2=TimeToString(time2,TIME_DATE|TIME_MINUTES);
             
    Activate="time_2";
             }
          }
       }

       if(
    id==CHARTEVENT_OBJECT_CLICK)
       {
          if(
    StringSubstr(sparam,0,4)=="pair")   {  ChartSetSymbolPeriod(0,ObjectDescription(sparam),PERIOD_CURRENT); OnInit();}

          if(
    sparam=="time_1"){Activate="time_1";}
          if(
    sparam=="time_2"){Activate="time_2";}
       }

    }
    int OnInit()
    {
       
    int j=-1;
       for(
    int i=0;i<=6;i++)
       {
          for(
    int k=i+1;k<=7;k++)
          {
             
    j++;
             
    pairs[j]=S[i]+S[k]+str;
          }
       }
       
    int jj=-1;
       for(
    i=0;i<=27;i++)
       {
          if(
    pairs[i]!=Symbol())
          {
             
    jj++;
             
    color clrc=clrWhite;
             if(
    StringSubstr(pairs[i],0,3)=="USD" || StringSubstr(pairs[i],3,3)=="USD")clrc=clrOrange;
             if(
    StringSubstr(pairs[i],0,3)=="JPY" || StringSubstr(pairs[i],3,3)=="JPY")clrc=clrAqua;
             
    Create_Button("pair"+jj,pairs[i], -333+jj*157016,   9,       C'44,33,0',   clrc,          C'222,222,222',     "TAHOMA");
          }
       }
       
    EventSetTimer(SetTimer);
       
    OnTimer();
       return(
    INIT_SUCCEEDED);
    }
    //+------------------------------------------------------------------+
    void OnDeinit(const int reason)
    {
       
    ObjectsDeleteAll();
       
    EventKillTimer();
    }

    void OnTimer()
    {
       if(
    ObjectFind(0,"pair0")<0OnInit();
       
    color clr1=C'0,0,55';if(Activate=="time_1")clr1=C'190,0,0';
       
    Create_Button("time_1","time_1 = "+time_1450020017,   9,clr1,   C'255,255,255',          clr_user_time,     "time_1");
       
    color clr2=C'0,0,55';if(Activate=="time_2")clr2=C'190,0,0';
       
    Create_Button("time_2","time_2 = "+time_24501620016,   9,  clr2,   C'255,255,255',          clr_shifted_line,     "time_2");
    }


    void Create_Button(string Inpname,string text,  int X,   int Y,   int W,   int H,   int width,   color BackColorcolor TextColorcolor borderColorstring tool)
    {
       
    ObjectDelete(0,Inpname);
       
    ObjectCreate(0,Inpname,OBJ_BUTTON,0,0,0);
       
    ObjectSetInteger(0,Inpname,OBJPROP_XSIZE,W);
       
    ObjectSetInteger(0,Inpname,OBJPROP_YSIZE,H);
       
    ObjectSetInteger(0,Inpname,OBJPROP_CORNER,CORNER_LEFT_UPPER);
       
    ObjectSetInteger(0,Inpname,OBJPROP_XDISTANCE,X);
       
    ObjectSetInteger(0,Inpname,OBJPROP_YDISTANCE,Y);
       
    ObjectSetInteger(0,Inpname,OBJPROP_FONTSIZE,width);
       
    ObjectSetInteger(0,Inpname,OBJPROP_HIDDEN,true);
       
    ObjectSetString(0,Inpname,OBJPROP_TOOLTIP,tool);
       
    ObjectSetInteger(0,  Inpname,OBJPROP_BACK,FALSE); 
       
    ObjectSetInteger(0,  Inpname,OBJPROP_SELECTABLE,FALSE); 
       
    ObjectSetInteger(0,  Inpname,OBJPROP_SELECTED,FALSE); 
       
    ObjectSetInteger(0,  Inpname,OBJPROP_HIDDEN,FALSE); 
       
    ObjectSetInteger(0,  Inpname,OBJPROP_ZORDER,1);    
       
    ObjectSetInteger(0,  Inpname,OBJPROP_BGCOLOR,BackColor);
       
    ObjectSetInteger(0,  Inpname,OBJPROP_BORDER_COLOR,clrLime);
       
    ObjectSetInteger(0,  Inpname,OBJPROP_COLOR,TextColor);  
       
    ObjectSetString(0,   Inpname,OBJPROP_FONT,"TAHOMA"); 
       
    ObjectSetString(0,   Inpname,OBJPROP_TEXT,text);


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

    افتراضي

    ==================
    الصور المصغرة للصور المرفقة الصور المصغرة للصور المرفقة 577.png‏  

  12. #12
    الصورة الرمزية goldfile
    goldfile غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Mar 2007
    الإقامة
    سانت لوسيا
    المشاركات
    752

    افتراضي

    حفظك الله اخي الكريم فيلسوف دائما مبدع .....

  13. #13
    الصورة الرمزية Freax
    Freax غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Oct 2016
    الإقامة
    المغرب
    المشاركات
    13

    افتراضي

    شكرا لك اخي الكريم فيلسوف سلمت يداك
    بس عندي سؤال اخر لو تكرمت!
    عايز اعمل ترند اقوم بتحريكه على الشارت حتى يحدد السعر و زمن اتوماتكيا
    مثل مؤشر ابو حمزة autodetect !!
    لو ممكن فكرة بسيطة
    شكرا


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