Эта стратегия использует скользящие средние для генерации торговых сигналов и устанавливает фиксированный процент стоп-лосса и уровень прибыли на основе входной цены для контроля риска и прибыли каждой сделки.
Стратегия сначала использует 5-дневную экспоненциальную скользящую среднюю (EMA) и 32-дневную EMA для определения направления тренда.
После вступления в сделку стратегия динамически устанавливает стоп-лосс и прибыль для каждой сделки на основе определенного пользователем процента стоп-лосса и процента прибыли. В частности, для длинных сделок стоп-лосс устанавливается по цене входа × (1 - процент стоп-лосса) и прибыль устанавливается по цене входа × (1 + процент прибыли). Для коротких сделок он обращается вспять - стоп-лосс по цене входа × (1 + процент стоп-лосса) и прибыль по цене входа × (1 - процент прибыли).
Это позволяет обеспечить фиксированное соотношение риск/прибыль для каждой сделки и контролировать риск и прибыль.
Этот способ установки стоп-лосса и прибыли имеет несколько существенных преимуществ:
Он может ограничить максимальный убыток на одну сделку и эффективно контролировать торговый риск.
Он может зафиксировать фиксированный коэффициент прибыли на одну сделку и обеспечить доходность.
Стоп-лосс и точки получения прибыли варьируются в зависимости от фактической входной цены, а не с использованием фиксированных значений.
Пользователи могут определить свою готовность к риску путем корректировки входных параметров.
Простая и интуитивно понятная логика стратегии, легкая для понимания и проверки.
Эта стратегия также сопряжена с некоторыми рисками:
Движущиеся средние могут генерировать чрезмерные недействительные сигналы с высокой вероятностью остановки после входа.
Слишком высокий коэффициент прибыли может привести к недостаточной прибыльности, слишком низкий может не принести достаточно прибыли.
Стоп-лосс слишком близко может увеличить шанс быть остановленным и должен обеспечить определенный буфер.
Выбор торговых продуктов и сроков может повлиять на эффективность.
Соответствующие решения:
Оптимизируйте скользящие средние параметры, чтобы уменьшить ложные сигналы.
Проверьте различные коэффициенты прибыли, чтобы найти оптимальный.
Корректировать расстояние стоп-лосса на основе волатильности рынка.
Оценить эффективность стратегии на различных продуктах и сроках.
Стратегия может быть улучшена в следующих аспектах:
Добавить другие индикаторы для подтверждения тенденции, чтобы избежать чрезмерных ложных сигналов от скользящих средних.
Оптимизировать стоп-лосс и взять проценты прибыли на основе данных обратного теста, чтобы найти оптимальные параметры.
Изменить стоп-лосс на стоп-последний, чтобы получить больше текущей прибыли.
Добавить правила размещения позиций с пирамидами и стоп-лосс для управления риском торговли.
Оценить вариацию результатов в различных торговых инструментах и временных рамках.
Эта стратегия определяет направление тренда с помощью скользящих средних и устанавливает фиксированный процент стоп-лосса и прибыли на основе входной цены для контроля риска и прибыли одной сделки.
/*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") //