اف اكس ارابيا..الموقع الرائد فى تعليم فوركس Forex

اف اكس ارابيا..الموقع الرائد فى تعليم فوركس Forex (https://fx-arabia.com/vb/index.php)
-   منتدى المؤشرات و الاكسبيرتات (https://fx-arabia.com/vb/forumdisplay.php?f=6)
-   -   رسم الاسهم بدالة setindexbuffer (https://fx-arabia.com/vb/showthread.php?t=63063)

wizard_gsm 31-12-2019 02:16 PM

رسم الاسهم بدالة setindexbuffer
 
السلام عليكم يا شباب

بعاني مشكلة مع الكود ان الاسعم بتطهر مع كل الشموع....برحاء تقديم يد العون دا مؤشر يطهر سهم مع اول شمعه تفتح فوق الا ema المحدده

int init()
{
//---- indicators
SetIndexStyle(0, DRAW_ARROW, EMPTY);
SetIndexArrow(0, 225);
SetIndexBuffer(0, CrossUp);
SetIndexStyle(1, DRAW_ARROW, EMPTY);
SetIndexArrow(1, 226);
SetIndexBuffer(1, CrossDown);

return(0);
}
//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
MA_ =0 ;
int counted_bars = IndicatorCounted();
int i;
int limit;
if(counted_bars < 0)
return(-1);
if(counted_bars > 0)
counted_bars--;
limit = Bars - counted_bars;
for(i=0; i<=limit; i++)
{
MA_ = iMA(Symbol(),0,MA_Period,0,MA_Type,App_Price,i);
if (Open[i] > MA_ )
{
CrossUp[i]=Low[i] - 0.0010;
}
if (Open[i] < MA_ )
{
CrossDown[i]=High[i] + 0.0010;
}
}
return(0);
}

salamandal 31-12-2019 07:11 PM

رد: رسم الاسهم بدالة setindexbuffer
 
السلام عليكم
انا حاليا اتابع من الهاتف وليس لدي محرر الميتا لمراجعة الكود ولكن سأقترح عليك هذا التعديل
اذهب الى السطر (_if (Open[i] > MA وقم بتعديله الى
if(Open[i+1] < MA_&&Open[i]> MA_)

وان شاء الله ينجح الامر مع عمليات الشراء

salamandal 31-12-2019 07:14 PM

رد: رسم الاسهم بدالة setindexbuffer
 
ثم اذهب الى السطر (_if (Open[i]< MA وقم بتعديله الى
if(Open[i+1]> MA_&&Open[i]< MA_)


وان شاء الله ينجح الامر مع عمليات البيع

wizard_gsm 02-01-2020 09:45 PM

رد: رسم الاسهم بدالة setindexbuffer
 
تمام ان شاء الله اجرب و ابلغ حضرتك بالنتيجة :) متشكر مرورك جدا

wizard_gsm 04-01-2020 09:25 PM

رد: رسم الاسهم بدالة setindexbuffer
 
للاسف مش كفاية لاني عدلت في الكود كتير جدا....ممكن تساعدني لو بعتلك الكود....؟

salamandal 08-01-2020 08:50 PM

رد: رسم الاسهم بدالة setindexbuffer
 
1 مرفق
اقتباس:

المشاركة الأصلية كتبت بواسطة wizard_gsm (المشاركة 963458)
للاسف مش كفاية لاني عدلت في الكود كتير جدا....ممكن تساعدني لو بعتلك الكود....؟

ارجو ان تعذرني يا اخي على التاخر فانا لا استخدم الحاسوب الا عند الضرورة

تفضل المؤضر جاهز في المرفقات

وهذا هو الكود الكامل

كود:



//+------------------------------------------------------------------+
//|                          Wizard_gsm_indicator V1.mq4            |
//|                                Copyright © 2020                |
//|                                                                  |
//|                                                                  |
//+------------------------------------------------------------------+

#property copyright "Copyright © 2020, Wizard_gsm"

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Green
#property indicator_color2 Red
#property indicator_width1  1
#property indicator_width2  1

extern int MA_Period=200;
extern int MA_Type = 1;
extern int App_Price = 0 ;
 bool SoundON=false;
 bool EmailON=false;
 
double CrossUp[];
double CrossDown[];
double pt;
int flagval1 = 0;
int flagval2 = 0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                        |
//+------------------------------------------------------------------+
int init()
  {
  if(Digits==4 || Digits<=2) pt=Point;
  if(Digits==5 || Digits==3) pt=Point*10;
//---- indicators
  SetIndexStyle(0, DRAW_ARROW, EMPTY);
  SetIndexArrow(0, 225);
  SetIndexBuffer(0, CrossUp);
  SetIndexStyle(1, DRAW_ARROW, EMPTY);
  SetIndexArrow(1, 226);
  SetIndexBuffer(1, CrossDown);
//----
  return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                      |
//+------------------------------------------------------------------+
int deinit()
  {
//----

//----
  return(0);
  }


//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start() {
  int limit, i;
  double tmp=0;
  bool CrossedUp = false, CrossedDown = false;
 
  int counted_bars=IndicatorCounted();
//---- check for possible errors
  if(counted_bars<0) return(-1);
//---- last counted bar will be recounted
  if(counted_bars>0) counted_bars--;

  limit=Bars-counted_bars;
 
  for(i = 1; i <= limit; i++) {
 
 
     
      double MA_ = iMA(Symbol(),0,MA_Period,0,MA_Type,App_Price,i);
     
      CrossUp[i] = 0;
      CrossDown[i] = 0;
      CrossedUp = false;
      CrossedDown = false;
     

        if ( Close[i+1] < MA_ && Close[i] > MA_ ) CrossedUp = true;
        if ( Close[i+1] > MA_ && Close[i] < MA_) CrossedDown = true;

     
      if (CrossedUp)
      {
        if (i == 1 && flagval1==0)
        {
          flagval1=1;
          flagval2=0;
          if (SoundON) Alert("BUY signal at Ask=",Ask,"\n Bid=",Bid,"\n Time=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()),"\n Symbol=",Symbol()," Period=",Period());
          if (EmailON) SendMail("BUY signal alert","BUY signal at Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Period="+Period());
        }
        CrossUp[i] = Low[i] - 0.0010;
      }
      else if (CrossedDown)
      {
        if (i == 1 && flagval2==0)
        {
          flagval2=1;
          flagval1=0;
        if (SoundON) Alert("SELL signal at Ask=",Ask,"\n Bid=",Bid,"\n Date=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()),"\n Symbol=",Symbol()," Period=",Period());
        if (EmailON) SendMail("SELL signal alert","SELL signal at Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Period="+Period());
        }
        CrossDown[i] = High[i] + 0.0010;
      }
  }

  return(0);
}


مبتدء تحليل 09-01-2020 05:23 PM

رد: رسم الاسهم بدالة setindexbuffer
 
اخي انت واضع شرط لرسم السهم و كل ما يتحقق الشرط يرسم السهم

يعني كل ما كان الاغلاق فوق او تحت الموفينج يرسم سهم صاعد او نازل

لتحديد السهم باكثر دقة لازم توصف في شرطك الحالة الصحيحة فقط

وهي التقاطع يعني من قبل كان اقل ثم اصبح اعلي او العكس

مثلما وصف لك الاخ سلمندل




الساعة الآن 07:25 PM

Powered by vBulletin® Copyright ©2000 - 2024

جميع الحقوق محفوظة الى اف اكس ارابيا www.fx-arabia.com