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

 

Автоматизированная стратегия скальпинга RSI протестирована на Python



Автоматизированная стратегия скальпинга RSI протестирована на Python

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

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

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

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

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

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

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

Видео переходит к анализу кода в Jupyter Notebook. Он начинается с загрузки данных, их очистки путем удаления записей с нулевым объемом (с указанием выходных или государственных праздников) и вычисления значений 200 EMA и RSI. Средний истинный диапазон (ATR) также рассчитывается для определения потенциальной дистанции стоп-лосса.

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

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

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

Automated RSI Scalping Strategy Tested In Python
Automated RSI Scalping Strategy Tested In Python
  • 2022.03.17
  • www.youtube.com
An Automated RSI Scalping Strategy is presented and backtested using python algorithmic trading over 3 years of data showing positive returns. The Test deta...
 

Стратегия скальпинга с помощью паттерна CandleStick Backtest в Python



Стратегия скальпинга с помощью паттерна CandleStick Backtest в Python

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

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

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

Стратегия была предварительно протестирована и оптимизирована с использованием кредитного счета с коэффициентом кредитного плеча 1:100. Тестирование проводилось в течение трех лет, в результате чего процент возврата составил 445%, а процент выигрышей — 55%. Однако важно отметить, что стратегия показывала большие периоды просадок, а кривая капитала не была стабильной на протяжении всего трехлетнего периода.

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

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

Тестирование на исторических данных выполняется с использованием данных 15-минутного графика евро/доллара США с 2019 по 2022 год, охватывающих данные за три года. Данные предварительно обрабатываются путем удаления свечей с нулевым объемом и сбросом индекса фрейма данных. Во фрейм данных добавляются три скользящих средних (50, 100 и 150) и средний истинный диапазон (ATR).

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

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

При добавлении третьего условия стратегия демонстрирует значительные улучшения во всех протестированных методах. Метод стоп-лосса и тейк-профита на фиксированном расстоянии дает доход в размере 1805% с коэффициентом выигрыша 59%. Метод, связанный с ATR, обеспечивает возврат 249% и процент выигрышей 51%. Метод трейлинг-стопа, который ранее был убыточным, теперь дает доходность 394% и процент выигрышей 42,5%. Наконец, стоп-лосс, наблюдаемый по цене, которая также проигрывала, теперь приносит доход в 373% с коэффициентом выигрыша 49%.

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

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

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

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

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

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

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

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

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

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

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

Scalping Strategy With CandleStick Pattern Backtest In Python
Scalping Strategy With CandleStick Pattern Backtest In Python
  • 2022.03.10
  • www.youtube.com
This is a scalping Trading Strategy optimization using CandleStick Wick length pattern to confirm price momentum along with 3 moving exponential averages to ...
 

Тестирование простой торговой стратегии скальпирования EMA на Python (часть 1)


Тестирование простой торговой стратегии скальпирования EMA на Python (часть 1)

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

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

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

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

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

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

Теперь давайте погрузимся в код Python и изучим результаты обратного тестирования. Мы будем использовать валютную пару евро/доллар США с 15-минутными свечами с 2019 по 2022 год. Фрейм данных состоит из 105 000 строк, каждая из которых представляет 15-минутную свечу. Очищаем фрейм данных, удаляя строки с нулевым объемом, что соответствует выходным и выходным дням, когда движения рынка нет.

Затем мы импортируем модуль pandas_ta (Технический анализ Pandas) и вычисляем три разных скользящих средних: EMA 50, EMA 100 и EMA 150. Мы также вычисляем наклоны этих скользящих средних, используя скользящее окно из 10 свечей.

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

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

Мы строим сигналы и свечи для определенного диапазона свечей.

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

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

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

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

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

Simple EMA Scalping Trading Strategy Backtest In Python (Part 1)
Simple EMA Scalping Trading Strategy Backtest In Python (Part 1)
  • 2022.02.24
  • www.youtube.com
Simple scalping Trading strategy using 3 exponential moving averages backtested in python, the scalping strategy is explained and the python code also in Jup...
 

Бэктест простой торговой стратегии EMA Scalping в Python (оптимизация, часть 2)



Бэктест простой торговой стратегии EMA Scalping в Python (оптимизация, часть 2)

