PDA

View Full Version : DELIT_ORDER_BY_PRICE?!



Antonios
21-06-2009, 22:19
Здравствуйте, Уважаемые Господа!

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

Предполагаю, что это можно сделать, взяв за одну переменную цену отложенного ордера, а за вторую переменную - текущую цену Ask или Bid. И вычесть из одной другую, что бы получилось 40 или -40. Результатом будет OrderDelete.

Вот только как это сделать в коде? ))

SK_
22-06-2009, 09:42
Полезная будет штуковина.
Вы только скажите какие закрывать ордера и в какой последовательности.
Например, если имеются ордера
- BuyStop на 0.01 лота на цене 1.5000 и
- BuyStop на 3 лота на цене 1.5001
А если ордера на одной цене и одного объёма, то какие критерии принять, чтобы вычислить порядок закрытия? Например, StopLoss, направление тренда, время суток и пр.

Antonios
22-06-2009, 18:51
:)
Последовательность закрытия ордеров: дело в том, что эксперт постоянно выставляет отложенные ордера выше и ниже текущей цены. Т.к. некоторые дилинговые центры ставят условием ограниченное количество отложенных, эксперт больше не может их выставлять; возникает необходимость постоянно удалять ордера, от которых цена уже отошла и в ближайшее время не зацепит.

Если выставлен BuyStop на 0.01 лота на цене 1.5000, а цена уже достигла 1.4060, то этот BuyStop сразу должен удалиться.
Или если выставлен BuyLimit, то если цена ушла вверх на 1.5040, он удаляется.
Если SellStop и SellLimit - аналогично.

Может быть ордер не получиться СРАЗУ удалить, по причине большого количества обращений скрипта к серверу, что нежелательно. Тогда, например сделать обновление 1 раз\10-20 секунд.(или не стоит?)

Если два ордера по одной цене, они оба должны удалиться.
Объем не имеет значения, все ордера будут одного лота. Направление тренда и время суток тоже не имеют значения. У всех ордеров StopLoss=0.
А говоря о текущей цене можно взять Ask или Bid, это не принципиально. Пару пунктов роли не сыграют :)
Спасибо:rolleyes:

SK_
23-06-2009, 22:27
Ваши рассуждения в целом понятны.
Однако, для составления программы требуется знать общий порядок.

Например, надо знать максимально допустимое количество ордеров.
(пусть, например, 4 - по одному каждого вида). Или это количество не ограничено, а критерием является лишь коридор цен?

Если всё же количество ордеров ограничено, то как быть, если есть несколько однотипных ордеров с одинаковой ценой закрытия, но разными ТР и SL ?

Коридор цен будет рассчитываться от правильной цены, т.е. цены исполнения ордера (Bid или Ask) в зависимости от его типа.

Antonios
24-06-2009, 21:23
Целесообразнее сделать коридор цен до 80 пунктов. По сорок в каждую сторону.
Если необходимо, вышлю код эксперта.

SK_
25-06-2009, 15:43
Скрипт уже готов. Сегодня закончу статью и выложу.

SK_
26-06-2009, 12:05
Описание смотрите здесь (http://www.forextrade.ru/mqlabs/25.06.2009-skript-dlya-zakrytiya-otlozhennyh-orderov).

Antonios
26-06-2009, 19:10
Спасибо, ОГРОМНОЕ, Сергей! ))
Думаю, скрипт будет прекрасным дополнением к вашему приложению AutoGraf 4.
Ещё раз спасибо! )

А можно ли вставить этот скрипт в эксперт? )
Как это сделать?

SK_
27-06-2009, 02:29
Скрипт целиком вставить в эксперт нельзя.
Можно взять часть кода из скрипта и вставить в эксперт или в AutoGraf 4.

В AG 4 можно вставить содержательную часть и из эксперта и из скрипта - т.е. сложить цельную стратегию, которая будет и открывать ордера по Вашему алгоритму, и закрывать, и удалять отложенники за пределами коридора. И будут доступны все возможности AG 4.

Вообще, что угодно можно вставить куда угодно:)
Ограничение только одно: всё, что я делаю, будет выложено открыто для всех.

Как это сделать написано здесь (http://autograf.dp.ua/Pages/2/26/267/26711/26711_2.htm).
Но если Вы не программист, то проще выложить Ваш эксперт здесь.

Antonios
27-06-2009, 04:01
Ага, прочитал статью "Присоединяемые стратегии". Всё понятно, спасибо. )

Antonios
27-06-2009, 04:04
Net_builder_v13.1.mq4

SK_
27-06-2009, 15:10
"Советник расставляет сетку ордеров выбранного типа и объёмов, шагом step".
К сожалению, это явно механистическая стратегия (http://www.forextrade.ru/mqlabs/19.06.2009-mehanisticheskie-strategii).

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