Главная
Форум
MQL программирование, помощь, доработки

Для того, чтобы использовать все возможности сайта, мы рекомендуем Вам person_add Зарегистрироваться или person Войти

Форум Трейдеров » Торговые стратегии и программирование на MQL » MQL программирование, помощь, доработки » Доработка советника.
Доработка советника.
Дата: Четверг, 19.11.2015, 13:11 | Сообщение # 111 Написал: Иван1946
Группа: Пользователи
Сообщений: 89
Награды: 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);
}
}
//+------------------------------------------------------------------+

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

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

gestureс Уважением, Владислав Expforex

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

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

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

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

gestureс Уважением, Владислав Expforex

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

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

Дата: Четверг, 19.11.2015, 15:13 | Сообщение # 116 Написал: expforex
Группа: Администраторы
Сообщений: 9246
Награды: 30
Статус: 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);
        }

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

gestureс Уважением, Владислав Expforex

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

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

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

Сообщение отредактировал Иван1946 - Четверг, 19.11.2015, 15:56

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

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

gestureс Уважением, Владислав Expforex

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

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

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

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

gestureс Уважением, Владислав Expforex

Форум Трейдеров » Торговые стратегии и программирование на MQL » MQL программирование, помощь, доработки » Доработка советника.
Поиск:
Expforex Идеи для Форекс https://www.expforex.com/1NEWDESIGN/NEWLOGO/LOGONEW.png expforex@meta.ua Украина expforex2