Золотой крест Смертный крест Движущаяся средняя стратегия торговли

Автор:Чао Чжан, Дата: 2023-10-30 14:42:09
Тэги:

img

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

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

  1. Определите три МА - краткосрочный МА, долгосрочный МА и трендовый МА. Периоды 20, 200 и 50 соответственно.

  2. Сигнал покупки генерируется, когда кратковременный MA пересекает длительный MA. Сигнал продажи генерируется, когда кратковременный MA пересекает длительный MA.

  3. Проверьте, находятся ли как короткие, так и длинные МА выше МА тренда. Если нет, сигнал отфильтровывается, чтобы избежать торговли против тренда.

  4. Установите стоп-лосс и возьмите прибыль в процентах от входной цены.

  5. Нарисуйте точки пересечения MA для визуализации сигналов входа.

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

  1. Простая и интуитивно понятная стратегия логики, легкая для понимания и реализации.

  2. Может эффективно улавливать среднесрочные тенденции и торговать с импульсом.

  3. Фильтрация с трендом MA избегает торговли против тренда.

  4. Периоды MA могут быть скорректированы с учетом различных рыночных условий.

  5. Настраиваемые стоп-лосс и прибыль для контроля рисков.

Риски:

  1. Резкие волатильные движения могут привести к стоп-лосс.

  2. Большие потери при обратном тренде.

  3. Неправильная настройка параметров может привести к переоценке или упущенным возможностям.

  4. Необходимо учитывать затраты на транзакцию.

Улучшения:

  1. Добавьте фильтр волатильности, как ATR, чтобы избежать ложных сигналов.

  2. Используйте машинное обучение для динамической оптимизации параметров.

  3. Добавьте больше индикаторов, таких как MACD, чтобы определить тренд.

  4. Используйте стоп-лосс для получения прибыли.

  5. Бактэст для поиска оптимальных уровней стоп-лосса и прибыли.

Заключение:

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


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

//@version=5
strategy("XAU M15", overlay=true)

// Define input parameters
long_length = input.int(64, title="Long MA Length")
short_length = input.int(1, title="Short MA Length")
trend_length = input.int(200, title="Trend MA Length")

// Calculate moving averages
long_ma = ta.sma(close, long_length)
short_ma = ta.sma(close, short_length)
trend_ma = ta.sma(close, trend_length)

// Plot moving averages on chart
plot(long_ma, color=color.blue, title="Long MA")
plot(short_ma, color=color.red, title="Short MA")
plot(trend_ma, color=color.green, title="Trend MA")

// Entry conditions
enterLong = ta.crossover(long_ma, short_ma) and long_ma > trend_ma and short_ma > trend_ma
enterShort = ta.crossunder(long_ma, short_ma) and long_ma < trend_ma and short_ma < trend_ma

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

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

// Exit conditions
exitLong = ta.crossunder(long_ma, short_ma)
exitShort = ta.crossover(long_ma, short_ma)

if (exitLong)
    strategy.close("Long")

if (exitShort)
    strategy.close("Short")

// Set stop loss and take profit levels
long_stop_loss_percentage = input(1, title="Long Stop Loss (%)") / 100
long_take_profit_percentage = input(3, title="Long Take Profit (%)") / 100

short_stop_loss_percentage = input(1, title="Short Stop Loss (%)") / 100
short_take_profit_percentage = input(3, title="Short Take Profit (%)") / 100

strategy.exit("Take Profit/Stop Loss", "Long", stop=close * (1 - long_stop_loss_percentage), limit=close * (1 + long_take_profit_percentage))
strategy.exit("Take Profit/Stop Loss", "Short", stop=close * (1 + short_stop_loss_percentage), limit=close * (1 - short_take_profit_percentage))

plotshape(series=enterLong, title="Buy Entry", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.tiny)
plotshape(series=enterShort, title="Sell Entry", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.tiny)


Больше