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

 

Оптимизация стратегии полос Боллинджера Райнера Тео для достижения лучших результатов



Оптимизация стратегии полос Боллинджера Райнера Тео для достижения лучших результатов

Сегодня мы углубимся в оптимизацию стратегии Reiner Theo Bollinger Band, которая ранее тестировалась в видео. Если вы не смотрели предыдущее видео, рекомендуется сделать это, прежде чем переходить к этой части оптимизации. Видео содержит ссылку в описании для быстрого доступа. Кроме того, для тех, кто интересуется аспектом кодирования, код Python также доступен для загрузки по ссылке в описании.

Оптимизируемая стратегия показала многообещающий потенциал с коэффициентом выигрыша 91% и постоянно растущей кривой капитала в течение 10-летнего тестирования. Однако одной из причин этой оптимизации является небольшое количество сделок, наблюдаемых во время тестирования на исторических данных. В течение 10 лет было совершено всего 23 сделки, в среднем около двух сделок в год. Для решения этой проблемы представлены два возможных решения. Первый предполагает одновременный запуск программы на нескольких акциях с целью проведения около 20 сделок в год. Однако такой подход вызывает озабоченность по поводу коррелированных рынков и других связанных с этим вопросов. Второе решение предполагает снижение временных рамок для увеличения количества сделок.

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

Переходя к самой программе, данные загружаются в первую ячейку, ориентируясь на четырехчасовой временной интервал для анализа. Для оптимизации используются два разных запаса. Данные очищаются путем удаления свечей без движения, где максимальная и минимальная цены равны. Добавлены технические индикаторы, такие как скользящая средняя (экспоненциальная или простая) и RSI, а их длина может быть изменена. В данном конкретном случае длина скользящей средней устанавливается равной 900 свечам, а длина RSI устанавливается равной 12. Для дневных графиков в качестве сигналов выхода используются 200-дневная EMA и 2-дневная RSI. Параметры полос Боллинджера остались такими же, как и на дневных графиках, с длиной 20 и стандартным отклонением 2,5.

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

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

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

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

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

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

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

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

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

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

Optimizing Rayner Teo's Bollinger Bands Strategy for Better Results
Optimizing Rayner Teo's Bollinger Bands Strategy for Better Results
  • 2022.07.08
  • www.youtube.com
This is a continuation of the previous video on the Bollinger Bands Winning Trading Strategy published by Rayner Teo. The backtest optimization is done in Py...
 

Действительно ли этот индикатор крипто-скальпинга работает!



Действительно ли этот индикатор крипто-скальпинга работает!

Сегодня мы собираемся изучить стратегию моделирования с использованием средневзвешенной цены по объему (VWAP) при тестировании на исторических данных на рынке биткойнов. Мы напишем алгоритм Python для реализации этой стратегии и проанализируем результаты.

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

В этой стратегии мы будем использовать 15-минутные временные рамки для торговых цен биткойн-доллар США. Мы рассмотрим два индикатора: 100-дневную скользящую среднюю (DMA) и VWAP. Анализируя движение цены относительно этих индикаторов, мы можем определить рыночную тенденцию. Когда определенное количество свечей торгуется ниже или выше 100 DMA, это указывает на нисходящий или восходящий тренд соответственно. Точно так же, если свечи торгуются ниже или выше кривой VWAP, это подтверждает направление тренда.

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

Чтобы реализовать эту стратегию в Python, мы будем использовать пакет pandas_ta для вычисления VWAP и 100 DMA. Затем мы создадим два новых столбца в нашем фрейме данных: сигнал EMA и сигнал VWAP. Сигнал EMA будет подсчитывать количество обратных свечей, которые падают ниже или выше кривой EMA, чтобы подтвердить нисходящий или восходящий тренд. Точно так же сигнал VWAP будет подсчитывать количество свечей назад, которые находятся ниже или выше кривой VWAP.

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

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

Чтобы протестировать стратегию на истории, мы рассчитаем средний истинный диапазон (ATR) как меру волатильности. Расстояние стоп-лосса будет установлено в 0,8 раза больше текущего ATR, а расстояние тейк-профита будет в два раза больше расстояния стоп-лосса. С помощью этих параметров мы можем запускать позиции на покупку и продажу с учетом значений стоп-лосса и тейк-профита. Мы начнем с денежной суммы в размере 100 000 долларов США и кредитного плеча 5.

