Новые сообщения · Участники · Правила форума · Поиск · RSS · Вход · Регистрация ·

Страница 12 из 18«1210111213141718»
Форум трейдеров » Скрипты Советники Индикаторы для Metatrader4/Metatrader5 » MT 4 MQL программирование, помощь. » Доработка советника.
Доработка советника.

Иван1946Дата: Четверг, 19.11.2015, 13:11 | Сообщение # 111
Трейдер - Лейтенант
Группа: Пользователи
Сообщений: 76
Награды: 0
Статус: Offline


[Бонусы за сообщения ]

Цитата expforex ()
приветствую, сделал пример:
Здравствуйте! Пытаюсь привязать линии отступа к линиями "up" и "dw", не работает. Исправьте пожалуйста ошибку.

Код
#property copyright "Copyright 2013, www.trading-go.ru Project."
#property link      "http://www.trading-go.ru"
#property version   "2.00"
#property description "Индикатор отрисовывает три уровня  верхний , нижний, и временной."
#property description "Уровни редактируются на графике в ручном режиме."
#property description "В случае пересечения уровней ценой, терминал выводит сообщение на экран, и издает звуковой сигнал (Alert)."

#property description "Indicator draws three levels of upper, lower, and the time."
#property description "Levels are edited on the chart manually."
#property description "In the case of the level-crossing costs, terminal displays a message on screen and beep (Alert)."
//====================================================================//
//====================================================================//
#property strict
#property indicator_chart_window

