Налепил что сам путаюсь. - Путает фильтр, надо его изучить!
//+------------------------------------------------------------------+//| main function returns true if any position processed |//+------------------------------------------------------------------+void CSampleExpert::ProcessingUp(void)
{
if(InpIndicators_1 && Processing_1()) - это верхний Индикатор
{
return;
}
ObjVLinetime(); ----------------------- это верхняя Вертикальная линия
OnTickInpNameRx(); -------------------- это верхняя Линия от Трала 1
OnTickInpNameRz(); -------------------- это верхняя Линия от Трала 2
ProcessingBuy(); ---------------------- это Линия BUY по цвету
ProcessingClosBuy(); ------------------ это Линия CLOSE BUY по цвету
TrendOpenedUp(); ---------------------- это 2 верхние Линии туда сюда
TrendOpenedUp_2();
}
//+------------------------------------------------------------------+//| main function returns true if any position processed |//+------------------------------------------------------------------+void CSampleExpert::ProcessingDown(void)
{
if(InpIndicators_2 && Processing_2()) - это нижний Индикатор
{
return;
}
ObjVLinetimeD(); ---------------------- это нижняя Вертикальная линия
OnTickInpNameSx(); -------------------- это нижняя Линия от Трала 1
OnTickInpNameSz(); -------------------- это нижняя Линия от Трала 2
ProcessingSell(); --------------------- это нижняя SELL по цвету
ProcessingClosSell(); ----------------- это нижняя CLOSE SELL по цвету
TrendOpenedDown(); -------------------- это 2 нижний Линии туда сюда
TrendOpenedDown_2();
}
//+------------------------------------------------------------------+
Верхние к OPEN UP - Нижние к OPEN DOWN ------------ это те линии которые относятся к UP
Верхние к CLOSE UP - Нижние кCLOSEDOWN ---------- это те линии которыеотносятся кDOWN
case UpName:// Line Open UpName
ExtUpName=true;
Obj_BUYOpen();
ExtUpNameColor=true;
Obj_BUYOpenColor("BUYOpenColor");
ExtUpNameUp=true;
Obj_AverageUp();
break;
case DownName:// Line Open DownName
ExtDownName=true;
Obj_SELLOpen();
ExtDownNameColor=true;
Obj_SELLOpenColor("SELLOpenColor");
ExtDownNameDown=true;
Obj_AverageDown();
break;
case UpName_s:// Line Open UpName + Open Sell
ExtUpName=true;
Obj_BUYOpen();
ExtUpNameColor=true;
Obj_BUYOpenColor("BUYOpenColor");
ExtUpNameUp=true;
Obj_AverageUp();
ExtNeedOpenSell=true;
NotifyCrossingSell("");
break;
case UpName_b:// Line Open UpName + Open Buy
ExtUpName=true;
Obj_BUYOpen();
ExtUpNameColor=true;
Obj_BUYOpenColor("BUYOpenColor");
ExtUpNameUp=true;
Obj_AverageUp();
ExtNeedOpenBuy=true;
NotifyCrossingBuy("");
break;
case DownName_b:// Line Open DownName + Open Buy
ExtDownName=true;
Obj_SELLOpen();
ExtDownNameColor=true;
Obj_SELLOpenColor("SELLOpenColor");
ExtDownNameDown=true;
Obj_AverageDown();
ExtNeedOpenBuy=true;
NotifyCrossingBuy("");
break;
case DownName_s:// Line Open DownName + Open Sell
ExtDownName=true;
Obj_SELLOpen();
ExtDownNameColor=true;
Obj_SELLOpenColor("SELLOpenColor");
ExtDownNameDown=true;
Obj_AverageDown();
ExtNeedOpenSell=true;
NotifyCrossingSell("");
break;
case ClUpName:// Line Close UpName
ClExtUpName=true;
Obj_BUYClos();
ClExtUpNameColor=true;
Obj_BUYClosColor("BUYClosColor");
ExtUpNameUp_2=true;
Obj_AverageUp_2();
break;
case ClDownName:// Line Close DownName
ClExtDownName=true;
Obj_SELLClos();
ClExtDownNameColor=true;
Obj_SELLClosColor("SELLClosColor");
ExtDownNameDown_2=true;
Obj_AverageDown_2();
break;
case ClUpName_s:// Line Close UpName + Open Sell
ClExtUpName=true;
Obj_BUYClos();
ClExtUpNameColor=true;
Obj_BUYClosColor("BUYClosColor");
ExtUpNameUp_2=true;
Obj_AverageUp_2();
ExtNeedOpenSell=true;
NotifyCrossingSell("");
break;
case ClUpName_b:// Line Close UpName + Open Buy
ClExtUpName=true;
Obj_BUYClos();
ClExtUpNameColor=true;
Obj_BUYClosColor("BUYClosColor");
ExtUpNameUp_2=true;
Obj_AverageUp_2();
ExtNeedOpenBuy=true;
NotifyCrossingBuy("");
break;
case ClDownName_b:// Line Close DownName + Open Buy
ClExtDownName=true;
Obj_SELLClos();
ClExtDownNameColor=true;
Obj_SELLClosColor("SELLClosColor");
ExtDownNameDown_2=true;
Obj_AverageDown_2();
ExtNeedOpenBuy=true;
NotifyCrossingBuy("");
break;
case ClDownName_s:// Line Close DownName + Open Sell
ClExtDownName=true;
Obj_SELLClos();
ClExtDownNameColor=true;
Obj_SELLClosColor("SELLClosColor");
ExtDownNameDown_2=true;
Obj_AverageDown_2();
ExtNeedOpenSell=true;
NotifyCrossingSell("");
break;
Фильтр Жёлтая - первая ближняя линии от жёлтой открываем, за пределы вышла не открываем. Самая последняя линия (отключаем фильтр для линии - в противоположную сторону открываем)
Предупреждение! ещё же есть линии в эксперте, которым тоже можно выставить дистанцию - и если там установлена дистанция , линия тоже установится - при этом нужно задать желаемую команду.
Пример - как я задал Эксперту работу с помощью фильтра от Pivot Индикатора - правда я добавил в индикатор ещё две линии "S0" "R0" - которые фильтруют и запрещают действия(на картинке крестики)
"P" - Фильтр: Выше BUY - Ниже SELL
"R2" - противоположно откроет вниз - при этом отскочит линия на заданное расстояния вверх
"S2" - противоположно откроет верх - при этом отскочит линия на заданное расстояния вниз
- Есть один недостаток, Когда Индикатор с линиями и Вы его используете в Эксперте - при смене шаблона с сохранённым Экспертом, линии почему-то удаляются.
Выход - нужно перезагрузить терминал.
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ Или есть способ по лучше - нужно в OnDeinit(const int reason) запретить удаления объектов (в Индикаторе не в Эксперте)
//+------------------------------------------------------------------+//| Indicator deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
/*
for(int i=0; i<ArraySize(m_name); i++)
{
ObjectDelete(0,m_name[i]);
}
*///--- removes all objects of the specified type using prefix in object names
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+ushort InpSignalsFrequency=1; // Search signals, in seconds (min value "1")uint maxLimits=1; // Кол-во Позиции Открыть в одну сторонуuint SLEEPTIME=1; // Время паузы между повторами в секундахuint Deviation=10; // Отклонение ценыbool ObjRevers=false; // Revers//+------------------------------------------------------------------+
и вставить её сюда - только ещё добавить sinput
что бы получилось так
sinput group "----------------- Lots Parameters ----------------------"sinputuint maxLimits = 1; // Кол-во Позиции Открыть в одну сторонуsinputdouble InpLots1 = 0.01; // : Lots 1sinputint InpLots_01 = 3000; // In currency the amountsinputdouble InpLots2 = 0.02; // : Lots 2sinputint InpLots_02 = 6000; // In currency the amountsinputdouble InpLots3 = 0.04; // : Lots 3sinputint InpLots_03 = 12000; // In currency the amountsinputdouble InpLots4 = 0.08; // : Lots 4
Владимир Вы о чём? Все труды раздаю бесплатно. Пользуйтесь на Здоровья!
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Здесь можно скачать https://www.mql5.com/ru/code/34046
Поторопился с Экспертом выложив его в кодобазу - кое какие недостатки нужно Исправить, уже всё исправил но нужно ещё одну Функцию добавить
ещё две линии, которые открывают в разные стороны при пересечении и сигнал поступал на новом баре.
\\\\\\\\\\\\\\\\
вот так с помощью кнопок выставил линии - которые можно запускать в автомате.
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
так для тренировки - пока до делаю до конца Полноценного помощника в торговле.
Поторопился с Экспертом выложив его в кодобазу - кое какие недостатки нужно Исправить, уже всё исправил но нужно ещё одну Функцию добавить
ещё две линии, которые открывают в разные стороны при пересечении и сигнал поступал на новом баре.
\\\\\\\\\\\\\\\\
вот так с помощью кнопок выставил линии - которые можно запускать в автомате.
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
так для тренировки - пока до делаю до конца Полноценного помощника в торговле.
В Кодобазе обновил https://www.mql5.com/ru/code/34046добавил ещё от 4 линии Горизонтальных или Трендовых
Налепил что сам путаюсь. - Путает фильтр, надо его изучить!
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Важно теперь запомнить - что бы на отскок определённой линии, правильно у казать на неё и задать дистанцию
Все линии подключены к Команде
Верхние к OPEN UP - Нижние к OPEN DOWN ------------ это те линии которые относятся к UP
Верхние к CLOSE UP - Нижние к CLOSE DOWN ---------- это те линии которые относятся к DOWN
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
можно на кнопках Выставить команды - И задать везде дистанцию , только разную прописать что бы они выскочили на разном расстоянии
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
когда сработает линия она автоматически отпрыгнет, опять на туже дистанцию
С Помощью этого Индикатора https://www.mql5.com/ru/code/32395 можно организовать не плохую стратегию
Фильтр Жёлтая - первая ближняя линии от жёлтой открываем, за пределы вышла не открываем. Самая последняя линия (отключаем фильтр для линии - в противоположную сторону открываем)
Пример как передать с одной линии команду на другую линию.
Ведь если удалить Линию которую рисует Индикатор и переместить её в другое место Индикатор вернёт её на своё место.
- Тогда можно из одной линии, передать другой линии выполнять дальнейшие действия, задав на другой линии нужною команду, и задать дистанцию.
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Предупреждение! ещё же есть линии в эксперте, которым тоже можно выставить дистанцию - и если там установлена дистанция , линия тоже установится - при этом нужно задать желаемую команду.Пример - как я задал Эксперту работу с помощью фильтра от Pivot Индикатора - правда я добавил в индикатор ещё две линии "S0" "R0" - которые фильтруют и запрещают действия(на картинке крестики)
"P" - Фильтр: Выше BUY - Ниже SELL
"R2" - противоположно откроет вниз - при этом отскочит линия на заданное расстояния вверх
"S2" - противоположно откроет верх - при этом отскочит линия на заданное расстояния вниз
Пример фильтра - другой метод
"R2" - Выше линии команды работают
"S2" - Ниже линии команды работают
Между этими линиями команды не работают.
Обновил до версии "1.002" https://www.mql5.com/ru/code/34046
- Есть один недостаток, Когда Индикатор с линиями и Вы его используете в Эксперте - при смене шаблона с сохранённым Экспертом, линии почему-то удаляются.
Выход - нужно перезагрузить терминал.
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ Или есть способ по лучше - нужно в OnDeinit(const int reason) запретить удаления объектов (в Индикаторе не в Эксперте)
на форуме про функцию напомнили https://www.mql5.com/ru/forum/365617#comment_21489434 я её не подключил, если кто пользуется Экспертом - может её сам подключить
вырезать её отсюда
и вставить её сюда - только ещё добавить sinput
что бы получилось так