Запустив бэктест, мы можем наблюдать за результатами нашей торговой системы. Алгоритм показывает высокий процент доходности с финальным капиталом около 10 миллионов долларов через три года. Для сравнения, стратегия «купи и держи» принесла только 248% прибыли. Однако важно отметить, что производительность алгоритма колеблется, и в определенные периоды он может испытывать трудности. Это подчеркивает необходимость динамической адаптации к изменяющимся рыночным условиям.

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

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

Does this Crypto Scalping Indicator Actually Work!
Does this Crypto Scalping Indicator Actually Work!
  • 2022.06.02
  • www.youtube.com
This video describes a trading strategy using VWAP for Crypto such as the Bitcoin. The strategy algorithm is tested in Python and the code details are explai...
 

Как протестировать стратегию фондового рынка с помощью Python на S&P 500


Как протестировать стратегию фондового рынка с помощью Python на S&P 500

Всем привет, сегодня мы собираемся провести детальное тестирование простой моделирующей стратегии, используя исторические данные из S&P 500. Мы объясним основы стратегии и напишем код на Python для тестирования на исторических данных. У нас есть данные за три года, которые должны предоставить нам достаточно информации для оценки эффективности и результатов стратегии.

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

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

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

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

На этом этапе мы можем приступить к написанию программы и проверить результаты с помощью обратного тестирования. Для этой демонстрации мы будем использовать файл Jupyter Notebook. Сначала мы загружаем исторические данные в DataFrame с именем df_spy, используя функцию read_csv. Мы указываем 15-минутный таймфрейм и диапазон дат с 2019 по 2022 год. Индекс DataFrame устанавливается в столбец времени по Гринвичу.

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

Мы создаем копию DataFrame, отфильтровывая свечи без движения (где максимум равен минимуму). Этот шаг удаляет выходные и праздничные дни. Мы сохраняем отфильтрованные данные в DataFrame с именем df. Мы также определяем новый список с именем signal для хранения сигналов для каждой строки/свечи.

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

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

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

Вот краткое изложение шагов, связанных с тестированием торговой стратегии с использованием графиков свечей:

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

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

  3. Генерация сигналов : анализируйте исторические данные о ценах и генерируйте сигналы на основе определенной стратегии. Определите появление определенных моделей свечей, которые соответствуют критериям входа или выхода.

  4. Моделирование портфеля : Моделируйте торговую стратегию, отслеживая гипотетический портфель. Начните с фиксированной суммы капитала и моделируйте сделки на основе сгенерированных сигналов. Отслеживайте стоимость и производительность портфеля на протяжении всего периода тестирования.

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

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

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

How to Backtest A Stock Market Strategy Using Python On The S&P 500
How to Backtest A Stock Market Strategy Using Python On The S&P 500
  • 2022.05.26
  • www.youtube.com
This is a high profit trading strategy coded and tested in python. The strategy is easy to use and suitable for beginners, it was tested on SP500 stock marke...
 

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



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

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

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

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

Чтобы дать краткий обзор, мы загружаем исторические данные для валютной пары EUR/USD на часовом временном интервале с 2003 по 2022 год. Мы рассчитываем экспоненциальную скользящую среднюю (EMA) и средний истинный диапазон (ATR), которые могут быть полезно для установки значений стоп-лосса и тейк-профита. Мы вычисляем наклон EMA, так как это одно из условий стратегии Хаффмана. Дополнительно мы вводим два новых параметра: общее количество сигнальных обратных свечей (левая и правая), которые определяют количество свечей для сравнения с максимумом или минимумом свечи Хаффмана.

Алгоритм определяет условия для идентификации бара Хаффмана в восходящем или нисходящем тренде. В этом видео мы добавляем дополнительное условие, чтобы проверить, действует ли бар Хаффмана как опорная точка. Сравниваем минимум (при нисходящем тренде) или максимум (при восходящем тренде) бара Хаффмана с предыдущей и будущей свечами в указанном диапазоне. Если условие выполнено, мы присваиваем значение 1 для нисходящего тренда или 2 для восходящего тренда и сохраняем сигналы в новом столбце под названием «tot signal» во фрейме данных.

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

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

