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


Дата создания: 2024-01-15 14:04:54 Последнее изменение: 2024-01-15 14:04:54
Копировать: 3 Количество просмотров: 520
1
Подписаться
1617
Подписчики

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

Обзор

EintSimple Pullback Strategy - это стратегия обратного входа, основанная на пересечении двух перемещающихся средних. Эта стратегия сначала использует две перемещающиеся средние, долгосрочную и краткосрочную, чтобы генерировать сигнал покупки, когда краткосрочная перемещающаяся средняя пересекает долгосрочную перемещающуюся среднюю снизу.

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

Принципы стратегии Strategy Logic

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

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

После выполнения вышеперечисленных условий, стратегия будет работать полным ходом.

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

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

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

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

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

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

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

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

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

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

  3. Слишком мягкие настройки остановки убытков увеличивают убытки.

Оптимизация

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

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

  3. Тестирование фильтров, таких как добавление объема торговли или показателей волатильности.

  4. Оптимизируйте обратную связь для определения оптимальной настройки.

Резюме

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

Исходный код стратегии
/*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)