Всем привет! Добро пожаловать в это видео, которое является продолжением нашего предыдущего видео. В этом видео мы стремимся оптимизировать стратегию скульптинга, которая была представлена ранее. Кратко резюмируя, мы сосредоточимся на оптимизации параметра, называемого «обратная прокрутка n», который определяет количество свечей, которые следует учитывать при расчете наклона скользящих средних. Изменяя количество свечей, например 20, 10 или 5, мы можем рассчитать средний наклон этих скользящих средних. Кроме того, мы изучим возможность добавления условий для наклонов скользящего среднего, таких как проверка наклонов меньше определенного порога, например от -10 до -4. Экспериментируя с этими параметрами, мы стремимся создать лучший фильтр для выявления тенденций.

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

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

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

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

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

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

После загрузки данных за выбранный период мы можем выполнить бэктест. Наш первоначальный размер лота установлен на уровне 30% нашего капитала, и мы рассматриваем стоп-лосс в 40 пунктов и тейк-профит в 45 пунктов. Мы также применяем маржу 1 к 100, отражая счет с кредитным плечом с денежным балансом 100 в качестве отправной точки.

Запустив бэктест, мы наблюдаем доходность 107% за трехмесячный период. Однако, чтобы обеспечить надежность нашей модели, очень важно протестировать стратегию на разных временных интервалах. Изменяя начальный индекс, мы можем выбирать различные периоды и оценивать производительность. Например, мы пробуем другой начальный индекс 47 и выполняем бэктест, получая доход 30%.

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

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

Чтобы усовершенствовать нашу стратегию, мы изучим различные значения параметра «перекатывания n назад». Тестируя различное количество свечей, например 20, 10 или 5, мы можем оценить их влияние на эффективность нашей стратегии. Например, мы можем изменить наш код, чтобы установить значение «обратного прокрутки n» равным 20 и повторно запустить бэктест.

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

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

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

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

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

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

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

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

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

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

Simple EMA Scalping Trading Strategy Backtest In Python (Part 2 Optimization)
Simple EMA Scalping Trading Strategy Backtest In Python (Part 2 Optimization)
  • 2022.03.03
  • www.youtube.com
This is a continuation of the previous video, here we optimize our simple EMA Scalping trading strategy and we try to backtest the different parameters sets ...
 

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



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

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

Давайте начнем с краткого введения в то, как работает кредитное плечо. Как правило, кредитное плечо представлено соотношением, например, от 1:10 до 1:1000, хотя чаще встречаются соотношения от 1:10 до 1:50. Это означает, что если у вас есть счет на 1000 долларов, вам будет разрешено покупать или продавать позиции на сумму до 10 000 долларов, если вы выберете коэффициент кредитного плеча 1:10. Увеличив коэффициент кредитного плеча, скажем, до 1:50, те же 1000 долларов на вашем счете позволят вам совершать покупки на сумму до 50 000 долларов. Конкретные варианты кредитного плеча, доступные вам, зависят от вашего брокера, страны, в которой он работает, правил и других факторов, связанных с типом вашего счета.

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

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

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

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

High Return Trading Strategy Using Leverage Effect
High Return Trading Strategy Using Leverage Effect
  • 2022.02.17
  • www.youtube.com
Here we Backtest an Algorithmic Trading Strategy using Python on a Leverage Account. The leverage can be a variable depending on the strategy you are intend...
 

Алгоритмическое тестирование стратегии свинг-трейдинга по Мартингейлу в Python



Алгоритмическое тестирование стратегии свинг-трейдинга по Мартингейлу в Python

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

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

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

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

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

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

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

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

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

Теперь мы можем подключить пакет backtesting.py для тестирования нашей стратегии. Мы определяем функцию под названием «сигнал», которая возвращает значения сигнала для каждой строки в нашем фрейме данных. Эта функция используется внутри нашего пользовательского класса CandleStrategy, который наследуется от класса стратегии модуля backtesting.py.

В нашем классе CandleStrategy мы инициализируем размер нашей торговой позиции равным 0,05, что представляет собой 5% капитала, которым мы владеем. Мы торгуем с этим размером позиции каждый раз, когда получаем сигнал.

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

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

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

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

Теперь давайте запустим бэктест и проанализируем результаты.

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