Для тестирования стратегии мы устанавливаем значения стоп-лосса и тейк-профита, которые могут варьироваться в зависимости от конкретных условий и используемых индикаторов. В этом случае мы используем ATR для определения стоп-лосса и соотношения тейк-профит/стоп-лосс, равного 1,5. Мы проводим тестирование на исторических данных со стартовым депозитом в размере 10 000 долларов США, маржой 1:50 и одной сделкой за раз.

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

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

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

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

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

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

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

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

Price Action Strategy For Algorithmic Trading In Python
Price Action Strategy For Algorithmic Trading In Python
  • 2022.05.12
  • www.youtube.com
This is a continuation of the previous videos, on price action trading strategy, about the Hoffman Inventory Retracement Bar indicator, and the previously in...
 

Как закодировать торговую стратегию бара восстановления в Python



Как закодировать торговую стратегию бара восстановления в Python

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

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

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

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

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

Теперь давайте напишем стратегию на Python и протестируем ее, используя исторические данные за несколько месяцев, чтобы оценить результаты. Файл Jupyter Notebook содержит код, который начинается с загрузки данных за 59 дней с использованием модуля yfinance за 15 минут. Мы рассчитываем экспоненциальную скользящую среднюю (EMA), ATR и наклон скользящей средней.

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

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

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

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

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

Мы также исследуем другой метод установки уровней стоп-лосса и тейк-профита, учитывая самый высокий максимум или самый низкий минимум предыдущих свечей. Однако в этом случае доход отрицательный и составляет -4,8%, что указывает на то, что эта стратегия управления капиталом не сработала.

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

Спасибо за просмотр этого видео. Следите за новостями, торгуйте безопасно и до встречи в следующий раз!

How to Code Retracement Bar Trading Strategy In Python
How to Code Retracement Bar Trading Strategy In Python
  • 2022.05.05
  • www.youtube.com
This video is a continuation of the previous one on the Hoffman Inventory Retracement Bar Automated In Python. This algorithmic trading strategy enabled Hoff...
 

Бар восстановления, закодированный в Python для алгоритмической торговли


Бар восстановления, закодированный в Python для алгоритмической торговли

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

Первое правило этой стратегии состоит в том, чтобы определить тренд цены, проверив, образует ли наклон 20-дневной скользящей средней (MA) угол в 45 градусов с горизонтальной линией. Обратите внимание, что в качестве примера используется 20-дневная скользящая средняя, и вы можете поэкспериментировать с разными периодами для скользящей средней. Если вы следуете нисходящему тренду, отрицательный наклон также должен образовывать угол не менее 45 градусов с горизонтальной линией. Однако важно отметить, что полагаться только на этот угол в 45 градусов в качестве сигнала математически бессмысленно, так как невозможно точно определить этот угол на торговом графике. Алгоритмическая торговля предлагает решение этой проблемы, которое мы рассмотрим позже в видео.

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

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

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

Для начала мы загружаем данные с помощью модуля yfinance. В примере загружаются данные по евро/доллару США за 59-дневный период с 15-минутным таймфреймом. Если вам нужно больше данных, вы можете загружать их партиями и объединять фреймы данных. После загрузки данных мы вычисляем экспоненциальную скользящую среднюю (EMA) длиной 20 и вычисляем наклон скользящей средней. Значения уклона сохраняются в новом столбце с именемlope_ema во фрейме данных.

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

Как только мы вычислим сигнал и сохраним результаты в списке с именем signal, мы добавим его как новый столбец с именем tot_signal во фрейм данных. Затем мы можем визуализировать сигналы на графике, используя Plotly.

Вот пошаговое объяснение стратегии Huffman's Inventory Retracement Bar без кода:

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

  2. Вычислите экспоненциальную скользящую среднюю (EMA): рассчитайте EMA цен закрытия, используя определенный период времени. EMA — это широко используемый индикатор, который помогает определить тенденции и потенциальные развороты ценовых данных.

  3. Вычислить наклон: вычислить наклон линии EMA в каждой точке данных. Наклон указывает направление и силу тренда. Вы можете использовать математические методы, такие как градиент или регрессия, для расчета наклона.

  4. Установить параметры: определить параметры для обнаружения сигнала. В стратегии Huffman Inventory Retracement Bar вы обычно устанавливаете предел наклона и предельный процент хвоста. Ограничение наклона определяет минимальное значение наклона для потенциального сигнала, в то время как ограничение процента хвоста устанавливает минимальный процент диапазона свечи, который должен быть верхним или нижним хвостом.

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

  6. Визуализируйте сигналы: создайте диаграмму или график ценовых данных. Нанесите сигналы на график, чтобы визуализировать свечи Хаффмана. Вы можете использовать библиотеки построения графиков, такие как Plotly или Matplotlib, чтобы создать диаграмму и отметить сигнальные точки.

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

