← К каталогу
Исходный код · ID 1489

mv-i_lease_pitchfork_on_all_tf.mq4

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Индикатор mv-i lease pitchfork on all TF для MetaTrader 4 (MQL4) предназначен для построения объектов «вилок Эндрю» на графике цены на основе обнаруженных фракталов. Он работает одновременно на двух таймфреймах: нижнем (текущий период графика) и верхнем (задаваемый пользователем). Индикатор использует стандартную функцию iFractals для определения экстремумов и создаёт графические объекты OBJ_PITCHFORK с заданным цветом и стилем линий.

Настройки программы

НастройкаОписание
Ind_Coment1 Ind_Coment1 — Текстовый разделитель-заголовок в панели настроек индикатора для группы параметров нижнего таймфрейма.
Ind_Coment2 Ind_Coment2 — Текстовый разделитель-заголовок в панели настроек индикатора для группы параметров верхнего таймфрейма.
Получить полный код

Поиск по коду файла

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 CornflowerBlue
#property indicator_color2 Tomato
#property indicator_width1 1
#property indicator_width2 1
#property indicator_color3 CornflowerBlue
#property indicator_color4 Tomato
#property indicator_width3 1
#property indicator_width4 1

extern string Ind_Coment1= "--- ????????? ???????? ?????????? ---";
extern bool  ShowFractals.LowerTF      = false;    // ???/???? ??????? ?????????
extern bool  OnAlert.Pitchfork.LowerTF = false;    // ???/???? ??????? ??? ????????? ?????? ??????
extern int   nPitchfork.Upper.LowerTF  =     1;    // ?????????? ????????? ?????????? "??? ???????"
extern int   nPitchfork.Lower.LowerTF  =     1;    // ?????????? ????????? ?????????? "??? ???????"
extern bool  ShowPitchfork.LowerTF     =  true;    // ???/???? "??? ???????" ???????? ??????????
extern string Ind_Coment2= "--- ????????? ???????? ?????????? ---";
extern int   TF.Upper                  =  1440;    // ??????? ?????????
extern bool  ShowFractals.UpperTF      = false;    // ???/???? ??????? ?????????
extern bool  OnAlert.Pitchfork.UpperTF = false;    // ???/???? ??????? ??? ????????? ?????? ??????
extern int   nPitchfork.Upper.UpperTF  =     1;    // ?????????? ????????? ?????????? "??? ???????"
extern int   nPitchfork.Lower.UpperTF  =     1;    // ?????????? ????????? ?????????? "??? ???????"
extern bool  ShowPitchfork.UpperTF     =  true;    // ???/???? "??? ???????" ???????? ??????????

int          nBars.LowerTF             =     0,    // ???-?? ????? ???????? ??????????
             nBars.UpperTF             =     0;    // ???-?? ????? ???????? ??????????
int          QntPitchfork.Upper.LowerTF=     0;    // ?????????? ??? ???????????? ?????????? "??? ???????"
int          QntPitchfork.Lower.LowerTF=     0;    // ?????????? ??? ???????????? ?????????? "??? ???????"
int          QntPitchfork.Upper.UpperTF=     0;    // ?????????? ??? ???????????? ?????????? "??? ???????"
int          QntPitchfork.Lower.UpperTF=     0;    // ?????????? ??? ???????????? ?????????? "??? ???????"

double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];

void init()  {
      // код доступен только после оплаты
   }

void start() {
      // код доступен только после оплаты
   }

bool isNewBar.LowerTF() {  // ??????? ?????????? true, ???? ????????? ????? ??? ?? ??????? ??????????
  if(nBars.LowerTF!=Bars) {
    nBars.LowerTF=Bars; return(true);
  }
  return(false);
}

bool isNewBar.UpperTF(datetime DateTime_) {  // ??????? ?????????? true, ???? ????????? ????? ??? ?? ??????? ??????????
  if(nBars.UpperTF!=iBarShift(NULL, TF.Upper, DateTime_, false)) {
    nBars.UpperTF=iBarShift(NULL, TF.Upper, DateTime_, false); return(true);
  }
  return(false);
}

bool DrawUpperPitchfork(int nBar, int TF=0)  {  // ??????? ?????????? ? ?????? ?????????? "???? ???????"
double Fractals.Upper=0,Fractals.Lower=0;
string mFractals[3][3];
int i,j=0;

  for (i=nBar; i<Bars; i++)   {  // ???? ?? ?????
    Fractals.Upper=iFractals(NULL,TF,MODE_UPPER,i);
    Fractals.Lower=iFractals(NULL,TF,MODE_LOWER,i);

    if(Fractals.Lower>0)  {
      mFractals[j][0]=TimeToStr(iTime(NULL,TF,i),TIME_DATE|TIME_MINUTES);
      mFractals[j][1]=DoubleToStr(Fractals.Lower,Digits);
      mFractals[j][2]=-1;
      j++;
    }
    if(Fractals.Upper>0)  {
      mFractals[j][0]=TimeToStr(iTime(NULL,TF,i),TIME_DATE|TIME_MINUTES);
      mFractals[j][1]=DoubleToStr(Fractals.Upper,Digits);
      mFractals[j][2]=1;
      j++;
    }
    if(j>3) break;
  }

  if(StrToDouble(mFractals[0][2])==-1 && StrToDouble(mFractals[1][2])==1 && StrToDouble(mFractals[2][2])==-1)  {

    if(TF==0)  {
      if(QntPitchfork.Upper.LowerTF<nPitchfork.Upper.LowerTF)   {  // ???-?? ??? ?? ?????????, ?????? ????? ????
        ObjectCreate("Pitchfork.Upper.LowerTF"+QntPitchfork.Upper.LowerTF, OBJ_PITCHFORK, 0,
        StrToTime(mFractals[2][0]), StrToDouble(mFractals[2][1]),
        StrToTime(mFractals[1][0]), StrToDouble(mFractals[1][1]),
        StrToTime(mFractals[0][0]), StrToDouble(mFractals[0][1]));
        ObjectSet("Pitchfork.Upper.LowerTF"+QntPitchfork.Upper.LowerTF,OBJPROP_COLOR,Tomato); 
        ObjectSet("Pitchfork.Upper.LowerTF"+QntPitchfork.Upper.LowerTF,OBJPROP_STYLE,STYLE_DASH); 
        QntPitchfork.Upper.LowerTF++;
      }
      if(QntPitchfork.Upper.LowerTF>=nPitchfork.Upper.LowerTF)  {  // ???-?? ??? ?????????, ???????? ????????? ?????? ???
        for (i=0; i<=QntPitchfork.Upper.LowerTF-2; i++)   {
          ObjectSet("Pitchfork.Upper.LowerTF"+i,OBJPROP_TIME1,ObjectGet("Pitchfork.Upper.LowerTF"+(i+1),OBJPROP_TIME1));
          ObjectSet("Pitchfork.Upper.LowerTF"+i,OBJPROP_PRICE1,ObjectGet("Pitchfork.Upper.LowerTF"+(i+1),OBJPROP_PRICE1));
          ObjectSet("Pitchfork.Upper.LowerTF"+i,OBJPROP_TIME2,ObjectGet("Pitchfork.Upper.LowerTF"+(i+1),OBJPROP_TIME2));
          ObjectSet("Pitchfork.Upper.LowerTF"+i,OBJPROP_PRICE2,ObjectGet("Pitchfork.Upper.LowerTF"+(i+1),OBJPROP_PRICE2));
          ObjectSet("Pitchfork.Upper.LowerTF"+i,OBJPROP_TIME3,ObjectGet("Pitchfork.Upper.LowerTF"+(i+1),OBJPROP_TIME3));
          ObjectSet("Pitchfork.Upper.LowerTF"+i,OBJPROP_PRICE3,ObjectGet("Pitchfork.Upper.LowerTF"+(i+1),OBJPROP_PRICE3));
        }
        ObjectSet("Pitchfork.Upper.LowerTF"+(QntPitchfork.Upper.LowerTF-1),OBJPROP_TIME1,StrToTime(mFractals[2][0]));
        ObjectSet("Pitchfork.Upper.LowerTF"+(QntPitchfork.Upper.LowerTF-1),OBJPROP_PRICE1,StrToDouble(mFractals[2][1]));
        ObjectSet("Pitchfork.Upper.LowerTF"+(QntPitchfork.Upper.LowerTF-1),OBJPROP_TIME2,StrToTime(mFractals[1][0]));
        O

Показано первые 50% кода (символов: 14964)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
1 496,40₽ ≈ $18.29