В нашем случае общая доходность составляет 256,17%, что означает, что наши первоначальные инвестиции увеличились более чем в два раза. Средняя дневная доходность составляет 0,04%, что указывает на стабильную положительную доходность за проверенный период. Максимальная просадка составляет 10,98%, что представляет собой самое большое падение кривой капитала от пика до последующего минимума.

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

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

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

Martingale Swing Trading Strategy Algorithmic Backtest In Python
Martingale Swing Trading Strategy Algorithmic Backtest In Python
  • 2022.02.10
  • www.youtube.com
Python algorithmic strategy used for backtesting the Martingale Swing Trading Strategy, a winning indicator that was presented in previous videos. Martingale...
 

Тестирование торговой стратегии Мартингейл для алгоритмической торговли



Тестирование торговой стратегии Мартингейл для алгоритмической торговли

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

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

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

Чтобы реализовать бэктест, мы напишем код на Python. Начнем с импорта необходимых библиотек, таких как pandas для обработки данных. Загружаем и очищаем данные, удаляя строки с нулевыми объемами торгов. После подготовки данных мы генерируем случайные сигналы, используя функцию random модуля numpy. Для каждой свечи мы генерируем случайное число от 0 до 1. Если число меньше 0,5, мы назначаем сигнал на продажу (1), а если оно выше 0,5, мы назначаем сигнал на покупку (2).

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

Определив стратегию, мы запускаем тестирование на истории, используя начальный капитал в размере 10 000 долларов США и без комиссий. Статистика бэктестинга показывает доходность -4,8%, что указывает на убыток. График капитала показывает, что стратегия изначально имела некоторую прибыль, но в определенный момент начала снижаться. Вероятность выигрыша близка к 50%, как и ожидалось, поскольку сигналы случайны. Общее количество сделок – 100.

Для дальнейшего исследования мы изменяем уровни стоп-лосса и тейк-профита до 400 пунктов и повторно запускаем бэктест. Однако эта корректировка не решает проблему. Снижение капитала является результатом отсутствия достаточных средств для продолжения удвоения размера позиции после серии убыточных сделок. Чтобы решить эту проблему, мы уменьшаем начальный размер позиции до 5 и устанавливаем уровни стоп-лосса и тейк-профита на 300 пунктов. После внесения этих корректировок мы повторно запускаем бэктест. Обновленная стратегия дает доходность -0,7%, что указывает на меньший убыток по сравнению с предыдущей версией. Тем не менее, график акций по-прежнему показывает тенденцию к снижению, хотя и более медленными темпами. Процент выигрышей остается близким к 50%, а общее количество сделок по-прежнему составляет 100.

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

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

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

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

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

Martingale Trading Strategy Backtesting For Algorithmic Trading
Martingale Trading Strategy Backtesting For Algorithmic Trading
  • 2022.02.03
  • www.youtube.com
Testing the Martingale trading strategy for algorithmic trading in python, I hope you'll enjoy it.Are you interested in algorithmic trading and looking for a...
 

Тестирование торговой стратегии скользящей средней в Python



Тестирование торговой стратегии скользящей средней в Python

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

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

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

Хотя эта стратегия может показаться простой, она сопряжена со своими проблемами. Первым параметром, который необходимо учитывать, является длина скользящей средней. Должно быть 200, 100 или что-то другое? Это можно настроить с помощью тестирования на истории конкретной валютной пары, чтобы максимизировать прибыль. Другим параметром является количество предшествующих свечей, которые следует учитывать. Должны ли мы анализировать 7, 8, 10 или 20 свечей? Экспериментируя с различными значениями, мы можем оценить влияние на эффективность стратегии.

Эта часть индикатора относительно проста, но чтобы сделать стратегию эффективной, нам нужно объединить ее с подходом к управлению торговлей. Это включает в себя определение значений стоп-лосса и тейк-профита. У нас есть два варианта установки этих значений: они могут быть связаны со средним истинным диапазоном (ATR) рынка, или мы можем использовать фиксированные значения для всех сделок. Важно выбрать правильный подход к управлению торговлей, чтобы обеспечить положительную прибыль. Кроме того, можно использовать скользящий стоп-лосс, который регулирует значение стоп-лосса на основе ATR.

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

