Автор:Чао Чжан, Дата: 2024-01-19 15:32:58
Тэги:

img

Обзор

Логика стратегии

Преимущества

  • Эффективно определяет точки обратного движения краткосрочной тенденции с использованием концепции перекрестного использования MA
  • Интуитивно изображает направление и динамику цен
  • Простой в понимании и реализации, подходящий для высокочастотного краткосрочного трейдинга
  • Гибкие параметры МР, рассчитанные на различные торговые инструменты

Риски

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

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

Возможности для расширения

  • Рассмотреть особенности отдельных запасов и соответственно скорректировать параметры стратегии
  • Использование методов остановки потерь для рационального ограничения потерь

Заключение


/*backtest
start: 2023-12-19 00:00:00
end: 2024-01-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Intraday MA Crossover Strategy", overlay=true)

// Define MA lengths
maLengthShort = input.int(9, title="Short MA Length", minval=1)
maLengthLong = input.int(21, title="Long MA Length", minval=1)

// Calculate MAs
maShort = ta.sma(close, maLengthShort)
maLong = ta.sma(close, maLengthLong)

// Plot MAs on the chart
plot(maShort, color=color.blue, title="Short MA")
plot(maLong, color=color.red, title="Long MA")

// Generate Buy Signal (Golden Cross: Short MA crosses above Long MA)
buySignal = ta.crossover(maShort, maLong)
strategy.entry("Buy", strategy.long, when=buySignal)

// Generate Sell Signal (Death Cross: Short MA crosses below Long MA)
sellSignal = ta.crossunder(maShort, maLong)
strategy.entry("Sell", strategy.short, when=sellSignal)

// Set stop loss and take profit levels
stopLossPercent = input.float(1, title="Stop Loss %", minval=0.1, maxval=5)
takeProfitPercent = input.float(1, title="Take Profit %", minval=0.1, maxval=5)

strategy.exit("Take Profit/Stop Loss", from_entry="Buy", loss=close * stopLossPercent / 100, profit=close * takeProfitPercent / 100)
strategy.exit("Take Profit/Stop Loss", from_entry="Sell", loss=close * stopLossPercent / 100, profit=close * takeProfitPercent / 100)


Больше