Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вы же умеете это делать.
да, в тесте это работает, а как сделать чтобы виртуальное окружение дальше работало с заданным начальным стартовым депозитом?
я в своем примере распринтовал состояние теста Print(VIRTUAL::ToString()); - там все корректно посчиталось
а дальше в OnTick() будет браться баланс из AccountInfoDouble(ACCOUNT_BALANCE) , я я хочу видеть "продолжение" работы на том же балансе, что и тестировал с помощью VIRTUAL::Tester(Ticks, System, 10000, false);
да, в тесте это работает, а как сделать чтобы виртуальное окружение дальше работало с заданным начальным стартовым депозитом?
я в своем примере распринтовал состояние теста Print(VIRTUAL::ToString()); - там все корректно посчиталось
а дальше в OnTick() будет браться баланс из AccountInfoDouble(ACCOUNT_BALANCE) , я я хочу видеть "продолжение" работы на том же балансе, что и тестировал с помощью VIRTUAL::Tester(Ticks, System, 10000, false);
Так просто не удаляйте виртуальное торговое окружение, раз оно Вам дальше нужно. ACCOUNT_BALANCE возвращает баланс выбранного окружения.
Похоже, Вы еще не до конца поняли, что такое Virtual, поэтому и стали писать свою реализацию VIRTUAL::ToString.
Работайте, как с реалом. Хотите посмотреть историю - делайте это так, как будто нет никакого VIRTUAL. Баланс - аналогично.
ЗЫ Виртуальных считалок всегда было много. Принципиальное отличие Virtual от них - не нужно знать API считалки. Пишите AccountInfoDouble(ACCOUNT_BALANCE) или TimeCurrent() и все это работает в выбранном виртуальном окружении без каких-либо изменений в коде.
Похоже, Вы еще не до конца поняли, что такое Virtual, поэтому и стали писать свою реализацию VIRTUAL::ToString.
Работайте, как с реалом. Хотите посмотреть историю - делайте это так, как будто нет никакого VIRTUAL. Баланс - аналогично.
конечно не понял - по крайней мере с первого раза, это третий подход к этому коду - два предыдущие были вообще неудачные, сейчас хоть что то прояснилось
время еще нужно окончательно разобраться с возможностями Virtual
спасибо за поддержку этого кода!
конечно не понял - по крайней мере с первого раза, это третий подход к этому коду - два предыдущие были вообще неудачные, сейчас хоть что то прояснилось
Немного добавил кода в Ваш.
Вы увидите на чарте в реальном времени состояние ордеров в виртуальном окружении. Заметьте, что для этого не нужно писать VIRTUAL::ToString(). Все, как в реале.
VIRTUAL::Tester - это очень простая функция. Ввел ее для небольшого удобства, т.к. она вся из 10-ка строк. Она создает вирутальное окружение и на каждом тике массива запускает выбранную функцию. В коде - OnTick.
Поэтому ввел IsTester-переменную, чтобы пока OnTick вызывается при прогоне по массиву тиков, не вызывался дорогостоящий Comment.
Немного добавил кода в Ваш.
Да, этот пример искал! Отлично!
Спасибо!
UPD^
в 3 строки подключил копир сделок, все прекрасно работает из Virtual в реал
Да, этот пример искал! Отлично!
Заменяйте System() на любую другую, будто написана для реального торгового окружения. Обязана пахать.
Упоминание Virtual только в OnInit нужно.
Небольшое API Virtual нужно знать только в том случае, если хочется делать что-то сложное. Например, вести торговлю сразу в нескольких торговых окружениях. Синхронизировать окружения между собой. Возвращаться в прошлое, как этом сделано в Tester, и т.д.
в 3 строки подключил копир сделок, все прекрасно работает из Virtual в реал
Именно в этой простоте и вся фишка. Копир должен работать и в обратном направлении. И Virtual->Virtual.
Именно в этой простоте и вся фишка. Копир должен работать и в обратном направлении. И Virtual->Virtual.
не вопрос, будет работать - делал простую реализацию именно под мастер, он просто информацию об открытых ордерах обновляет по приходу тика
а сам копировщик (слейв) еще буду дописывать, пока просто синхронизирует от мастера 100% открытых ордеров, тут в общем зависит от задач,обмен без проблем на 100 мс работает.... проверил переключил ТФ на Virtual из последнего Вашего примера, примерно за минуту слил демо 5000 $ на спреде на МТ4 ) ))))
Небольшое API Virtual нужно знать только в том случае, если хочется делать что-то сложное. Например, вести торговлю сразу в нескольких торговых окружениях. Синхронизировать окружения между собой. Возвращаться в прошлое, как этом сделано в Tester, и т.д.
Вот скрин моего боевого советника.
Запускаю советник. Он создает четыре торговых окружения, где в каждом запускается своя ТС.
После этого по тикам прогоняется каждая, выдавая HTML-отчет через Report. Т.е. при запуске сразу в браузере вижу отчет по каждом из ТС. Это позволяет быстро убедиться, что не ошибся во входных и сделать другие оценки.
Далее ТС-ки продолжают торговать в вирутальных окружениях. И работает синхронизатор, которые эти виртуальные окружения копирует на реал (с учетом отложек, реджектов, частичных исполнений и других приколов).
Получается, что можно в любой момент выключить боевой советник. Затем запустить, и он будет работать, будто ничего не выключалось. Т.е. работает принцип "с чистого листа".
Ну и на скрине немного горячих клавиш. Могу в любой момент через них посмотреть на чарте и в HTML состояние виртуальных окружений и части реала, что с каждым синхронизируется. Также увидеть Summary-отчет сразу по всем окружениям. Видна некоторая статистика по синхронизации. Основная часть - в Логе. Если какой-то проблемный участок (OrderCloseBy, например, не может схлопнуть позы на реале), то просто Алерт.
Фактически, никакого GUI, только голый текст и HTML с графиками и таблицами.
Сами ТС-ки пишу без каких-либо проверок, ведь они запускаются в виртуальном торговом окружении. А там, как и в штатном Тестере, быть не может никаких проблем. Идеальное исполнение. По итогу получается, что пишешь только торговую логику, не отвлекаясь на остальную ерунду. Код получается лаконичным и быстрым для Оптимизации.
В итоге, написал ТС для Тестера без каких-либо заморочек для реала. А дальше в пару строк подключаешь эту ТС к боевому советнику.
У меня все ТС написаны в mq4. В Оптимизаторе их кручу через MT4Orders. Подключаю к кроссплатформенному боевому советнику инклудом этого mq4 и парой строк
Схема на практике себя полностью оправдала. Сталкивался с кучей жутких багов исполнения у брокеров. Подобная реализация боевого советника обошла все без проблем.
Поэтому можно смело заниматься только исследованиями, доводками и прочей BestInterval-овской мутью.
ЗЫ И, конечно, боевой советник запускается в штатном Тестере. Т.е. его можно прогнать на истории, как обычный, и убедиться, что все отлично.
ТС-ка в EX4 занимает 36 Кб, в EX5 - 250 КБ.
Она же в боевом советнике в EX4 - 0.5 МБ, EX5 - 1 МБ.
Вот скрин моего боевого советника.
Запускаю советник. Он создает четыре торговых окружения, где в каждом запускается своя ТС.
После этого по тикам прогоняется каждая, выдавая HTML-отчет через Report. Т.е. при запуске сразу в браузере вижу отчет по каждом из ТС. Это позволяет быстро убедиться, что не ошибся во входных и сделать другие оценки.
Далее ТС-ки продолжают торговать в вирутальных окружениях. И работает синхронизатор, которые эти виртуальные окружения копирует на реал (с учетом отложек, реджектов, частичных исполнений и других приколов).
Получается, что можно в любой момент выключить боевой советник. Затем запустить, и он будет работать, будто ничего не выключалось. Т.е. работает принцип "с чистого листа".
Ну и на скрине немного горячих клавиш. Могу в любой момент через них посмотреть на чарте и в HTML состояние виртуальных окружений и части реала, что с каждым синхронизируется. Также увидеть Summary-отчет сразу по всем окружениям. Видна некоторая статистика по синхронизации. Основная часть - в Логе. Если какой-то проблемный участок (OrderCloseBy, например, не может схлопнуть позы на реале), то просто Алерт.
Фактически, никакого GUI, только голый текст и HTML с графиками и таблицами.
Сами ТС-ки пишу без каких-либо проверок, ведь они запускаются в виртуальном торговом окружении. А там, как и в штатном Тестере, быть не может никаких проблем. Идеальное исполнение. По итогу получается, что пишешь только торговую логику, не отвлекаясь на остальную ерунду. Код получается лаконичным и быстрым для Оптимизации.
В итоге, написал ТС для Тестера без каких-либо заморочек для реала. А дальше в пару строк подключаешь эту ТС к боевому советнику.
У меня все ТС написаны в mq4. В Оптимизаторе их кручу через MT4Orders. Подключаю к кроссплатформенному боевому советнику инклудом этого mq4 и парой строк
Схема на практике себя полностью оправдала. Сталкивался с кучей жутких багов исполнения у брокеров. Подобная реализация боевого советника обошла все без проблем.
Поэтому можно смело заниматься только исследованиями, доводками и прочей BestInterval-овской мутью.
ЗЫ И, конечно, боевой советник запускается в штатном Тестере. Т.е. его можно прогнать на истории, как обычный, и убедиться, что все отлично.
ТС-ка в EX4 занимает 36 Кб, в EX5 - 250 КБ.
Она же в боевом советнике в EX4 - 0.5 МБ, EX5 - 1 МБ.
Допустим. Но, зачем Вам имитация продолжения движения? Зачем Ontick?