Чтобы реализовать эту стратегию в Python, мы используем файл Jupyter Notebook. Мы загружаем данные, применяем экспоненциальную скользящую среднюю (EMA) и расчеты ATR с помощью модуля pandas-technical-analysis. Затем мы определяем функции для генерации сигналов EMA и сигналов максимума-минимума. Мы наносим данные с кривой EMA, чтобы визуально убедиться, что все работает правильно.

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

Чтобы протестировать стратегию, мы определяем функцию, которая использует сигналы для определения позиций покупки или продажи и устанавливает значения стоп-лосса и тейк-профита на основе ATR или фиксированных коэффициентов. Тестирование этой стратегии на четырехчасовых графиках евро-доллар США в период с 2003 по 2021 год показывает положительную доходность около 29%.

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

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

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

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

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

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

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

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

Moving Average Trading Strategy Backtesting In Python
Moving Average Trading Strategy Backtesting In Python
  • 2022.01.20
  • www.youtube.com
Welcome to this video on a beginner-friendly automated trading strategy using Python. In this video, we will be discussing a simple yet effective trading str...
 

Бэктест трейлинг-стопа для алгоритмической торговли на Python



Бэктест трейлинг-стопа для алгоритмической торговли на Python

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

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

Первый метод предполагает использование постоянного расстояния стоп-лосса, которое заранее задается трейдером для всех сделок. Независимо от позиции покупки расстояние до стоп-лосса остается неизменным.

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

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

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

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

Теперь давайте погрузимся в файл Jupyter Notebook, чтобы увидеть, как реализованы эти методы. Файл начинается с импорта необходимых модулей и загрузки файла CSV, содержащего данные о ценах для валютной пары EUR/USD с 2003 по 2021 год. Мы очищаем данные, добавляем столбец среднего истинного диапазона (ATR) и определяем функции для поддержки и уровни сопротивления, а также свечные паттерны.

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

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

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

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

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

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

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

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

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

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

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

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

Trailing Stop Backtest For Algorithmic Trading in Python
Trailing Stop Backtest For Algorithmic Trading in Python
  • 2021.11.27
  • www.youtube.com
This video tests the Stop Loss VS Trailing Stop methods for Algorithmic Trading using python. Backtests are applied to one trading strategy showing the diffe...
 

Дивергенция RSI автоматизирована в Python | Алгоритмическая торговля



Дивергенция RSI автоматизирована в Python | Алгоритмическая торговля

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

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

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

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

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

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

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

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

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

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

Затем мы определяем функцию под названием «get_slope», которая вычисляет наклон между двумя точками с учетом их координат x и y. Эта функция будет использоваться для расчета наклона цены и данных RSI.

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

Теперь мы можем перейти к использованию этих функций для расчета наклона цены и данных RSI. Мы создаем два новых столбца в нашем фрейме данных: «price_slope» и «rsi_slope». Для столбца «price_slope» мы вызываем функцию «fit_slope» с фреймом данных и сводной категорией в качестве параметров. Мы повторяем тот же процесс для данных RSI, вычисляя наклон для опорных точек RSI и сохраняя результат в столбце «rsi_slope».

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

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

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

Для проверки дивергенций сравниваем знаки столбцов price_slope и rsi_slope. Если знаки противоположны, это указывает на дивергенцию. В таких случаях мы присваиваем столбцу расхождений значение «Расхождение». Если знаки совпадают или один из наклонов равен нулю, дивергенции нет, и мы присваиваем столбцу дивергенции значение «Нет дивергенции».

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

В целом код выполняет следующие шаги:

  1. Импортирует необходимые библиотеки и определяет вспомогательные функции.
  2. Считывает данные свечи и рассчитывает RSI.
  3. Добавляет столбец разворота для классификации каждой свечи как максимума разворота, минимума разворота, обоих или ни одного.
  4. Вычисляет наклоны для цены и данных RSI на основе точек разворота.
  5. Определяет направление тренда на основе знаков наклонов.
  6. Проверяет наличие расхождений между ценой и данными RSI на основании знаков наклонов.
  7. Печатает результирующий фрейм данных с рассчитанными наклонами, направлениями трендов и расхождениями.

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

RSI Divergence Automated In Python | Algorithmic Trading
RSI Divergence Automated In Python | Algorithmic Trading
  • 2021.11.12
  • www.youtube.com
The RSI Divergence Detection is programmed in python as an automated indicator for algorithmic trading, the Jupyter notebook file is available from the link:...
Причина обращения: