Python для алготрейдинга - страница 20

 

Каналы тренда цен, автоматизированные в Python



Каналы тренда цен, автоматизированные в Python

Привет всем, спасибо, что присоединились к нам сегодня для этого видео. Мы рады представить алгоритм на Python, который обнаруживает каналы движения цены. Вы можете скачать код в виде файла Jupyter Notebook по ссылке в описании ниже.

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

Прежде чем мы начнем, давайте уточним назначение этого канала. Наша цель — предоставить образовательный контент, поэтому мы не будем просто предоставлять программы для загрузки и использования в качестве черного ящика. Вместо этого мы стремимся объяснить процесс мышления и то, как была построена программа. К концу этого видео вы сможете создать свой собственный алгоритм, вдохновленный представленным здесь, и даже добавить свои собственные расширения.

Однако важно признать ограничения численных моделей применительно к динамическим и нелинейным средам, таким как рынок. Ценовые тенденции и прогнозы по-прежнему остаются открытым полем для изучения, и в настоящее время проводятся исследования, направленные на поиск наилучших подходов. Рынок очень динамичен, и тенденции и скорость их изменения могут меняться со временем. Итак, пожалуйста, примите ограничения и сложности, присущие прогнозированию ценовых движений.

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

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

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

Еще один аспект, который следует учитывать, — это длина временного окна. В зависимости от ваших предпочтений, вы можете выбрать разные значения количества задних свечей. Например, вы можете взять 30 баров позади текущей свечи плюс-минус 20 баров, позволяя программе перемещаться в пределах этого диапазона. Затем программа оценит различные наклоны и вернет количество свечей, которые обеспечивают наиболее параллельную ситуацию между двумя наклонами, что указывает на обнаружение канала.

Мы предоставили файл Jupyter Notebook, который вы можете скачать по ссылке в описании видео. Файл включает код Python для реализации алгоритма. Для начала мы импортируем библиотеку pandas и загружаем данные из CSV-файла, содержащего данные о свечах евро и доллара с 2003 по 2021 год.

Далее мы ищем максимумы и минимумы в пределах временного окна, определяемого количеством обратных свечей. Мы разрезаем окно на более мелкие окна и находим максимальную и минимальную точки в каждом окне. Эти точки хранятся в массивах numpy.

После получения минимумов и максимумов мы используем функцию numpy polyfit, чтобы подогнать точки к полиномиальным линиям первой степени. Результаты, которые включают наклоны и точки пересечения, сохраняются в переменных.

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

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

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

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

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

Мы рекомендуем вам загрузить файл Jupyter Notebook и подробно изучить код. Поэкспериментируйте с разными параметрами, протестируйте его на разных наборах данных и посмотрите, как он работает. Не стесняйтесь изменять и улучшать алгоритм в соответствии с вашими потребностями и идеями.

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

Спасибо за просмотр, и мы с нетерпением ждем ваших отзывов и вопросов. Удачного кодирования!

Price Trend Channels Automated In Python
Price Trend Channels Automated In Python
  • 2021.10.30
  • www.youtube.com
This video is about detecting price trend and price channels and how to automate this process in Python. The algorithm is presented and explained then the co...
 

Как закодировать трейл-стоп в тестировании стратегии Python



Как закодировать трейл-стоп в тестировании стратегии Python

Сегодня у меня есть для вас увлекательное руководство по программированию на Python. Мы узнаем, как внедрить трейлинг-стоп в нашу торговую стратегию, и проанализируем его влияние на наш капитал и прибыль. Если вы новичок на этом канале, рекомендую посмотреть предыдущие видео в этом плейлисте, особенно последние два или три, где мы подробно обсуждали стратегию. Вы также можете найти код Python в блокноте Jupiter, который доступен для скачивания по ссылке в описании. Это позволит вам точно настроить параметры и поэкспериментировать самостоятельно.

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

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

Теперь давайте применим эту концепцию к нашей ранее обсуждаемой стратегии. Мы будем использовать ту же программу, которую подробно описали ранее. Если вы не знакомы с ним, пожалуйста, обратитесь к плейлисту и посмотрите последние два или три видео, в которых рассказывается о свечных паттернах и автоматизации определения уровней поддержки и сопротивления. Единственная разница на этот раз заключается в том, что вместо использования фиксированного стоп-лосса или тейк-профита мы реализуем трейлинг-стоп. Ближе к концу этого урока я проверю стратегию на истории и продемонстрирую потенциальную доходность, достижимую с помощью этого метода трейлинг-стопа.

Для начала мы загружаем наши данные, которые представляют собой дневной график свечей для валютной пары EUR/USD с 2003 по 2021 год. У нас есть набор функций, которые помогают определять уровни поддержки и сопротивления, а также различные модели свечей, такие как модели поглощения, падающие звезды и шаблоны отказа. Если вас интересуют подробности реализации этих функций, обратитесь к предыдущим видео.

Далее мы генерируем наши торговые сигналы. Сигнал покупки обозначается значением 2, сигнал продажи — 1, а если сигнала нет, значение устанавливается равным 0. Эта информация добавляется в виде нового столбца в наш фрейм данных. Вот как теперь выглядит наш фрейм данных со столбцами для цены открытия, максимума, минимума, цены закрытия, объема (который мы не будем использовать в этой стратегии) и столбца сигнала.

