Тенденция после стратегии, основанной на линиях MA

Автор:Чао Чжан, Дата: 2024-02-22 17:24:02
Тэги:

img

Обзор

Эта стратегия рассчитывает скользящие средние (MA) различных периодов, чтобы определить направление тренда рынка.

Принцип стратегии

  1. Расчет МР с 20-периодным, 60-периодным и 120-периодным периодом
  2. Сравните величину взаимосвязи между MA20, MA60 и MA120 для определения текущего направления тренда
    • Если MA20>MA60>MA120, оценить тенденцию к росту
    • Если MA20
  3. Пройти длинный курс, когда MA20 пересекает MA60, и пройти короткий курс, когда MA20 пересекает MA60
  4. Использовать MA60 в качестве базовой линии для получения прибыли и стоп-лосса
    • Линия получения прибыли для длинной позиции равна 3 раза MA60
    • Линия получения прибыли для короткой позиции равна 0,9 раз MA60

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

  1. Используйте комбинации MA различных периодов для определения тренда, чтобы избежать сбоев
  2. Включайте только в моменты перемены тренда для увеличения выигрыша
  3. Иметь четкие правила для получения прибыли и остановки убытков для снижения рисков

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

  1. На рынках с ограниченным диапазоном пересечения MA могут происходить часто, в результате чего происходит слишком частая торговля.
  2. Параметры для получения прибыли и остановки потери должны быть оптимизированы, иначе позиция может быть остановлена преждевременно или получения прибыли недостаточно

Руководство по оптимизации

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

Резюме

После оптимизации параметров и оптимизации индикаторов, она может стать очень практичной следующей стратегии.


/*backtest
start: 2023-02-15 00:00:00
end: 2024-02-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("MA60上多下空", overlay=true)

// 计算MA20/60/120
ma20 = ta.sma(close, 20)
ma60 = ta.sma(close, 60)
ma120 = ta.sma(close, 120)

// 判断MA的趋势
maUpTrend = ma20 > ma60 and ma60 > ma120
maDownTrend = ma20 < ma60 and ma60 < ma120

// 画竖直线标记MA趋势转折点
plotshape(maUpTrend and ta.crossover(ma20, ma60), style=shape.triangledown, location=location.abovebar, color=color.green, size=size.small)
plotshape(maDownTrend and ta.crossunder(ma20, ma60), style=shape.triangleup, location=location.belowbar, color=color.red, size=size.small)

// 画背景标记MA趋势
bgcolor(maUpTrend ? color.new(color.green, 90) : na)
bgcolor(maDownTrend ? color.new(color.red, 90) : na)

// 建立多头仓位的条件
longCondition = ta.crossover(close, ma60)

// 建立空头仓位的条件
shortCondition = ta.crossunder(close, ma60)

// 在穿过MA60时,根据条件建立相应的多头或空头仓位
if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)

// 止盈止损规则
calculateReturns() =>
    close / strategy.position_avg_price - 1

takeProfitCondition = calculateReturns() >= 3  // 仓位盈利达到300%
stopLossCondition = calculateReturns() <= -0.1  // 仓位亏损达到10%

if (takeProfitCondition)
    strategy.close("Long", comment="Take Profit")
    strategy.close("Short", comment="Take Profit")

if (stopLossCondition)
    strategy.close("Long", comment="Stop Loss")
    strategy.close("Short", comment="Stop Loss")


Больше