Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я далеко не спец, поэтому заранее извиняюсь.
Пишу советника.
Задача:
1) Использовать несколько индикаторов. Один и тот же индикатор может использоваться с разными настройками (периодами) - как сделать их работу параллельной, чтоб сократить время получения сигналов?
2) Параллельно получению сигналов от индикаторов выполнять постоянную проверку и закрытие профитных или убыточных позиций. К тому же - позиций скажем открыто много и этот процесс желательно еще распараллелить по частям. Скажем 1000 ордеров проверяем в 3 - 4 потока.
3) Параллельно вышеизложенным процессам по сигналам полученным от индикаторов в п. 1 осуществлять покупку или продажу.
И самое интересное = как распарллелить все эти задачи так, чтобы был доступен тестер и оптимизации в тесторе ?
Ткните носом, желательно с примерами. Заранее спасибо.
Я далеко не спец, поэтому заранее извиняюсь.
Задача:
1) Использовать несколько индикаторов. Один и тот же индикатор может использоваться с разными настройками (периодами) - как сделать их работу параллельной, чтоб сократить время получения сигналов.
2) Параллельно получению сигналов от индикаторов выполнять постоянную проверку и закрытие профитных или убыточных позиций. К тому же - позиций скажем открыто много и этот процесс желательно еще распараллелить по частям. Скажем 1000 ордеров проверяем в 3 - 4 потока.
3) Параллельно вышеизложенным процессам по сигналам полученным от индикаторов в п. 1 осуществлять покупку или продажу.
И самое интересное = как распарллелить все эти задачи так, чтобы был доступен тестер и оптимизации в тесторе ?
Ткните носом, желательно с примерами. Заранее спасибо.
А вы вообще терминал открывали хотя бы раз? Тестер и он же оптимизатор всегда доступны параллельно ведению торговли на счете.
Интересно, как же долго идет получение сигналов от индикаторов, если возникает вопрос о необходимости их отпараллеливания?
А вы вообще терминал открывали хотя бы раз? Тестер и он же оптимизатор всегда доступны параллельно ведению торговли на счете.
Интересно, как же долго идет получение сигналов от индикаторов, если возникает вопрос о необходимости их отпараллеливания?
1) Использовать несколько индикаторов. Один и тот же индикатор может использоваться с разными настройками (периодами) - как сделать их работу параллельной, чтоб сократить время получения сигналов?
2) Параллельно получению сигналов от индикаторов выполнять постоянную проверку и закрытие профитных или убыточных позиций. К тому же - позиций скажем открыто много и этот процесс желательно еще распараллелить по частям. Скажем 1000 ордеров проверяем в 3 - 4 потока.
3) Параллельно вышеизложенным процессам по сигналам полученным от индикаторов в п. 1 осуществлять покупку или продажу.
Индикаторы, запускаемые на одном инструменте, работают все в одном потоке. Но если их написать нормально, задержки не будет (будет исчисляться миллисекундами).
А вот все торговые операции можно распараллелить с помощью дополнительных советников/скриптов. Вызывайте их из основного советника по необходимости или держите постоянно запущенными. Пример реализации есть в этой статье. Или используйте асинхронный OrderSend, но тогда чуть сложнее с контролем будет.
И самое интересное = как распарллелить все эти задачи так, чтобы был доступен тестер и оптимизации в тесторе ?
Для тестера это все не нужно, он работает синхронно и не пропускает тики. Делайте 2 варианта - для тестера и для онлайна (if ( IsTesting() ).
Индикаторы, запускаемые на одном инструменте, работают все в одном потоке. Но если их написать нормально, задержки не будет (будет исчисляться миллисекундами).
А вот все торговые операции можно распараллелить с помощью дополнительных советников/скриптов. Вызывайте их из основного советника по необходимости или держите постоянно запущенными. Пример реализации есть в этой статье. Или используйте асинхронный OrderSend, но тогда чуть сложнее с контролем будет.
Для тестера это все не нужно, он работает синхронно и не пропускает тики. Делайте 2 варианта - для тестера и для онлайна (if ( IsTesting() ).
Индикаторы, запускаемые на одном инструменте, работают все в одном потоке. Но если их написать нормально, задержки не будет (будет исчисляться миллисекундами).
--- чето не понял. Я не собираюсь писать свои индикаторы. Я использую штатные. И смысл в том, что я их хочу использовать параллельно, чтоб сократить время отклика...
Для тестера это все не нужно, он работает синхронно и не пропускает тики. Делайте 2 варианта - для тестера и для онлайна (if ( IsTesting() ).
---- тут вообще не понял. Кому не нужно ? Он работает синхронно --- а мне то надо наоборот, чтоб он учитывал мою ассинхронность ... Какие нафиг два варианта ? У меня один вариант моего советника и я его хочу погонять в тестере, но я хочу расспараллелить процессы и чтобы в тестере это было видно.
из за того что все выполняется последовательно у меня начинаются просадки, и нифиговые такие.
--- чето не понял. Я не собираюсь писать свои индикаторы. Я использую штатные. И смысл в том, что я их хочу использовать параллельно, чтоб сократить время отклика...
Время отклика засекали? На распаралелливании больше потеряете.
---- тут вообще не понял. Кому не нужно ? Он работает синхронно --- а мне то надо наоборот, чтоб он учитывал мою ассинхронность ... Какие нафиг два варианта ? У меня один вариант моего советника и я его хочу погонять в тестере, но я хочу расспараллелить процессы и чтобы в тестере это было видно.
Один советник:
Зачем тестировать распараллеливание в тестере?
из за того что все выполняется последовательно у меня начинаются просадки, и нифиговые такие.
Распределите отправку торговых приказов или используйте OrderSendAsync
Если нужно закрыть скопом кучу сделок, можно открыть одну большую встречную, зафиксировав прибыль, а потом спокойно закрывать OrderCloseBy одну об другую.Распределите отправку торговых приказов или используйте OrderSendAsync
так дело не только в ордер сенд, там еще куча проверок делается. Но все они встают в очередь, пока одна функция не закончилась, другая не исполняется ....
яж в условиях задачки все описал. И это комплексная задача. DLL или чаты или там еще чего - меня интирисует при каком сценарии я смогу распараллелить эти задачи и при этом гонять в тестере чтоб понимать что к чему ...
так дело не только в ордер сенд, там еще куча проверок делается. Но все они встают в очередь, пока одна функция не закончилась, другая не исполняется ....
яж в условиях задачки все описал. И это комплексная задача. DLL или чаты или там еще чего - меня интирисует при каком сценарии я смогу распараллелить эти задачи и при этом гонять в тестере чтоб понимать что к чему ...
И сколько драгоценного времени вы теряете и какие от этого последствия? И какой бы был профит, если бы не было этой "потери"?
И сколько драгоценного времени вы теряете и какие от этого последствия? И какой бы был профит, если бы не было этой "потери"?
дофига, чтоб прогнать в тестере эту стратегию мне, имея 24 ядра в распоряжении требуется 5 дней. А работает одно ядро. Я молчу про то что лог, тупой никому не нужный лог за это время может раздуться на пару терабайт. И это без оптимизаций. И этот тупой лог ни как нельзя отключить ...
Как вы думаете если бы я ускорил процесс скажем так - 4 графика каждый на своем ядре - прирост по этому пункту в 4 раза. Плюс отдельный процесс на закрытие 1000 сделок скажем. Или еще разбив этот процесс на 5 или 10 потоков - 10 раз. Плюс отдельный процесс на открытие позиций по сигналам ...
Я думаю кратный и в разы ...
Но каждая милисикунда + лаг до брокера + лаг от брокера до биржи (если это не кухня) - колосальные потери. Странно что в сибири это не понимают ...