Фиксированная процентная стратегия стоп-лосса и прибыли на основе скользящих средних

Автор:Чао Чжан, Дата: 2023-12-18 11:30:39
Тэги:

img

Обзор

Эта стратегия использует скользящие средние для генерации торговых сигналов и устанавливает фиксированный процент стоп-лосса и уровень прибыли на основе входной цены для контроля риска и прибыли каждой сделки.

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

Стратегия сначала использует 5-дневную экспоненциальную скользящую среднюю (EMA) и 32-дневную EMA для определения направления тренда.

После вступления в сделку стратегия динамически устанавливает стоп-лосс и прибыль для каждой сделки на основе определенного пользователем процента стоп-лосса и процента прибыли. В частности, для длинных сделок стоп-лосс устанавливается по цене входа × (1 - процент стоп-лосса) и прибыль устанавливается по цене входа × (1 + процент прибыли). Для коротких сделок он обращается вспять - стоп-лосс по цене входа × (1 + процент стоп-лосса) и прибыль по цене входа × (1 - процент прибыли).

Это позволяет обеспечить фиксированное соотношение риск/прибыль для каждой сделки и контролировать риск и прибыль.

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

Этот способ установки стоп-лосса и прибыли имеет несколько существенных преимуществ:

  1. Он может ограничить максимальный убыток на одну сделку и эффективно контролировать торговый риск.

  2. Он может зафиксировать фиксированный коэффициент прибыли на одну сделку и обеспечить доходность.

  3. Стоп-лосс и точки получения прибыли варьируются в зависимости от фактической входной цены, а не с использованием фиксированных значений.

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

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

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

Эта стратегия также сопряжена с некоторыми рисками:

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

  2. Слишком высокий коэффициент прибыли может привести к недостаточной прибыльности, слишком низкий может не принести достаточно прибыли.

  3. Стоп-лосс слишком близко может увеличить шанс быть остановленным и должен обеспечить определенный буфер.

  4. Выбор торговых продуктов и сроков может повлиять на эффективность.

Соответствующие решения:

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

  2. Проверьте различные коэффициенты прибыли, чтобы найти оптимальный.

  3. Корректировать расстояние стоп-лосса на основе волатильности рынка.

  4. Оценить эффективность стратегии на различных продуктах и сроках.

Руководство по оптимизации

Стратегия может быть улучшена в следующих аспектах:

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

  2. Оптимизировать стоп-лосс и взять проценты прибыли на основе данных обратного теста, чтобы найти оптимальные параметры.

  3. Изменить стоп-лосс на стоп-последний, чтобы получить больше текущей прибыли.

  4. Добавить правила размещения позиций с пирамидами и стоп-лосс для управления риском торговли.

  5. Оценить вариацию результатов в различных торговых инструментах и временных рамках.

Резюме

Эта стратегия определяет направление тренда с помощью скользящих средних и устанавливает фиксированный процент стоп-лосса и прибыли на основе входной цены для контроля риска и прибыли одной сделки.


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

// © theCrypster 2020

//@version=4
strategy("Fixed Percent Stop Loss & Take Profit %", overlay=true)

// Moving Averages to get some example trades generated
eg1 = ema(close, 5)
eg2 = ema(close, 32)

long = crossover(eg1, eg2)
short = crossunder(eg1, eg2)

strategy.entry("LONG", strategy.long, when=long)
strategy.entry("SHORT", strategy.short, when=short)

//
// The Fixed Percent Stop Loss Code
// User Options to Change Inputs (%)
stopPer = input(5.0, title='Stop Loss %', type=input.float) / 100
takePer = input(10.0, title='Take Profit %', type=input.float) / 100

// Determine where you've entered and in what direction
longStop = strategy.position_avg_price * (1 - stopPer)
shortStop = strategy.position_avg_price * (1 + stopPer)
shortTake = strategy.position_avg_price * (1 - takePer)
longTake = strategy.position_avg_price * (1 + takePer)

if strategy.position_size > 0 
    strategy.exit(id="Close Long", stop=longStop, limit=longTake)
if strategy.position_size < 0 
    strategy.exit(id="Close Short", stop=shortStop, limit=shortTake)

//PLOT FIXED SLTP LINE
plot(strategy.position_size > 0 ? longStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Long Fixed SL")
plot(strategy.position_size < 0 ? shortStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Short Fixed SL")
plot(strategy.position_size > 0 ? longTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Long Take Profit")
plot(strategy.position_size < 0 ? shortTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Short Take Profit")

//




Больше