
Эта стратегия основана на движущемся среднем индексе ((EMA) и среднем индикаторе колебаний ((AO) для определения направления рыночной тенденции и использует K-линейную форму для подтверждения сигнала покупки. Когда EMA указывает, что рынок находится в восходящей тенденции, а индикатор AO является положительным, и появляется форма поглощения оппонентов, стратегия создает сигнал покупки.
Основные принципы этой стратегии заключаются в использовании показателей EMA и AO для определения направления рыночных тенденций и использования K-линейной формы для подтверждения покупательских сигналов. В частности:
Стратегия определяет тенденции и генерирует торговые сигналы с помощью EMA, AO и K-линейных форм, имеет четкую логику и легко реализуется. В то же время, стратегия устанавливает точку остановки для контроля риска. Однако, стратегия также имеет некоторые ограничения, такие как применение только для трендовых рынков, чувствительность к выбору параметров и т. Д. В будущем можно еще больше улучшить эффективность стратегии путем добавления большего количества технических показателей, оптимизации стратегии остановки убытков, включения управления позициями и т. Д.
/*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)