Чтобы протестировать нашу стратегию на истории, мы будем использовать пакет для тестирования, представленный в последнем видео этого плейлиста. Мы определяем класс под названием «MyCandleStrategy», который наследуется от класса «Strategy», предоставляемого пакетом тестирования на истории. Мы переопределяем две функции: «инициализировать» и следующую функцию, вызываемую на каждой свече. В функции инициализации мы определяем переменную «stop_loss_trail», которая представляет собой расстояние (в пипсах) для нашего трейлинг-стопа. С этим значением можно поэкспериментировать, чтобы найти оптимальное значение трейлинг-стопа для нашей стратегии.

В следующей функции мы реализуем логику нашего трейлинг-стопа. Начнем с проверки наличия открытой позиции. Если мы это делаем, мы вычисляем текущий уровень стоп-лосса, вычитая значение трейлинг-стопа из самой высокой цены с момента входа в позицию. Это гарантирует, что уровень стоп-лосса будет отставать от цены по мере ее роста. Затем мы проверяем, достигла ли текущая цена уровня стоп-лосса или упала ниже него. Если это так, мы закрываем позицию и обновляем нашу торговую статистику.

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

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

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

How To Code A Trail Stop In Python Strategy Backtesting
How To Code A Trail Stop In Python Strategy Backtesting
  • 2021.10.22
  • www.youtube.com
Trailing stop, or stop loss strategy is presented and coded in python for algorithmic trading methods. The strategy is Backtested showing high profitability...
 

Как протестировать торговую стратегию на Python



Как протестировать торговую стратегию на Python

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

Этот процент прибыли важно определить, если вы рассматриваете какие-либо инвестиции в свою стратегию. Прежде чем мы продолжим, как обычно, код представляет собой блокнот Jupyter Python, который вы можете скачать по ссылке в описании этого видео. Эта тема была предложена одним из ваших сообщений, так что еще раз спасибо, что поделились своими мыслями. Благодаря вашим отзывам мы получаем действительно интересные идеи, и я прошу прощения, если у меня не было времени обсудить все предложенные идеи, но я веду список, и я думаю, что мы собираемся рассмотреть их в будущем.

Теперь давайте поговорим об инструментах для тестирования на истории. В сети есть много доступных библиотек, но лично я предпочитаю кодировать свои собственные функции. Таким образом, я точно знаю, что происходит внутри моего кода, особенно когда дело доходит до тестирования на истории. Нам нужно что-то надежное и прочное. Однако среди предложенных пакетов у меня было два варианта. Один использовал пакет под названием «vectorbt», который мне было немного сложно изучить за пару часов и начать использовать его для своих собственных стратегий. Документации было мало, и мне пришлось просматривать форумы и онлайн-примеры, чтобы найти много подробностей. Хотя у него огромный потенциал и множество опций, я не хотел тратить месяц на ознакомление с необходимыми функциями только ради тестирования одной простой стратегии.

Итак, для этого видео я выбрал второй вариант — пакет под названием «backtesting.py». На мой взгляд, он предлагает более простой подход. Теперь давайте перейдем к этому и посмотрим, сколько денег принесла бы наша стратегия. В этом примере я собираюсь протестировать предыдущую стратегию, которую мы обсуждали в видеоролике об автоматическом обнаружении сопротивления и поддержки и обнаружении паттернов свечей. Это два индикатора, которые мы будем комбинировать и использовать в этом видео.

Сначала я загружу и очистю данные. Затем я применю функции поддержки и сопротивления для обнаружения. Если вы впервые смотрите этот канал, я рекомендую вернуться и просмотреть предыдущие видеоролики о том, как обнаруживать функции поддержки и сопротивления, а также тот, в котором мы объясняем, как обнаруживать модели поглощения, падающие звезды, повешенного человека и другие модели свечей.

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

Теперь я изменю заголовки столбцов, чтобы сделать их совместимыми с пакетом backtesting.py. Этот шаг чувствителен к регистру, поэтому нам нужно убедиться, что имена точно совпадают. Затем я выбираю ряд строк для работы.

После настройки нашего фрейма данных мы переходим к самой интересной части: определению нашей стратегии и ее тестированию. Я импортирую необходимые библиотеки, включая модуль «стратегия», и уберу пример пересечения медленных и быстрых скользящих средних.

Затем я определяю новый класс под названием «MyCandlesStrategy», который расширяет класс «Strategy» и переопределяет два его абстрактных метода: __init__ и next. Метод __init__ используется для инициализации первых переменных или функций в начале стратегии. Он запускается только один раз, в идеале для предварительного расчета любых индикаторов и сигналов, от которых зависит стратегия.

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

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

Когда дело доходит до инструментов тестирования на исторических данных, в Интернете доступно множество библиотек. Хотя я не знаком со всеми из них, лично я предпочитаю кодировать свои собственные функции. Такой подход позволяет мне полностью контролировать и понимать внутреннюю работу кода, что особенно важно для тестирования на исторических данных. Нам нужно надежное решение для оценки наших торговых моделей.

