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

 

И? Статья здесь -- УГ, статья там -- более менее адекватна. Шалыто -- примазался, ибо его фамилия последняя.

Хорошо что на англицком не дал, ваще заклевали бы.

 
C-4:
Т.е. получается робот в роботе. Допустим есть среднесрочный алгоритм,  который отдает приказ: купить по рынку. Другой, низкоуровневый робот исполняет этот приказ по лучшей цене используя HFT технику лучшего хода.

Да, именно так. 

Только не робот в роботе.  Скорее конвеер из роботов.

 

Лучше зацените мою идею:

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

  • Режим поиска сигнала на покупку
  • Режим поиска сигнала на закрытие существующей покупки
  • Режим поиска сигнала на продажу
  • Режим поиска сигнала на закрытие существующей продажи

Вот как бы описывался робот на скользящих средних в этой логике

1. Режим (Функция) открытия длинной сделки: Если быстрая скользящая средняя пересекла медленную снизу вверх - открываем покупку

2. Режим (Функция) закрытия длинной сделки: Если быстрая скользящая средняя пересекал медленную сверху вниз - закрываем покупку

3. Режим (Функция) открытия короткой сделки:Если быстрая скользящая средняя пересекла медленную сверху вниз - открываем продажу

4. Режим (Функция) закрытия короткой сделки: Если быстрая скользящая средняя пересекла медленную снизу вверх - закрываем продажу

Обратите внимание на 1 и 4 функции и 2 и 3. Их условия одинаковы! Казалось бы избыточность, но это не так,так как условия закрытия длинной позиции ни как не связаны с условиями открытия короткой позиции. Если мы вдруг решили добавить доп. фильтр на открытие короткой позиции, то это ни как не скажется на условиях открытия длинной позиции, и наоборот. Если в процессе работы эксперта, мы захотели запретить продажи вообще, то просто перестаем вызвать функцую №3. Все  ранее открытые короткие позиции рано или поздно будут закрыты по сигналу описанному в функции №4. Длинные же сделки ни как не пострадают, ведь их условия независимы!

 
C-4:

Лучше зацените мою идею:

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

  • Режим поиска сигнала на покупку
  • Режим поиска сигнала на закрытие существующей покупки
  • Режим поиска сигнала на продажу
  • Режим поиска сигнала на закрытие существующей продажи

Вот как бы описывался робот на скользящих средних в этой логике

1. Режим (Функция) открытия длинной сделки: Если быстрая скользящая средняя пересекла медленную снизу вверх - открываем покупку

2. Режим (Функция) закрытия длинной сделки: Если быстрая скользящая средняя пересекал медленную сверху вниз - закрываем покупку

3. Режим (Функция) открытия короткой сделки:Если быстрая скользящая средняя пересекла медленную сверху вниз - открываем продажу

4. Режим (Функция) закрытия короткой сделки: Если быстрая скользящая средняя пересекла медленную снизу вверх - закрываем продажу

Обратите внимание на 1 и 4 функции и 2 и 3. Их условия одинаковы! Казалось бы избыточность, но это не так,так как условия закрытия длинной позиции ни как не связаны с условиями открытия короткой позиции. Если мы вдруг решили добавить доп. фильтр на открытие короткой позиции, то это ни как не скажется на условиях открытия длинной позиции, и наоборот. Если в процессе работы эксперта, мы захотели запретить продажи вообще, то просто перестаем вызвать функцую №3. Все  ранее открытые короткие позиции рано или поздно будут закрыты по сигналу описанному в функции №4. Длинные же сделки ни как не пострадают, ведь их условия независимы!

ns utybq? ,tp gbpls!
 
dfc bp lfcn&
 
C-4:
dfc bp lfcn&
dc` yjhvekm? yt ccs
 
C-4:

Лучше зацените мою идею:

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

  • Режим поиска сигнала на покупку
  • Режим поиска сигнала на закрытие существующей покупки
  • Режим поиска сигнала на продажу
  • Режим поиска сигнала на закрытие существующей продажи

Вот как бы описывался робот на скользящих средних в этой логике

1. Режим (Функция) открытия длинной сделки: Если быстрая скользящая средняя пересекла медленную снизу вверх - открываем покупку

2. Режим (Функция) закрытия длинной сделки: Если быстрая скользящая средняя пересекал медленную сверху вниз - закрываем покупку

3. Режим (Функция) открытия короткой сделки:Если быстрая скользящая средняя пересекла медленную сверху вниз - открываем продажу

4. Режим (Функция) закрытия короткой сделки: Если быстрая скользящая средняя пересекла медленную снизу вверх - закрываем продажу

Обратите внимание на 1 и 4 функции и 2 и 3. Их условия одинаковы! Казалось бы избыточность, но это не так,так как условия закрытия длинной позиции ни как не связаны с условиями открытия короткой позиции. Если мы вдруг решили добавить доп. фильтр на открытие короткой позиции, то это ни как не скажется на условиях открытия длинной позиции, и наоборот. Если в процессе работы эксперта, мы захотели запретить продажи вообще, то просто перестаем вызвать функцую №3. Все  ранее открытые короткие позиции рано или поздно будут закрыты по сигналу описанному в функции №4. Длинные же сделки ни как не пострадают, ведь их условия независимы!

У меня на порядок проще.

Стратегия выдаёт сигнал в виде рекомендуемой позиции на инструменте. Если я хочу запретить продажи, я просто отсекаю отрицательные значения совокупной рекомендуемой позиции перед отправкой драйверу-синхронизатору. Одной строчкой:

  if (ShortDisabled) Pos = (Pos<0) ? 0 : Pos;

Это всё.

--

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

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

 
И вот кстати в тему отката на четвёрку (который похоже грядёт).  Мне все эти гроздья ордеров нахрен не нужны. Я неттинг заценил на всю катушку, ещё до появления пятёрки... :))))
 
MetaDriver:
И вот кстати в тему отката на четвёрку (который похоже грядёт).  Мне все эти гроздья ордеров нахрен не нужны. Я неттинг заценил на всю катушку, ещё до появления пятёрки... :))))

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Нужны ли OCO ордера?

hrenfx, 2012.01.06 07:46

Можно ли MT4 использовать для работе на РЫНКЕ? Да, можно.
Можно ли MT5 использовать для работе на РЫНКЕ? Да, можно.

Но что удобнее и надежнее? Не при теоретических рассуждениях, а на практике, жесткой реальной практике торговли на РЫНКЕ.

Удобнее MT4. Да, один лимитник из-за частичного исполнения может порадить десяток открытых поз, и каждая поза может порадить десяток закрытых поз. А если лимитников несколько? Возможно ли на MT4 управление при таких жестких условиях? Да, возможно, и оно реализуется просто, а главное - надежно.

В MT5 с этим тоже нет особых проблем. На первый взгляд, в нем даже проще на РЫНКЕ, чем на MT4. В глазах не рябит от огромного количества поз.

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

Однако, в MT4 никаких таких проблем не возникает. Все, как на ладони. Неттинг в MT4 реализуется простейшим способом для трейдера.

Поэтому MT4 на реальной торговой практике, а не на уровне теорий, всегда удобнее MT5. Хотя обе платформы могут быть абсолютно рыночными. И именно про торговлю на РЫНКЕ веду речь.
 

hrenfx:

Можно ли MT4 использовать для работе на РЫНКЕ? Да, можно.
Можно ли MT5 использовать для работе на РЫНКЕ? Да, можно.

Но что удобнее и надежнее? Не при теоретических рассуждениях, а на практике, жесткой реальной практике торговли на РЫНКЕ.

Удобнее MT4. Да, один лимитник из-за частичного исполнения может порадить десяток открытых поз, и каждая поза может порадить десяток закрытых поз. А если лимитников несколько? Возможно ли на MT4 управление при таких жестких условиях? Да, возможно, и оно реализуется просто, а главное - надежно.

В MT5 с этим тоже нет особых проблем. На первый взгляд, в нем даже проще на РЫНКЕ, чем на MT4. В глазах не рябит от огромного количества поз.

Но все меняется, когда вы начинаете усложнять логику советника. Когда вам надо диверсифицироваться через запуск нескольких советников. На MT4 это происходит элементарно и очень надежно - просто запустил советник с других мэджиком. На MT5 - это огромный геморрой с точки зрения автоматизации. А с точки зрения ручного вмешательства в такую торговлю - это неподъемный труд. ПОтому что логики открытия-закрытия позиции для каждой стратегии в MT5 простым взглядом в терминал не уловить вообще. Нужно писать соответствующий анализатор. И он не может быть универсальным, к сожалению.
Иван,  я хорошо знаю и отлично понимаю всю эту аргументацию.  Просто я считаю, что ручное вмешательство при "диверсификации путём сумиирования/наложения стратегий" - последнее дело.  Стратегии должны быть отлажены до рабочего состояния на этапе тестирования-оптимизации.  Что до самой такой диверсификации - я её широко использую - как раз путём простого суммирования сигналов всех подстратегий ДО отслылки совокупного сигнала в синхронизатор.  Более тысячи стратегий суммировал таким образом без каких-либо проблем.  Если такой постулат ("вмешиваться только при отладке") принять за основу, сразу же выясняется, что индивидуальное наблюдение за каждой отдельной стратегией - вообще не проблема - все они индивидуально отключаемые.  Отключил все кроме одной, и анализируй на здоровье.

Однако, в MT4 никаких таких проблем не возникает. Все, как на ладони. Неттинг в MT4 реализуется простейшим способом для трейдера.

Поэтому MT4 на реальной торговой практике, а не на уровне теорий, всегда удобнее MT5. Хотя обе платформы могут быть абсолютно рыночными. И именно про торговлю на РЫНКЕ веду речь.

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