«Супер Закрывашка»

MQL4 Scripts

Specification

«Супер Закрывашка».

 

Открытый проект по разработке утилиты «Супер Закрывашка». Приглашаются все желающие, нужно написать код (открытый, в исходниках), будут обсуждения, корректировки…


Вот еще мне нужна супер закрывашка - я несколько раз попадал, когда хотел открыться или закрыться на свече. И терял почти все - потому что меня оттопыривали, потому что цена изменялась. Я пытался через стоп - но стоп по умолчанию предлагает 100 пунктов (по разным активам разное количество) от ТЕКУЩЕЙ цены, поэтому стоп мне тоже не давали поставить. Решения я нашел - надо стоп ставить на 20 или 50 (это надо проверять) выше разрешенных 100 пунктов.

 

Суть закрывашки вот в чем – если по любасу надо закрыть:

 

- пытаемся цену поймать в коридор между стопом и тейком

- не получается - расширяем коридор в ту или в другой сторону (или в обе сразу)

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

- пытаемся уменьшить по возможности коридор

 

Итак, супер закрывашка должна:

 

Первая итерация:

 

По выбранным или по всем ордерам ОДНОВРЕМЕННО производить следующее:

- посылать сигнал на закрытие по текущей цене

- ставить разрешенный стоп, минимальный по данному активу, плюс Z (задаваемое) количество пунктов, при срабатывании - сразу запускать трейлинг стоп

- ставить разрешенный тейк, минимально близкий по данному активу, плюс Q (задаваемое, как правило, равно Z)

 

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

 

Вторая итерация:

 

2. Если не срабатывает тейк, потому что цена так быстро бежала, что все равно оказалось, что не хватает пунктов, повторяем попытку, в которой ОДНОВРЕМЕННО (если это возможно одновременно):

 

- посылаем сигнал на закрытие по данной цене

- пытаемся выставить минимальный по данному активу тейк от новой текущей цены плюсу Q плюс еще Х (это тоже задаваемый параметр)

 

Т.е. например, разрешено ставить тейк на 100 пунктов от текущей цены, на первой итерации мы пытались ставить 120 пунктов (20 - это заданный параметр Q), не удалось – мы на второй итерации ставим 150 пунктов, если параметр Х равен 30 (т.е. 100 +Q+Х).

 

Крайне желательно (это можно делать тут же - на второй итерации программы, а можно, конечно и не делать): при этом ОДНОВРМЕННО пытаемся приблизить стоп на F (если он сработал, т.е. поставился, то он тянется за текущей ценой на минимально допустимом расстоянии плюс Z), т.е. например Z было 20 пунктов, стоп поставился и тянется по трейлинг стоп на минимальном расстоянии по активу +Z, т.е. на 120 пунктов, мы пытаемся приблизить его к текущей цене на F пунктов, т.е. допустим, F=10, мы пытаемся выставить стоп на следующую величину от текущей цены (100+Z-Y, т.е. 100+20-10=110).

 

А если проканало, то сразу же пытаемся на разрешенные 100 пунктов.

 

При этом всегда, запускаем трейлинг стоп!

 

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

 

3. Если не срабатывает стоп, потому что цена так быстро развернулась, что все равно оказалось, не хватает пунктов, повторяем попытку, в которой ОДНОВРЕМЕННО (если это возможно одновременно):

 

- посылаем сигнал на закрытие по данной цене

- выставить минимальный по данному активу стоп от новой текущей цены плюс Z плюс еще Y (это тоже задаваемый параметр)

 

Т.е. например, разрешено ставить стоп на 100 пунктов от текущей цены, на первой итерации мы пытались ставить 120 пунктов (20 - это заданный параметр Z), не удалось – мы на второй итерации ставим 150 пунктов, если параметр Y= 30 (т.е. 100 +Z+Y).

 

Крайне желательно (это можно делать тут же - на второй итерации программы, а можно, конечно и не делать): при этом ОДНОВРМЕННО пытаемся приблизить тейк на S (если он сработал, т.е. поставился, и переставляется на минимально допустимом расстоянии плюс Q), т.е. например Q было 20 пунктов, тейк переставляется на минимальном расстоянии по активу +Q, т.е. на 120 пунктов, мы пытаемся его приблизить к текущей цене на S пунктов, т.е. допустим, S=10, мы пытаемся выставить тейк на следующую величину от текущей цены (100+Q-S, т.е. 100+20-10=110).

 

Если у нас не сделано пока автоматическое придвижение (изменение) тейка, тогда одновременно при удачной постановке тейка и отказе в получении стопа пытаемся ставить тейк на (100+Q-S, т.е. 100+20-10=110).

 