Среди предложенных пакетов у меня было два варианта. Первым был пакет под названием «Vectorbt», который, хотя и был мощным и многофункциональным, имел крутую кривую обучения. Документация по этому пакету была несколько ограничена, и мне пришлось искать на форумах и онлайн-примерах, чтобы собрать необходимую информацию. Хотя Vectorbt обладает огромным потенциалом, я не хотел тратить слишком много времени на ознакомление с его функциями исключительно с целью тестирования простой стратегии в этом видео.

Поэтому я выбрал второй вариант — пакет под названием «backtesting.py». На мой взгляд, этот пакет предлагает более простой подход к тестированию на исторических данных, что делает его более подходящим для наших нужд. С учетом сказанного давайте углубимся в это и посмотрим, какую прибыль принесла бы наша стратегия.

В этом примере я протестирую предыдущую стратегию, которую мы обсуждали, которая включала автоматическое определение уровней сопротивления и поддержки, а также обнаружение свечных паттернов. Эти два индикатора будут объединены в нашу стратегию. Для подробного объяснения определения уровней поддержки и сопротивления и свечных паттернов я рекомендую вам посмотреть соответствующие видеоролики на нашем канале.

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

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

Двигаясь вперед, нам нужно настроить имена столбцов в нашем DataFrame, чтобы они были совместимы с пакетом «backtesting.py». Важно соблюдать чувствительность к регистру и соглашения об именах, требуемые пакетом. Кроме того, мы выделяем ряд строк и вносим необходимые изменения в столбцы.

Подводя итог, наш DataFrame содержит следующие столбцы: время, цены открытия, максимум, минимум и цены закрытия, а также объем (который мы не будем использовать в данный момент) и столбец сигнала, который мы вычислили ранее.

Затем мы определяем сигнальную функцию, которая возвращает столбец сигнала из нашего DataFrame. Эта функция понадобится позже, когда мы определим наш класс стратегии.

Теперь мы подошли к самой интересной части, где мы определяем нашу стратегию и проводим тестирование на истории. Для этого мы следуем рекомендациям, приведенным в документации backtesting.py. Они предполагают, что новая стратегия должна расширять класс Strategy и переопределять два его абстрактных метода: init и next.

Метод init отвечает за инициализацию переменных и функций, требуемых стратегией. Он вызывается перед запуском стратегии и обычно используется для предварительного расчета любых индикаторов или сигналов, на которые опирается стратегия. Перегрузив эту функцию, мы можем определить необходимые индикаторы, используя обычные функции Python и примеры, представленные в документации по backtesting.py.

В нашем методе init мы определяем необходимые индикаторы для нашей стратегии. В этом случае мы будем использовать функцию сигнала, которую мы создали ранее, чтобы получить столбец сигнала из нашего DataFrame. Мы также установили комиссию на ноль, так как в этом примере мы не будем учитывать комиссию за торговлю.

Следующий метод лежит в основе нашей стратегии. Он вызывается для каждого торгового бара и отвечает за принятие торговых решений на основе текущих рыночных условий. В нашей реализации мы проверяем, есть ли сигнал на покупку (сигнал равен 1), и в данный момент у нас нет позиции. Если эти условия соблюдены, входим в длинную позицию (покупка).

Аналогично, если есть сигнал на продажу (сигнал равен -1) и у нас есть длинная позиция, мы выходим из позиции (продаем). В этом примере мы не рассматриваем короткие позиции, поэтому у нас есть только сигналы на покупку и продажу.

Как только мы определили нашу стратегию, мы создаем ее экземпляр и передаем наш DataFrame и сигнальную функцию в качестве аргументов. Затем мы создаем экземпляр класса Backtest из пакета backtesting.py, передавая экземпляр нашей стратегии и DataFrame в качестве аргументов.

Наконец, мы запускаем бэктест, вызывая метод run в нашем экземпляре бэктеста. Этот метод выполняет стратегию и выдает результаты.

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

В дополнение к показателям производительности экземпляр Backtest предоставляет различные функции построения графиков для визуализации результатов. Мы можем построить кривую капитала, которая показывает рост торгового счета с течением времени, а также другие полезные графики, такие как просадки и журнал сделок.

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

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

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

На этом мы завершаем обсуждение бэктестинга с использованием пакета backtesting.py. Я надеюсь, что вы нашли это видео информативным и предоставили вам практический подход к тестированию ваших торговых стратегий. Не забывайте экспериментировать с различными стратегиями, индикаторами и параметрами, чтобы найти те, которые лучше всего подходят для ваших торговых целей.

Как всегда, не стесняйтесь оставлять комментарии, вопросы или предложения для будущих видео. Ваш отзыв очень важен. Спасибо за просмотр, и увидимся в следующем видео!

How To Backtest A Trading Strategy in Python
How To Backtest A Trading Strategy in Python
  • 2021.10.07
  • www.youtube.com
In this video I am presenting a backtesting method using the backtesting.py package. We will backtest a winning strategy using python, we already detailed th...
 

Автоматическая торговая стратегия Price Action в Python



Автоматическая торговая стратегия Price Action в Python

