Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
В сервисе Фриланс участвуют тысячи разработчиков. Присоединяйся!
insat
59
insat 2015.02.02 20:33 

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

Алексей Тарабанов
7220
Алексей Тарабанов 2015.02.02 22:16  

Рисуйте отрезком: 

 // Формирование линии

int fLine(string Name            // Префикс имени

         ,string Text            // Префикс описания

         ,int Number             // Номер

         ,int Bar1,double Price1 // Первая точка

         ,int Bar2,double Price2 // Вторая точка

         ,int Bar3,double Price3 // Вспомогательная точка

         ,color Цвет

         ,int Стиль=STYLE_SOLID  // Сплошная

         ,int Видимость=0        // Только на текущем таймфрейме

         ,bool Луч=false

         ,int Толщина=1

         ,bool Фон=true ) {

   int Error;

   datetime Time1=Time[Bar1],

            Time2=Time[Bar2];

   if( Number>0 ) Name=Name+Number;

   if( Bar1<=Bar2

    || Bar1<LastBar

    || Bar2<LastBar-1

    || Price1<Zero

    || Price2<Zero ) {

      Error=MyError;

      Print("***   "+Name+" не создан, параметры: "

                    +DoubleToStr(Price1,Digits)+" ("+Bar1+"/"+TimeToStr(Time1)+")..."

                    +DoubleToStr(Price2,Digits)+" ("+Bar2+"/"+TimeToStr(Time2)+")");

      return(Error);

   }

   Error=fObjectDelete(Name);

   if( Error>0 && Error<MyError ) {

      return(Error);

   }

   if( ObjectCreate(Name,OBJ_TREND,0,Time1,Price1,Time2,Price2,Time[Bar3],Price3) ) {

      if( Text!="" && Number>0 ) {

         Text=Text+Number;

         Фон=true;

      }

      if( !ObjectSetText(Name, Text)

       || !ObjectSet(Name, OBJPROP_COLOR, Цвет)

       || !ObjectSet(Name, OBJPROP_STYLE, Стиль)

       || !ObjectSet(Name, OBJPROP_RAY, Луч)

       || !ObjectSet(Name, OBJPROP_TIMEFRAMES, Видимость)

       || !ObjectSet(Name, OBJPROP_WIDTH, Толщина)

       || !ObjectSet(Name, OBJPROP_BACK, Фон) ) {

         Error=GetLastError();

         if( !РежимОтладки ) PlaySound("alert.wav");

         Print("***** "+Name+" - ошибка модификации параметров "+Error);

   }  }

   else {

      Error=GetLastError();

      if( !РежимОтладки ) PlaySound("alert.wav");

      Print("***** "+Name+" - объект не создан, ошибка "+Error);

   }

   return(Error);

}

Алексей Тарабанов
7220
Алексей Тарабанов 2015.02.02 22:18  
Разработчики, вставка кода не работает. 
Fedor
2763
Fedor 2015.02.03 07:56  
 // Формирование линии

int fLine(string Name            // Префикс имени

         ,string Text            // Префикс описания

         ,int Number             // Номер

         ,int Bar1,double Price1 // Первая точка

         ,int Bar2,double Price2 // Вторая точка

         ,int Bar3,double Price3 // Вспомогательная точка

         ,color Цвет

         ,int Стиль=STYLE_SOLID  // Сплошная

         ,int Видимость=0        // Только на текущем таймфрейме

         ,bool Луч=false

         ,int Толщина=1

         ,bool Фон=true ) {

   int Error;

   datetime Time1=Time[Bar1],

            Time2=Time[Bar2];

   if( Number>0 ) Name=Name+Number;

   if( Bar1<=Bar2

    || Bar1<LastBar

    || Bar2<LastBar-1

    || Price1<Zero

    || Price2<Zero ) {

      Error=MyError;

      Print("***   "+Name+" не создан, параметры: "

                    +DoubleToStr(Price1,Digits)+" ("+Bar1+"/"+TimeToStr(Time1)+")..."

                    +DoubleToStr(Price2,Digits)+" ("+Bar2+"/"+TimeToStr(Time2)+")");

      return(Error);

   }

   Error=fObjectDelete(Name);

   if( Error>0 && Error<MyError ) {

      return(Error);

   }

   if( ObjectCreate(Name,OBJ_TREND,0,Time1,Price1,Time2,Price2,Time[Bar3],Price3) ) {

      if( Text!="" && Number>0 ) {

         Text=Text+Number;

         Фон=true;

      }

      if( !ObjectSetText(Name, Text)

       || !ObjectSet(Name, OBJPROP_COLOR, Цвет)

       || !ObjectSet(Name, OBJPROP_STYLE, Стиль)

       || !ObjectSet(Name, OBJPROP_RAY, Луч)

       || !ObjectSet(Name, OBJPROP_TIMEFRAMES, Видимость)

       || !ObjectSet(Name, OBJPROP_WIDTH, Толщина)

       || !ObjectSet(Name, OBJPROP_BACK, Фон) ) {

         Error=GetLastError();

         if( !РежимОтладки ) PlaySound("alert.wav");

         Print("***** "+Name+" - ошибка модификации параметров "+Error);

   }  }

   else {

      Error=GetLastError();

      if( !РежимОтладки ) PlaySound("alert.wav");

      Print("***** "+Name+" - объект не создан, ошибка "+Error);

   }

   return(Error);

}
Fedor
2763
Fedor 2015.02.03 07:56  
Сработало.
Виктор
Модератор
6560
Виктор 2015.02.03 13:40  
insat 03.02.2015 09:29 | 03.02.2015 09:29 | 85.26.164.23 | Бан
Кто может написать скрипт или советник, чтобы выполнять вот какие действия:
нужно чтобы программа выставляла вертикальные линии. От условной начальной точки, с интервалом 200 пунктов. Например: от условной точки цена на графике повышается, до тех пор, пока в противоположную сторону, в сторону понижения не пройдет минимум 200 пунктов и более...потом опять в противоположную сторону повышения, опять минимум 200 и более...Получается программа должна расставлять вертикальные линии, отсекая границы. Разделение на волны. Длина волны получается минимум 200 пунктов и более, пока не достигнет минимум 200 пунктов в противоположную сторону... и т.д. 
очень нужно. 

Roman Kutemov
1725
Roman Kutemov 2015.02.03 15:32  

Доброго всем дня,

а есть такой скрипт, например бар на м30 отмечаешь.

переходишь на м1 и видишь там начало и конец этого бара, выделенный линиями или цветом

Anatolij Anufriev
4070
Anatolij Anufriev 2015.02.03 15:33  
Stells:

Доброго всем дня,

а есть такой скрипт, например бар на м30 отмечаешь.

переходишь на м1 и видишь там начало и конец этого бара, выделенный линиями или цветом

https://www.mql5.com/ru/code/8047
Roman Kutemov
1725
Roman Kutemov 2015.02.03 17:18  
7Konstantin7:
https://www.mql5.com/ru/code/8047
круто, спасибо
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий