EintSimple Стратегия обратного отзыва

Автор:Чао Чжан, Дата: 2024-01-15 14:04:54
Тэги:

img

Стратегия обратного оттягивания скользящей средней кроссоверов

Обзор

Стратегия EintSimple Pullback - это стратегия реверсии среднего значения, основанная на двойном перекрестке скользящих средних. Она сначала использует долгосрочную и краткосрочную скользящую среднюю линию. Когда краткосрочная скользящая средняя линия проходит через долгосрочную скользящую среднюю линию снизу, генерируется сигнал покупки.

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

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

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

  1. Цена закрытия больше длительного скользящего среднего ma1
  2. Цена закрытия ниже, чем краткосрочная скользящая средняя ma2
  3. На данный момент нет вакансий

После выполнения вышеуказанных условий эта стратегия будет занимать полную длинную позицию.

Суждение о сигнале выхода основывается на двух условиях. Первое заключается в том, что цена снова опускается ниже краткосрочной скользящей средней. Другое заключается в том, что ретрассемент с самой высокой точки достигает установленного процента стоп-лосса. Конкретные условия выхода следующие:

  1. Цена закрытия больше, чем краткосрочная скользящая средняя ma2
  2. Установленный процент стоп-лосса достигается отклонением от высшей точки

При выполнении любого из условий выхода эта стратегия закрывает все длинные позиции.

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

  1. Использование двойного кроссовера скользящей средней в сочетании с прочными ценовыми показателями закрытия может эффективно отфильтровать ложные прорывы.

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

  3. С установкой стоп-лосса, он может ограничить максимальное снижение.

Риски

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

  2. Неправильное настройка параметров скользящих средних может привести к чрезмерно гладким или чрезмерно чувствительным кривым.

  3. Слишком свободные параметры остановки потерь приведут к увеличению потерь.

Оптимизация

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

  2. Сравните эффекты использования ценовых ограничений и средней цены для определения скользящих средних перекресток.

  3. Проверьте добавление фильтров, таких как индикаторы объема или волатильности.

  4. Оптимизируйте процент стоп-лосса, чтобы найти наилучшую настройку.

Заключение

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


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ZenAndTheArtOfTrading / www.PineScriptMastery.com
// @version=5
strategy("Simple Pullback Strategy", 
     overlay=true, 
     initial_capital=50000,
     default_qty_type=strategy.percent_of_equity, 
     default_qty_value=100)// 100% of balance invested on each trade

// Get user input
i_ma1           = input.int(title="MA 1 Length", defval=75, step=1, group="Strategy Parameters", tooltip="Long-term EMA")
i_ma2           = input.int(title="MA 2 Length", defval=9, step=1, group="Strategy Parameters", tooltip="Short-term EMA")
i_stopPercent   = input.float(title="Stop Loss Percent", defval=0.10, step=0.1, group="Strategy Parameters", tooltip="Failsafe Stop Loss Percent Decline")
i_lowerClose    = input.bool(title="Exit On Lower Close", defval=true, group="Strategy Parameters", tooltip="Wait for a lower-close before exiting above MA2")
i_startTime     = input(title="Start Filter", defval=timestamp("01 Jan 1995 13:30 +0000"), group="Time Filter", tooltip="Start date & time to begin searching for setups")
i_endTime       = input(title="End Filter", defval=timestamp("1 Jan 2099 19:30 +0000"), group="Time Filter", tooltip="End date & time to stop searching for setups")

// Get indicator values
ma1 = ta.ema(close, i_ma1)
ma2 = ta.ema(close, i_ma2)

// Check filter(s)
f_dateFilter = true

// Check buy/sell conditions
var float buyPrice = 0
buyCondition    = close > ma1 and close < ma2 and strategy.position_size == 0 and f_dateFilter
sellCondition   = close > ma2 and strategy.position_size > 0 and (not i_lowerClose or close < low[1])
stopDistance    = strategy.position_size > 0 ? ((buyPrice - close) / close) : na
stopPrice       = strategy.position_size > 0 ? buyPrice - (buyPrice * i_stopPercent) : na
stopCondition   = strategy.position_size > 0 and stopDistance > i_stopPercent

// Enter positions
if buyCondition
    strategy.entry(id="Long", direction=strategy.long)

if buyCondition[1]
    buyPrice := open

// Exit positions
if sellCondition or stopCondition
    strategy.close(id="Long", comment="Exit" + (stopCondition ? "SL=true" : ""))
    buyPrice := na

// Draw pretty colors
plot(buyPrice, color=color.lime, style=plot.style_linebr)
plot(stopPrice, color=color.red, style=plot.style_linebr, offset=-1)
plot(ma1, color=color.blue)
plot(ma2, color=color.fuchsia)

Больше