В этом видео мы обсудим торговую стратегию, использующую модели свечей и уровни поддержки и сопротивления. Основная цель этой стратегии — автоматизировать процесс обнаружения паттернов ценового действия и применить его к историческим данным евро по отношению к доллару США.

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

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

Теперь перейдем к реализации этой стратегии на Python. Мы будем использовать исторические данные о курсе евро по отношению к доллару США, которые можно получить из различных источников финансовых данных или API. Для этого примера предположим, что мы уже собрали и предварительно обработали необходимые данные.

Мы автоматизируем стратегию, используя Python и несколько популярных библиотек. Первым шагом является импорт необходимых библиотек, включая pandas для обработки данных, matplotlib для построения графиков и talib для индикаторов технического анализа. Talib — это широко используемая библиотека, которая предоставляет набор функций технического анализа, включая распознавание моделей свечей.

После импорта библиотек мы можем загрузить исторические данные в кадр данных pandas. DataFrame должен содержать необходимые столбцы, такие как дата, открытие, максимум, минимум, закрытие и объем. Эти столбцы обычно используются в техническом анализе и необходимы для расчета индикаторов и паттернов.

Затем мы можем определить функцию для обнаружения паттернов свечей. В этом примере мы сосредоточимся на простом паттерне — бычьем поглощении. Этот паттерн возникает, когда за маленькой медвежьей свечой следует большая бычья свеча, которая полностью поглощает предыдущую свечу. Функция будет перебирать DataFrame и определять экземпляры модели бычьего поглощения.

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

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

И наоборот, если текущий бар удовлетворяет условиям медвежьего паттерна поглощения и текущая цена близка к уровню сопротивления, мы генерируем сигнал на продажу. Эти сигналы будут использоваться для срабатывания ордеров на покупку или продажу в реальной торговой среде.

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

Наконец, мы можем оценить эффективность нашей стратегии, протестировав ее на исторических данных. Тестирование на исторических данных включает в себя моделирование сделок на основе исторических данных и оценку прибыльности и риска стратегии. Мы можем рассчитать различные показатели эффективности, такие как общий доход, годовой доход, максимальная просадка и многое другое.

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

В этом видео представлена простая торговая стратегия, сочетающая свечные паттерны и уровни поддержки и сопротивления. Стратегия была автоматизирована и протестирована в Python с использованием исторических данных евро по отношению к доллару США. Используя эти методы технического анализа, трейдеры потенциально могут определять прибыльные торговые возможности и принимать обоснованные решения на финансовых рынках.

Automated Price Action Trading Strategy In Python
Automated Price Action Trading Strategy In Python
  • 2021.09.09
  • www.youtube.com
This video presents a simple trading strategy using candlestick patterns and support and resistance values. The strategy can be automated for price action d...
 

Автоматическое определение поддержки и сопротивления в PYTHON



Автоматическое определение поддержки и сопротивления в PYTHON

Привет всем, и добро пожаловать снова на это видео. В этом видео мы подробно объясним, как автоматизировать определение уровней поддержки и сопротивления с помощью Python. Эта идея была предложена одним из комментариев, так что большое спасибо за это. Как обычно, не забывайте, что программа доступна для скачивания по ссылке в описании ниже. Это файл Jupyter Notebook, который вы можете использовать для своих собственных экспериментов. Вы можете попробовать это в разных валютах или разных временных рамках, а также изменить переменные, представленные в коде.

Хотя визуально определить уровни поддержки и сопротивления легко, взглянув на график движения цены, их программное определение может показаться сложным. Однако при правильном алгоритме процесс можно автоматизировать. Важно отметить, что алгоритм, который мы представляем в этом видео, не единственный для определения уровней поддержки и сопротивления. Существуют разные подходы, но мы выбрали тот, который относительно просто реализовать в коде.

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

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

Теперь давайте углубимся в сам алгоритм. Для уровней поддержки мы будем искать определенное количество снижающихся минимумов, которые предшествуют интересующей нас свече. Интересующая свеча должна иметь более низкое значение минимума, чем другие свечи. Кроме того, нам нужно иметь три возрастающих минимума после интересующей нас свечи. Когда все эти условия выполняются для группы свечей, мы можем определить уровень поддержки, который определяется как самая низкая цена среди этих свечей. Тот же принцип применим и к уровням сопротивления. Нам нужно иметь возрастающие максимумы перед интересующей свечой и более высокий максимум для интересующей свечи. Тогда у нас должны быть уменьшающиеся максимумы после интересующей нас свечи. Это позволяет нам найти уровень сопротивления, который является самой высокой ценой среди этих свечей.

Интересным параметром на этом этапе является то, сколько свечей мы должны учитывать до и после интересующей свечи. Это можно настроить в зависимости от предпочтений пользователя, и было бы неплохо поэкспериментировать с разными значениями. В нашей программе мы определяем их как две переменные с именами n1 и n2. Индекс интересующей свечи представлен переменной l.

Теперь давайте посмотрим, как мы можем реализовать этот алгоритм на Python. Для этой демонстрации мы будем использовать Jupyter Notebook. Во-первых, мы импортируем необходимые библиотеки, в том числе pandas для манипулирования данными. Мы загружаем данные с помощью функции read_csv, и в этом примере мы используем дневные графики EUR/USD с 2003 по 2021 год, то есть данные примерно за 18 лет.

Далее мы будем использовать уровни поддержки и сопротивления, хранящиеся в списках ss и rr, для построения линий на свечном графике. Мы пройдемся по каждому уровню поддержки в ss и добавим на график горизонтальную линию на этом ценовом уровне. Точно так же мы пройдемся по каждому уровню сопротивления в rr и добавим горизонтальную линию для каждого уровня. Это облегчит визуализацию уровней поддержки и сопротивления по отношению к движению цены.

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

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

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

Automated Support and Resistance Detection in PYTHON
Automated Support and Resistance Detection in PYTHON
  • 2021.08.19
  • www.youtube.com
This video describes an algorithm to detect support and resistance levels in python language. 🍓 If you want to follow structured courses with more details a...
 

Автоматический анализ паттернов ценового действия в Python


Автоматический анализ паттернов ценового действия в Python

В этом видео объясняется, как комбинировать паттерны свечного анализа в Python и проверять количество сигналов, а также точность прогнозов ценового действия. Методы совместимы с автоматической торговлей. Хороший метод для поиска относительно сильного сигнала от движений цены, анализа свечей, паттернов поглощения, анализа движения цены.

00:00 Свечи Price Action Введение
00:35
Падающая звезда, Молот, Повешенный, Поглощающий узор
03:10 Определение ценового действия Python
12:13 Результаты анализа ценового действия
18:45 Построение ценовых свечей в Python

Automated Price Action Patterns Analysis In Python
Automated Price Action Patterns Analysis In Python
  • 2021.08.05
  • www.youtube.com
This video provides an explanation on how to combine Candlestick Analysis Patterns in Python and check the number of signals as well as the accuracy of the p...
 

Поглощение паттернов ценового действия, автоматизированных в Python



Поглощение паттернов ценового действия, автоматизированных в Python

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

Чтобы проанализировать достоверность этих паттернов, мы будем использовать исторические данные по валютной паре EUR/USD примерно за 10 лет. Наша цель — применить простые статистические методы в Python, чтобы определить, имеют ли эти шаблоны статистическую значимость или они являются просто мифом. Эта информация имеет решающее значение, особенно если вы рассматриваете возможность включения свечных паттернов в свою торговую стратегию в качестве индикаторов.

Для вашего удобства вы можете найти полный код, использованный в этом анализе, перейдя по ссылке, приведенной в описании ниже. Код доступен в виде файла Jupyter Notebook, что позволяет вам расслабиться и насладиться этим видео, одновременно исследуя код.

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

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

В этом видео наша цель — проверить, верны ли эти утверждения. Мы стремимся определить, действительно ли эти паттерны указывают на конкретное поведение рынка. Как правило, модель бычьего поглощения предполагает, что покупатели сильнее продавцов на рынке, в то время как модель медвежьего поглощения предполагает обратное. Чтобы выполнить эту проверку, мы напишем код Python для обнаружения бычьих и медвежьих свечей поглощения. Впоследствии мы проанализируем следующие несколько свечей (от одной до трех свечей и более), чтобы убедиться, что цена движется в ожидаемом направлении.

Для большей точности будем считать цену закрытия последней свечи поглощения. В случае бычьего паттерна поглощения мы будем рассматривать максимумы последующих свечей и вычислять разницу между максимумом и ценой закрытия свечи поглощения. Это приведет к трем различным значениям, которые мы обозначим как «d». Далее мы проверим, превышает ли какое-либо из этих различий определенный предел, представленный переменной, которую я определю. Этот предел может быть установлен на 20, 30 или 40 пунктов, в зависимости от ваших предпочтений. Затем мы рассчитаем процент случаев, когда эта разница превышает лимит пипсов.

Точно так же для модели медвежьего поглощения мы будем рассматривать минимальные значения последующих свечей. Мы сравним разницу между ценой закрытия поглощающей свечи и этими минимумами с переменной X. И снова мы ищем случаи, когда эта разница превышает X. По сути, мы оцениваем, выходит ли цена за бычий или медвежий уровень. порог в пределах двух-трех свечей после модели поглощения. Мы рассчитаем процент случаев, когда цена ведет себя так, как ожидалось, после появления этих моделей.

Важно отметить, что только одна из этих разниц должна превышать переменную X. Мы не требуем, чтобы все три разности превышали этот предел пипсов одновременно. Поэтому, если цена падает ниже значения закрытия свечи поглощения на определенное количество пипсов, предсказание этого паттерна считается успешным. Тот же принцип применим к модели бычьего поглощения, но в восходящем направлении.

Теперь приступим к проверке кода Python и наблюдению за его поведением.

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

Теперь давайте создадим новую функцию с именем «calculate_precision», которая принимает фрейм данных в качестве входных данных и вычисляет точность для обоих шаблонов. Во-первых, мы инициализируем переменные «медвежьи_сигналы» и «бычьи_сигналы», чтобы подсчитать общее количество сигналов для каждого паттерна. Затем мы перебираем кадр данных и увеличиваем соответствующий счетчик сигнала на основе значения сигнала.

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

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

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

