[Советник] FE_MOD (мультивалютный мартингейл)

От apmsoft, 3 августа, 2012 в Лаборатория ProfitFX

Автор#453


Поменялась котировочка на бессмысленную 1/10000, для бота это уже тик и право/приказ продолжать работать.
Плюс ВПС у тебя быстрый - как раз чтобы успеть боту лишний раз тик с изменением цены в 1/10000 подать и создать боту максимум срабатываний/нагрузки.
Таки мог сервер твоего ДЦ не успеть закрыть все ордера раньше, чем бот успел принять решение и дать команду на открытие ордера.


Поддерживаю эту версию как наиболее вероятную. Происходит следующее - благодаря низкому пингу, и высокой скорости поступления тиков, в очередной проход один или более ордеров закрываются по ТП, но не настолько быстро чтобы терминал успел перевести их из активных в закрытые. Вот и возникают ошибки. Либо в ДЦ серваки тормозные, либо сам VPS тормозной. У меня все работает на своем железе, т.е. скорость работы терминала высокая (пинг 120-200мс).
Ни у одного подобного бота той паранойи в обслуживании пирамид ордеров которую тут предлагают нет! Предполагается, по умолчанию, что пирамида закрывается вся, целиком и мгновенно.
Так что я проблему считаю незначительной (было только у HighLander).

Какие есть предложения по решению проблемы? Только максимально простые и эффективные.
#454

VPS вроде у меня не тормозной) Trader's VPS Standard Edition - NYC, 4 CPU cores от CNS. подключение к ICM - "ON NET" brokers are directly connected to the CNS network, и к IBFX пинг Самое просто и эффективное - это ввести задержку (в сек? в тиках?) на открытие этих дополнительных ордеров.. хотя я не знаю, чем это чревато в плохом смысле..
Кто-то еще работать с такой комбинацией VPS/брокер?

p.s пока проблема может только и у меня - но когда народ начнет идти в сторону "нормальных" брокеров, появятся и проблемы… 8->

#455

не настолько быстро чтобы терминал успел перевести их из активных в закрытые
терминал успел
терминал
*****
скорее не терминал а брокер, который закрывает ордера поочерёдно - запрос на закрытие принял, но не закрыл, пару секунд подержал


Добавлено: 06-01-2013 22:32:45

HighLander

а там market или instant исполнение?

Изменено 7 января, 2013 пользователем Мерлин

#456

Market Execution, ECN (ICM)

Автор#457

Ладно, давайте рассмотрим подробно. Данный алгоритм практически идентичен во всех ботах-сеточниках.

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

#458


Какие есть предложения по решению проблемы? Только максимально простые и эффективные.


Как по мне, по самому простому...
Действовать так, как будто бы ТП и стопы у пирамид не реальные, а виртуальные.

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

Цикл "зачистки" пирамиды можно повторить дважды.
Корректное полное закрытие всей корзины/пирамиды несопоставимо важнее скорости выставления минимального ордера новой пирамиды.

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

Тем более что, так или иначе, но надо безоговорочно контролировать, чтобы после закрытия рыночных ордеров пирамиды по ТП были удалены и все отложки.
Автор#459

В качестве временной полумеры придумал следующее - если цена (bid/ask, в зависимости от направления) находится рядом с тп (+- несколько пунктов), функционал открытия новых ордеров будет блокироваться. Это должно защитить от подобных случаев. Скоро выпущу обновление.

#460

Если кол-во наших ордеров в одну сторону уменьшилось по сравнению с предыдущим тиком, но не равно нулю - еще Н тиков-секунд в ту сторону не открываем новых ордеров. Самое тупое, что приходит в голову, не считая полноценного сопровождения ордеров.

Автор#461

Внеплановое обновление - версия FE_MOD 2.010c

+ Добавлены комменты ордеров по типу "FEM10c EURUSD 101 L1" (название, пара, мэджик, колено)
+ Добавлен так называемый "HighLander fix". При цене около TP или выше, функции открытия ордеров
блокируются. Дополнительно блокировка расширена на случай если ордер без ТП - в таком случае тоже
происходит блокировка.

Обновлен так-же комплектный индикатор.
+ FreezeAfterTPGlobal теперь действует только на обычные сеты, для SWB добавлен пункт FreezeAfterTP_SWB
+ Опция FreezeAfterTP_DD, активирует FreezeAfterTPGlobal и FreezeAfterTP_SWB автоматически по
уровню просадки.

Скачать можно в шапке. В этот раз продукт выложен в виде исходника.

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

Изменено 7 января, 2013 пользователем ApMSoft

#462


Внеплановое обновление - версия FE_MOD 2.010c

+ Добавлены комменты ордеров по типу "FEM10c EURUSD 101 L1" (название, пара, мэджик, колено)


ApMSoft, как обещал, нашел мои записи с предложениями по кодифицированному комменту.

Кодированный комментарий ордеров может иметь расширенную структуру вида ХХХХХХХХУУZZG (13 цифр), где:
хххххххх - (8 символов) серверный № первого ордера пирамиды (8 нулей для 1-го ордера пирамид и для всех ордеров опции курсосопровождения).
уу - № колена в пирамиде (если =99, то локирующий ордер - если =00, то ордер курсосопровождения)
zz - № ордера п/п в данном колене пирамиды, стандартно =01
(для опций обработки гэпов №2 и форсированного закрытия пирамид, где в последнем колене пирамиды м.б. несколько ордеров, и для локов м.б. > 01.
=00 для ордеров курсосопровождения - их коммент все нули).
G - код алгоритма обработки гэпа, сейчас от 0 до 3.
=0 - обычный не гэповый ордер, =1-3 код алгоритма, по которому рассчитан и выставлен данный постгэповый ордер.

К данному блоку можно добавить реквизиты мода (идентификатор-версия), мэджик...
Насчет внесения в коммент ордера названия пары и признака лонг/шорт, то они вроде входят в состав реквизитов ордера и их можно не дублировать в комменте.

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

По другим алгоритмам обработки гэпов, форсированному закрытию, курсопровождению, локированию - позднее, как сложится.
Но зарезервировать под все это байты в комменте ордера лишним не будет.

Изменено 9 января, 2013 пользователем Старик

#463

К кодированному комментарию ордера надо обязательно добавить контрольную сумму а-ля crc32 иначе есть опасность ошибок в случае его внезапного изменения

#464

при гэпах брокер меняет комментарий к открывшемуся или закрывшемуся ордеру

#465

Мерлин, не встречал. Если попадутся на глаза, приведи примеры комментов брокера при гэпе.
Странно вообще - гэп как бы не вполне формализованная вещь, с учетом межбанка в выходные гэпы нечастое событие.
Даже интересно что ДЦ должно писать в комменты, когда увидит то, что считает гэпом.
Проясни насколько можно, хорошо?

Также важно затирает ДЦ имеющийся коммент или дописывает свой текст к уже имеющемуся коду в комменте.
Тоже надо попонимать.

При стоп аутах да, почти наверняка изменят коммент.
Так что исказить историю и статистику торгов ДЦ в экстремальных ситуациях точно могут.

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

Инфа вещь хитрая: если ты ее в моменте зафиксировал - инфа потом может оказаться востребованной в множестве применений и существенно прояснять что происходит сейчас или уже произошло в прошлом.

#466


Мерлин, не встречал. Если попадутся на глаза, приведи примеры комментов брокера при гэпе.
Странно вообще - гэп как бы не вполне формализованная вещь, с учетом межбанка в выходные гэпы нечастое событие.
Даже интересно что ДЦ должно писать в комменты, когда увидит то, что считает гэпом.
Проясни насколько можно, хорошо?

Также важно затирает ДЦ имеющийся коммент или дописывает свой текст к уже имеющемуся коду в комменте.
Тоже надо попонимать.

При стоп аутах да, почти наверняка изменят коммент.
Так что исказить историю и статистику торгов ДЦ в экстремальных ситуациях точно могут.

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

Инфа вещь хитрая: если ты ее в моменте зафиксировал - инфа потом может оказаться востребованной в множестве применений и существенно прояснять что происходит сейчас или уже произошло в прошлом.



Комменты при гэпах обычно исправляются брокером путем добавления текста в конец,
с обрезанием текста исходного коммента, если итоговая длина превышает 30 символов
Вот примеры комментов при гэпах:
FST EUR Long 10000-0[tp/gap]
FST 1.07 AUDUSD Short [tp/gap]
[started/gap]
SuperScalping 4[started/gap[sl]
SuperScalping 4.14 SL [tp/gap]
FST 1.12 AUDUSD Long 2[tp/gap]

Спасибо, Старик! Приглашаю в мою ветку в отделе разработок!
#467


Мерлин, не встречал. Если попадутся на глаза, приведи примеры комментов брокера при гэпе.
Странно вообще - гэп как бы не вполне формализованная вещь, с учетом межбанка в выходные гэпы нечастое событие.
Даже интересно что ДЦ должно писать в комменты, когда увидит то, что считает гэпом.



В ветке с варриором - один из фиксов было как связан с комментами ДЦ
#468


Комменты при гэпах обычно исправляются брокером путем добавления текста в конец,
с обрезанием текста исходного коммента, если итоговая длина превышает 30 символов
Вот примеры комментов при гэпах:
FST EUR Long 10000-0[tp/gap]
FST 1.07 AUDUSD Short [tp/gap]
[started/gap]
SuperScalping 4[started/gap[sl]
SuperScalping 4.14 SL [tp/gap]
FST 1.12 AUDUSD Long 2[tp/gap]


Понял, спасибо!
Грустно это - но это еще не худший случай.

Значит, код вида ХХХХХХХХУУZZG с инфой о пирамиде и ордере надо размещать в начале коммента к ордерам, а инфу о мэджике (там 5 или 6 разрядов) и Имени/версии бота в конце коммента.
В этом случае больше шансов, что ключевая инфа сохранится, даже если ДЦ допишет свою инфу в конце коммента.

Хорошо, что в тексте от ДЦ есть скобки и символы, не только цифры - такое можно достаточно хорошо понимать и корректно обрабатывать.

Изменено 9 января, 2013 пользователем Старик

Автор#469


Комменты при гэпах обычно исправляются брокером путем добавления текста в конец,
с обрезанием текста исходного коммента, если итоговая длина превышает 30 символов


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


Кодированный комментарий ордеров может иметь расширенную структуру вида ХХХХХХХХУУZZG (13 цифр), где:
хххххххх - (8 символов) серверный № первого ордера пирамиды (8 нулей для 1-го ордера пирамид и для всех ордеров опции курсосопровождения).


Вот для чего нужен "серверный № первого ордера" сколько не думал, так и не догадался.
#470


Проясни насколько можно, хорошо?



Abb1963 исчерпывающе написал ответ, но, если нужно, могу в личку дать инвест пароль к счёту.


Комменты при гэпах обрезаются только для закрытых ордеров.


При открытии на гэпе - то же самое, пишется в конце [started/gap]
#471

Если отложенный ордер открывается с гепом.
То брокет ставит комментарий к нему [started/gap]
При этом если у ордера был комментарий до этого, он его частично затирает , что бы поместить [started/gap]

#472

Поставил этот бот с сетами swb от owaa. Все пары отрабатывают по алгоритму, только канадец ведет себя странно - открылся лотом в 4 раза больше стартового и какой то странный тейкпрофит выставил - около 1.25,пока снял эту пару.

Спойлер

2013.01.10 11:38:46 FE_MOD_2.010c USDCAD,M15: open #2355686 buy 0.04 USDCAD at 0.98595 ok
2013.01.10 11:38:50 FE_MOD_2.010c USDCAD,M15: **** Auto-NBP work on Buy USDCAD aNBP: 1.25741 oTP: 0.98775
2013.01.10 11:38:51 FE_MOD_2.010c USDCAD,M15: modify #2355686 buy 0.04 USDCAD at 0.98595 sl: 0.98445 tp: 1.25741 ok
и стоплосс какой то близкий





Изменено 10 января, 2013 пользователем fireman

Автор#473


Поставил этот бот с сетами swb от owaa. Все пары отрабатывают по алгоритму, только канадец ведет себя странно - открылся лотом в 4 раза больше стартового и какой то странный тейкпрофит выставил - около 1.25,пока снял эту пару.


У этой пары magic совпадает с GBPAUD, может из-за этого сбой в работе.

ps Обновил сеты от owaa, поменял мэджики.
#474

Спасибо. Теперь понятно почему он стартанул на канадце с 0.04 лота. GBPAUD уже был открыт 0.02, вот он к нему и добавил. Сет с настройками исследовал, ничего подозрительного не нашёл, а о том что magic может совпадать с другой парой не догадался проверить. Возвращаю в строй канадец с новым меджиком.

Изменено 10 января, 2013 пользователем fireman

#475


Спасибо. Теперь понятно почему он стартанул на канадце с 0.04 лота. GBPAUD уже был открыт 0.02, вот он к нему и добавил.
Сет с настройками исследовал, ничего подозрительного не нашёл, а о том что magic может совпадать с другой парой не догадался проверить.
Возвращаю в строй канадец с новым меджиком.


Вот блин, и не подумал бы...
Все таки в сэте символ пары, имхо, иметь желательно и контролировать нет ли иных валют с таким же мэджиком.

Ну или N первого ордера пирамиды в комменте - тогда даже при совпадающем мэджике бот не будет навешивать ордер пирамиды баксоканадца на ордер фунтоосси.
Автор#476


Ну или N первого ордера пирамиды в комменте - тогда даже при совпадающем мэджике бот не будет навешивать ордер пирамиды баксоканадца на ордер фунтоосси.


Если людям настолько безразличны их деньги, что они мэджики контролировать не могут - тут я помочь не могу.
Надо все таки двигаться в направлении развития, а не перегружать бот кучей ненужной дряни. И что если какой-нибудь гений повесит 2 сета с одним мэджик на одну и ту-же пару? Это тоже проблемы бота?
#477



Ну или N первого ордера пирамиды в комменте - тогда даже при совпадающем мэджике бот не будет навешивать ордер пирамиды баксоканадца на ордер фунтоосси.


Если людям настолько безразличны их деньги, что они мэджики контролировать не могут - тут я помочь не могу.
Надо все таки двигаться в направлении развития, а не перегружать бот кучей ненужной дряни.
И что если какой-нибудь гений повесит 2 сета с одним мэджик на одну и ту-же пару? Это тоже проблемы бота?

Есть понятие "защиты от дурака". Ну так назвали, не я придумал...
Микроволновка при открытии дверцы выключается, дверца включенной стиральной машины блокируется, движки миксера и кофемолки вырубаются при поднятии крышки...
Это норма везде.
На ПО это тоже распространяется - корректность и совместимость обрабатываемых данных бот обязан проверять.
Тем более торговый бот - в первую очередь вообще.

Я знаю о чем говорю, т.к. очень давно закончил институт по специальности "Организация машинной обработки экономической информации".
Ох и дрючили нас тогда в вопросах контроля полноты и адекватности обрабатываемых данных, пользовательского интерфейса...
Вот что я усвоил, так это то, что у бота должен быть минимум доступных пользователю однозначно понимаемых и легко запоминаемых кнопок - и что пользователи обязательно совершат максимум возможных ошибок и бот должен быть готов их идентифицировать и парировать.

А так же ж разработкой ботов на форе занимаются 2 группы - любители и профессионалы...
Оно, конечно, демократия - но все равно это странно... :)

Любители не имеют представления ни о системном подходе к программированию, ни о пользовательском интерфейсе, ни о контроле данных и, скажем, контроле обработки ордеров.
Плюс половина из них страдает манией величия и просто посылают пользователей, недостойных их высочайшего внимания.
Хотя ботописатели несут персональную ответственность за слитые по их вине/недоработке депо, даже если бот бесплатный.

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

Бот должен контролировать корректность введенных настроек - причем для бота, предназначенного для торговли в группе, это особенно актуально и, конечно, сложней.
Ну не должен бот строить пирамиду одной валютной пары, беря данные с другой валютной пары.
Просто не должен - и все, что бы там не учудил пользователь.

ApMSoft, ну что ж делать - писать торговых ботов работа такая, реально ответственная, приходится соответствовать...
Хотя это, понятно, не радует.

Для публикации сообщений создайте учётную запись или авторизуйтесь

Перейти к списку тем
Форум · 2.0.20260627.0025