Стратегия прорыва с несколькими скользящими средними

Автор:Чао Чжан, Дата: 2023-11-22 13:41:38
Тэги:

img

Обзор

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

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

Код использует 4 скользящих средних линии с разными периодами - 21-дневный, 50-дневный, 100-дневный и 200-дневный. Он входит в длинные позиции, когда цена проходит через эти линии MA, и входит в короткие позиции, когда цена падает ниже этих линий MA. Кроме того, уровни стоп-лосса и прибыли устанавливаются в стратегии. В частности, стоп-лосс устанавливается около самой низкой точки предыдущей свечи, а прибыль устанавливается в 3 раза больше расстояния между самой низкой точкой и самой высокой точкой предыдущей свечи.

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

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

Основными преимуществами этой стратегии являются:

  1. Использование нескольких МА может эффективно фильтровать ложные сигналы
  2. Установка стоп-лосса и прибыли может ограничить однократный убыток
  3. Простая в применении

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

Основными рисками этой стратегии являются:

  1. Стратегии MA склонны к неравномерности, поэтому отсутствуют точки переворота цен.
  2. Прорывные ложные сигналы могут привести к потерям
  3. Неправильные параметры стоп-лосса и прибыли могут усиливать убытки

Эти риски могут быть уменьшены путем корректировки параметров MA и оптимизации стоп-лосса и получения прибыли.

Оптимизация

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

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

Резюме

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


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

//@version=5
strategy("DolarBasar by AlperDursun", shorttitle="DOLARBASAR", overlay=true)

// Input for Moving Averages
ma21 = ta.sma(close, 21)
ma50 = ta.sma(close, 50)
ma100 = ta.sma(close, 100)
ma200 = ta.sma(close, 200)

// Calculate the lowest point of the previous candle for stop loss
lowestLow = ta.lowest(low, 2)

// Calculate the highest point of the previous candle for stop loss
highestHigh = ta.highest(high, 2)

// Calculate take profit levels
takeProfitLong = lowestLow - 3 * (lowestLow - highestHigh)
takeProfitShort = highestHigh + 3 * (lowestLow - highestHigh)

// Entry Conditions
longCondition = ta.crossover(close, ma21) or ta.crossover(close, ma50) or ta.crossover(close, ma100) or ta.crossover(close, ma200)
shortCondition = ta.crossunder(close, ma21) or ta.crossunder(close, ma50) or ta.crossunder(close, ma100) or ta.crossunder(close, ma200)

// Stop Loss Levels
stopLossLong = lowestLow * 0.995
stopLossShort = highestHigh * 1.005

// Exit Conditions
longExitCondition = low < stopLossLong or high > takeProfitLong
shortExitCondition = high > stopLossShort or low < takeProfitShort

if (longCondition)
    strategy.entry("Long", strategy.long)

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

if (longExitCondition)
    strategy.exit("Long Exit", from_entry="Long", stop=stopLossLong, limit=takeProfitLong)

if (shortExitCondition)
    strategy.exit("Short Exit", from_entry="Short", stop=stopLossShort, limit=takeProfitShort)


Больше