В заключение, это видео посвящено паттернам поглощения свечей в торговле и направлено на то, чтобы определить, имеют ли эти паттерны статистическую значимость или они являются просто мифом. Анализируя исторические данные валютной пары EUR/USD с помощью Python, мы обнаружили медвежьи и бычьи свечные модели поглощения и исследовали последующее поведение тренда в течение заданного количества свечей. Благодаря вычислению точности мы получили представление о точности наших прогнозов. Не забывайте учитывать ограничения этого анализа и продолжайте совершенствовать свою торговую стратегию, исходя из собственных предпочтений и целей.

Спасибо за просмотр и не забудьте проверить ссылку в описании видео, чтобы загрузить полный код в формате Jupyter Notebook. Наслаждайтесь своим торговым путешествием и удачи в ваших начинаниях!

Engulfing Price Action Patterns Automated in Python
Engulfing Price Action Patterns Automated in Python
  • 2021.07.08
  • www.youtube.com
This video describes the Engulfing Candlestick Patterns, bullish and bearish engulfing candles and statistics are carried out in python to check if these pat...
 

Автоматизированная свечная стратегия в Python | испытание падающей звезды



Автоматизированная свечная стратегия в Python | испытание падающей звезды

На сегодняшнем занятии мы погрузимся в увлекательный мир свечных паттернов и научимся программировать их на Python. Наша цель — создать код, который может идентифицировать определенные модели и потенциально обнаруживать развороты ценового тренда. Кроме того, мы проведем ретроспективное тестирование стратегии, использующей сигналы свечей, применяя простой статистический подход для оценки шансов на разработку выигрышного автоматизированного бота на основе предсказаний свечей. Если вас заинтриговал этот контент, вы можете скачать файл программы по ссылке, указанной в описании ниже. Мы надеемся, что вам понравится эта информативная сессия.

Прежде чем мы продолжим, давайте уточним, что в этом видео предполагается, что у вас уже есть некоторые знания о свечных паттернах. Мы не будем вдаваться в подробности объяснения каждого паттерна, поскольку сосредоточимся на самых известных формах. Обратите внимание, что этот список не является исчерпывающим, так как существует множество других шаблонов. Пока что мы будем придерживаться основ. Возможно, вы уже знакомы с доджи, которая представляет неопределенный рынок. Еще одним важным паттерном является Падающая звезда, характеризующаяся длинным хвостом над телом свечи. Он может появляться в двух формах, но важнее всего наличие длинного хвоста. Когда вы сталкиваетесь с падающей звездой во время восходящего тренда, это может указывать на разворот тренда, предполагая переход к нисходящему тренду. Точно так же у нас есть паттерн «Молот», который похож на «Падающую звезду», но перевернут. Это означает точку отклонения во время восходящего тренда с длинным нижним хвостом. Этот паттерн предполагает, что восходящий тренд близится к концу, и может последовать откат нисходящего тренда.

Двигаясь дальше, давайте обсудим модель бычьего поглощения. Это происходит во время нисходящего тренда, когда последняя красная свеча полностью перекрывается восходящей свечой большего размера. Этот разворотный паттерн сигнализирует об окончании нисходящего тренда и начале восходящего тренда. И наоборот, у нас есть паттерн медвежьего поглощения, который противоположен паттерну бычьего поглощения. Это происходит во время восходящего тренда, когда за восходящей свечой следует более крупная свеча, закрывающая предыдущую. Это указывает на окончание восходящего тренда и начало нисходящего тренда. Имейте в виду, что есть несколько других свечных паттернов, которые мы не будем здесь подробно рассматривать, например, «Три вороны». Однако в этом видео мы сосредоточимся на паттернах «Падающая звезда» и «Молот», особенно когда нисходящий тренд превращается в восходящий.

Модели «Падающая звезда» и «Молот» являются моими фаворитами из-за их четкого указания на реакцию рынка на восходящий тренд. Видно, что продавцы вышли на рынок, отказавшись от определенного уровня цен. Вот почему я склонен доверять этим шаблонам больше, чем другим. Конечно, индивидуальные предпочтения могут различаться в зависимости от того, как вы используете и комбинируете эти паттерны с другими индикаторами или стратегиями. Для целей этого видео давайте рассмотрим Падающую звезду как убедительный пример отклонения цены и сильной реакции продавцов, которая придает этой свече особую форму. Мы сосредоточимся на кодировании этого шаблона на Python и обучении нашего бота распознавать такие шаблоны. Хотя вы можете расширить концепции, которые мы обсудим, на другие модели, которые вас интересуют, наше основное внимание будет сосредоточено на Падающей звезде и Молоте.

Важно отметить, что полагаться исключительно на свечные паттерны недостаточно для получения точных сигналов на покупку или продажу. Эти паттерны следует сочетать с вашими любимыми индикаторами. В нашем случае мы объединим их с Индексом относительной силы (RSI). Вы можете включить различные технические индикаторы или даже фундаментальный анализ вместе со свечными паттернами. Использование только подсвечников не является всеобъемлющим.

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

