• 3:57 مساءاً




إعادة برمجة مؤشر الغلاف

إضافة رد
Like Tree3Likes

أدوات الموضوع
عضو نشيط جدا
 
تاريخ التسجيل: Aug 2014
المشاركات: 675
معدل تقييم المستوى: 13
estream is on a distinguished road
افتراضي رد: إعادة برمجة مؤشر الغلاف
21#
06 - 08 - 2023, 12:34 PM
اقتباس:
المشاركة الأصلية كتبت بواسطة سوق أخضر مشاهدة المشاركة
لازم تحدد قصدك ب MTF
هل تريد اكثر من فريم على نفس التشارت . . .
ام مثل اي مؤشر اخر .. يتعدل المنحنى حسب الفريم الحالي ز .

اذا قصدك الاول لابد تضيف متغيرات اضافية لكل فريم اضافي
---
طبعا مع S/R --- الفريمات تتشابه --لأنها قمم او قيعان سابقة . . لادخل لها بالفريم
--
الكود الاخير احترافي وليس مثل الاول . .
استخدم عناصر OnCalculate مثل high - low
وبالتالي نتوقع سرعة هائلة ومايثقل او يهنق التشارت
الاول فيه احتمال للتهنيق
القصد بملتي تايم فريم، اضافه خانه لاختيار التايم فريم مثلا اربع ساعات، و لما اروح لشارت الساعه مثلا... اللي ينرسم خطوط الاربع ساعات و ليس الساعه

الكود الاول والثاني انا مساويهم،،، تجميع
لكن ما عرفت كيف احوله لملتي تايم فريم واضطريت استخدم start لان كل المؤشرات الملتي تايم فريم اللي عندي زي البولينجر و الموفنج افرج تستخدمه...

انا ما ابرمج... انا اجمع الكودات على بعض و اغير حسب اللي محتاجه
لو اني لقيت كود يسوي زي اللي ابيه و يستخدم OnCalculate ، كان حللته و عرفت كيف ممكن استخدمه ،،، لكن ما لقيت
estream غير متواجد حالياً  
رد مع اقتباس

عضو نشيط جدا
 
تاريخ التسجيل: Aug 2014
المشاركات: 675
معدل تقييم المستوى: 13
estream is on a distinguished road
افتراضي رد: إعادة برمجة مؤشر الغلاف
22#
06 - 08 - 2023, 12:40 PM
يعني مثلا
اكسبيرت ضحى اللي انتا نزلته في موضوع الفرضيات العشوائية
انا مبسوط فيه
لأني بستخدم الكود و اعدل عليه و افحص فرضيات في بالي،، سواء لمؤشرات او candle patterns
حللت الكود و فهمت منطقيته ،، و بغير فيه فقط الجزء اللي يغير الفرضيه او يستدعي قيم جديدة
لكن ما اعرف اكتبه من البداية لاني ما اعرف اي شيء في البرمجة
ممكن اذا صار عندي وقت في المستقبل اتعلم ان شاء الله
estream غير متواجد حالياً  
رد مع اقتباس
عضو برونزي
 
تاريخ التسجيل: Sep 2019
المشاركات: 2,464
معدل تقييم المستوى: 0
سوق أخضر is on a distinguished road
افتراضي رد: إعادة برمجة مؤشر الغلاف
23#
06 - 08 - 2023, 12:47 PM
اقتباس:
المشاركة الأصلية كتبت بواسطة estream مشاهدة المشاركة
القصد بملتي تايم فريم، اضافه خانه لاختيار التايم فريم مثلا اربع ساعات، و لما اروح لشارت الساعه مثلا... اللي ينرسم خطوط الاربع ساعات و ليس الساعه
اووووووه
يعني ماعندك مشكلة . .
في هذه الحالة دوال التايم سيريز ضرورة . . مثل iHigh
استخدمها بدل high. low
ولكن في خانة التايم فريم . . اكتب مثلا PERIOD_H4 بدلا من 0
او ضعها متغير خارجي مستخدما ENUM_TIMEFRAMES كاداة تعريف وليس int

تشيل كل هاي وتحط iHigh (له 3 براماترز--null ثم متغير الفريم او قيمته ثم i رقم الشمعة)


احب تسويها انت اول على الكود الاخير اللي طرحته
لاداعي لـ iHighrst وماشابه
سوق أخضر غير متواجد حالياً  
رد مع اقتباس
عضو برونزي
 
تاريخ التسجيل: Sep 2019
المشاركات: 2,464
معدل تقييم المستوى: 0
سوق أخضر is on a distinguished road
افتراضي رد: إعادة برمجة مؤشر الغلاف
24#
06 - 08 - 2023, 12:51 PM
بالمناسبة الغباء في الكود اعلاه - حق الخواجة--لابد تتخلص منها
لاتحتاج متغيرين كل واحد بقيمة 50 ؟؟
متغيير واحد يكفي
سوق أخضر غير متواجد حالياً  
رد مع اقتباس
عضو برونزي
 
تاريخ التسجيل: Sep 2019
المشاركات: 2,464
معدل تقييم المستوى: 0
سوق أخضر is on a distinguished road
افتراضي رد: إعادة برمجة مؤشر الغلاف
25#
06 - 08 - 2023, 12:53 PM
كود:
//+------------------------------------------------------------------+
//|                                                 simple lines.mq4 |
//|                        Copyright 2023, MetaQuotes Software Corp. |
//|                                             [عذراً, فقط الأعضاء يمكنهم مشاهدة الروابط ] |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
#property copyright   "H.L Lines Ind"
#property link        "[عذراً, فقط الأعضاء يمكنهم مشاهدة الروابط ]"
#property description "H.L Lines"
#property strict

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red          // Low / Minor
#property indicator_color2 Blue         // High / Major
input ENUM_TIMEFRAMES frame=PERIOD_H4;

//--- input parameters
input int InpMinor=50;    // Low
input int InpMajor=50;   // High
//--- buffers
double ExtMinorBuffer[];
double ExtMajorBuffer[];

//---
int    ExtBegin;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit(void)
  {
   IndicatorDigits(Digits);
//---
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMinorBuffer);
   SetIndexDrawBegin(0,InpMinor-1);
   SetIndexLabel(0,"Minor");
//---
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,ExtMajorBuffer);
   SetIndexDrawBegin(1,InpMajor-1);
   SetIndexLabel(1,"Major");
//---
   ExtBegin=InpMajor;
   if(ExtBegin<InpMinor)
      ExtBegin=InpMinor;
//--- initialization done
  }
//+------------------------------------------------------------------+
//| H.L Indictor Lines                                             |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   int    i,k,pos;
   double high_value,low_value;
//---
   if(rates_total<=InpMinor || rates_total<=InpMajor)
      return(0);
//--- counting from 0 to rates_total
   ArraySetAsSeries(ExtMinorBuffer,false);
   ArraySetAsSeries(ExtMajorBuffer,false);
   ArraySetAsSeries(open,false);
   ArraySetAsSeries(high,false);
   ArraySetAsSeries(low,false);
   ArraySetAsSeries(close,false);
//--- initial zero
   if(prev_calculated<1)
     {
      for(i=0; i<InpMinor; i++)
         ExtMinorBuffer[i]=0.0;
      for(i=0; i<InpMajor; i++)
         ExtMajorBuffer[i]=0.0;
      for(i=0; i<ExtBegin; i++)
     }
//--- Minor
   pos=InpMinor-1;
   if(prev_calculated>InpMinor)
      pos=prev_calculated-1;
   for(i=pos; i<rates_total; i++)
     {
      high_value=iHigh(NULL,frame,i);
      low_value=iLow(NULL,frame,i);
      k=i+1-InpMinor;
      while(k<=i)
        {
         if(high_value<iHigh(NULL,frame,k))
            high_value=iHigh(NULL,frame,k);
         if(low_value>iLow(NULL,frame,k))
            low_value=iLow(NULL,frame,k);
         k++;
        }
      ExtMinorBuffer[i]=high_value-((high_value-low_value)*0.1);
     }
//--- Major
   pos=InpMajor-1;
   if(prev_calculated>InpMajor)
      pos=prev_calculated-1;
   for(i=pos; i<rates_total; i++)
     {
      high_value=iHigh(NULL,frame,i);
      low_value=iLow(NULL,frame,i);
      k=i+1-InpMajor;
      while(k<=i)
        {
         if(high_value<iHigh(NULL,frame,k))
            high_value=iHigh(NULL,frame,k);
         if(low_value>iLow(NULL,frame,k))
            low_value=iLow(NULL,frame,k);
         k++;
        }
      ExtMajorBuffer[i]=low_value-((high_value-low_value)*0.1);
     }
//---
   return(rates_total);
  }
//+------------------------------------------------------------------+
سوق أخضر غير متواجد حالياً  
رد مع اقتباس
عضو نشيط جدا
 
تاريخ التسجيل: Aug 2014
المشاركات: 675
معدل تقييم المستوى: 13
estream is on a distinguished road
افتراضي رد: إعادة برمجة مؤشر الغلاف
26#
06 - 08 - 2023, 01:13 PM
اقتباس:
المشاركة الأصلية كتبت بواسطة سوق أخضر مشاهدة المشاركة
بالمناسبة الغباء في الكود اعلاه - حق الخواجة--لابد تتخلص منها
لاتحتاج متغيرين كل واحد بقيمة 50 ؟؟
متغيير واحد يكفي
انا مسويها متغيرين
لغاية معينه
التحكم بالسرعات
estream غير متواجد حالياً  
رد مع اقتباس
عضو برونزي
 
تاريخ التسجيل: Sep 2019
المشاركات: 2,464
معدل تقييم المستوى: 0
سوق أخضر is on a distinguished road
افتراضي رد: إعادة برمجة مؤشر الغلاف
27#
06 - 08 - 2023, 01:21 PM
اقتباس:
المشاركة الأصلية كتبت بواسطة estream مشاهدة المشاركة
انا مسويها متغيرين
لغاية معينه
التحكم بالسرعات
ولكن غير منطقية--عقلا غير مقبول . . ويخل بمبادئ اساسية . .لأن كل خط وضعت له معادلة معينة -- في هذه الحالة تصير الشغلة اخي خبيص
اي شي نطبقه على الهاي . .. يفترض ينطبقه على اللو .. طالما الخطين مستقلين عن بعض
لو كان اللعب على نفس الخط ممكن نقبل كلامك
سوق أخضر غير متواجد حالياً  
رد مع اقتباس
عضو برونزي
 
تاريخ التسجيل: Sep 2019
المشاركات: 2,464
معدل تقييم المستوى: 0
سوق أخضر is on a distinguished road
افتراضي رد: إعادة برمجة مؤشر الغلاف
28#
06 - 08 - 2023, 01:27 PM
بعد ما تعرف ان التايم سيريز يهنق الجهاز
جرب الحلول الذكية . .
مثلا:
كود:
//+------------------------------------------------------------------+
//|                                                 simple lines.mq4 |
//|                        Copyright 2023, MetaQuotes Software Corp. |
//|                                             [عذراً, فقط الأعضاء يمكنهم مشاهدة الروابط ] |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
#property copyright   "H.L Lines Ind"
#property link        "[عذراً, فقط الأعضاء يمكنهم مشاهدة الروابط ]"
#property description "H.L Lines"
#property strict

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red          // Low / Minor
#property indicator_color2 Blue         // High / Major
input ENUM_TIMEFRAMES frame=PERIOD_H4;


//--- input parameters
input int InpMinor=50;    // Low
input int InpMajor=50;   // High
//--- buffers
double ExtMinorBuffer[];
double ExtMajorBuffer[];

//---
int    ExtBegin;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit(void)
  {
   IndicatorDigits(Digits);
//---
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMinorBuffer);
   SetIndexDrawBegin(0,InpMinor-1);
   SetIndexLabel(0,"Minor");
//---
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,ExtMajorBuffer);
   SetIndexDrawBegin(1,InpMajor-1);
   SetIndexLabel(1,"Major");
//---
   ExtBegin=InpMajor;
   if(ExtBegin<InpMinor)
      ExtBegin=InpMinor;
//--- initialization done
  }
//+------------------------------------------------------------------+
//| H.L Indictor Lines                                             |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   int    i,k,pos;
   double high_value,low_value;
per=int(double(InpMajor)/double(Period())*frame);

   if(rates_total<=InpMinor || rates_total<=InpMajor)
      return(0);
