Стратегия «Супертрендер» - разработка инструментов торговли по тренду: волатильность, стопы, наращивание позиции.

MQL4 Experts

Termos de Referência

Разработка инструментов торговли по тренду: волатильность, стопы, наращивание позиции.

 

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

 

Стратегия «Супертрендер».

 

Суть «трендера»: работаем только на фундаментальных супертрендах (непрошибаемые основания, достойный апсайд, общий консенсус).

 

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

 

Как это возможно? Понятно, что можно посмотреть максимальную волатильность по предыдущим данным – в процентах (по активу на прошлых супертрендах).

 

- Открываем контракт (контракты).

 

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

 

Собственно, по этой процентной величине мы заранее определяем шаги нашего алгоритма - при движении цены по тренду!

 

Если величина правильная – то наши контракты по стопу не выбиваются.

 

А если выбьются? Надо таки при открытии новых контрактов контролировать риск!! Как?

 

Просто:

 

По всем открытым контрактам мы должны поставить стоп, который, как мы думаем, не выбьет по волатильности!!! (на чуть большую величину, чем экспертно определенная волатильность (по прошлым данным)).

 

- Понятно, что по контрактам, вновь открытым на новом шаге, - при отстапливани мы получаем убыток, а по предыдущим (если шагов было больше 2) – прибыль…

 

Так как количество контрактов с предыдущих шагов у нас возрастает, то и количество вновь открываемых мы можем нарастить!!!

 

Вопрос только, сколько контрактов открыть на текущем достигнутом по цене уровне? Надо для варианта отстапливания соотносить прибыль от предыдущих контрактов (с учетом, что они все были открыты на разных уровнях) и убытком от тех, что мы открываем сейчас. Это нетрудно посчитать в Eхcel.

 

Агрессивная стратегия - соотношение прибыли и убытков при отстапливании – предполагает равным нулю (позволит открыть максимальное количество контрактов на тренде).

 

Но это не совсем правильно – всегда возможен вариант, что максимальная волатильность на тренде окажется выше предполагаемой…

 

Если мы открываем такое количество контрактов, чтобы при отстапливании мы все равно были в хорошее плюсе – тогда, если отстопили - не беда, мы начинаем снова двигаться по тренду с тем же плечом, что и начинали, но уже от большей суммы на счете…

 

Итак, что нам надо?

  1. Прога по изучению волатильности на трендах.
  2. Алгоритм «трендер» для торговли (самый элементарный).

 

=================================================================

1. Прога по изучению волатильности на трендах.

 

1. Есть начальная, есть конечная точка на графике (тренд).
2. Есть заданная волатильность в пунктах, но правильнее в процентах.
3. Задается направление.
4. Прога просматривает график и, если видит отклонение в процентах от тренда* большее, чем на заданный процент*, то выписывает в таблицу:
- верхнюю/нижнюю точку
- дату/время верхней/нижней точки
- процент отклонения от тренда *(падения на растущем тренде или процент роста на падающем)
- отклонение в пунктах

 

* Отклонение в процентах от тренда* - пояснение: например, график (участок между начальной и конечной точкой) направлен вверх (растущий тренд), двигаясь по графику находим локальную вершину А1, а дальше есть локальный провал (коррекция) с нижней точкой А2, тогда «отклонение в процентах от тренда»: (А1 – А2)/А1 * 100.

 

** Оптимальный алгоритм просмотра – задача для математиков, но можно идти тупо прямо по тренду и вести расчет (следует учитывать, что бывают очень краткосрочные коррекции – за 5 минут может резко скорректироваться и отскочить, прога не должна пропускать такие вещи). Допустим рост: записываем вершины и спады, находимо от каждой вершины найти максимальный спад, считаем процент, если больше заданного - выписываем.

 

=================================================================

2. Алгоритм «трендер» для торговли (самый элементарный).

 

1. Есть текущая цена.

2. Задаем параметром направление тренда.

3. Для торговли нам потребуется работа с таблицей (количество полей определим, дочитав алгоритм до конца!!!).

 

В таблице есть цены и количество ордеров по каждый цене (и еще параметр - если у какой-то цены стоит ноль контрактов, перетаскивать ли в этом случае стопы по предыдущим контрактам на уровень предыдущей цены (например, 0 – не перетаскиваем, 1 перетаскиваем)).

 

Под количеством ордеров – понимаем количество ордеров минимального размера. Это зависит от брокера, надеюсь для робота все равно отрыть ли 10 минимальных отдельных ордеров или 1 ордер на 10 минимальных, если для скорострельности это все равно - безусловно, надо открывать именно минимальными ордерами.

 

Размер минимального ордера – задаваемый параметр (зависит от брокера).

 