Ну, допустим, ты шортил, цена вдруг развернулась, тейк поставился, а стоп нет - цена развернулась вверх – пытаемся стоп поставить еще выше от разрешенных 100 пунктов, чем в первой попытке (не на 120 от текущей, а на 150), а тейк поднимаем (т.е. по прибыли уменьшаем), причем не на то же расстояние, а пытаемся еще ближе к разрешенным 100 пунктам, чем в первой итерации (не на 120, а на 110).

 

ВНИМАНИЕ: здесь надо хорошо подумать – стоит ли переставлять тейк, используя параметр S – дело в том, что мы, например, уменьшим диапазон – сделаем не 120, а 110 пунктов (при разрешенных100) - а он из-за этого не поставится??? Или тут же сделать попытку снова со 120 пунктами? Если все делается очень быстро, можно делать много попыток: не получилось сузить диапазон, тут же делаем заход, расширив до прежних 120 пунктов.

 

4. Если отказали и в стопе, и в тейке, тогда мы еще расширяем коридор по ним на задаваемые параметры У и Х (соответственно).

 

Третья итерация:

 

5. Если на второй итерации поставились стоп и/или тейк, с расширением диапазона на У и Х, это не очень хорошо, надо третьей итерацией пытаться их не только тащить за текущей ценой (стоп трейлингом и тейком программно), но и пытаться сократить диапазон на те же У и Х:

 

- расширение тейка на Х может происходить на второй итерации (см. пункт 2 и 4)

- расширение стопа может происходить на Y на второй итерации (см. пункт 3 и 4)

 

Четвертая итерация:

 

6. Желательно: если поставились на первой итерации тейк и/или стоп, по стопу у нас включен трейлинг стоп, а по тейку, если цена развернулась в сторону стопа, и сделано перетаскивание тейка (как сказано в пункте 1, на минимальное расстояние + Q), тогда надо пытаться сузить коридор по стопу и тейку на F и S (см. пункт 2.3).

 

Это делается уже на второй итерации:

 

- поставиться тейк с парметром Q может на первой итерации (см. пункт 1 и 3)

- поставиться стоп с параметром Y может на первой итерации (см. пункт 1 и 2)

 

Повторюсь - внимание!!!

 

ВНИМАНИЕ: здесь надо хорошо подумать – стоит ли переставлять тейк, используя параметр Х, – дело в том, что мы, например, уменьшим диапазон – сделаем не 120, а 110 пунктов (при разрешенных100) - а он из-за этого не поставится??? Или тут же делать попытку снова со 120 пунктами? Если все делается очень быстро, можно делать много попыток: не получилось сузить диапазон, тут же делаем заход, расширив до прежних 120 пунктов.

 

Суть закрывашки вот в чем – если по любасу надо закрыть:

 

-пытаемся цену поймать в коридор между стопом и тейком

- не получается - расширяем коридор в ту или в другой сторону (или в обе сразу)

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

- пытаемся уменьшить по возможности коридор

 

Для стопа параметры:

 

Расширение коридора, задаваемое сразу на первой итерации:

 

для стопа - Z

для тейка –Q

 

Расширение для второй итерации:

 

для стопа Y

для тейка X

 

Уменьшение коридора на второй итерации (очень желательно, но не обязательно):

 

для стопа - F

для тейка - S

 

Уменьшение коридора на третьей итерации (после расширения на второй):

 

- те же, что и для расширения на второй!!! (т.е. для стопа Y, для тейка X)

 

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

 

Responded

1
Developer 1
Rating
(560)
Projects
1348
59%
Arbitration
28
82% / 0%
Overdue
10
1%
Free
2
Developer 2
Rating
(33)
Projects
54
30%
Arbitration
8
0% / 63%
Overdue
13
24%
Free
3
Developer 3
Rating
(564)
Projects
933
47%
Arbitration
303
59% / 25%
Overdue
125
13%
Working
4
Developer 4
Rating
(106)
Projects
189
46%
Arbitration
34
24% / 41%
Overdue
58
31%
Free
5
Developer 5
Rating
(71)
Projects
254
53%
Arbitration
16
50% / 38%
Overdue
83
33%
Free
6
Developer 6
Rating
(1)
Projects
4
25%
Arbitration
1
0% / 100%
Overdue
1
25%
Free
7
Developer 7
Rating
(62)
Projects
140
46%
Arbitration
19
42% / 16%
Overdue
32
23%
Free
8
Developer 8
Rating
(15)
Projects
37
62%
Arbitration
1
0% / 100%
Overdue
1
3%
Free
9
Developer 9
Rating
Projects
0
0%
Arbitration
0
Overdue
0
Free

Project information

Budget