//--- counting from 0 to rates_total
   ArraySetAsSeries(ExtMinorBuffer,false);
   ArraySetAsSeries(ExtMajorBuffer,false);
   ArraySetAsSeries(open,false);
   ArraySetAsSeries(high,false);
   ArraySetAsSeries(low,false);
   ArraySetAsSeries(close,false);
//--- initial zero
   if(prev_calculated<1)
     {
      for(i=0; i<per; i++)
         ExtMinorBuffer[i]=0.0;
      for(i=0; i<per; i++)
         ExtMajorBuffer[i]=0.0;
      for(i=0; i<ExtBegin; i++)
     }
//--- Minor
   pos=per-1;
   if(prev_calculated>per)
      pos=prev_calculated-1;
   for(i=pos; i<rates_total; i++)
     {
      high_value=high[i];
      low_value=low[i];
      k=i+1-per;
      while(k<=i)
        {
         if(high_value<high[k])
            high_value=high[k];
         if(low_value>low[k])
            low_value=low[k];
         k++;
        }
      ExtMinorBuffer[i]=high_value-((high_value-low_value)*0.1);
     }
//--- Major
   pos=per-1;
   if(prev_calculated>per)
      pos=prev_calculated-1;
   for(i=pos; i<rates_total; i++)
     {
      high_value=high[i];
      low_value=low[i];
      k=i+1-per;
      while(k<=i)
        {
         if(high_value<high[k])
            high_value=high[k];
         if(low_value>low[k])
            low_value=low[k];
         k++;
        }
      ExtMajorBuffer[i]=low_value-((high_value-low_value)*0.1);
     }
//---
   return(rates_total);
  }
//+------------------------------------------------------------------+
int per;
سوق أخضر غير متواجد حالياً  
رد مع اقتباس
عضو نشيط جدا
 
تاريخ التسجيل: Aug 2014
المشاركات: 675
معدل تقييم المستوى: 13
estream is on a distinguished road
افتراضي رد: إعادة برمجة مؤشر الغلاف
29#
06 - 08 - 2023, 01:28 PM
اقتباس:
المشاركة الأصلية كتبت بواسطة سوق أخضر مشاهدة المشاركة
اووووووه
يعني ماعندك مشكلة . .
في هذه الحالة دوال التايم سيريز ضرورة . . مثل iHigh
استخدمها بدل high. low
ولكن في خانة التايم فريم . . اكتب مثلا PERIOD_H4 بدلا من 0
او ضعها متغير خارجي مستخدما ENUM_TIMEFRAMES كاداة تعريف وليس int

تشيل كل هاي وتحط iHigh (له 3 براماترز--null ثم متغير الفريم او قيمته ثم i رقم الشمعة)


احب تسويها انت اول على الكود الاخير اللي طرحته
لاداعي لـ iHighrst وماشابه

اعتقد ما رح ينفع
لانه المطلوب ارجاع قيمة اعلى هاي في ال50 شمعة الماضية على شارت الاربع ساعات

iHigh رح يعطيني قيمه "high" الشمعه الحاليه او شمعه معينه بحسب الشيفت

iHighest هو اللي بيعطي قيمة اعلى "high" في مجموعه شموع

الكود حسب ما هو مكتوب بينفذ الفكرة صح،، لكن غير مستقر
estream غير متواجد حالياً  
رد مع اقتباس
عضو نشيط جدا
 
تاريخ التسجيل: Aug 2014
المشاركات: 675
معدل تقييم المستوى: 13
estream is on a distinguished road
افتراضي رد: إعادة برمجة مؤشر الغلاف
30#
06 - 08 - 2023, 01:39 PM
اقتباس:
المشاركة الأصلية كتبت بواسطة سوق أخضر مشاهدة المشاركة
بعد ما تعرف ان التايم سيريز يهنق الجهاز
جرب الحلول الذكية . .
مثلا:
كود:
//+------------------------------------------------------------------+
//|                                                 simple lines.mq4 |
//|                        Copyright 2023, MetaQuotes Software Corp. |
//|                                             [عذراً, فقط الأعضاء يمكنهم مشاهدة الروابط ] |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
#property copyright   "H.L Lines Ind"
#property link        "[عذراً, فقط الأعضاء يمكنهم مشاهدة الروابط ]"
#property description "H.L Lines"
#property strict

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red          // Low / Minor
#property indicator_color2 Blue         // High / Major
input ENUM_TIMEFRAMES frame=PERIOD_H4;


