Обсуждение статьи "Адаптивные торговые системы и их использование в терминале MetaTrader 5" - страница 3

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Уважаемый Форексистенс,
>>Дорогой
Вы ответили на свой вопрос :)
>> Да, возможно, частично я и сам ответил на свой вопрос, просто хотелось бы услышать подтверждение или другие мнения.
Вы правы, есть два пути, если вы хотите изменить торговые условия, с одной стороны мы можем добавить новые условия в стратегию CStrategyMA (но мы получим новую стратегию, отличную от первоначальной), другой путь - это создать новый класс (например, CStrategyMA34) и добавить туда дополнительные условия покупки/продажи.
Но, конечно, нужно включить файл с новой стратегией и добавить эти новые стратегии в функцию Expert_OnInit класса CAdaptiveStrategy:
Второй способ лучше, вы можете добавить много стратегий и их вариаций.
Не стоит удалять экземпляры класса CStrategyMA (если они у вас есть), мы не будем заглядывать в их песочницы, так как их результаты будут плохими.
Рынок поможет нам определить лучшую стратегию в списке стратегий, входящих в m_all_strategies.
>> Ок, суть я понял, как и предполагал.
Но вопрос теперь в другом... Я работаю над "вводом" советника с целью работы с оптимизациями.
То есть в примере я имею в виду куски кода вроде этого:
where (declarations) :
, а где переменные:
RSItempoframe, RSIappprice, RSIvarA_root, RSIvarB_root
работать в сотрудничестве с
Мой вопрос заключается в следующем:
Можно ли модифицировать код, чтобы входная переменная была на уровне класса стратегии (включаемый файл, т.е. CStrategyRSI.mqh), или с соответствующими хиерархиями/связями/деревьями на уровне другого класса/включения (CAdaptiveStrategy.mqh)?
Другими словами, для воздействия на основную систему идеи советника, с добавлением некоторых входных параметров для тестирования оптимизаций,
я должен сделать что-то вроде этого: (входные переменные в CAdaptiveStrategy.mqh)
или что-то вроде этого: (входные переменные в CSampleRSI.mqh)
Другими словами, входные переменные должны быть использованы в файле включения стратегии, до объявления класса (пример2, только это выше здесь) или входные переменные должны
вытекать из циклы "for" в стратегии CAdaptive, и должны учитывать инициализацию всех классов и входные параметры? (я имею в виду для этого первого примера (чуть выше этого кода) :)
public:
// инициализация стратегии
int Initialization(int period,bool virtual_trade_flag,ENUM_TIMEFRAMES RSItempoframe,
ENUM_APPLIED_PRICE RSIappprice,int RSIvarA_root, int RSIvarB_root);
Как по-разному будет влиять на ядро системы, если использовать входные переменные в файле CStrategyRSI.mqh или в CAdaptiveStrategy.mqh?
Полагаю, что если речь идет только о тестировании, то можно использовать входные переменные в CStrategyRSI.mqh, если же я хочу и протестировать, и
повлиять на основную систему советника (адаптивную систему и симулятор торговли, виртуального трейдера), я должен объявить
входные переменные не в стратегическом include, а в адаптивном include файле, со всеми надлежащими связями и вызовом
ввода/вывода инициализации и объявления классов/функций?
Верно?
Надеюсь, вы поняли мою мысль.
Tnkx
....Но теперь вопрос в другом... Я работаю над "вводом" советника с целью работы с оптимизацией.....
Если вы хотите найти оптимальные параметры стратегии с помощью опции оптимизации в тестере стратегий, то лучше переписать советник с какой-то конкретной стратегией и поиграть с ней.
Концепция адаптивного советника и его структура не позволяют оптимизировать его параметры в Тестере стратегий напрямую, так как нет конкретной стратегии и параметров для оптимизации.
Когда мы используем адаптивный советник в торговле или тестируем его в Тестере стратегий, мы имеем торговую систему как набор сигналов от различных стратегий. Другими словами, тестер не имеет доступа к созданным нами виртуальным песочницам и ничего о них не знает.
Если вы хотите использовать входные параметры для настройки параметров используемых торговых стратегий, то лучше использовать файлы, это позволит вам настроить параметры и список торговых стратегий.
Если вы хотите найти оптимальные параметры стратегии с помощью опции оптимизации в тестере стратегий, лучше переписать советник с какой-то конкретной стратегией и поиграть с ней.
>> Хорошо, я понял суть. Это будет нелегкая задача...
Концепция адаптивного советника и его структура не позволяют оптимизировать его параметры в тестере напрямую, потому что нет конкретной стратегии и параметров для оптимизации.
>> Да. Советник идеализирован для работы с еще не оптимизированнымипараметрами стратегий. Как я понял, он использует разные стратегии в зависимости от того, как/как реагирует рынок (или наоборот, с другой точки зрения...)
Когда мы используем адаптивный советник в торговле или тестируем его в Тестере стратегий, мы имеем торговую систему как набор сигналов от различных стратегий. Другими словами, тестер не может получить доступ к созданным нами виртуальным песочницам и ничего о них не знает.
>> Я понял эту концепцию, но не до конца.
Я понимаю, что нет смысла взаимодействовать тестеру с виртуальными песочницами, нет торгового логического смысла.
Моей единственной целью было модифицировать советник, чтобы использовать его с аддоном: цель использования этого советника также для оптимизации параметров, без переписывания другого советника, или переписывания всех стратегий, или тестирования каждой стратегии в отдельности. Моя идея была только для "комфорта", чтобы иметь возможность оптимизировать параметры, в рамках одного и того же советника, но эта оптимизация не предназначена для работы с виртуальной торговли / адаптивной системы. Речь идет только о том, чтобы иметь возможность оптимизировать параметры стратегий, используя одно и то же окно ввода советника, а не писать еще один советник для каждой стратегии, получать оптимизированные параметры и помещать их как фиксированные значения в систему адаптивных стратегий. Надеюсь, вы поняли мою мысль.
Если вы хотите использовать входные параметры для настройки параметров используемых торговых стратегий, то лучше использовать файлы, это позволит вам настроить параметры и список торговых стратегий.
>> О каких файлах вы говорите? ( Если вы хотите использовать входные параметры для настройки параметров торговых стратегий для использования, лучше использовать файлы )
Вы говорите о том, чтобы использовать CStrategyXXX.mqh или о том, чтобы написать отдельный советник для каждой стратегии, оптимизировать его и скопировать параметры как фиксированные значения в CStrategyXXX.mqh?
Are you talking about to use CStrategyXXX.mqh or the fact to write another individual EA for each strategy, optimize it, and copy the parameters as fixed values in CStrategyXXX.mqh?
Я имею в виду, что контейнер стратегии может быть заполнен в соответствии с некоторыми настройками адаптивного эксперта.
Например, в Adaptive_Expert.Expert_OnInit() может быть загружен файл с настройками адаптивного советника:
MA;15
MA;25
Stoch;3;12;20
Stoch;3;15;30
Strategy1;Param1;Param2;
Strategy2;Param1;Param2;
Разбирая каждую строку, он распознает, какую стратегию нужно включить, и добавляет ее с соответствующими параметрами. Это один из способов настройки адаптивного советника без компиляций. Для простоты я не стал рассматривать его в статье.
Я понимаю, что нет смысла взаимодействовать тестеру с виртуальными песочницами, нет торгового логического смысла.
Моей единственной целью было модифицировать советник, чтобы использовать его с аддоном: цель использования этого советника также для оптимизации параметров, без переписывания другого советника, или переписывания всех стратегий, или тестирования каждой стратегии в отдельности. Моя идея была только для "комфорта", чтобы иметь возможность оптимизировать параметры, в рамках одного и того же советника, но эта оптимизация не предназначена для работы с виртуальной торговли / адаптивной системы. Речь идет только о том, чтобы иметь возможность оптимизировать параметры стратегий, используя одно и то же окно ввода советника, а не писать еще один советник для каждой стратегии, получать оптимизированные параметры и помещать их как фиксированные значения в систему адаптивных стратегий. Надеюсь, вы поняли, к чему я клоню.
Есть способ взглянуть на песочницы. Это можно сделать косвенно, используя Тестер стратегий.
Предположим, мы хотим воспроизвести результаты, представленные на рис. 2 статьи.
Для этого нам понадобится отладочная версия адаптивного советника adaptive-systems-mql5-sources-debug-en.zip (она сообщает о песочницах) Далее компилируем и открываем Adaptive_Expert_Sample в Тестере стратегий, выбираем EURUSD H1 01.01.2010 - 20.08.2010 и начинаем тестирование. Песочницы и результаты адаптивной стратегии будут сохранены в файле tester\files\equity_res.txt Используя этот способ, очень легко воспроизвести все показатели.
Анализ виртуальных торговых акций/балансов позволит вам упростить оптимизацию.
Всем привет,
Спасибо за эту замечательную статью, я сейчас как раз работаю над адаптивным советником.
Однако я не уверен, куда включить функцию трейлинг-стопа в таком советнике.
Я думаю, что такую функцию можно добавить в часть CAdaptiveStrategy.mqh.
Может ли кто-нибудь из вас оказать мне помощь? Может быть, вы уже разработали такую функцию?
Заранее большое спасибо!
С наилучшими пожеланиями,
Патрик
Я не могу воспроизвести результаты, приведенные в статье.
Скачал исходные файлы, скомпилировал, запустил на том же таймфрейме (EURUSD H1, 04/01/2010 - 20/08/2010) и получил другой результат.
Я использовал отладочные файлы и проверил виртуальные торговые результаты ... графики виртуального капитала идентичны, однако реальные сделки не совпадают.
Без лог-файла фактических сделок трудно найти, почему мои сделки не совпадают со сделками в статье.
Есть идеи, почему у меня не совпадает?