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


Дата создания: 2024-02-29 11:20:28 Последнее изменение: 2024-02-29 11:20:28
Копировать: 1 Количество просмотров: 673
1
Подписаться
1617
Подписчики

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

Обзор

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

Стратегический принцип

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

В частности, при выполнении следующих условий: цена закрытия > 200-дневная средняя линия и цена закрытия <10-дневная средняя линия; при выполнении следующих условий: цена закрытия <200-дневная средняя линия и цена закрытия > 10-дневная средняя линия.

После входа в рынок устанавливается механизм остановки убытков, если отступ от цены покупки превышает 10%, то выходит из рыночной торговли. В то же время, если устанавливается опция i_lowerClose, то ожидание появления более низкой цены закрытия позволяет избежать слишком чувствительного остановки.

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

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

Стратегия имеет управляемый риск. Установлена стоп-роль 10% для контроля убытков; также установлены временные фильтрующие условия, которые позволяют избежать торговли в определенный период времени.

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

Существует риск, что стратегия может быть отрегулирована. Если короткая линия будет отрегулирована слишком долго или слишком сильно, это может вызвать стоп-лосс и быть отрегулированной.

Эта стратегия плохо подходит для торговых сортов. Для высоковолатильных и долговременных акций эта стратегия легко может быть остановлена и неэффективна.

Также при существенных изменениях рынка в целом, стратегия может столкнуться с большими потерями. Например, во время финансового кризиса, стратегия может быть трудно прибыльной.

Направление оптимизации

Можно ввести больше систем равнолинии, создавая многократные механизмы отбора. Например, включение 50-дневного среднего, только тогда, когда цена закрытия находится между 50-дневным средним и 200-дневным средним. Это позволяет дополнительно отбирать лучшие тенденции.

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

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

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © irfanp056
// @version=5

strategy("Simple Pullback Strategy", 
     overlay=true) // Interactive Brokers rate

// Get user input
i_ma1           = input.int(title="MA 1 Length", defval=200, step=10, group="Strategy Parameters", tooltip="Long-term MA")
i_ma2           = input.int(title="MA 2 Length", defval=10, step=10, group="Strategy Parameters", tooltip="Short-term MA")
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=false, 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.sma(close, i_ma1)
ma2 = ta.sma(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.orange)