//--- input parameters
input int InpMinor=50;    // Low
input int InpMajor=50;   // High
//--- buffers
double ExtMinorBuffer[];
double ExtMajorBuffer[];

//---
int    ExtBegin;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit(void)
  {
   IndicatorDigits(Digits);
//---
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMinorBuffer);
   SetIndexDrawBegin(0,InpMinor-1);
   SetIndexLabel(0,"Minor");
//---
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,ExtMajorBuffer);
   SetIndexDrawBegin(1,InpMajor-1);
   SetIndexLabel(1,"Major");
//---
   ExtBegin=InpMajor;
   if(ExtBegin<InpMinor)
      ExtBegin=InpMinor;
//--- initialization done
  }
//+------------------------------------------------------------------+
//| H.L Indictor Lines                                             |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   int    i,k,pos;
   double high_value,low_value;
per=int(double(InpMajor)/double(Period())*frame);

   if(rates_total<=InpMinor || rates_total<=InpMajor)
      return(0);
//--- counting from 0 to rates_total
   ArraySetAsSeries(ExtMinorBuffer,false);
   ArraySetAsSeries(ExtMajorBuffer,false);
   ArraySetAsSeries(open,false);
   ArraySetAsSeries(high,false);
   ArraySetAsSeries(low,false);
   ArraySetAsSeries(close,false);
//--- initial zero
   if(prev_calculated<1)
     {
      for(i=0; i<per; i++)
         ExtMinorBuffer[i]=0.0;
      for(i=0; i<per; i++)
         ExtMajorBuffer[i]=0.0;
      for(i=0; i<ExtBegin; i++)
     }
//--- Minor
   pos=per-1;
   if(prev_calculated>per)
      pos=prev_calculated-1;
   for(i=pos; i<rates_total; i++)
     {
      high_value=high[i];
      low_value=low[i];
      k=i+1-per;
      while(k<=i)
        {
         if(high_value<high[k])
            high_value=high[k];
         if(low_value>low[k])
            low_value=low[k];
         k++;
        }
      ExtMinorBuffer[i]=high_value-((high_value-low_value)*0.1);
     }
//--- Major
   pos=per-1;
   if(prev_calculated>per)
      pos=prev_calculated-1;
   for(i=pos; i<rates_total; i++)
     {
      high_value=high[i];
      low_value=low[i];
      k=i+1-per;
      while(k<=i)
        {
         if(high_value<high[k])
            high_value=high[k];
         if(low_value>low[k])
            low_value=low[k];
         k++;
        }
      ExtMajorBuffer[i]=low_value-((high_value-low_value)*0.1);
     }
//---
   return(rates_total);
  }
//+------------------------------------------------------------------+
int per;
100%
اضافات بسيطة عملت المطلوب و بكفاءة
وهذا اللي بيصنع الفارق بين الناس
انا فهمت اللي انتا عملته بالمجمل
لكن قاعد احاول افهم منطقيه هذا السطر
per=int(double(InpMajor)/double(Period())*frame);
estream غير متواجد حالياً  
رد مع اقتباس


إضافة رد



جديد مواضيع منتدى المؤشرات و الاكسبرتات

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
إعادت برمجة أكسبيرت من صنعك أخ سمير basharbna منتدى المؤشرات و الاكسبرتات 36 23 - 12 - 2018 12:11 PM
فرص مؤشر الغلاف: (10\2 ديلي) نمبر ون منتدى تداول العملات العام 3 29 - 01 - 2017 04:48 PM
برنامج صغيرجداً لإغلاق او إعادة تشغيل الكمبيوتر في ثوانى والمفاجئة برمجة عربية موزة حمد استراحة بورصات 0 20 - 01 - 2013 10:58 AM
طلب برمجة مؤشر theatco منتدى المؤشرات و الاكسبرتات 34 12 - 07 - 2010 01:15 AM


03:57 PM