Retracement Bar Coded In Python For Algorithmic Trading
Retracement Bar Coded In Python For Algorithmic Trading
  • 2022.04.28
  • www.youtube.com
This video details the IRB or the inventory retracement bar as described and used by Hoffman and the algorithm that detects this bar in an automated method i...
 

Как автоматизировать торговые модели в Python | Голова и плечи



Как автоматизировать торговые модели в Python | Голова и плечи

Чтобы автоматизировать обнаружение паттернов головы и плеч в Python, мы можем следовать шагам алгоритма, описанным в тексте. Вот подробное объяснение каждого шага:

  1. Обнаружение точек разворота:

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

    • Обнаруженные сильные точки разворота и слабые точки разворота наносятся на свечной график.
    • Сильные точки разворота представлены фиолетовыми точками над свечами, а слабые точки разворота представлены красными точками под свечами.
  3. Обнаружение фигуры Голова и плечи:

    • Чтобы обнаружить паттерн «Голова и плечи», мы перебираем идентификаторы свечей в указанном диапазоне.
    • Для каждого идентификатора свечи мы проверяем, является ли она точкой разворота (ни сильной, ни слабой) и идем дальше.
    • Если найдена сильная точка разворота, мы записываем координаты максимумов и минимумов в окне свечей по обе стороны от точки разворота.
    • Мы отслеживаем количество минимумов и максимумов до и после центральной опорной свечи.
    • Если количество минимумов и максимумов меньше единицы с каждой стороны, формирование паттерна невозможно, и мы переходим к следующей свече.
    • Если количество минимумов и максимумов удовлетворяет условию, мы подгоняем линию линейной регрессии к минимумам и вычисляем ее наклон и точку пересечения.
    • Мы находим индекс головы в пределах максимумов, используя функцию argmax.
    • Наконец, мы проверяем, выполняются ли условия для паттерна «голова и плечи»:
      • Разница между максимумом индекса головки и максимумом перед головкой должна быть больше порогового значения.
      • Разница между максимумом индекса головы и максимумом после головы также должна быть больше порога.
      • Абсолютный наклон минимумов должен быть меньше или равен порогу.
    • Если все условия соблюдены, мы обнаружили паттерн «голова и плечи».
Упоминание методов управления рисками, таких как установка стоп-лоссов или определение размера позиции, имеет важное значение для успешной торговли.
How to Automate Trading Patterns In Python | Head And Shoulders Pattern
How to Automate Trading Patterns In Python | Head And Shoulders Pattern
  • 2022.04.21
  • www.youtube.com
This video details the head and shoulders candles or candlesticks pattern, and an algorithm is automated in Python language to detect this specific form of c...
 

Обнаружение треугольного ценового паттерна в Python | Алгоритмический торговый индикатор



Обнаружение треугольного ценового паттерна в Python | Алгоритмический торговый индикатор

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

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

Этапы метода следующие:

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

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

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

Теперь давайте напишем код на Python для реализации этого метода и посмотрим, как он работает. Файл Jupyter Notebook содержит код для импорта данных, их очистки, вычисления опорных точек, визуализации опорных свечей и обнаружения треугольных паттернов. Мы используем такие библиотеки, как Pandas, NumPy и Plotly, для обработки данных и задач визуализации.

После импорта необходимых библиотек и данных мы определяем функцию под названием «pivot_id» для определения опорных точек на основе указанного количества соседей. Эта функция добавляет во фрейм данных новый столбец под названием «разворот», указывающий, является ли свеча разворотным минимумом (1) или разворотным максимумом (2).

Затем мы определяем функцию под названием «points_position» для построения свечей и добавления точек над и под ними в зависимости от их статуса разворота. Эта функция использует столбец "point_position" для определения y-координат точек.

Используя библиотеку Plotly, мы рисуем свечи и точки разворота, чтобы визуализировать результаты. Это позволяет нам убедиться, что опорные точки определены правильно.

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

