Стратегия прорыва на основе импульса


Дата создания: 2024-02-29 14:04:50 Последнее изменение: 2024-02-29 14:04:50
Копировать: 1 Количество просмотров: 702
1
Подписаться
1617
Подписчики

Стратегия прорыва на основе импульса

Обзор

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

Стратегический принцип

Эта стратегия использует два индикатора для определения входных и выходных сигналов. Первый - это сама цена - она проверяет максимальные и минимальные цены на последних 10 K-линий. Второй - динамический индикатор, основанный на цене, то есть %K-значения.

В частности, когда цена ниже 98% от максимальной цены на последних 10 K-линий (покупая по обесценению), стратегия посылает сигнал купить. Это означает, что цена совершила нисходящий прорыв. Точно так же, когда цена выше 102% от минимальной цены на последних 10 K-линий (продавая по обесценению), стратегия посылает сигнал продажи, цена совершила взлет.

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

Анализ преимуществ

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

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

Анализ рисков

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

  1. Рыночный обвал привел к резкому падению, которое не остановить
  2. Влияние сборов и скольжения
  3. Неправильно настроенные параметры, слишком частые сделки или упущенные возможности

Ответ:

  1. Использование многофакторной модели для предотвращения ошибок в одном показателе
  2. Добавление стоп-лосса, ограничение максимального убытка
  3. Оптимизация параметров для повышения стабильности стратегии

Направление оптимизации

Эта стратегия также может быть оптимизирована в следующих областях:

  1. Добавить дополнительные фильтрующие показатели, такие как объем обращения, Брин-пояса и т.д.
  2. Динамическая настройка параметров на основе методов машинного обучения
  3. В сочетании с фундаментальным анализом, изменение стратегии до и после важных событий
  4. Оптимизация использования капитала для увеличения доходов от стратегии с помощью использования рычагов

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2023-02-22 00:00:00
end: 2024-02-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © nyxover

//@version=5
strategy("Stratégie d'achat bas/vendre haut", shorttitle="Achat/Vente")

// Paramètres d'entrée
crypto = input("BTC", "Crypto-monnaie")
capital = input(1.0, "Capital de départ")
buy_threshold = input(0.02, "Seuil d'achat")
sell_threshold = input(0.02, "Seuil de vente")
fee_rate = input(0.01, "Taux de frais")

// Balances
var float initial_balance = na
var float current_balance = na

// Fonction pour calculer les frais
calculate_fees(amount) =>
    amount * fee_rate

// Fonction pour acheter
should_buy() =>
    close < ta.highest(close, 10) * (1 - buy_threshold)

// Fonction pour vendre
should_sell() =>
    close > ta.lowest(close, 10) * (1 + sell_threshold)

// Logique de la stratégie
if barstate.isfirst
    initial_balance := capital
    current_balance := capital

if should_buy()
    amount_to_buy = current_balance / close
    fees = calculate_fees(amount_to_buy)
    current_balance := current_balance - amount_to_buy - fees
    strategy.entry("Achat", strategy.long)

if should_sell()
    amount_to_sell = current_balance
    fees = calculate_fees(amount_to_sell)
    current_balance := current_balance - amount_to_sell - fees
    strategy.close("Achat")

// Affichage des informations
plot(initial_balance, color=color.green, title="Capital de départ")
plot(current_balance, color=color.blue, title="Capital actuel")