Jump to content
muvingman

Напишу советник, скрипт, индикатор на MQL бесплатно

Recommended Posts

muvingman

Здравствуйте

 

 

 

очень нужен индикатор подающий звуковой сигнал о появлении трёх законченных барах (свечей) идущих в одном направлении один за другим

 

хотелось бы получать этот сигнал на 5 и 15 минутном интервалах , если вообще есть такой то пожалуйсто отзовитесь.

Share this post


Link to post
Share on other sites
huge mouse

Написал, см. вложенный файл. Из архива содержимое папки Sounds надо скопировать в аналогичную в папке метатрейдера, а индикаторы в папку experts/indicators

3bars.zip

  • Thanks 1

Кто знает меру, у того не будет неудачи.

Share this post


Link to post
Share on other sites
huge mouse

модифицировал, теперь сигнал после 3-х баров в одну сторону, а не просто закрытие больше(меньше) предыдущих двух.

3bars.zip

  • Upvote 1
  • Downvote 1

Кто знает меру, у того не будет неудачи.

Share this post


Link to post
Share on other sites
muvingman
модифицировал, теперь сигнал после 3-х баров в одну сторону, а не просто закрытие больше(меньше) предыдущих двух.

 

Да это то что надо и модификация прямо в точку :ura:

 

а вот можно ли его модифицировать как--сигнал о появлении трёх законченных барах (свечей) идущих в одном направлении один за другим. Перед этими тремя свечами должна быть свеча в противоположном направлении направлена ( либо нулевое зактытие)

В этом случае наверное надо рассматривать уже 4 свечи нетакли ... .

Share this post


Link to post
Share on other sites
huge mouse

Готово, четвертый с конца бар в противоход последним трем.

3bars_mod2.zip


Кто знает меру, у того не будет неудачи.

Share this post


Link to post
Share on other sites
AlexVic

Мне, мне создайте сигнал пожалуйста. Чтобы при переходе прибыли в плюс раздавался звуковой сигнал


С уважением,

AlexVic

 

Мониторинг ПАММа

http://pammin.ru/pamm/246594

Share this post


Link to post
Share on other sites
huge mouse
Мне, мне создайте сигнал пожалуйста. Чтобы при переходе прибыли в плюс раздавался звуковой сигнал

ОК, сейчас займусь, заодно на срабатывание TP и SL звуковое оповещение.


Кто знает меру, у того не будет неудачи.

Share this post


Link to post
Share on other sites
AlexVic
ОК, сейчас займусь, заодно на срабатывание TP и SL звуковое оповещение.

 

Спасибо большое, буду ждать


С уважением,

AlexVic

 

Мониторинг ПАММа

http://pammin.ru/pamm/246594

Share this post


Link to post
Share on other sites
huge mouse

Сделано: Реализовано в виде советника. Сработает на том таймфрейме и валютной паре, на который кинете. Советую протестировать на 1М. Если на 1Н запустите, то сигнал будет по закрытию часа. Отслеживает вновь открытые сделки (перезапускать не надо). Если пошло в +, будет звук «ржание лошади», если в – то «адский смех). Если сделка закрылась по любой причине, будет «гудок парохода». Предварительно протестировал на eur/usd, usd/jpy. Меня самого в общем все устраивает, если мысли будут по улучшению советника, пишите пожалуйста. Содержимое папки Sounds скопировать в папку Sounds метатрейдера, советники в папку experts.

profit_loss_alert.zip

  • Thanks 1

Кто знает меру, у того не будет неудачи.

Share this post


Link to post
Share on other sites
muvingman
Готово, четвертый с конца бар в противоход последним трем.

 

Моя идейка была немного другая , первый бар ( свеча) идёт в противоход следующим трём

 

С на ступающими всех

Share this post


Link to post
Share on other sites
huge mouse

Ну вы потестируйте, я так чую это одно и то же.


Кто знает меру, у того не будет неудачи.

Share this post


Link to post
Share on other sites
AlexVic

Тестирую профитный колокольчик, по результатам отпишусь

  • Thanks 1

С уважением,

AlexVic

 

Мониторинг ПАММа

http://pammin.ru/pamm/246594

Share this post


Link to post
Share on other sites
huge mouse
Тестирую профитный колокольчик, по результатам отпишусь

