Эта стратегия использует экспоненциальную скользящую среднюю (EMA) и потрясающий осциллятор (AO) для определения направления тренда рынка и использует шаблоны свечей для подтверждения сигналов покупки. Когда EMA указывает на тенденцию роста рынка, AO является положительным, и появляется бычий шаблон поглощения, стратегия генерирует сигнал покупки. Эта стратегия принимает только длинные позиции и не продает короткие. Кроме того, стратегия устанавливает точку остановки потери для управления риском.
Основной принцип этой стратегии заключается в использовании индикаторов EMA и AO для определения направления тренда рынка и использования моделей свечей для подтверждения сигналов покупки.
Эта стратегия использует модели EMA, AO и свечей для определения трендов и генерации торговых сигналов. Она обладает характеристиками четкой логики и простой реализации. В то же время стратегия устанавливает точку остановки потери для контроля риска. Однако эта стратегия также имеет некоторые ограничения, такие как подходит только для трендовых рынков и чувствительна к выбору параметров. В будущем производительность стратегии может быть улучшена путем добавления большего количества технических индикаторов, оптимизации стратегии остановки потери, внедрения размеров позиций и других методов.
/*backtest start: 2023-05-23 00:00:00 end: 2024-05-28 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA & K-Pattern Trend Trading (Long Only)", overlay=true) // 输入参数 emaLength = input.int(50, title="EMA长度") aoShortLength = input.int(5, title="AO短期长度") aoLongLength = input.int(34, title="AO长期长度") stopLossPct = input.float(2, title="止损百分比") / 100 // 止损百分比 // 计算EMA和AO指标 ema = ta.ema(close, emaLength) ao = ta.sma(high, aoShortLength) - ta.sma(low, aoLongLength) // 定义趋势方向 isBullish = close > ema // 定义K线形态 bullishK = close > open and close[1] < open[1] and open < close[1] and close > high[1] // 看涨吞没形态 // 定义买入信号 longCondition = bullishK and isBullish and ao > 0 // 绘制EMA plot(ema, title="EMA", color=color.blue) // 计算止损点 stopLossLevelLong = close * (1 - stopLossPct) // 策略执行并标注信号 if (longCondition) strategy.entry("做多", strategy.long) label.new(bar_index, high, text="买入", style=label.style_label_up, color=color.green, textcolor=color.white) strategy.exit("止损", from_entry="做多", stop=stopLossLevelLong)