Jump to content

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


Capman
Message added by Capman,

Данная ветка предназначена для тех, кто ищет помощи специалистов в реализации своих торговых идей для терминала MetaTrader, а также для специалистов MQL, готовых воплощать интересные идеи трейдеров на безвозмездной основе.

 

Вот рекомендации, которым нужно следовать:

  • Идея торговой системы/индикатора/скрипта должна быть полностью описана Вами в сообщении.
  • Выкладывать декомпилированный код запрещено.
  • Программы, изготавливаемые по публичным заданиям, должны выкладываться с открытым кодом.
  • Конфиденциальность гарантируется только при заказе советника за деньги. Самым надежным способом заказа советника является сервис "Работа" от компании MetaQuotes. В этом разделе форума запрещено оставлять объявления о заказе или выполнении работ по написанию советников. Для этого используйте раздел "Реклама".
  • Если кого-либо из программистов заинтересует Ваша идея, или он просто захочет помочь, то займется написанием. Отсутствие ответов означает, что Ваша идея никого пока не заинтересовала. Повторять пост с просьбой в этом случае не нужно (такие посты нарушают правило форума 10).

Recommended Posts

Hitronrav
1 час назад, BooGUY сказал:

Почему NormalizeDouble иногда не срабатывает? 

Принтом вывожу массив в журнал, почти все double значения выводятся до указанного 1 знака после запятой, а какие-нибудь 3-4 значения (из ста) с 15 знаками.

 

https://www.mql5.com/ru/forum/363676

  • Thanks 1
Link to post
Share on other sites
  • Replies 143
  • Created
  • Last Reply

Top Posters In This Topic

  • DVargo

    24

  • Ugar68

    16

  • Pirojoque Project

    13

  • BooGUY

    13

Top Posters In This Topic

Popular Posts

Код, отслеживающий спред, должен быть внедрён в торгующий советник, иначе выйдет добротный велосипед на костылях. Более того, от ТС поведение при событиях по спреду могут сильно различаться, т.е. подо

Если данные свечей больше нигде не будут нужны, то и запоминать их не зачем. Да и без массивов можно обойтись. Всё делать в момент открытия свечи. Если сформировалась свеча >= X, то переб

Советник называется cm partial closing position 1.Советник отслеживает открытые позиции по всем или заданному инструменту. 2 При достижении указанной прибыли закрывает часть позиции. Можно у

Posted Images

BooGUY

iHigh(NULL,PERIOD_H1,i) и double H=iHigh(NULL,PERIOD_H1,i); - это не одно и тоже?

Почему-то после цикла while дают разные результаты. 

Хотел оптимизировать, чтобы постоянно не писать длинную строчку  iHigh(NULL,PERIOD_H1,i), а забить её в переменную. Поменял в цикле на переменную, результат получился другой. 


Пишу на mql5 и mql4. Примеры. Пишите в личку.

Link to post
Share on other sites
Pirojoque Project

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

 

Впрочем, без явного контекста локализовать проблему конкретно сложно.

  • Thanks 1
Link to post
Share on other sites
BooGUY
34 минуты назад, Pirojoque Project сказал:

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

 

Впрочем, без явного контекста локализовать проблему конкретно сложно.

Спасибо, имею ввиду. 

Подскажите, пожалуйста такой момент:

 

...

...
double Size[10]; 
x=1;
for (i=10; i>0; i--) 
      {
if (iClose(SymbolName(Symbol_i,true),PERIOD_M1,10)-iLow(SymbolName(Symbol_i,true),PERIOD_M1,i) >= trend*Point) 
          {      
            Size[x]=iClose(SymbolName(Symbol_i,true),PERIOD_M1,10)-iLow(SymbolName(Symbol_i,true),PERIOD_M1,i);  // dв этом месте тут же вылетает USDJPY,М1: array out of range, не успев начаться

            х++;

            ...

            ...

Потом срабатывает. Потов снова вылетает. Одно и то же действие, но иногда вылетает

Пробовал поставить Comment, так перед вылетом написано либо 1, либо 10. 
            

Edited by BooGUY

Пишу на mql5 и mql4. Примеры. Пишите в личку.

Link to post
Share on other sites
Pirojoque Project
  1. В инициализации цикла, а дальше в цене закрытия видим "10" (дальше вообще "100") — лучше вынести во внешнюю переменную и иметь возможность её регулировать. Использовать сами значения — значит "захардкодить" их в коде (и фактически утратить возможность для безболезненной регулировки).
  2. В конструкциях "if" рекомендую сравнивать готовые посчитанные значения, чтобы код было легче читать. Т.е. сначала вычисляем предел свечи, затем размер свечи, сохраняем всё это в переменные, а уже потом в if'е сравниваем эти переменные.
  3. Из замечания 1 вытекла ошибка как раз по обращению к функциям, работающим с массивами (iClose и прочие). Откуда там 100 взялось? Почему в x-ый элемент мы пытаемся насыпать вычисленные значения из 100 - i-тый? Да ещё и цены разные у i-того и 100-того. Не понятен код, не ясна задумка.
  4. Ну и самое главное — массив Size изначально имеет 10 элементов. Т.е. от нулевого до девятого. А вы пытаетесь обратиться к элементу с индексом 10, которого нет (i = 10 ?).

 

Стоит попробовать заменить for (i=10; i>0; i--)  на for (i=9; i>=0; i--) 

Edited by Pirojoque Project
  • Thanks 1
Link to post
Share on other sites
BooGUY
2 часа назад, Pirojoque Project сказал:
  1. В инициализации цикла, а дальше в цене закрытия видим "10" (дальше вообще "100") — лучше вынести во внешнюю переменную и иметь возможность её регулировать. Использовать сами значения — значит "захардкодить" их в коде (и фактически утратить возможность для безболезненной регулировки).
  2. В конструкциях "if" рекомендую сравнивать готовые посчитанные значения, чтобы код было легче читать. Т.е. сначала вычисляем предел свечи, затем размер свечи, сохраняем всё это в переменные, а уже потом в if'е сравниваем эти переменные.
  3. Из замечания 1 вытекла ошибка как раз по обращению к функциям, работающим с массивами (iClose и прочие). Откуда там 100 взялось? Почему в x-ый элемент мы пытаемся насыпать вычисленные значения из 100 - i-тый? Да ещё и цены разные у i-того и 100-того. Не понятен код, не ясна задумка.
  4. Ну и самое главное — массив Size изначально имеет 10 элементов. Т.е. от нулевого до девятого. А вы пытаетесь обратиться к элементу с индексом 10, которого нет (i = 10 ?).

 

Стоит попробовать заменить for (i=10; i>0; i--)  на for (i=9; i>=0; i--) 


Pirojoque Project,благодарю Вас за оперативные ответы по существу. Форум живой у Альпари. 
Я могу ошибаться, но мне кажется, что проблема была в Point. Я повесил на один график, а в коде другая валютная пара, но при этом умножал на Point (валютной пары графика). Поменял на MarketInfo и вроде заработало. Круги нарезает цикл, пока без ошибок (тьфу-тьфу). 

Вы, случайно, не знаете, можно как-то историю порезать? Когда загружаешь, то загружается лет за 20, а нужна года 2-3 назад... 
Сейчас лежит архивный груз МТ4 в 13 гигабайт) Избавиться бы от ненужной истории. Как вариант, нажимать на кнопку Home, но хотелось бы попроще, в идеале программно (либо загружать частично).


Пишу на mql5 и mql4. Примеры. Пишите в личку.

Link to post
Share on other sites
Pirojoque Project
46 минут назад, BooGUY сказал:

Вы, случайно, не знаете, можно как-то историю порезать?

В МТ5 нет такой проблемы 🙂  А вообще лучше всего всё удалить и загрузить заново. Для массированной загрузки есть решение.

  • Thanks 1
Link to post
Share on other sites
GlyhoNemoi
22 часа назад, BooGUY сказал:

Size[x]=

 

22 часа назад, BooGUY сказал:

x=1;

 

проблема вот тут.  индексация в массивах с нуля начинается.

 

когда все условия в циклах верны x=10 а последний индекс массива Size -> 9,  возникает ошибка (индексация массива идет от нуля по этому  последний индекс = "размер массива" - 1).

 

В данном случае проблему решит  x=0.

Link to post
Share on other sites
BooGUY
4 часа назад, GlyhoNemoi сказал:

 

 

проблема вот тут.  индексация в массивах с нуля начинается.

 

когда все условия в циклах верны x=10 а последний индекс массива Size -> 9,  возникает ошибка (индексация массива идет от нуля по этому  последний индекс = "размер массива" - 1).

 

В данном случае проблему решит  x=0.

Благодарю за информацию


Пишу на mql5 и mql4. Примеры. Пишите в личку.

Link to post
Share on other sites
  • 1 month later...
Guiseppe

Здравствуйте.На форуме первый раз,может что не так делаю....Уважаемые программисты,нужно написать советник по стохастику.Алгоритм простой.

                                                                                                               АЛГОРИТМ 

1)Уровни не важны.

2)Быстрая линия %K пересекает медленную %D - с низу на верх-- ПОКУПКА

3)Быстрая линия %K пересекает медленную %D - с верху на низ-- ПРОДАЖА

4) TP. и SL. не нужно, позиция должна закрываться по обратному сигналу Stochastic

5) Если позиция закрылась в убыток,в следующую позицию ( не важно SEL или BAY ) входить с удвоенным лотом и так до тех пор пока позиция закроется в прибыль, после чего лот сбросить до начального.

Все.Заранее спасибо.

Link to post
Share on other sites
Karelia_invest

Первая сделка лотом 0,01 закрылась в -5$, вторая лотом 0,02 закрылась в -55$, третья лотом 0,04 закрылась в +3$. Следующая сделка открывается лотом 0,01? Несмотря на то, что совокупный результат по трем сделкам -57$?

Link to post
Share on other sites
  • 4 months later...
AlexVGol

Здравствуйте, уважаемые участники форума)

Хочу найти разработчика для написания советника на МТ4.  Коротко идея торговой стратегии: на основании показаний существующего индикатора Ди Наполи ( у меня есть его исходник) открываются отложенные ордера с установленными значениями TP и SL.  Ордера срабатывают по рынку. Если индикатор  поменял прогноз на разворотный - оставшиеся в рынке сделки и ордера закрываются по рыночной цене и открываются новые отложенные ордера по новому сигналу.   https://www.mql5.com/ru/charts/15947479/eurusd-h4-alpari-primer-raboti-indikatora-di-napoli

Конкретные параметры торговой системы в личном контакте. 

Если кто-либо заинтересовался, прошу сообщить.

Link to post
Share on other sites
  • 7 months later...
Caravadgo

Друзья, кто сможет нарисовать простенький советник под мт4
1) Определяем флетовый участок примерно в 14:00 – 14:30 мск;

2) Выставляем отложенные ордера Sell stop и Buy stop ниже и выше границ флета;

3) Стоп-лосс ордера на уровне противоположного ордера, тейк-профит равен размеру флетового диапазона;

4) Свеча в 15:00 (иногда чуть раньше, иногда чуть позднее) активирует наш ордер, ждем ТП, либо СЛ.

5) В 20:00, если ни тейк ни стоп-лосс не сработали, закрываем позицию, независимо от наличия прибыли/убытка.

Link to post
Share on other sites
  • 1 month later...
TypucT

Есть кто живой, нужна помощь...

Делаю запрос request.action = TRADE_ACTION_DEAL;

Получаю ответ result.deal = 0. Проверял на демо счёте альпари, на реальном тоже.

Есть какие-то подводные камни или так и должно быть?

Задавал вопрос на форуме mql5. Проигнорили либо из-за тупости вопроса, либо не заметили.

https://www.mql5.com/ru/forum/376299/page4#comment_45509509 37 коммент.

Edited by TypucT
Link to post
Share on other sites
MVARDO_V

Добрый день! Написал на другой площадке, но возможно и здесь что-то найдется. Заранее благодарю! 
Ищу скрипт, который бы:

1. Открывал сделку по рыночной цене (бай/селл) и возможно с касанием мышкой выше текущей цены - бай, ниже - селл (или панелью с кнопками)
2. Стоплосс, при этом, устанавливал бы за лоу/хай предыдущей (желательно настраиваемой n-1,2,3 и тд) свечи + запас в настраиваемое количество пунктов (по возможности + параметра включения/исключения спреда),
3. работал бы в т.ч. на минутках (на текущем выбранном таймфрейме - от минуток до месяцев условно)
4. с возможностью встроенного ММ - то есть открывал был лот с настраиваемым процентом от депозита (по эквити), до 10-х частей процента (условно 0.1%-0,5% от эквити тоже можно было бы поставить, а не только целые числа процентов)
5. с возможностью также установить тейк-профит в 1-2-3-4 и тд. (настраиваемое количество Х-ов) от стоплосса соответственно (условно с возможность выбора профитфактора по сделке)
6. чтобы работал на всех активах и всех типах счетов (ECN, PAMM и форекс, металллы, нефть, CFD и крипта)

Понимаю, что вероятно в одном скрипте может быть этого всего и нет - просто пытался описать максимальное количество параметров под запрос, но возможно по частям что-то похожее есть? В первую очередь конечно интересуют первые 3 (вроде простых) пункта, и 4-ый (ММ) - крайне желателен, но понимаю, что одновременно этого может и не быть в уже существующих скриптах). Хотя есть стойкое ощущение что весь этот функционал достаточно простой и точно был кем-то и когда-либо реализован в каком-то виде. Возможно для MT4 или MT5 (сам в программировании профан, поэтому не понимаю, будет ли работать один и тот же скрипт в обоих системах или надо отдельно для каждого писать?)

К сожалению сам сколько бы не пытался - не смог найти подобное на форумах и в пабликах, видел только лимитники по хай-лоу свечам, а вот чтобы открыть по текучке, а сл поставить за хай-лоу предыдущей свечи - нигде не нашел к сожалению. В общем, если что-то из указанного найдется каким-либо Гуру этого форума - буду очень признателен.! Благодарю!

Link to post
Share on other sites
  • 1 month later...
ALEXIKUS

Здравствуйте, ребят, а еще остались те кто может написать советника по стратегии (индикаторной), моя разработка стратегии, уже проверенная временем...? 

Для МТ4...

Edited by ALEXIKUS

С Уважением ALEXIKUS !

Link to post
Share on other sites
  • 1 month later...
mag137

Здравствуйте, если не затруднит подскажите реализацию в mql5 запроса на открытие позиции по рыночным ценам, то есть без дополнительного запроса цены, а как есть, чтобы не было реквот, а то у меня при req.deviation  =  500  валятся реквоты. Что я делаю не так?

//+------------------------------------------------------------------+
//| Покупка через асинхронную функцию OrderSendAsync()               |
//+------------------------------------------------------------------+
bool BuyAsync(string _sym, double _vol, double _price, ulong _magic, string _comment)
  {
   MqlTradeRequest req = {};
   
   req.type         = ORDER_TYPE_BUY;
   req.type_filling = ORDER_FILLING_FOK;
   req.symbol       = _sym;
   req.volume       = _vol;
   req.price        = _price;
   req.magic        = _magic;
   req.comment      = _comment;
   req.deviation    = 500;
   req.action       = TRADE_ACTION_DEAL;
   Print (__FUNCTION__, " ",req.symbol," ",req.price);                             
   MqlTradeResult  res = {};
   if(!OrderSendAsync(req, res))
     {
      Print(__FUNCTION__,": ошибка ",GetLastError(),", retcode = ",res.retcode);
      ResetLastError();
      return false;
     }
   else
      return true;
  }

 

Edited by mag137
Link to post
Share on other sites
SeregaVG

Доброго времени суток.

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

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.


×
×
  • Create New...