Если все условия соблюдены, мы можем сгенерировать сигнал на покупку. Мы присваиваем значение 1 столбцу сигнала для соответствующей строки во фрейме данных. В противном случае мы присваиваем значение 0, что указывает на отсутствие сигнала. Этот процесс повторяется для каждой строки во фрейме данных, эффективно сканируя весь набор данных для выявления потенциальных сигналов покупки.

Далее мы переходим к определению уровней стоп-лосса и тейк-профита для идентифицированных сигналов на покупку. Мы рассчитываем значение стоп-лосса, вычитая средний истинный диапазон (ATR) из цены покупки. ATR обеспечивает меру волатильности и помогает определить подходящее расстояние для стоп-лосса. Более широкий ATR указывает на более волатильный рынок, требующий большего стоп-лосса, в то время как меньший ATR указывает на менее волатильный рынок, что позволяет установить более узкий стоп-лосс.

Для уровня тейк-профита мы умножаем соотношение тейк-профит-стоп-лосс (которое мы установили равным 2) на ATR и добавляем его к цене покупки. Это гарантирует, что уровень тейк-профита в два раза дальше от цены покупки, чем уровень стоп-лосса. Уровень тейк-профита представляет собой потенциальную цель прибыли для сделки.

Теперь, когда у нас есть сигналы на покупку и соответствующие уровни стоп-лосса и тейк-профита, мы можем приступить к тестированию стратегии на исторических данных. Мы перебираем каждую строку во фрейме данных и моделируем сделки на основе сгенерированных сигналов.

Если цена первой достигает уровня стоп-лосса, мы считаем сделку убыточной. И наоборот, если цена первой достигает уровня тейк-профита, мы считаем сделку выигрышной. Мы отслеживаем количество выигрышных и проигрышных сделок.

Чтобы оценить эффективность стратегии, мы рассчитываем коэффициент выигрыша как процент выигрышных сделок от общего числа сделок. В этом случае, поскольку мы установили соотношение тейк-профит-стоп-лосс равным 2, каждая прибыльная сделка компенсирует две проигрышные сделки. Следовательно, чтобы иметь выигрышную систему, мы должны быть правы как минимум в 34% случаев.

Важно отметить, что эта оценка не учитывает торговые издержки, такие как комиссии и значения свопов овернайт. Кроме того, это упрощенный пример, и в реальной торговле важно учитывать другие факторы, такие как рыночные условия, управление рисками и общий анализ рынка.

Сочетая свечные паттерны, RSI и систематический подход к управлению сделкой, мы стремимся разработать торговую стратегию, которая потенциально может генерировать прибыльные сделки. Тем не менее, очень важно тщательно протестировать и проверить стратегию с использованием исторических данных и учитывать текущий анализ рынка, чтобы адаптироваться к изменяющимся рыночным условиям.

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

Automated Candlestick Strategy in Python | testing the shooting star
Automated Candlestick Strategy in Python | testing the shooting star
  • 2021.04.21
  • www.youtube.com
This video is a walkthrough coding the candlestick patterns in Python language. After a general introduction we focus mainly on the shooting star rejection p...
 

Избегайте распространенных ошибок в алгоритмическом трейдинге и машинном обучении



Избегайте распространенных ошибок в алгоритмическом трейдинге и машинном обучении

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

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

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

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

Ошибка № 1: Подгонка ценовых значений к модели машинного обучения в качестве регрессора. Попытка предсказать следующую рыночную стоимость, напрямую вводя значения цен в регрессор машинного обучения, является распространенной ошибкой новичка. Хотя этот подход может хорошо работать для коррелированных значений, таких как прогнозирование цен на жилье на основе площади, он не применим к фондовым или валютным рынкам. Эти рынки не демонстрируют четкой корреляции только с временной переменной, что делает прямую регрессию неэффективной.

Ошибка № 2: Использование абсолютных значений в качестве входных данных модели. Использование необработанных значений цены или технических индикаторов в качестве входных данных — еще одна ловушка. Простое указание цен открытия, закрытия, максимума и минимума, а также скользящих средних и других индикаторов не гарантирует точных прогнозов будущих цен. Наш мозг по-разному обрабатывает информацию, сосредотачиваясь на общей картине и наклонах ценовых движений, а не на отдельных значениях. Точно так же ваша модель должна учитывать общие тенденции и закономерности, а не отдельные точки данных.

Ошибка № 3: выборка данных с использованием случайного разделения данных тренировочного теста. Хотя случайное разбиение тестов поездов является обычной практикой в машинном обучении, оно может быть проблематичным при работе с анализом временных рядов, особенно на ценовых рынках. Случайное разделение данных для обучения и тестирования может привести к ситуации, когда тестовый набор будет очень похож на обучающий. Это сходство может привести к тому, что модель покажется точной во время тестирования на исторических данных, но не сможет хорошо работать с новыми оперативными данными.

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

Ошибка № 5: Не учитывать стратегию, которая соответствует точности модели. Точность модели сама по себе не определяет ее прибыльность. Сочетание точности модели с оптимизированной торговой стратегией, такой как благоприятное соотношение тейк-профита и стоп-лосса, может превратить кажущуюся убыточной модель в прибыльную. Точности выше 33% может быть достаточно, если она сочетается с правильной стратегией.

