Структура рулит. Учимся структурировать программы, изучаем возможности, ошибки, решения и т.п. - страница 13

 

Тут только практика нужна, чтобы прочувствовать проблему. О ручной+автомат случае не говорю - не практикую. Но из собственного опыта:

"Что это за хрень с некоторыми ордерами творится?! Что вообще происходит?

Так, посмотрим историю. Вроде, стало, понятно. Какой-то сбой (на стороне брокера, например).

Вручную вмешаться нереально - сотни ордеров (и не все проблемные). В ТС эта хрень была не предусмотрена.

Вмешиваться в код ТС - надо долго думать, как грамотно разрулить. А что же сейчас я могу сделать?

Так, пишу хитрый скрипт, который некоторые ордера меняет так, как мне сейчас видится правильным."


Скорость написания этого скрипта на неттинге черти знает сколько займет. Но на MQL4 займет на порядок меньше времени.

Я бы даже сказал, что на неттинге вы вообще вряд ли поймете и прочувствуете проблему в примере выше. 

Практика и только практика реальной торговли. 

 
MetaDriver:
Да фигня это всё. 
Если бы. Чего до сих пор под 5ку ни одного нормального аггрегатора стратегий нету? Все он абсолютно по делу говорит.
 
hrenfx:

Тут только практика нужна, чтобы прочувствовать проблему. О ручной+автомат случае не говорю - не практикую. Но из собственного опыта:

"Что это за хрень с некоторыми ордерами творится?! Что вообще происходит?

Так, посмотрим историю. Вроде, стало, понятно. Какой-то сбой (на стороне брокера, например).

Вручную вмешаться нереально - сотни ордеров (и не все проблемные). В ТС эта хрень была не предусмотрена.

Вмешиваться в код ТС - надо долго думать, как грамотно разрулить. А что же сейчас я могу сделать?

Так, пишу хитрый скрипт, который некоторые ордера меняет так, как мне сейчас видится правильным."


Скорость написания этого скрипта на неттинге черти знает сколько займет. Но на MQL4 займет на порядок меньше времени.

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


Я бы даже сказал, что на неттинге вы вообще вряд ли поймете и прочувствуете проблему в примере выше.

Это точно.

Практика и только практика реальной торговли. 

Ну с этим никто не спорит.
 
TheXpert:
Если бы. Чего до сих пор под 5ку ни одного нормального аггрегатора стратегий нету? Все он абсолютно по делу говорит.

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

С ней геморроя выше крыши, а чисто решить её без ОСО ордеров её вообще невозможно.  А потому сопровождение такой поделки выльется в ещё больший гемор, чем её написание.  Так что просто мазохистов не находится, потому и нету такого "нормального аггрегатора".

Что до "ненормального",  т.е. для индивидуального использования с объединением всех стратегий в одном советнике - дык я ж путь указал, даже и драйвер тебе на халяву выложил. :)))  Бери и суммируй хоть мульён неттинг-сигналов с выводом на рынок через один драйвер рынка.  Готовый интегратор-агрегатор, в чём проблема? ;)

 
MetaDriver:

С ней геморроя выше крыши, а чисто решить её без ОСО ордеров её вообще невозможно.

OCO-ордера не нужны. Все та же архитектура, что описал выше, и агрегация нескольких ТС - реальность даже на неттинге.

В этой архитектуре все ТС запускаются в виртуальности - свой тестер с историей по текущий момент. А дальше уже суммарные позы синхронизируются с реальностью.

Конечно, визуализация этой виртуальной среды - это почти визуализация MT4.

Вы же понимаете, что любой FOREX-агрегатор на том же MT4 именно этой ерундой, в частности, и занимается. Т.е. вы запускаете в виртуальной среде свои ТС - в своих MT4. Виртуальную среду вам предоставляет бридж агрегатора. А реальной стороны вы на самом деле не видите (на каком LP что там исполнилось), но вам красиво все показывается.

 
hrenfx:

OCO-ордера не нужны. Все та же архитектура, что описал выше, и агрегация нескольких ТС - реальность даже на неттинге.

В этой архитектуре все ТС запускаются в виртуальности - свой тестер с историей по текущей момент. А дальше уже суммарные позы синхронизируются с реальностью.

Конечно, визуализация этой виртуальной среды - это почти визуализация MT4.

Вы же понимаете, что любой FOREX-агрегатор на том же MT4 именно этой ерундой, в частности, и занимается. Т.е. вы запускаете в виртуальной среде свои ТС в своих MT4. Виртуальную среду вам предоставляет бридж агрегатора. А реальной стороны вы на самом деле не видите (на каком LP что там исполнилось), но вам красиво все показывается.

Так с этим я как раз согласен.  Я  не согласен как раз с Андреем, в его утверждении что нет "нормальных агрегаторов".  Для индивидуального использования такой агрегатор сделать вполне можно без принципиальных затыков.  У меня в схеме просто не предусмотрены виртуальные тестеры.  Но и их сделать вполне можно, причём лучше всего в виде индикаторов, тогда проблема с визуализацией резко упрощается. 
 
hrenfx:

В этой архитектуре все ТС запускаются в виртуальности - свой тестер с историей по текущий момент. А дальше уже суммарные позы синхронизируются с реальностью.

Слишком сложное решение. Для конечного разработчика не обладает достаточной прозрачностью.
 
MetaDriver:

У меня вообще нет проблемы различения условий на покупку / условий на закрытие продажи.  Её и не должно быть на уровне стратегии.  Задача стратегии - спрогнозировать будет ли рынок расти или падать в следующий момент времени, и с какой вероятностью.  От этого и зависит рекомендуемая рыночная позиция. Что там было в прошлом, есть ли сейчас открытые (в любую стороны) позы или нет - абсолютно неважно.  Если в это не вьехать - можно полжизни решать несуществующие проблемы.  Иногда даже решать их очень красиво.

Как неважно!? Да в любой стратегии на уровне ее логики всегда известно ее текущее состояние! Возьмем простую стратегию на пересечении двух средних: у нее только два состояния, она либо в покупке либо в продаже. Без запоминания своей позиции, она будет открывать длинную позицию, всякий раз, когда увидит что быстрая средняя находится выше медленной. И что делать синхронизатору? Говорить ей: "нет, у тебя уже есть длинная позиция, открыть еще одну не дам!"

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

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

 
C-4:

Как неважно!? Да в любой стратегии на уровне ее логики всегда известно ее текущее состояние! Возьмем простую стратегию на пересечении двух средних: у нее только два состояния, она либо в покупке либо в продаже. Без запоминания своей позиции, она будет открывать длинную позицию, всякий раз, когда увидит что быстрая средняя находится выше медленной. И что делать синхронизатору? Говорить ей: "нет, у тебя уже есть длинная позиция, открыть еще одну не дам!"

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

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

Сигнал это изменение ситуации на такую, которая приемлема для торговой позиции в определённую сторону.

Почему бы не подписывать сигналы индивидуальной подписью, произошло изменение сигнала изменилась подпись.

Тогда исполнение будет работать не только с сигналом но и с подписью, если данный сигнал уже отработан, то незачем его торговать заново.

 
Urain:

Сигнал это изменение ситуации на такую, которая приемлема для торговой позиции в определённую сторону.

Почему бы не подписывать сигналы индивидуальной подписью, произошло изменение сигнала изменилась подпись.

Тогда исполнение будет работать не только с сигналом но и с подписью, если данный сигнал уже отработан, то незачем его торговать заново.

В этом случае придется где-то хранить историю отработанных сигналов, что очень накладно. Снова обратимся к пересечению 2 средних. Допустим, мы перезапустили советник. Нового пересечения на вход нет, советник каким-то образом должен восстановить свою историю сделок и понять, что раньше было пересечение и что сейчас он должен находится в состоянии покупки, и что этот сигнал им был уже отработан и новую позицию открывать не надо, а надо найти свою старую позицию, но ее просто так не найти, потому что текущая позиция не обязательно принадлежит только ему одному...  В общем кошмар кошмарный. Мы упираемся в тернистый путь предложенный hrenfx'ом: писать свой исторический тестер внутри каждого робота, который бы  собирал бы исторические сигналы, рассчитывал отработаны они или нет, затем сихранизировал объемы стратегий и т.д. и т.п. В итоге сложность разработок возрастает на порядок, а надежного решение так и нет.