Стратегия Supertrend Take Profit

Автор:Чао Чжан, Дата: 2024-01-08 11:08:39
Тэги:

img

Обзор

Эта стратегия использует индикатор Supertrend для определения пунктов входа, выходя длинный или короткий, когда индикатор переворачивается.

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

Стратегия использует индикатор Supertrend для определения направления тренда. Supertrend основан на среднем истинном диапазоне и коэффициенте множителя. Когда цена выходит выше верхней полосы, это сигнализирует о перекупленном состоянии, а когда цена падает ниже нижней полосы, это сигнализирует о перепроданном состоянии. Поэтому стратегия обнаруживает переломы в направлении Supertrend для определения входов.

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

Стратегия также устанавливает три ордера на получение прибыли на 2%, 5% и 10% от входной цены, чтобы зафиксировать фиксированную целевую прибыль. Пропорции этих ордеров устанавливаются соответственно на 25%, 50% и 25%. После сигналов входа эти ордера на получение прибыли размещаются одновременно для получения прибыли на разных уровнях.

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

Стратегия имеет следующие преимущества:

  1. Использование Supertrend для записей эффективно фиксирует точки обратного движения тренда для точного длинного/короткого.

  2. Многократные пропорции прибыли позволяют зафиксировать прибыль на разных уровнях, уменьшая извлечения.

  3. Консервативные целевые показатели прибыли в 2%, 5% и 10% позволяют избежать чрезмерного увеличения прибыли, что приводит к большим потерям.

  4. Простая и понятная логика, легко понимаемая и модифицируемая, подходящая для начинающих.

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

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

  1. Неправильные параметры Supertrend могут привести к отсутствию сигналов отмены, что приведет к неточным записям.

  2. Консервативные уровни получения прибыли могут упустить возможности для дальнейшего получения прибыли.

  3. Пробелы и предельные движения могут привести к остановке до корректировки Supertrend.

  4. Условие стоп-лосса означает неограниченный потенциал потери.

Области улучшения

Некоторые способы оптимизации стратегии:

  1. Проверить различные параметры Supertrend для улучшения чувствительности.

  2. Добавьте стоп-лосс, чтобы ограничить максимальную потерю.

  3. Корректируйте коэффициенты прибыли и количества на основе символов и временных рамок.

  4. Добавьте фильтры, чтобы избежать чрезмерной торговли на рынках с ограниченным диапазоном.

  5. Оптимизировать использование капитала путем корректировки размера сделки по умолчанию с целью снижения риска на одну сделку.

Резюме

Стратегия проста и практична в целом. Она использует Supertrend для входов и множественных заказов на получение прибыли для блокировки прибыли, эффективно контролируя риск. Но есть возможности для улучшений, таких как добавление остановок, оптимизация параметров и т. Д., Что обеспечивает направления будущего улучшения. Вкратце, эта стратегия подходит для начинающих изучать и практиковать алгоритмическую торговлю.


/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy( "Supertrend with TP", overlay=true )

// Supertrend Settings
atrPeriod = input(10, "ATR Length")
factor = input.float(3.0, "Factor", step = 0.01)

// TP's
tp1Open = input.bool(true, "TP1")
tp1 = input.float(2.0, "TP Level (%)", step = 0.1) / 100
tp1Amount = input.int(25, "Amount (%)", step = 1)
tp2Open = input.bool(true, "TP2")
tp2 = input.float(5.0, "TP Level (%)", step = 0.1) / 100
tp2Amount = input.int(50, "Amount (%)", step = 1)
tp3Open = input.bool(true, "TP3")
tp3 = input.float(10.0, "TP Level (%)", step = 0.1) / 100
tp3Amount = input.int(25, "Amount (%)", step = 1)

[_, direction] = ta.supertrend(factor, atrPeriod)

entryPrice = 0.0
entryPrice := entryPrice[1]

if ta.change(direction) < 0
    strategy.entry("Long", strategy.long)
    entryPrice := close

if ta.change(direction) > 0
    strategy.entry("Short", strategy.short)
    entryPrice := close

if (tp1Open)
    strategy.exit ("TP1", from_entry="Long", limit=entryPrice * (1 + tp1), qty_percent=tp1Amount)
    strategy.exit ("TP1", from_entry="Short", limit=entryPrice * (1 - tp1), qty_percent=tp1Amount)

if (tp2Open)
    strategy.exit ("TP2", from_entry="Long", limit=entryPrice * (1 + tp2), qty_percent=tp2Amount)
    strategy.exit ("TP2", from_entry="Short", limit=entryPrice * (1 - tp2), qty_percent=tp2Amount)
    
if (tp3Open)    
    strategy.exit ("TP3", from_entry="Long", limit=entryPrice * (1 + tp3), qty_percent=tp3Amount)
    strategy.exit ("TP3", from_entry="Short", limit=entryPrice * (1 - tp3), qty_percent=tp3Amount)

Больше