Ошибка № 6: Пропустить стратегию входа и полагаться исключительно на предсказания модели. Даже если ваша модель дает точные прогнозы, крайне важно знать, когда входить в рынок и заключать сделки. Определение стратегии выхода на рынок, которая дополняет прогнозы модели, имеет важное значение для максимизации прибыли. Правильного предсказания тренда недостаточно, если вы входите в рынок в неподходящий момент и получаете стоп-ордер до того, как достигнете своей цели.

Ошибка № 7: Не учитывать торговые сборы и комиссии. Игнорирование сборов и комиссий может оказать существенное влияние на прибыльность вашей торговой стратегии. Хотя выигрышная стратегия может иметь небольшое преимущество, торговые сборы могут свести на нет эту прибыль. При разработке стратегии важно учитывать комиссию, например, закрытие сделок в тот же день, чтобы избежать комиссий за ночь или выходные.

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

Наконец, избегайте нетерпения и вмешательства в сделки. Высокоточная модель, как правило, ждет сильных сигналов, прежде чем совершать сделки. Хотя это может привести к тому, что вы упустите некоторые возможности, важно не вмешиваться в решения модели. Избегайте открытия новых сделок или закрытия существующих из-за нетерпения. Иногда отсутствие сделок лучше, чем убыточная сделка.

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

Avoid Common Mistakes in Algorithmic Trading And Machine Learning
Avoid Common Mistakes in Algorithmic Trading And Machine Learning
  • 2021.03.05
  • www.youtube.com
This video presents 9 very common mistakes that every algorithmic trader might fall in especially when using Machine Learning models to predict price movemen...
 

Как рассчитать технические индикаторы для торговли с использованием Pandas



Как рассчитать технические индикаторы для торговли с использованием Pandas

Привет всем, и добро пожаловать снова на это видео. Сегодня мы углубимся в анализ цен на рынке форекс с помощью Python и выясним, может ли статистика выявить какие-либо корреляции между техническими индикаторами и будущим направлением цены. Вам не нужно быть экспертом в трейдинге или программировании, чтобы следовать этому курсу, но некоторое знакомство с основными техническими индикаторами, такими как скользящие средние и индикатор относительной силы (RSI), будет полезным. Если вы здесь, чтобы быстро ознакомиться с приложениями машинного обучения в трейдинге, вы также попали в нужное место, так как мы постараемся сделать все проще.

В этом видео мы затронем следующие темы:

  1. Загрузка данных обмена валют: мы посетим веб-сайт cascope.com и выберем канал исторических данных, особенно для валютной пары USD/CHF (доллар США против швейцарского франка). Для наших данных мы выберем часовой таймфрейм свечи.

  2. Загрузка данных в Python с помощью pandas: мы будем использовать функцию read_csv библиотеки pandas для загрузки загруженного файла в кадр данных pandas. Мы также проверим, правильно ли загружены данные, проверив последние пять строк DataFrame.

  3. Очистка данных и первоначальный анализ. Понимание данных имеет решающее значение, поэтому мы очистим данные, удалив строки с нулевым объемом и проверив пропущенные значения. Кроме того, мы проведем краткий статистический анализ, чтобы выявить закономерности или корреляции в данных.

  4. Добавление технических индикаторов: мы импортируем необходимые библиотеки, в том числе numpy и pandas_ta (технический анализ панд), которые предоставляют различные индикаторы технического анализа. Мы добавим в наш DataFrame несколько индикаторов, таких как средний истинный диапазон (ATR), RSI, скользящие средние, и рассчитаем их наклоны.

  5. Определение цели: чтобы делать прогнозы на основе технических индикаторов, нам нужно определить нашу цель. Вместо того, чтобы предсказывать будущую среднюю цену, что может быть непросто, мы разделим тренды на три категории: восходящий, нисходящий и отсутствие четкого тренда.

  6. Построение гистограмм: мы будем визуализировать распределения различных функций с помощью гистограмм. Сюда входят объем, ATR, RSI, средние цены, скользящие средние, наклоны и целевые категории. Гистограммы обеспечат быстрый обзор данных и помогут определить любые выбросы.

  7. Анализ RSI: мы сосредоточимся на RSI как на индикаторе тренда и создадим отдельные кадры данных для трех целевых категорий: восходящего, нисходящего и неясного тренда. Мы построим гистограммы для значений RSI в каждой категории, чтобы увидеть, есть ли какие-либо заметные различия.

Однако имейте в виду, что полагаться исключительно на RSI может быть недостаточно для точного прогнозирования ценовых тенденций. Рекомендуется изучить другие технические индикаторы или комбинации индикаторов, чтобы получить преимущество в прогнозировании ценовых тенденций.

На этом содержание этого видео заканчивается. Я надеюсь, что вы найдете информацию полезной. Если у вас есть какие-либо конкретные вопросы или вам нужны дополнительные разъяснения, не стесняйтесь спрашивать в разделе комментариев. Удачного кодирования!

How To Calculate Technical Indicators For Trading Using Pandas
How To Calculate Technical Indicators For Trading Using Pandas
  • 2021.02.22
  • www.youtube.com
If you're a beginner looking to learn how to calculate technical indicators and download price history, then you don't want to miss this video! These indicat...