
Обзор
Эта стратегия основана на склонности к простому скользящему среднему ((SMA) для выявления восходящих тенденций и открытия позиций при выполнении определенных условий. В то же время, был введен опциональный механизм отслеживания потерь, чтобы защитить прибыль путем динамической корректировки цены стоп-убытков. Кроме того, в стратегии были установлены условия для возобновления после остановки потерь, чтобы предотвратить восстановление позиций при слишком высокой цене. С помощью этих функций стратегия может эффективно улавливать восходящие тенденции, контролировать риск и осуществлять дисциплинированную торговлю.
Стратегический принцип
- Для определения восходящей тенденции рассчитывается SMA за заданный период и определяется, является ли его скольжение в течение заданного окна больше минимального порога скольжения.
- Стратегия открытия позиции при положительном скольжении SMA и текущей цене выше SMA.
- При включенном отслеживании стоп-лосса цена отслеживания стоп-лосса рассчитывается на основе текущей рыночной цены и определенного процента отслеживания стоп-лосса. Цена отслеживания стоп-лосса постоянно корректируется с ростом цены, что защищает прибыль.
- Стратегия плавных позиций, когда цена падает ниже SMA или вызывает отслеживание остановки.
- После запуска стоп-позиции, если цена выше указанного процента от SMA, стратегия не будет возобновлена, чтобы избежать покупки, когда цена будет слишком высока.
Стратегические преимущества
- Следить за трендом: используйте SMA для определения восходящего тренда и эффективного захвата трендовых возможностей.
- Управление рисками: опциональная стоп-функция отслеживания убытков позволяет динамически защищать прибыль и ограничивать потенциальные потери.
- Дисциплинированный возобновление: условия возобновления после остановки убытков предотвращают покупку при слишком высокой цене и обеспечивают дисциплину торговли.
- Гибкость параметров: предоставление множества регулируемых параметров, таких как длина SMA, минимальный уклон, процент стоп-лосса и т. д., которые могут быть скорректированы в соответствии с различными рынками и стилями торговли.
Стратегический риск
- Чувствительность к параметрам: эффективность стратегии зависит от выбора параметров, неправильная их настройка может привести к неблагоприятным результатам.
- В условиях нестабильных рынков, частое совершение сделок может привести к высоким расходам и потенциальным убыткам.
- Неожиданные события: неожиданные события и необычные колебания на рынке могут привести к неэффективности стратегии или неожиданным потерям.
Направление оптимизации стратегии
- Оптимизация динамических параметров: внедрение механизма самоадаптации, в зависимости от динамики рыночных условий корректировки длины SMA, минимального скольжения и других параметров для адаптации к различным рыночным условиям.
- Усиление управления рисками: в сочетании с другими методами управления рисками, такими как корректировка позиции на основе волатильности, динамическое остановка потерь и т. Д., Дальнейшее управление рисковыми отверстиями.
- Двухсторонняя торговля с большим количеством свободных позиций: стратегия расширения для поддержки свободных позиций, которая также может быть выгодна при снижении тренда.
- Подтверждение в нескольких временных рамках: объединение сигналов в нескольких временных рамках повышает надежность и устойчивость определения тенденций.
Подвести итог
Стратегия использует механизмы, такие как отслеживание трендов SMA, отслеживание остановок и дисциплинированный реинтернат, чтобы контролировать риск, одновременно улавливая восходящие тенденции. Методы, такие как оптимизация параметров, усиление управления рисками, поддержка двусторонних сделок и подтверждение многократных временных рамок, могут дополнительно повысить адаптивность и устойчивость стратегии.
Исходный код стратегии
/*backtest
start: 2023-05-28 00:00:00
end: 2024-06-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("MA Incline Strategy with Optional Trailing Stop-Loss", overlay=true, calc_on_every_tick=true)
// Input parameters
windowSize = input.int(20, title="Window Size")
maLength = input.int(150, title="Moving Average Length")
minSlope = input.float(0.1, title="Minimum Slope")
useTrailingStop = input.bool(true, title="Use Trailing Stop-Loss")
trailingStopPercentage = input.float(2.8, title="Trailing Stop Percentage (%)") / 100
// Calculate the moving average
ma = ta.sma(close, maLength)
// Calculate the slope of the moving average over the window size
previousMa = ta.sma(close[windowSize], maLength)
slopeMa = (ma - previousMa) / windowSize
// Check conditions
isAboveMinSlope = slopeMa > minSlope
isAboveMa = close > ma
// Buy condition
buyCondition = isAboveMinSlope and isAboveMa
// Execute strategy
if (buyCondition and strategy.opentrades == 0)
strategy.entry("Long", strategy.long)
// Trailing stop-loss (optional)
if (strategy.opentrades == 1 and useTrailingStop and isAboveMa)
// Calculate the trailing stop price
trailPrice = close * (1 - trailingStopPercentage)
// Use the built-in strategy.exit function with the trailing stop
strategy.exit("Trail Stop", "Long", stop=trailPrice)
// Exit condition
sellCondition = ta.crossover(ma, close)
if (sellCondition and strategy.opentrades == 1)
strategy.close("Long")