Стратегии торговли на основе интервалов


Дата создания: 2024-02-23 15:09:48 Последнее изменение: 2024-02-23 15:09:48
Копировать: 0 Количество просмотров: 581
1
Подписаться
1617
Подписчики

Стратегии торговли на основе интервалов

Обзор

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

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

Эта стратегия основана на зависимости цены от 30-дневного скользящего среднего индекса для определения входных и выходных сигналов. В частности:

  1. Для определения тенденции используется 30-дневная скользящая средняя по EMA.
  2. Когда цена поднимается и пробивает EMA, появляются многозначные сигналы, чтобы войти в поле.
  3. Когда цена снижается и пробивает EMA, появляются сигналы о закрытии позиции и уход.

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

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

Эта стратегия имеет следующие преимущества:

  1. Логика стратегии проста и понятна, ее реализация легко понятна, а эксплуатационные затраты низки.
  2. Используйте EMA для удаления ценового шума и выявления основных тенденций.
  3. Выберите 30-дневную ЭМА, подходящую для временных рамок, чтобы идентифицировать как средне-длинные, так и короткие тренды.
  4. Настраиваемые параметры, адаптированные к различным сортам и рыночным условиям.

Анализ рисков и решений

Однако эта стратегия также несет в себе некоторые риски:

  1. риски whipsaw: после того, как ценовые колебания преодолели EMA, они быстро отступили, что привело к убыткам.
  2. Риск обратного тренда: при обратном тренде средней длинной линии может быть накоплен большой убыток. Можно установить стратегию остановки убытков, чтобы уменьшить убытки.
  3. Риск выбора параметров: неправильная настройка цикла EMA, невозможность эффективного отслеживания тенденции. Можно использовать адаптивный EMA или комбинацию много EMA.

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

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

  1. Повышение адаптивности EMA: автоматическая коррекция параметров EMA в зависимости от волатильности рынка и особенностей сорта, повышение устойчивости.
  2. Добавление системы с несколькими EMA: комбинирование использования краткосрочных и долгосрочных EMA и одновременное отслеживание длинно- и коротколинейных тенденций.
  3. Увеличение механизма хранения убытков: установление мобильного хранения убытков или свертывания хранения убытков, снижение убытков.
  4. В сочетании с другими показателями: интеграция показателей динамики, показателей волатильности и других сигналов фильтра, повышение эффективности стратегии.
  5. Параметрическая оптимизация: поиск оптимальных комбинаций параметров с использованием методов машинного обучения.

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

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

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

//@version=5
strategy("Spaced Out Trading Strategy", overlay=true)

// Define strategy parameters
emaPeriod = input(30, title="EMA Period")  // Longer EMA period for more spaced-out trades
stopLossPct = input(2.0, title="Stop Loss Percentage")  // Stop loss percentage
takeProfitPct = input(3.0, title="Take Profit Percentage")  // Take profit percentage

// Calculate EMA
emaValue = ta.ema(close, emaPeriod)

// Define entry and exit conditions
enterLong = ta.crossover(close, emaValue)
exitLong = ta.crossunder(close, emaValue)

// Place orders
contractsQty = 5  // Number of contracts to buy
var float lastTradePrice = na  // Track the last trade price
if enterLong and strategy.position_size == 0
    strategy.entry("Buy Call", strategy.long, qty = contractsQty)
    lastTradePrice := close
else if exitLong and strategy.position_size > 0
    strategy.close("Buy Call")
    lastTradePrice := na

// Calculate stop loss and take profit
stopLossPrice = lastTradePrice * (1 - stopLossPct / 100)
takeProfitPrice = lastTradePrice * (1 + takeProfitPct / 100)
strategy.exit("Sell Call", "Buy Call", stop = stopLossPrice, limit = takeProfitPrice)