3.1. Мне надо бы, чтобы таблицу можно было забирать экспортом из Excel:

1)      Указав соответствие столбцов и строк.

2)      Или можно упростить – всегда будут 3 (или 4 или 5, см. ниже) первых столбца и с первой строки (если лениво задавать строки и столбцы для импорта из Eхcel) – но здесь для меня есть неудобство.

3)      Или импорт из CSV – сделать, в общем подумать…

4)      Или я ручками перебью, но это не культурно.

 

3.2. Должна быть возможность посмотреть таблицу после экспорта в роботе и, если что, - там ручками править!!!

 

4. Ставим первые отложенные ордера по таблице на определенную цену (в количестве из таблицы), при срабатывании которого выставляем все остальные ордера по таблице (цены и количество).

 

Про стоп первого контракта – см. пункт 6.

 

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

 

Пример 1.

 

EUR/USD 1,40 мы хотим отыграть тренд вниз при достижении цены 1,42.

По таблице у нас есть ордера на 1,42, на 1,41 на 1,39 - тогда ставим 1,42 Sell Limit, когда он срабатывает, ставим Sell Stop 1,41, 1,39.

 

Пример 2.

 

EUR/USD 1,40, мы хотим отыграть тренд вниз при достижении цены 1,39. По таблице у нас есть ордера 1,39, 1,38, 1,37 - это все будет Sell Stop.

 

Примечание - на первых порах тип ордеров можно ставить вручную, решить эту задачу потом.

 

6. Стоп - на первом этапе (как я подумал), при достижении новой точки по таблице (новой цены) перетаскиваем стоп по всем предыдущим контрактам на предыдущий уровень (предыдущую точку, цену). Если на новой точке открывается ноль контрактов, то перетаскивать стоп или нет - определяется параметром, стоящим в таблице на этой точке (по умолчанию - параметр говорит - перетаскиваем). В дальнейшем (NB: только в дальнейшем) - делаем культурный трейлинг стоп - с заданным параметром.

 

Здесь есть вопрос: а не надо ли выносить уровень стопа для контрактов, открываемых на шаге в отельный столбец???

 

Рассмотрим оба варианта:

 

6.1. Разберем пример:

 

 

B

E

 

 

Цена

Контрактов на шаге

 

Перетаскивание
(1 –да, 0 –нет)

0

1,26000

 

 

1

1,27446

2

 

2

1,29388

2

 

3

1,3133

2

 

4

1,33301

2

 

5

1,35302

6

 

6

1,37333

6

 

7

1,39394

5

 

8

1,41486

0

0

 

А) Допустим, сработали отложенные ордера на 1,3133 (шаг 3) - по моему алгоритму для всех ранее сработавших ордеров (открытых контрактов) стопы перетаскиваются на 1,29388 (шаг 2) (кстати, номер шага – это чисто справочное поле, для алгоритма нам не нужно, строго говоря).

 

Б) По первым сработавшим ордерам 1,27446 (шаг 1) стоп ставим по предыдущей строке, где есть цена, нет количества контрактов (1,26000, шаг 0). Если на шаге 0 пусто (как в примере) – или первого шага нет (т.е. нет строки, предшествующей первой, где есть количество ордеров) – значит, стоп не ставим!!!

 

В) Теперь допустим, цена достигла 1,41486 (шаг 8), на ней мы открываем 0 контрактов, при этом по предыдущим открытым контрактам (сработавшим ордерам) - мы перетаскиваем стоп на предыдущий уровень 1,39394 (шаг 7)??? На 8 шаге в параметрах перетаскивания 0 - значит нет! (а было бы «1», то надо было бы перетащить, как обычно.

 

6.2. Можно сделать с прямым указанием в отдельном столбце стопов, на которые мы перетаскиваем все предыдущие открытые контракты, при срабатывании отложенных ордеров на данном шаге по данной цене.

 

 

B

 

E

 

Цена

Стоп

Контрактов на шаге

1

1,27446

 

2

2

1,29388

1,27446

2

3

1,3133

1,29388

2

4

1,33301

1,3133

2

5

1,35302

1,33301

6

6

1,37333

1,35302

6

7

1,39394

1,37333

5

8

1,41486

1,37333

0

 

Если, предположим, на шаге стопа нет – значит, его не ставим.

 

В этом случае и делать столбец (параметров перетаскивания) не нужно.

 

В принципе, для моего алгоритма - пока лишнее, но потенциально на будущее – возможна некоторая степень свободы – словом на Ваше усмотрение.

 

7. Тейк профит - задается как параметр цели.

7.1. Надо обязательно сделать кнопку (опцию) установить/поменять Тейк Профит по всем ордерам.

 

Причем очень желательно, чтобы опционально можно было установить/поменять тейк:

 

- по всем ордерам

- только по сработавшим ордерам (открытые контракты)

- только по всем отложенным ордерам (еще не сработавшим)

 

7.2. Дополнительный функционал.

 

При этом – если по каким-то контрактам не удается перетащить тейк (т.е. не хватает пунктов):

 

- выводится сообщение, что по столько-то контрактам не удалось перетащить

- спрашивается - нужно ли по ним перетаскивать?

- спрашивается, какой отступ в пунктах для них сделать?

 

Этот цикл повторяется, пока не отработают команды пользователя (т.е. пока он не откажется от перетаскивания по тем контрактам, по которым не удалось перетащить или не подставятся все тейки в соответствии с задаваемыми им в этом процессе параметрами).

 

7.3. Перетащить тейк для выбранных контрактов (т.е. пользователю предлагается таблица открытых (сработавших) и отложенных контрактов и текущие тейки по ним – пользователь выбирает галочкой, по каким он хочет перетаскивать, ставит значение, на которое он хочет перетащить). Дальше см. пункт 7.2.

 

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

 

8.1. Вопрос вот в чем: если цена после выходных оказалась ниже стопа???

 

Думаю параметризуется также в таблице:

 

 

B

 

E

 

 

Цена

Стоп

Контрактов на шаге

Стоп после пятницы

1

1,27446

 

2

 

2

1,29388

1,27446

2

1,27446

3

1,3133

1,29388

2

1,29388

4

1,33301

1,3133

2

1,3133

5

1,35302

1,33301

6

1,33301

6

1,37333

1,35302

6

1,34

7

1,39394

1,37333

5

1,37333

8

1,41486

1,37333

0

1,37333

 

Т.е. по умолчанию уровни совпадают – и если оказались ниже – все закрываем (только не механизмом стопа, а автоматически (приказом)).

 

Представим, однако, что – на 6 шаге у нас по всем (уже открытым) контрактам стоп стоит на 1,35302. Мы полагаем, что цена после пятницы может уйти ниже, но не хотим закрываться – тогда заходим в таблицу и в столбце после пятницы меняем умолчание – пишем 1,34 и при открытии либо ставим такой стоп, либо, если цена еще ниже (1,3399), закрываем все (как контракты, так и отложенные ордера) автоматически.

 

8.2. Хотелось бы по номеру контракта – сохранять его историю, т.е. по какой цене он был открыт, но это чисто для информации – можно не делать, конечно…

 

9. Продумать, как сделать, чтобы робот работал, когда комп отключен (можно ли это где-то на сервере запускать).

 

10. Кнопка - убрать все не сработавшие отложенные ордера.

 

10.1. Кнопка - поставить отложенные ордера (это если мы их убрали кнопкой) в соответствии с таблицей (таблица может быть для повторного открытия отложенных ордеров скорректирована).

 

11. Кнопка - закрыть все ордера как не сработавшие, так и текущие, работающие (открытые контракты).

 

12. Кнопка - перетащить стопы для всех/для определенного количества открытых контрактов (где они были) на такое-то значение.

 

12.1. Параметр: все контракты/количество открытых контрактов.

 

12.2. При этом – если по каким-то контрактам не удается перетащить стоп (т.е. не хватает пунктов):

 

- выводится сообщение, что по столько-то контрактам не удалось перетащить

- спрашивается - нужно ли по ним перетаскивать?

- спрашивается, какой отступ в пунктах для них сделать?

 

Этот цикл повторяется, пока не отработают команды пользователя (т.е. пока он не откажется от перетаскивания по тем контрактам, по которым не удалось перетащить или не подставятся все стопы в соответствии с задаваемыми им в этом процессе параметрами).

 

12.3. Перетащить стопы для выбранных контрактов (т.е. пользователю предлагается таблица открытых контрактов и текущие стопы по ним – пользователь выбирает галочкой, по каким он хочет перетаскивать, ставит значение, на которое он хочет перетащить). Дальше см. пункт 12.2.

 

13. Кнопка - закрыть все не сработавшие ордера, а текущих открытых контрактов закрыть столько-то (для уменьшения плеча).

 

14. При отстапливании - мне бы очень нужен сигнал - лучше всего SMS на телефон (отправить с сайта МТС, например, или письмом на SMS сервер, а потом придет SMS) или (это хуже) в ISQ или Skype (есть API) или воспользоваться возможностями, предоставляемыми брокером…

 

15. Вся реализация должна быть на MQL4, т.к. не все брокеры поддерживают MQL5 (но продумать возможность в дальнейшем портировать на MQL5).

 

Ждем предложений, готовы к сотрудничеству!

 

PS

 

При комментировании, пожалуйста, не цитируйте весь документ, а только конкретные места во избежание разрастания темы.

 

Respondido

1
Desenvolvedor 1
Classificação
(548)
Projetos
1330
59%
Arbitragem
28
82% / 0%
Expirado
10
1%
Livre
2
Desenvolvedor 2
Classificação
(32)
Projetos
53
30%
Arbitragem
8
0% / 63%
Expirado
13
25%
Livre
3
Desenvolvedor 3
Classificação
(563)
Projetos
932
47%
Arbitragem
301
59% / 25%
Expirado
124
13%
Trabalhando
4
Desenvolvedor 4
Classificação
(71)
Projetos
254
53%
Arbitragem
16
50% / 38%
Expirado
83
33%
Livre
5
Desenvolvedor 5
Classificação
(62)
Projetos
140
46%
Arbitragem
19
42% / 16%
Expirado
32
23%
Livre
6
Desenvolvedor 6
Classificação
(15)
Projetos
37
62%
Arbitragem
1
0% / 100%
Expirado
1
3%
Livre
Pedidos semelhantes
Здравствуйте.Скажите,вы можете помочь немного модифицировать индикатор ( приложен к письму ). Я не буду углубляться в саму суть индикатора.Это не важно.Дело,по большому счёту,пустяковое. Хотелось бы в него добавить всего две функции: 1.Он,как и все другие индикаторы,работает в режиме онлайн.То есть,реагирует на каждое изменение графика цены. Хочется сделать в настройках индикатора графу под названием - "оффлайн"(true
Рассматриваю любые устойчивые системы с высоким KPI, от супер агрессивных с доходностью 50%-100% в месяц ( слив не чаще чем раз 12 месяцев ) , до супер консервативных с доходностью 15%-20% в год при просадке не более 2%-4% и наличием SL или Stop Out / С возможностью доработка под ТЗ или покупка готового решения
Нужен советник который можно установить на МТ5, функции которые требуются; 1) отключать возможность торговать если трейдер допустил просадку в -2% от депозита (уровень просадки админ может менять) 2) отключать возможность торговать если трейдер сделал тейк на более чем 10% от депозита (уровень тейка админ может менять) функция торговли автоматически отключается на 24 часа, также админ может включать функцию. Доп.инфу
Есть советник MT 5 для Мосбиржи с простой стратегией основанной на двух скользящих средних: на нижней МА покупка, на верхней МА продажа. Нужно исправить две вещи: 1. Сейчас на покупку выставляются лимитные ордера, а продажа набранной позиции осуществляется тейк-профитом. Нужно изменить советник, так, чтобы закрывалась позиция также лимитным ордером, а не тейк-профитом. Здесь нужно учесть что закрытие может быть
Есть советник, нужно только поменять название,описание, сделать привязку к счету, чтобы была защита,чтобы мы могли клиенту давать советник, и была привязка к 1-3 счетам только. Если возможно , сделать привязку к времени, чтобы была привязка лицензии еще на время, например на месяц, 2-3 по ценам договоримся отдельно
Нужен эксперт который будет проверять есть ли интернет соединение, есть ли связь с брокером, есть ли обновления котировок если нет то реконнект аккаунта через интервал времини. терминалов можеть быть дестяки открыто в каждом терминале свой реконнект MQL5 expert цена вопросы? конверт mql5 на mql5 смотреть файл
Нужен советник который может скачать файл с любым расширением (png, jpg, exe и т.д.) по заданной ссылке и сохранить в указанную папку. Без использования сторонних библиотек, только WinAPI. Файл советника нужен с открытым исходным кодом
Куплю Вашего прибыльного советника дорого Должна быть возможность протестировать его на истории и реальные статистические показатели РЕАЛЬНОГО счета Желательно не мартингейл, после тестирования и предоставления статистики счета предложу свою цену
Тех задания 1. Открывает сделки по сигналу индикатора. Перед открытием смотреть на фильтр и если фильтр тоже в этом направлении то открывает сделку если фильтр показывает тренд в противоположенную сторону то не открывает сделку. 2. Можно было выбирать торговлю но БООМ или КРАШ. 3. Стоплос 2 типа по пипсам и по кирпичикам. (при закрытие по кирпичикам если фильтр меняет тренд то задаем N кирпичиков после смени тренда
Необходимо разработать ПО для торговли на финансовых рынках с возможностью подключения к различным брокерам и управлением торговыми операциями по нашим сигналам. Сигналы поступают в табличку формата .csv, которая находится на удаленном сервере. Видим это примерно так: в нашу таблицу поступает сигнал negative (на продажу) или positive (на покупку) актива. Клиент получает этот сигнал и заданным количеством лотов

Informações sobre o projeto

Orçamento