Мы рисуем свечи, опорные точки и наклоны максимумов и минимумов, чтобы визуализировать треугольный паттерн. Проверяя условия, определенные для формы треугольника, такие как коэффициенты корреляции (r_min и r_max), мы можем определить, присутствует ли треугольный паттерн. Если условия соблюдены, отмечаем на графике треугольный узор.

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

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

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

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

Triangle Price Pattern Detection In Python | Algorithmic Trading Indicator
Triangle Price Pattern Detection In Python | Algorithmic Trading Indicator
  • 2022.04.14
  • www.youtube.com
This video details the algorithm for triangle price pattern detection in python, this technical indicator can be programmed in python to detect all shapes of...
 

История Python AlgoTrading: использование RSI и ADX со скользящей средней для сигналов покупки/продажи



История Python AlgoTrading: использование RSI и ADX со скользящей средней для сигналов покупки/продажи

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

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

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

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

Кроме того, мы включим RSI с периодом 3 и триггерными уровнями, установленными на 20 и 80. Когда RSI падает ниже 20, это предполагает, что рынок перепродан, вызывая сигнал покупки. И наоборот, когда RSI превышает 80, это указывает на то, что рынок перекуплен, что приводит к сигналу о продаже.

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

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

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

Чтобы окончательно проверить эту стратегию, мы воспользуемся Python для проведения ретроспективного тестирования и позволим результатам определить ее жизнеспособность. Мы будем импортировать исторические данные для валютной пары EUR/USD с 2019 по 2022 год, в частности, используя пятиминутные свечи. Мы также очистим данные, удалив периоды отсутствия торговой активности, такие как выходные и праздничные дни.

Используя пакет Pandas TA (технический анализ), мы добавим в наш фрейм данных четыре дополнительных столбца: 50 EMA, RSI с периодом 3, ADX с периодом 5 и средний истинный диапазон (ATR). Последний будет использоваться для расчета расстояния стоп-лосса. Сигнал тренда EMA укажет, торгуются ли свечи ниже или выше кривой 50 EMA, определяя, находимся ли мы в нисходящем или восходящем тренде соответственно.

Если мы находимся в нисходящем тренде, мы проверим, находится ли RSI ниже 20, что указывает на состояние перепроданности. Если выполняются условия как нисходящего тренда, так и перепроданности, мы сгенерируем сигнал на продажу.

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

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

Как только сигналы сгенерированы, мы рассчитаем расстояние стоп-лосса, используя средний истинный диапазон (ATR). ATR дает оценку среднего ценового диапазона за указанный период, что может помочь нам определить разумный уровень стоп-лосса.

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

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

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

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

Python AlgoTrading Backtest: Using RSI and ADX with Moving Average for Buy/Sell Signals
Python AlgoTrading Backtest: Using RSI and ADX with Moving Average for Buy/Sell Signals
  • 2022.04.07
  • www.youtube.com
This is a backtested strategy using the ADX and the RSI, the algotrading code is built in python and the backtest is conducted using backtesting.py package. ...
 

Как использовать индикатор объема для анализа торговой стратегии в Python


Как использовать индикатор объема для анализа торговой стратегии в Python

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

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

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

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

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

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

Теперь давайте изучим код и посмотрим, как все это работает вместе. В нашем файле Jupyter Notebook мы начинаем с импорта необходимых библиотек, включая Pandas, которые мы будем использовать для чтения файла данных CSV, содержащего ежедневные обменные курсы EUR/USD с 2003 по 2022 год. Кроме того, мы загружаем данные для других активов, таких как акции Amazon, eBay и Volkswagen, так как мы намерены протестировать эту стратегию и на фондовом рынке. Поскольку мы работаем с ежедневными данными, исходный набор данных состоит из 6 858 строк, которые будут дополнительно уменьшены в процессе очистки данных. Мы также следим за тем, чтобы заголовки столбцов соответствовали нашим требованиям, переименовывая их в «Время», «Открыть», «Высокий», «Низкий», «Закрыть» и «Объем» для согласованности в разных файлах данных.

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

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

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

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

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

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

How To Use The Volume Indicator For Trading Strategy Analysis In Python
How To Use The Volume Indicator For Trading Strategy Analysis In Python
  • 2022.03.24
  • www.youtube.com
Welcome to my video on how to use the volume indicator for trading strategy analysis in Python. In this video, I will be sharing a daily timeframe volume tra...
Причина обращения: