Jump to content
muvingman

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

Recommended Posts

bendra1

Уважаемые программисты,просьба написать советник.Суть советника в том,что он открывает позиции только при достижении заранее указанного ключевого числа.Пусть пара с четырьмя знаками после запятой,в этом случае именно два последних знака являются ключевыми. Например,курс евро сейчас 1.3595, а ключевое заданное заранее число пусть будет 55,тогда советник должен обратить внимание именно на 1.3555 и 1.3655 и ждать,когда цена достигнет одного из них.Никаких отложенников,а нужно,чтоб он держал эти два числа в своей памяти. Если приходит к нижнему 1.3555,то открывает селл с заданным стопом (если приходит к верхнему 1.3655,то открывает бай с заданным стопом) ,а заданный запомненный (!)профит пусть выставит только через указанное в свойствах время (многие ДЦ задают минимальную продолжительность сделки).Если через указанное время цена превысит заданный тэйк(при быстром рынке),то закрыть сделку с текущим профитом,если же не превысила (при медленном рынке),то выставить заданный заранее запомненный тэйк.Если сделка закрывается по стопу,то советник стирает из памяти предыдущие два ключевых числа и в зависимости от того,где сейчас цена,снова записывает в память верхнее и нижнее ключевое число ,но лот увеличивается в два раза, и советник снова возвращается в ждущее состояние и открывает позицию так,как сказано выше,но только с удвоенным лотом. Если сделка закрывается по профиту, то советник возвращается в первоначальное положение,стирает из памяти предыдущие два ключевых числа и опять в зависимости от текущей цены запоминает и ждет два ключевых числа,но лот увеличивается таким образом-анализируется,во сколько раз вырос баланс от предыдущего неуменьшенного(!) баланса и соответственно увеличивается и лот. Например, лот был 1,потом было пару стопов и долгожданный тэйк,баланс считаем,вырос на 1 процент от первоначального,стало быть и лот увеличиваем на один процент и будет он равняться 1.01. Чтоб первоначальные риски в процентах всегда были одинаковы. Также советник считает,сколько раз подряд(!) выпадет стоп-лосс,и при достижении заранее указанного числа должен перестать работать.И выдать звук фанфар. В свойствах советника должны быть такие параметры,которые можно изменить. 1. Валютная пара,(по умолчанию EURUSD), 2.Первоначальный лот (по умолчанию 0.01), 3.Тэйк и профит(по умолчанию 50 пунктов), 4.максимально возможное число подряд стоп-лоссов (по умолчанию 5). 5.Ключевое число (по умолчанию 55). 6.минимальное время закрытия по тэйк-профиту (по умолчанию две минуты).

Share this post


Link to post
Share on other sites
A.S.V.

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

Share this post


Link to post
Share on other sites
fy73
Нужен индикатор, что бы в окне графика линия индикатора накладалась на линию цены и меняла свой цвет в зависимости от направления цены. Т.е. цена идет вверх, линия - зеленая, а если вниз - красная.

Не писал раньше индикаторов, решил попрактиковаться.

PriceLine.zip

  • Downvote 1

Всё сказанное вами может быть использовано против вас.

Плечо пишется через "о".

Share this post


Link to post
Share on other sites
maslivez2011
Не писал раньше индикаторов, решил попрактиковаться.
Супер.Большое тебе спасибо.:up::resp:

Share this post


Link to post
Share on other sites
maslivez2011

Как-то тестировал советника, на истории он показывал фантастичесский профит, а вот на демо, тем более на реале, торговать им в принцыпе невозможно, так как смысл заключается в настройках трала, на демо и реале его невозможно установить ближе 15 пунктов,и в этом вся суть. Может быть кто-то возьмется за реализацию ТС.

Возможно, сама идея может показаться абсурдной, но при ручной торговле, по даной методике, за две недели поднял депо на 400%. Правда, потом из-за форс-мажорных обстоятельств произошел слив.

ТЗ для написания советника:

1) ТП и СЛ в советнике не обязательны или при желании их можно было бы отключить (настройки вынести во внешние параметры).

2)Советник выставляет два противоположных стоп-ордера на минимальном расстоянии от текущей цены.

3) При срабатывании одного из ордеров противоположный удаляется.

4) Выход из рынка происходит при достижении профита хотя бы в один пункт (эту величину тоже можно вынести во внешние параметры)и малейшем движении цены против открытой позиции в убыток.

5) После закрытия позиции цикл повторяется и т.д

Правда у меня возникает вопрос, прежде всего к себе самому: если советник по даной ТС окажется рабочим, не будут ли ДЦ игнорировать его из-за частого открытия-закрытия сделок?

Edited by maslivez2011

Share this post


Link to post
Share on other sites
AnriAn
Как-то тестировал советника' date=' на истории он показывал фантастичесский профит, а вот на демо, тем более на реале, торговать им в принцыпе невозможно, так как смысл заключается в настройках трала, на демо и реале его невозможно установить ближе 15 пунктов,и в этом вся суть.[/quote']

Есть такая штука - называется виртуальный трал.

4) Выход из рынка происходит при достижении профита хотя бы в один пункт (эту величину тоже можно вынести во внешние параметры)и малейшем движении цены против открытой позиции в убыток.

Не понимаю, откуда прибыль?

Share this post


Link to post
Share on other sites
kazakov.v

...

Не понимаю, откуда прибыль?

 

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


Никому верить нельзя.

Мне - можно.

 

Share this post


Link to post
Share on other sites
maslivez2011
Есть такая штука - называется виртуальный трал.

А можно об этом подробнее?

Не понимаю, откуда прибыль?

По крайней мере убытка нет, если прибыль 1 пункт, ведь второе условие на выход, разворот цены. Ну а прибыль берется, если цена пройдет в профит не 1 пункт, а, к примеру 5 или 8. Ведь рынок не всегда бывает вялым.

Share this post


Link to post
Share on other sites
maslivez2011
Да это тестерный Грааль: на отложках ставишь стоп равный цене открытия, и пжалста - убытков нет, а профиты рано или поздно случаются ))

 

Неужели подобная стратегия невозможна на реале? Или хотя бы на демке?

Share this post


Link to post
Share on other sites
kazakov.v
Неужели подобная стратегия невозможна на реале? Или хотя бы на демке?

 

На реале или хотя бы на демке в таком случае будет в лучшем случае минус спред (вместо нуля в тестере). Что, в общем то неплохо :asso: - большинство в таком режиме и "зарабатывают" годами - только догадаться не в силах :gulp:


Никому верить нельзя.

Мне - можно.

 

Share this post


Link to post
Share on other sites
maslivez2011
На реале или хотя бы на демке в таком случае будет в лучшем случае минус спред (вместо нуля в тестере). Что, в общем то неплохо :asso: - большинство в таком режиме и "зарабатывают" годами - только догадаться не в силах :gulp:

 

А совы есть торгующие по этой стратегии? Может этот нюанс попытаться устранить в настройках опытным путем.:roll:

Edited by maslivez2011

Share this post


Link to post
Share on other sites
kazakov.v

Так в чем заключается стратегия то? Найти дыру в ПО и накрячить ДЦ? Были такие. Может и сейчас еще появляются. Но их рано или поздно обнаруживают и прикрывают.

---

А если(?) есть(!) стратегия, но с низким МО, для реализации которой требуется пипсовка, то это отдельная большая тема. Там просто необходим правильный ECN, или биржа (т.е. возможность купить по биду, продать по аску); забыть про стоповые и маркет ордера (только для аварийного выхода); ну и МТ4 для этого не очень годится (хотя люди работают, несмотря на)))

Edited by kazakov.v

Никому верить нельзя.

Мне - можно.

 

Share this post


Link to post
Share on other sites
goldman2013

Напишите пожалуйста простейшего робота на mql4(желательно с коментами)что б при запуске покупал 0.01 евро/бакса со стопом 10п. и профитом 50п. После срабатывания стопа или профита чтоб опять покупал с теми же параметрами. Зарание благодарю за отзывчивость, респект и уважуха!:beer_drink:

Share this post


Link to post
Share on other sites
AntFX
Напишите пожалуйста простейшего робота на mql4(желательно с коментами)что б при запуске покупал 0.01 евро/бакса со стопом 10п. и профитом 50п. После срабатывания стопа или профита чтоб опять покупал с теми же параметрами. Зарание благодарю за отзывчивость, респект и уважуха!:beer_drink:

 

// Внешние параметры советника
extern int stoploss=100;
extern int takeprofit=500;
extern double lots=0.01;

void start() // Функция start советника вызывается терминалом при приходе каждого нового тика от сервера
{
  if(OrdersTotal()==0) // Если ордеров нет (либо это первый запуск, либо предыдущий ордер только что закрылся по СЛ или ТП)
  {
     OrderSend(Symbol(), OP_BUY, lots, Ask, 100, Ask-stoploss*Point, Ask+takeprofit*Point);
     /*
        Отправка ордера
        На инструменте Symbol
        Тип ордера - покупка (OP_BUY)
        Лотность ордера - внешний параметр lots
        Цена, по которой покупаем - текущая цена Ask
        Максимально допустимое проскальзывание - 100 пипсов
        Стоплосс ниже цены покупки (Ask) на stoploss (внешний параметр) пунктов (Point)
        Тейкпрофит выше цены покупки (Ask) на takeprofit (внешний параметр) пунктов (Point)
     */
  }
}


1

Share this post


Link to post
Share on other sites
AnriAn
Напишите пожалуйста простейшего робота на mql4(желательно с коментами)что б при запуске покупал 0.01 евро/бакса со стопом 10п. и профитом 50п. После срабатывания стопа или профита чтоб опять покупал с теми же параметрами. Зарание благодарю за отзывчивость, респект и уважуха!:beer_drink:

Ну и будет на 5 профитных 1 убыточный да + спред/комиссия по каждому ордеру.

В чем смысл ?

Share this post


Link to post
Share on other sites
goldman2013

Смысл в том что б увидеть как это в коде выглядет.:o Тока непонятно как вызывать внешние параметры и советник будет торговать тем инструментом окно графика которого открыто в метатрэйдере? Или где указывать что б это был евробакс.

Edited by goldman2013

Share this post


Link to post
Share on other sites
Ugar68
Смысл в том что б увидеть как это в коде выглядет.:o Тока непонятно как вызывать внешние параметры и советник будет торговать тем инструментом окно графика которого открыто в метатрэйдере? Или где указывать что б это был евробакс.

Внешние параметры вызывать не надо они в настройках советника.

В качестве символа указан Symbol(). Это текущий символ графика.

Так же в коде используется Ask цена покупки на текущем символе.

Для работы на не текущем, а на конкретно указанном eurusd нужно указать символ, например "EURUSD". И вместо Ask использовать MarketInfo("EURUSD",MODE_ASK)

Edited by Ugar68

Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Share this post


Link to post
Share on other sites
AntFX

И ещё вместо Point использовать MarketInfo("EURUSD",MODE_POINT), если текущий график и нужная пара одновременно не являются содержащими или не содержащими JPY

Тока непонятно как вызывать внешние параметры

Это просто для универсальности. Можно числовые значения прямо подставить в код и убрать их из внешних параметров. А можно во внешние параметры ещё Slippage=100, symbol="EURUSD" и Commnd=OP_BUY вынести.

Edited by AntFX

1

Share this post


Link to post
Share on other sites
goldman2013

Вот так:

// Внешние параметры советника

extern int stoploss=100;

extern int takeprofit=500;

extern double lots=0.01;

 

void start() // Функция start советника вызывается терминалом при приходе каждого нового тика от сервера

{

if(OrdersTotal()==0) // Если ордеров нет (либо это первый запуск, либо предыдущий ордер только что закрылся по СЛ или ТП)

{

OrderSend(Symbol("EURUSD"), OP_BUY, lots, MarketInfo("EURUSD",MODE_ASK), 100, Ask-stoploss*MarketInfo("EURUSD",MODE_POINT), Ask+takeprofit*MarketInfo("EURUSD",MODE_POINT));

/*

Отправка ордера

На инструменте Symbol

Тип ордера - покупка (OP_BUY)

Лотность ордера - внешний параметр lots

Цена, по которой покупаем - текущая цена Ask

Максимально допустимое проскальзывание - 100 пипсов

Стоплосс ниже цены покупки (Ask) на stoploss (внешний параметр) пунктов (Point)

Тейкпрофит выше цены покупки (Ask) на takeprofit (внешний параметр) пунктов (Point)

*/

}

}

Share this post


Link to post
Share on other sites
AntFX

OrderSend("EURUSD", OP_BUY, lots, MarketInfo("EURUSD",MODE_ASK), 100, Ask-stoploss*MarketInfo("EURUSD",MODE_POINT), Ask+takeprofit*MarketInfo("EURUSD",MODE_POINT));


1

Share this post


Link to post
Share on other sites
goldman2013
И ещё вместо Point использовать MarketInfo("EURUSD",MODE_POINT), если текущий график и нужная пара одновременно не являются содержащими или не содержащими JPY

 

Это просто для универсальности. Можно числовые значения прямо подставить в код и убрать их из внешних параметров. А можно во внешние параметры ещё Slippage=100, symbol="EURUSD" и Commnd=OP_BUY вынести.

 

Да пусть будут во внешних параметрах, я их вроде в свойствах эксперта нашёл А что такое Slippage=100, symbol="EURUSD" и Commnd=OP_BUY и как это юзать?

Share this post


Link to post
Share on other sites
Ugar68
OrderSend("EURUSD", OP_BUY, lots, MarketInfo("EURUSD",MODE_ASK), 100, Ask-stoploss*MarketInfo("EURUSD",MODE_POINT), Ask+takeprofit*MarketInfo("EURUSD",MODE_POINT));

Забыл про Ask в стоп лоссе и тейк профите.

OrderSend("EURUSD", OP_BUY, lots, MarketInfo("EURUSD",MODE_ASK), 100, MarketInfo("EURUSD",MODE_ASK)-stoploss*MarketInfo("EURUSD",MODE_POINT), MarketInfo("EURUSD",MODE_ASK)+takeprofit*MarketInfo("EURUSD",MODE_POINT));

Ещё желательно нормировать данные.


Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Share this post


Link to post
Share on other sites
AntFX
Ещё желательно нормировать данные.

 

Короче :lol:

это рай для новичка


1

Share this post


Link to post
Share on other sites
Ugar68
Короче :lol:

это рай для новичка

Ага :agree:.

А ещё желательно антиреквот, а если совсем не лень то и проверить данные на корректность.

Наверное действительно, новичку лучше что бы хоть как то код заработал с минимальными заморочками. О качестве работы программ задумается потом.


Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Share this post


Link to post
Share on other sites
AntFX

А значит пусть советники работают на текущей паре, нормалайз при умножении int на Point не обязателен, и без антиреквота можно как-нибудь обойтись с макс проскальзыванием 100...

 

Да, вот только если счет ECN, то этот код работать не будет..... :pofig:


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.

×