Я реально довольный, полезная вещь! :1:


Кто знает меру, у того не будет неудачи.

Share this post


Link to post
Share on other sites
AlexVic

Мышь, если я правильно понимаю, то ржание происходит при переходе баланса ордера в +. А можно сделать так, чтобы советник реалировал только на общий баланс? Например у меня открыто 3 ордера, один убыточный и два профитных для сведения в безубыток. И требуется, когда их суммарный баланс перешагнет в положительную сторону, сработал сигнал, тем самым давая понять, что 3 ордера перешли в безубыток. А так получается, что он реагирует на каждый ордер. А гудок при тейке-лоссе хорошая штука)))


С уважением,

AlexVic

 

Мониторинг ПАММа

http://pammin.ru/pamm/246594

Share this post


Link to post
Share on other sites
huge mouse

Неплохая мысль, сделаю так, что можно будет режим выбирать.


Кто знает меру, у того не будет неудачи.

Share this post


Link to post
Share on other sites
huge mouse

Готово! Модифицировал советник по просьбе Лексуса.

Советник обеспечивает звуковую сигнализацию перехода открытого ордера из "плюса" в "минус" и обратно (по истечении того временного интервала, на котором запущен советник),а также звуковую сигнализацию перехода общего баланса открытых ордеров туда же и оттуда же. И сигнализирует о закрытии любого ордера по любой причине (мгновенно).

Советник работает только с ордерами на той валютной паре, на которой запущен.

Рекомендую запустить данный советник на отдельном окне графика цены, на том таймфрейме на котором работаете. В этой версии советника (profit_loss_alert_mod1) исправлена ошибка с сигнализацией о закрытии ордеров.

В данном советнике настраиваются два параметра:

PriceFollowMode true - если надо отслеживать каждый ордер, false - отключено

BalanceFollowMode true - если надо отслеживать общий баланс всех открытых ордеров, false - отключено

Для установки советника содержимое папки Sounds скопируйте в папку /Sounds метатрейдера, а советник в папку /experts

profit_loss_alert_mod1.zip

  • Thanks 1

Кто знает меру, у того не будет неудачи.

Share this post


Link to post
Share on other sites
huge mouse

Поправка!

Советник корректно работает только на минутках! Протестировал на 5М, работает не верно! Буду дорабатывать, как время будет и желание.


Кто знает меру, у того не будет неудачи.

Share this post


Link to post
Share on other sites
huge mouse

Исправлены ошибки, теперь советник должен работать корректно. Если найдете ошибки, напишите пожалуйста.

 

Советник обеспечивает звуковую сигнализацию перехода открытого ордера из "плюса" в "минус" и обратно (по истечении

того временного интервала, на котором запущен советник),а также звуковую сигнализацию перехода общего баланса

открытых ордеров туда же и оттуда же. И сигнализирует о закрытии любого ордера по любой причине (мгновенно).

Советник работает только с ордерами на той валютной паре, на которой запущен.

Рекомендую запустить данный советник на отдельном окне графика цены, на том таймфрейме на котором работаете. В этой

версии советника (profit_loss_alert_mod2) исправлена ошибка с сигнализацией о закрытии ордеров.

В данном советнике настраиваются два параметра:

PriceFollowMode true - если надо отслеживать каждый ордер, false - отключено

BalanceFollowMode true - если надо отслеживать общий баланс всех открытых ордеров, false - отключено

Для установки советника содержимое папки Sounds скопируйте в папку /Sounds метатрейдера, а советник в папку /experts

profit_loss_alert_mod2.zip

Edited by huge mouse
  • Thanks 1

Кто знает меру, у того не будет неудачи.

Share this post


Link to post
Share on other sites
kabash

Добрый вечер!

нужен индикатор или советник который подает сигнал при профите в N количество пунктов.Количество пунктов регулируется

Share this post


Link to post
Share on other sites
Andy Tacker

для alexvv: "Но функцию открытия ордеров, видимо, придется изобретать..."

мне в этом разделе с ф-цией открытия ордеров по рынку пару лет назад уже помогли мужики. за это им всем огромная благодарность! перечислять по именам не стану - они сами знают...

так вот, я эту ф-цию выложу здесь лично для тебя и остальных с чьей-то(не помню) обработкой ошибок:

 extern string __T__ = "включение=1, выключение=0, советника";  
extern int    TRADE = 1; // работа: 1 - РАЗР., 0 - ЗАПР.
string WEN; 
//+------------------------------------------------------------------+                 
//+------------------------------------------------------------------+
//|                         ИНИЦИАЛИЗАЦИЯ                            |
//+------------------------------------------------------------------+
int init() { PlaySound("alert2.wav"); 
WEN=WindowExpertName();    
GlobalVariableSet(WEN+" "+Symbol(),0); 
Sleep(1000); Alert(WEN," ",Symbol()," ГОТОВ"); return(0); }
//+------------------------------------------------------------------+ 
//+------------------------------------------------------------------+
//|                 ВЫСТАВЛЕНИЕ ПОЗИЦИЙ СЭЛ                          |
//+------------------------------------------------------------------+  
void OPEN_S() { while(true) { if(TRADE==0) break; RefreshRates();  
int ticket=OrderSend(Symbol(),1,LOT(1),Bid,3,0,0,WEN+" СЭЛ",MAG_S,0,Red);
//-------------------------------------------------------------------+   
if(ticket<0) { RefreshRates(); int error=ErrorBlock(GetLastError()); 
if(error==3) { Alert(Symbol()," отмена СЭЛ"); MesBox(); break; } else 
if(error==2) { Alert(Symbol()," отмена СЭЛ ",LOT(1)); break; } else  
if(error==1) { Alert(Symbol()," повтор СЭЛ ",LOT(1)); Sleep(3000); 
RefreshRates(); }} else { PlaySound("ok.wav"); break; }}}
//+------------------------------------------------------------------+ 
//+------------------------------------------------------------------+
//|                 ВЫСТАВЛЕНИЕ ПОЗИЦИЙ БАЙ                          |
//+------------------------------------------------------------------+        
void OPEN_B() { while(true) { if(TRADE==0) break; RefreshRates();  
int ticket=OrderSend(Symbol(),0,LOT(0),Ask,3,0,0,WEN+" БАЙ",MAG_B,0,Blue);
//-------------------------------------------------------------------+ 
if(ticket<0) { RefreshRates(); int error=ErrorBlock(GetLastError()); 
if(error==3) { Alert(Symbol()," отмена БАЙ"); MesBox(); break; } else 
if(error==2) { Alert(Symbol()," отмена БАЙ ",LOT(0)); break; } else 
if(error==1) { Alert(Symbol()," повтор БАЙ ",LOT(0)); Sleep(3000); 
RefreshRates(); }} else { PlaySound("ok.wav"); break; }}}
//+------------------------------------------------------------------+   
//+------------------------------------------------------------------+
//|         БЛОКИРОВКА СОВЕТНИКА ПО РЕЗУЛЬТАТУ ОШИБКИ                |
//+------------------------------------------------------------------+
void MesBox() { int ret=MessageBox(StringConcatenate(
"ошибка!!!","\nНеобходимо прекратить все попытки торговых операций.",
"\nОтключить эксперта ",WindowExpertName()," до устранения ошибки?",
MB_OK|MB_ICONERROR)); if(ret==IDOK) TRADE=0; }
//+------------------------------------------------------------------+

работает как часики. стоит у меня на реалах. лишнее сами убирайте. недостающее сами вписывайте.:agree:

Edited by Andy Tacker

:crazy:...или держите дольше, или макайте глубже - дно мутное, ни хрена не видно!!!

Share this post


Link to post
Share on other sites
Andy Tacker

а вот сама ф-ция(в один пост не влезло) обработки ошибок:

//+------------------------------------------------------------------+
//|                       БЛОК ОБРАБОТКИ ОШИБОК                      |
//+------------------------------------------------------------------+ 
int ErrorBlock(int error) { switch(error) {
case    0: { Alert("0 операция прошла успешно");       return(0); }
case    1: { Alert("1 попытка изменить знач.теми же"); return(2); }
case    2: { Alert("2 Общая ошибка");                  return(2); }
case    3: { Alert("3 переданы неправильные парам. "); return(3); }
case    4: { Alert("4 Торговый сервер занят");         return(1); }
case    5: { Alert("5 Старая версия терминала");       return(3); }
case    6: { Alert("6 Нет связи с торговым сервером"); return(2); }
case    7: { Alert("7 Недостаточно прав");             return(3); }
case    8: { Alert("8 Слишком частые запросы");        return(2); }
case    9: { Alert("9 Недопустимая операция");         return(3); }
case   64: { Alert("64 Счет заблокирован");            return(3); }
case   65: { Alert("65 Неправильный номер счета");     return(3); }
case  128: { Alert("128 Истекло ожид.соверш.сделки");  return(1); }
case  129: { Alert("129 неверная, ненормализов.цена"); return(1); }
case  130: { Alert("130 Слишком близкие стопы");       return(2); }
case  131: { Alert("131 ошибка в грануляции объема");  return(2); }
case  132: { Alert("132 Рынок закрыт");                return(2); }
case  133: { Alert("133 Торговля запрещена");          return(3); }
case  134: { Alert("134 мало денег для операции");     return(2); }
case  135: { Alert("135 Цена резко изменилась");       return(1); }
case  136: { Alert("136 отсутствуют котировки цен");   return(1); }
case  137: { Alert("137 диллерский центр занят");      return(1); }
case  138: { Alert("138 Запрошенная цена устарела");   return(1); }
case  139: { Alert("139 Ордер уже обрабатывается");    return(2); }
case  140: { Alert("140 Разрешена только покупка");    return(2); }
case  141: { Alert("141 Слишком много запросов");      return(2); }
case  142: { Alert("142 Ордер поставлен в очередь");   return(2); }
case  143: { Alert("143 Ордер принят к исполнению");   return(2); }
case  144: { Alert("144 Ордер аннулирован клиентом");  return(2); }
case  145: { Alert("145 Модификация запрещена");       return(2); }
case  146: { Alert("146 Подсистема торговли занята");  return(1); }
case  147: { Alert("147 дата истечения запрещена");    return(2); }
case  148: { Alert("148 Колич. орд. достигло пред.");  return(2); }
case  149: { Alert("149 хеджирование запрещено");      return(2); }
//+------------------------------------------------------------------+ 
case 4000: { Alert("0 нет ошибки, но рез.неизвестен"); return(0); }
case 4001: { Alert("4001 Неправильный указат. ф-ции"); return(3); }
case 4002: { Alert("4002 Индекс масс. вне диапазона"); return(3); }
case 4003: { Alert("4003 Нет памяти для стека ф-ий");  return(3); }
case 4004: { Alert("4004 Переполнен стек после выз."); return(3); }
case 4005: { Alert("4005 нет пам. для перед. парам."); return(3); }
case 4006: { Alert("4006 Нет пам. для строк. парам."); return(3); }
case 4007: { Alert("4007 Нет пам. для времен.строки"); return(3); }
case 4008: { Alert("4008 Неинициализир. строка");      return(3); }
case 4009: { Alert("4009 Неинициализир.стр. в масс."); return(3); }
case 4010: { Alert("4010 Нет памяти для строк.масс."); return(3); }
case 4011: { Alert("4011 Слишком длинная строка");     return(3); }
case 4012: { Alert("4012 Остаток от деления на ноль"); return(3); }
case 4013: { Alert("4013 Деление на ноль");            return(3); }
case 4014: { Alert("4014 Неизвестная команда");        return(3); }
case 4015: { Alert("4015 Неправильный переход");       return(3); }
case 4016: { Alert("4016 Неинициализированный масс."); return(3); }
case 4017: { Alert("4017 Вызовы DLL не разрешены");    return(3); }
case 4018: { Alert("4018 Невозможно загр.библиотеку"); return(3); }
case 4019: { Alert("4019 Невозможно вызвать функцию"); return(3); }
case 4020: { Alert("4020 Вызовы внешн.ф-ций запрещ."); return(3); }
case 4021: { Alert("4021 мало памяти для строки");     return(3); }
case 4022: { Alert("4022 Система занята");             return(3); }
case 4050: { Alert("4050 неверное кол. парам. ф-ции"); return(3); }
case 4051: { Alert("4051 неверное знач.парам.ф-ции");  return(3); }
case 4052: { Alert("4052 Внутр. ошибка строк. ф-ции"); return(3); }
case 4053: { Alert("4053 Ошибка массива");             return(3); }
case 4054: { Alert("4054 Неправ.исп.масс.-таймсерии"); return(3); }
case 4055: { Alert("4055 Ошибка пользоват. индюка");   return(3); }
case 4056: { Alert("4056 Массивы несовместимы");       return(3); }
case 4057: { Alert("4057 Ошибка обраб.глоб.перемен."); return(3); }
case 4058: { Alert("4058 Глоб. перемен. не обнаруж."); return(3); }
case 4059: { Alert("4059 Ф-ция запрещ. в тест. реж."); return(3); }
case 4060: { Alert("4060 Функция не разрешена");       return(3); }
case 4061: { Alert("4061 Ошибка отправки почты");      return(3); }
case 4062: { Alert("4062 Ожид-ся парам. типа string"); return(3); }
case 4063: { Alert("4063 Ожид. парам. типа integer");  return(3); }
case 4064: { Alert("4064 Ожид. парам. типа double");   return(3); }
case 4065: { Alert("4065 В кач. парам. ожид. массив"); return(3); }
case 4066: { Alert("4066 данные в сост. обновления");  return(3); }
case 4067: { Alert("4067 Ошибка торговой операции");   return(3); }
case 4099: { Alert("4099 Конец файла");                return(3); }
case 4100: { Alert("4100 Ошибка при работе с файлом"); return(3); }
case 4101: { Alert("4101 Неправильное имя файла");     return(3); }
case 4102: { Alert("4102 Слишком много откр. файлов"); return(3); }
case 4103: { Alert("4103 Невозможно открыть файл");    return(3); }
case 4104: { Alert("4104 Несовмес.реж.дост. к файлу"); return(3); }
case 4105: { Alert("4105 Ни один ордер не выбран");    return(3); }
case 4106: { Alert("4106 Неизвестный символ");         return(3); }
case 4107: { Alert("4107 неверный параметр функции");  return(3); }
case 4108: { Alert("4108 Неверный номер тикета");      return(3); }
case 4109: { Alert("4109 Разрешить роботу торговать"); return(3); }
case 4110: { Alert("4110 Длинные позиции запрещены");  return(3); }
case 4111: { Alert("4111 Короткие позиции запрещены"); return(3); }
case 4200: { Alert("4200 Объект уже существует");      return(3); }
case 4201: { Alert("4201 неизв. свойство объекта");    return(3); }
case 4202: { Alert("4202 Объект не существует");       return(3); }
case 4203: { Alert("4203 Неизвестный тип объекта");    return(3); }
case 4204: { Alert("4204 Нет имени объекта");          return(3); }
case 4205: { Alert("4205 Ошибка координат объекта");   return(3); }
case 4206: { Alert("4206 Не найдено указанное окно");  return(3); }
case 4207: { Alert("4207 Ошибка работы с объектом");   return(3); }
default:   { Alert("Неизвестная ошибка: ",error);      return(0); }}}
//+------------------------------------------------------------------+

надеюсь кому-то поможет...:agree:


:crazy:...или держите дольше, или макайте глубже - дно мутное, ни хрена не видно!!!

Share this post


Link to post
Share on other sites
nyxl44

можете написать советник?

цена пересекла ma появился фрактал, советник ставит отложенный ордер выше max(min) бара, в настройках советника желательно чтобы были стоп, тейк и трал.

 

спасибо!

Edited by nyxl44

Share this post


Link to post
Share on other sites
conn

 

Уважаемые программисты, сделайте пожалуйста советник по данному индикатору. все просто гистограмма синего цвета - открывает сделку на BUY и наоборот гистограмма красного цвета - открывает сделку на SELL, но после закрытие свечи т.е не на нулевом баре. Чтобы была возможность ставить советник на любые пары, на любой таймфрейм и задать лот. Индикатор прикрепляю, он не рисует закрытие бары. Заранее благодарен!

post-96388-1404220345,7953_thumb.png

Edited by AntFX
удален декомпил
  • Thanks 1

Share this post


Link to post
Share on other sites
Scripter

Нужна помощь в написании индикатора. Смысл заключается в том, чтобы с каждого таймфрейма брать по 1 последнему бару то есть по текущему и выводить это всё в одно отдельное окно, по задумке выводиться в окне бары должны не графиком и не гистограммой а в процентном соотношении цены открытия и закрытия бара к верхней и нижним максимумам этого же бара.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×