Обсуждение статьи "Создание самооптимизирующихся советников на MQL5" - страница 2

 

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

У меня есть практические и, возможно, наивные вопросы

  • как поставить Magic Number и Comment для отслеживания советника?
  • как изменить LotSize (еще лучше, как реализовать управление капиталом)?

спасибо

приятного времяпрепровождения

 
Gamuchirai Zororo Ndawana #:
Мне нравится ваш проактивный подход. Вы правы, есть несколько исключений, которые могут возникнуть при попытке получить исторические данные. Например, если вы попытаетесь сменить таймфрейм в середине торговой сессии, проблема "-nan" может проявиться еще раз.


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

Ваше решение звучит очень многообещающе, как оно продвигается?

Здравствуйте, мне снова пришлось создать свою учетную запись, чтобы войти. В любом случае,
Я попробовал запустить LinearRegressionEA и нахожу это захватывающей концепцией. Я торгую в основном GOLD CFD и установил симпатию к индикатору WPR в этом примере.
Иногда я получаю неправильные цены прогноза, которые выходят за пределы диапазона с фактором 100, но иногда правильные!
Если кто-то решит эту проблему, я был бы очень признателен. Отладка кода линейной регрессии - не моя компетенция.

Я не видел, писали ли вы что-нибудь о предпочтительном периоде для торговли, у меня он установлен на 30 минут.

В этом сценарии,
если еще нет торговли
и советник запускает свою функцию'analyse_indicators()',
это делается один раз на бар, то есть в моем случае один раз в 30 минут.
Это означает, что если индикаторы не выстроились в линию для принятия торгового решения, это не будет повторено до следующего бара, в моем случае через 30 минут.
IMO это слишком далеко для установления первоначальной сделки,
поэтому я добавил задачу Timer, которая запускает шаг анализа каждые 10 секунд, пока индикаторы не будут в пользу сделки;
я устанавливаю ордер на покупку или продажу, а затем возвращаюсь к обычной обработке функции manage_position() на каждый бар.
 
Giulio Braga управление капиталом)?

спасибо

приятного времяпрепровождения

Привет, Джулио.

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

Я думаю, что PositionOpen может быть тем, что вы ищете, вы можете проверить документацию по этой ссылке.

Если это не удовлетворит ваши потребности, попробуйте этот учебник на YouTube по этой ссылке.

Если ни один из этих ресурсов вам не помог, у меня есть канал, на котором я публикую более полезные статьи, подобные этой. Вы можете найти его по этой ссылке.

Documentation on MQL5: Standard Library / Trade Classes / CTrade / PositionOpen
Documentation on MQL5: Standard Library / Trade Classes / CTrade / PositionOpen
  • www.mql5.com
Opens a position with the specified parameters. Parameters symbol [in]  Name of trade instrument, by which it is intended to open position...
 
Gunnar Forsgren #:
Здравствуйте, мне снова пришлось создать свой аккаунт, чтобы войти в систему. В общем,
Я попробовал запустить LinearRegressionEA и нахожу это интересной концепцией. Я торгую в основном GOLD CFD и установил симпатию к индикатору WPR в этом примере.
Иногда я получаю неправильные прогнозные цены, которые выходят за пределы диапазона с коэффициентом 100, но иногда правильные!
Если кто-то решит эту проблему, я был бы очень признателен за это. Отладка кода линейной регрессии не является моей компетенцией.

Я не видел, писали ли вы что-нибудь о предпочтительном периоде для торговли, у меня он установлен на 30 минут.

В этом сценарии,
если еще нет торговли
и советник запускает свою функцию'analyse_indicators()',
это делается один раз на бар, так что в моем случае один раз в 30 минут.
Это означает, что если индикаторы не выстроились в линию для принятия торгового решения, то попытка повторить это не предпринимается до следующего бара, в моем случае через 30 минут.
IMO это слишком большой промежуток времени для установления первоначальной сделки,
поэтому я добавил задачу Timer, которая выполняет шаг анализа каждые 10 секунд, пока индикаторы не будут в пользу сделки;
я устанавливаю ордер на покупку или продажу, а затем возвращаюсь к обычной обработке функции manage_position() на каждый бар.
Рад слышать вас, Гуннар.

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

Вы правы, прогнозы, которые дает наша текущая модель, иногда могут выходить за пределы допустимого диапазона с большим отрывом, но в коде нет ошибки.

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

Мы используем простую реализацию алгоритма Gradient Descent для оптимизации коэффициентов нашей модели. К сожалению, Gradient Descent может быть чувствителен к начальным позициям наших коэффициентов. Чтобы исправить это, был разработан алгоритм стохастического градиентного спуска (SGD). SGD выполняет оптимизацию, каждый раз меняя начальные коэффициенты, чтобы максимизировать вероятность нахождения оптимальных коэффициентов. Для простоты мы оставили коэффициенты фиксированными, что может привести к застреванию модели в унылых состояниях. Это видео на youtube может быть полезным, воспользуйтесь этой ссылкой.

Да, вы правы, я намеренно призвал проводить расчеты на каждой свече. Это было сделано для ускорения бэктестов, чтобы отключить эту функцию, просто удалите проверку условия "if(timestamp != current_time)".

Кроме того, есть способы построить нашу модель так, чтобы она подстраивалась под имеющиеся у нас данные, вы можете найти эту информацию по этой ссылке.
134 - What are Optimizers in deep learning? (Keras & TensorFlow)
134 - What are Optimizers in deep learning? (Keras & TensorFlow)
  • 2020.06.18
  • www.youtube.com
microscopy, python, image processing
 

Привет, это потрясающе! Спасибо!

Я получаю эти строки:

2024.06.08 07:00:42.212 Core 01 2024.05.01 00:00:00   Validation mae: 
2024.06.08 07:00:42.212 Core 01 2024.05.01 00:00:00   [inf,0.006448762386408615,0.006380585312229991,0.006373808727022462,0.006373131478053022,0.006373063757231861,0.006373056987294832,0.006373056310301126,0.006373056241302974,0.00637305623338131,0.00637305623026851,0.006373056230211261,0.006373056230211261,0.006373056230211261,0.006373056230211261,0.006373056230211261,0.006373056230211261,0.006373056230211261,0.006373056230211261,0.006373056230211261,0.006373056230211261,0.006373056230211261,0.006373056230211261,0.006373056230211261,0.0

Как я могу это исправить?

Есть ли у кого-нибудь такая проблема?

 
Javier Santiago Gaston De Iriarte Cabrera #:

Привет, это потрясающе! Спасибо!

Я получаю эти строки:

Как я могу это исправить?

Есть ли у кого-нибудь такая проблема?

Хавьер, не могли бы вы загрузить больше выходных данных из терминала?

Поскольку то, чем вы поделились, кажется нормальным, я бы ожидал таких результатов.

Однако проблема, которую я замечаю в ваших результатах, - это "0.0" в конце. Получение ошибки 0.0 подразумевает, что модель совершенна, а это нереально.