enum fn{Off,On};
extern fn    LinesUR=true;  // Включение горизонтальных уровней
extern fn    LinesTM=false;  // Включение уровня времени
extern int    Otstup=0;
extern int   widch=2;  // Ширина линий
extern color LineUP=clrYellowGreen;  // Цвет верхнего уровня
extern color LineUPOtstup=clrYellowGreen;
extern color LineDW=BurlyWood;  // Цвет Нижнего  уровня
extern color LineDWOtstup=BurlyWood;
extern color LineTM  = clrBlue; // Цвет уровня времени
extern int   intervalSEK=3600;  // Интервал звукового сигнала в секундах
datetime tim=0; string typ="";
int start(){
LineUPOtstup              =ObjectGetDouble("upOtstup",OBJ_HLINE,0,0,Close[1]+NormalizeDouble(300*Point,Digits)-Otstup*Point);//Максимальный High канала
LineDWOtstup               =ObjectGetDouble("dwOtstup",OBJ_HLINE,0,0,Close[1]-NormalizeDouble(300*Point,Digits)+Otstup*Point);//Максимальный Low канала
//+------------------------------------------------------------------+
//|                    |
//+------------------------------------------------------------------+
int OnInit()
{
Comment("");
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//|                    |
//+------------------------------------------------------------------+
void deinit()
{
ObjectDelete("up");
ObjectDelete("dw");
ObjectDelete("upOtstup");
ObjectDelete("dwOtstup");
ObjectDelete("tm");
}
//+------------------------------------------------------------------+
//|                    |
//+------------------------------------------------------------------+
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[])
{
if(LinesUR==true)
{
if(ObjectFind("up")==-1)
{
ObjectCreate("up",OBJ_HLINE,0,0,Close[1]+NormalizeDouble(300*Point,Digits));
ObjectSet("up",OBJPROP_WIDTH,widch);
ObjectSet("up",OBJPROP_COLOR,LineUP);
}
if(ObjectFind("dw")==-1)
{
ObjectCreate("dw",OBJ_HLINE,0,0,Close[1]-NormalizeDouble(300*Point,Digits));
ObjectSet("dw",OBJPROP_WIDTH,widch);
ObjectSet("dw",OBJPROP_COLOR,LineDW);
}

if(ObjectFind("upOtstup")==-1 && Otstup!=0)
{
ObjectCreate("upOtstup",OBJ_HLINE,0,0,Close[1]+NormalizeDouble(300*Point,Digits)-Otstup*Point);
ObjectSet("upOtstup",OBJPROP_COLOR,LineUP);
ObjectSet("upOtstup",OBJPROP_STYLE,STYLE_DOT);
}
if(ObjectFind("dwOtstup")==-1 && Otstup!=0)
{
ObjectCreate("dwOtstup",OBJ_HLINE,0,0,Close[1]-NormalizeDouble(300*Point,Digits)+Otstup*Point);
ObjectSet("dwOtstup",OBJPROP_COLOR,LineDW);
ObjectSet("dwOtstup",OBJPROP_STYLE,STYLE_DOT);
}

}
if(LinesTM==true)
{
if(ObjectFind("tm")==-1)
{
ObjectCreate("tm",OBJ_VLINE,0,Time[0]+Period()*60*5,0);
ObjectSet("tm",OBJPROP_WIDTH,widch);
ObjectSet("tm",OBJPROP_COLOR,LineTM);
}
}
if(Ask>ObjectGet("up",OBJPROP_PRICE1) && ObjectFind("up")==0)
{
typ=StringConcatenate(Symbol(),"   ","Цена выше заданного уровня !!! ",DoubleToStr(Ask,_Digits));
alert(typ);
}
if(Bid<ObjectGet("dw",OBJPROP_PRICE1) && ObjectFind("dw")==0)
{
typ=StringConcatenate(Symbol(),"   ","Цена ниже заданного уровня !!! ",DoubleToStr(Bid,_Digits));
alert(typ);
}
if(TimeCurrent()>=ObjectGet("tm",OBJPROP_TIME1) && ObjectFind("tm")==0)
{
typ=StringConcatenate(Symbol(),"   ","Текущее время больше заданного !!!");
alert(typ);
}
return 0;
}
//+------------------------------------------------------------------+
//|                    |
//+------------------------------------------------------------------+
void alert(string txt)
{
if(TimeCurrent()>(tim+intervalSEK))
{
tim=TimeCurrent();
Alert(txt);
}
}
//+------------------------------------------------------------------+

 
Сообщение
Цитата expforex ()
приветствую, сделал пример:
Здравствуйте! Пытаюсь привязать линии отступа к линиями "up" и "dw", не работает. Исправьте пожалуйста ошибку.

Код
#property copyright "Copyright 2013, www.trading-go.ru Project."
#property link      "http://www.trading-go.ru"
#property version   "2.00"
#property description "Индикатор отрисовывает три уровня  верхний , нижний, и временной."
#property description "Уровни редактируются на графике в ручном режиме."
#property description "В случае пересечения уровней ценой, терминал выводит сообщение на экран, и издает звуковой сигнал (Alert)."

#property description "Indicator draws three levels of upper, lower, and the time."
#property description "Levels are edited on the chart manually."
#property description "In the case of the level-crossing costs, terminal displays a message on screen and beep (Alert)."
//====================================================================//
//====================================================================//
#property strict
#property indicator_chart_window

enum fn{Off,On};
extern fn    LinesUR=true;  // Включение горизонтальных уровней
extern fn    LinesTM=false;  // Включение уровня времени
extern int    Otstup=0;
extern int   widch=2;  // Ширина линий
extern color LineUP=clrYellowGreen;  // Цвет верхнего уровня
extern color LineUPOtstup=clrYellowGreen;
extern color LineDW=BurlyWood;  // Цвет Нижнего  уровня
extern color LineDWOtstup=BurlyWood;
extern color LineTM  = clrBlue; // Цвет уровня времени
extern int   intervalSEK=3600;  // Интервал звукового сигнала в секундах
datetime tim=0; string typ="";
int start(){
LineUPOtstup              =ObjectGetDouble("upOtstup",OBJ_HLINE,0,0,Close[1]+NormalizeDouble(300*Point,Digits)-Otstup*Point);//Максимальный High канала
LineDWOtstup               =ObjectGetDouble("dwOtstup",OBJ_HLINE,0,0,Close[1]-NormalizeDouble(300*Point,Digits)+Otstup*Point);//Максимальный Low канала
//+------------------------------------------------------------------+
//|                    |
//+------------------------------------------------------------------+
int OnInit()
{
Comment("");
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//|                    |
//+------------------------------------------------------------------+
void deinit()
{
ObjectDelete("up");
ObjectDelete("dw");
ObjectDelete("upOtstup");
ObjectDelete("dwOtstup");
ObjectDelete("tm");
}
//+------------------------------------------------------------------+
//|                    |
//+------------------------------------------------------------------+
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[])
{
if(LinesUR==true)
{
if(ObjectFind("up")==-1)
{
ObjectCreate("up",OBJ_HLINE,0,0,Close[1]+NormalizeDouble(300*Point,Digits));
ObjectSet("up",OBJPROP_WIDTH,widch);
ObjectSet("up",OBJPROP_COLOR,LineUP);
}
if(ObjectFind("dw")==-1)
{
ObjectCreate("dw",OBJ_HLINE,0,0,Close[1]-NormalizeDouble(300*Point,Digits));
ObjectSet("dw",OBJPROP_WIDTH,widch);
ObjectSet("dw",OBJPROP_COLOR,LineDW);
}

if(ObjectFind("upOtstup")==-1 && Otstup!=0)
{
ObjectCreate("upOtstup",OBJ_HLINE,0,0,Close[1]+NormalizeDouble(300*Point,Digits)-Otstup*Point);
ObjectSet("upOtstup",OBJPROP_COLOR,LineUP);
ObjectSet("upOtstup",OBJPROP_STYLE,STYLE_DOT);
}
if(ObjectFind("dwOtstup")==-1 && Otstup!=0)
{
ObjectCreate("dwOtstup",OBJ_HLINE,0,0,Close[1]-NormalizeDouble(300*Point,Digits)+Otstup*Point);
ObjectSet("dwOtstup",OBJPROP_COLOR,LineDW);
ObjectSet("dwOtstup",OBJPROP_STYLE,STYLE_DOT);
}

}
if(LinesTM==true)
{
if(ObjectFind("tm")==-1)
{
ObjectCreate("tm",OBJ_VLINE,0,Time[0]+Period()*60*5,0);
ObjectSet("tm",OBJPROP_WIDTH,widch);
ObjectSet("tm",OBJPROP_COLOR,LineTM);
}
}
if(Ask>ObjectGet("up",OBJPROP_PRICE1) && ObjectFind("up")==0)
{
typ=StringConcatenate(Symbol(),"   ","Цена выше заданного уровня !!! ",DoubleToStr(Ask,_Digits));
alert(typ);
}
if(Bid<ObjectGet("dw",OBJPROP_PRICE1) && ObjectFind("dw")==0)
{
typ=StringConcatenate(Symbol(),"   ","Цена ниже заданного уровня !!! ",DoubleToStr(Bid,_Digits));
alert(typ);
}
if(TimeCurrent()>=ObjectGet("tm",OBJPROP_TIME1) && ObjectFind("tm")==0)
{
typ=StringConcatenate(Symbol(),"   ","Текущее время больше заданного !!!");
alert(typ);
}
return 0;
}
//+------------------------------------------------------------------+
//|                    |
//+------------------------------------------------------------------+
void alert(string txt)
{
if(TimeCurrent()>(tim+intervalSEK))
{
tim=TimeCurrent();
Alert(txt);
}
}
//+------------------------------------------------------------------+

Автор - Иван1946
Дата добавления - 19.11.2015 в 13:11

expforexДата: Четверг, 19.11.2015, 13:33 | Сообщение # 112
Главный Администартор
Группа: Администраторы
Сообщений: 8956
Награды: 29
Статус: Offline


[Бонусы за сообщения ]

линии up dw здесь не двигаются. я вам прикрепил вариант вчера, где есть линии отступа



Программирование на заказ || Наши Разработки

 
Сообщениелинии up dw здесь не двигаются. я вам прикрепил вариант вчера, где есть линии отступа

Автор - expforex
Дата добавления - 19.11.2015 в 13:33

Иван1946Дата: Четверг, 19.11.2015, 14:02 | Сообщение # 113
Трейдер - Лейтенант
Группа: Пользователи
Сообщений: 76
Награды: 0
Статус: Offline


[Бонусы за сообщения ]

Цитата expforex ()
линии up dw здесь не двигаются. я вам прикрепил вариант вчера, где есть линии отступа
В вашем варианте при перемещении линий "up" и "dw, линии отступа остаются на месте, а надо , что бы линии отступа перемещались вместе с линиями "up" и "dw".

 
Сообщение
Цитата expforex ()
линии up dw здесь не двигаются. я вам прикрепил вариант вчера, где есть линии отступа
В вашем варианте при перемещении линий "up" и "dw, линии отступа остаются на месте, а надо , что бы линии отступа перемещались вместе с линиями "up" и "dw".

Автор - Иван1946
Дата добавления - 19.11.2015 в 14:02

expforexДата: Четверг, 19.11.2015, 14:18 | Сообщение # 114
Главный Администартор
Группа: Администраторы
Сообщений: 8956
Награды: 29
Статус: Offline


[Бонусы за сообщения ]

Иван1946, перемещаете Вы вручную?



Программирование на заказ || Наши Разработки

 
СообщениеИван1946, перемещаете Вы вручную?

Автор - expforex
Дата добавления - 19.11.2015 в 14:18

Иван1946Дата: Четверг, 19.11.2015, 14:57 | Сообщение # 115
Трейдер - Лейтенант
Группа: Пользователи
Сообщений: 76
Награды: 0
Статус: Offline


[Бонусы за сообщения ]

Цитата expforex ()
Иван1946, перемещаете Вы вручную?
Да

 
Сообщение
Цитата expforex ()
Иван1946, перемещаете Вы вручную?
Да

Автор - Иван1946
Дата добавления - 19.11.2015 в 14:57

expforexДата: Четверг, 19.11.2015, 15:13 | Сообщение # 116
Главный Администартор
Группа: Администраторы
Сообщений: 8956
Награды: 29
Статус: Offline


[Бонусы за сообщения ]

Иван1946
код для перемещения за Вашими линиями:

     

Код
if(ObjectFind("upOtstup")!=-1 && Otstup!=0)
        {
         ObjectSet("upOtstup",OBJPROP_PRICE1,ObjectGet("up",OBJPROP_PRICE1)-Otstup*Point);
        }
      if(ObjectFind("dwOtstup")!=-1 && Otstup!=0)
        {
         ObjectSet("dwOtstup",OBJPROP_PRICE1,ObjectGet("dw",OBJPROP_PRICE1)+Otstup*Point);
        }

Прикрепления: 9114407.mq4(11Kb)


Программирование на заказ || Наши Разработки

 
СообщениеИван1946
код для перемещения за Вашими линиями:

     
Код
if(ObjectFind("upOtstup")!=-1 && Otstup!=0)
        {
         ObjectSet("upOtstup",OBJPROP_PRICE1,ObjectGet("up",OBJPROP_PRICE1)-Otstup*Point);
        }
      if(ObjectFind("dwOtstup")!=-1 && Otstup!=0)
        {
         ObjectSet("dwOtstup",OBJPROP_PRICE1,ObjectGet("dw",OBJPROP_PRICE1)+Otstup*Point);
        }

Автор - expforex
Дата добавления - 19.11.2015 в 15:13

Иван1946Дата: Четверг, 19.11.2015, 15:31 | Сообщение # 117
Трейдер - Лейтенант
Группа: Пользователи
Сообщений: 76
Награды: 0
Статус: Offline


[Бонусы за сообщения ]

Цитата expforex ()
Иван1946, код для перемещения за Вашими линиями:

Линии отступа перемещаются с задержкой. Очень неудобно. Что бы переместить максимально близко к текущей цене нужно, что бы линии отступа перемещались вместе с линиями "up" и "dw" одновременно. Можете так сделать? Что то этот вариант и советнику 1698536.rar(50Kb). не даёт работать



Сообщение отредактировал Иван1946 - Четверг, 19.11.2015, 15:56
 
Сообщение
Цитата expforex ()
Иван1946, код для перемещения за Вашими линиями:

Линии отступа перемещаются с задержкой. Очень неудобно. Что бы переместить максимально близко к текущей цене нужно, что бы линии отступа перемещались вместе с линиями "up" и "dw" одновременно. Можете так сделать? Что то этот вариант и советнику 1698536.rar(50Kb). не даёт работать

Автор - Иван1946
Дата добавления - 19.11.2015 в 15:31

expforexДата: Четверг, 19.11.2015, 15:56 | Сообщение # 118
Главный Администартор
Группа: Администраторы
Сообщений: 8956
Награды: 29
Статус: Offline


[Бонусы за сообщения ]

Иван1946, так и сделал. все остальное технические моменты.



Программирование на заказ || Наши Разработки

 
СообщениеИван1946, так и сделал. все остальное технические моменты.

Автор - expforex
Дата добавления - 19.11.2015 в 15:56

Иван1946Дата: Четверг, 19.11.2015, 15:57 | Сообщение # 119
Трейдер - Лейтенант
Группа: Пользователи
Сообщений: 76
Награды: 0
Статус: Offline


[Бонусы за сообщения ]

Цитата expforex ()
Иван1946, так и сделал. все остальное технические моменты.
Что то этот вариант и советнику 1698536.rar(50Kb). не даёт работать

 
Сообщение
Цитата expforex ()
Иван1946, так и сделал. все остальное технические моменты.
Что то этот вариант и советнику 1698536.rar(50Kb). не даёт работать

Автор - Иван1946
Дата добавления - 19.11.2015 в 15:57

expforexДата: Четверг, 19.11.2015, 16:14 | Сообщение # 120
Главный Администартор
Группа: Администраторы
Сообщений: 8956
Награды: 29
Статус: Offline


[Бонусы за сообщения ]

почему не дает? запрещает работать?



Программирование на заказ || Наши Разработки

 
Сообщениепочему не дает? запрещает работать?

Автор - expforex
Дата добавления - 19.11.2015 в 16:14
Форум трейдеров » Скрипты Советники Индикаторы для Metatrader4/Metatrader5 » MT 4 MQL программирование, помощь. » Доработка советника.
Страница 12 из 18«1210111213141718»
Поиск:


WebMoney Яндекс цитирования.