Приобретайте прибыль от стратегии тренда

Автор:Чао Чжан, Дата: 2023-09-26 11:22:04
Тэги:

Обзор

Стратегия Take Profit on Trend направлена на выявление долгосрочных тенденций и краткосрочных отступлений, занятие длинных позиций во время общих восходящих тенденций при одновременном отслеживании краткосрочных падений, с разумным уровнем стоп-лосса и получения прибыли, установленным в соответствии с тенденцией и своевременным получением прибыли.

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

Стратегия в основном использует EMA и RSI для определения долгосрочных и краткосрочных тенденций. В частности, она использует 50-дневную EMA и 200-дневную EMA для оценки долгосрочных тенденций, а RSI для измерения силы тренда. Когда долгосрочная находится в восходящем тренде (200-дневная EMA растет) и сильна (RSI выше 50), а краткосрочная видит откат (последние 2 свечи закрываются ниже), принимается длинная позиция.

После входа в позицию стратегия устанавливает условия остановки потери и получения прибыли. Когда цена повышается более чем на 2x единиц BHD выше цены входа, прибыль принимается. Когда цена падает более чем на 3x единиц BHD ниже цены входа, позиция останавливается. Единица BHD рассчитывается на основе амплитуды последних 200 свечей.

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

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

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

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

  2. Заявки следуют направлению тренда, более высокий процент выигрыша.

  3. Точки получения прибыли и остановки потери позволяют своевременно получать прибыль и контролировать риск.

  4. TP и SL являются динамическими, основанными на волатильности, относительно разумными.

  5. Обратные тесты показывают хорошую отдачу и стабильность в различных символах и временных рамках.

  6. Простая и понятная логика, легко понятная и реализуемая для всех уровней навыков.

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

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

  1. Долгосрочные/короткосрочные ошибки, приводящие к ошибочным направлениям входа.

  2. Рыночные крахи, похожие на скалы, могут проникнуть через остановки.

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

  4. ТП слишком плотно, может выйти преждевременно.

  5. Backtest ≠ производительность в режиме реального времени, требуется постоянная оптимизация.

Решения:

  1. Оптимизировать параметры, корректировать периоды MA, добавить показатели перекрестной проверки.

  2. Более широкие остановки, размеры позиций, другие меры контроля риска.

  3. Обширные обратные тесты для оценки параметров.

  4. Динамическая оптимизация TP на основе рыночных условий.

  5. Продолжаем тестирование, оптимизацию, корректировку.

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

Стратегия может быть дополнительно оптимизирована путем:

  1. Настройка параметров, периоды MA, периоды единиц BHD и т.д.

  2. Добавление индикаторов, MACD, KD и т.д. для лучшей краткосрочной точности.

  3. Оптимизация TP/SL, динамический размер на основе волатильности и т.д.

  4. Добавление размеров позиций на основе силы тренда.

  5. Проверяю надежность на большем количестве символов и временных рамок.

  6. Добавление фильтров, таких как цена закрытия > открытие, чтобы избежать ловушек.

  7. Включение машинного обучения для большей автоматизации и интеллекта.

Они могут улучшить уровень выигрыша, доходность, стабильность, адаптивность и т.д.

Заключение

В целом стратегия Take Profit on Trend имеет преимущества в том, что учитывает длинные/короткие тренды, следуя за трендами, четкий TP/SL. Это стабильный и эффективный подход к тренду. Но существуют риски, требующие постоянной оптимизации и корректировки. Логика ясна и проста в реализации. Стоит изучить и применить для трейдеров. С дальнейшей оптимизацией она может стать надежной квантовой стратегией.


/*backtest
start: 2023-08-26 00:00:00
end: 2023-09-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © BHD_Trade_Bot

// @version=5
strategy(
 shorttitle            = 'Take Profit On Trend',
 title                 = 'Take Profit On Trend (by BHD_Trade_Bot)',
 overlay               = true,
 calc_on_every_tick    = true,
 calc_on_order_fills   = true,
 use_bar_magnifier     = true,
 initial_capital       = 1000,
 default_qty_type      = strategy.percent_of_equity,
 default_qty_value     = 100,
 commission_type       = strategy.commission.percent,
 commission_value      = 0.1)



// Backtest Time Period
start_year   = input(title='Start year'   ,defval=2021)
start_month  = input(title='Start month'  ,defval=1)
start_day    = input(title='Start day'    ,defval=1)
start_time = timestamp(start_year, start_month, start_day, 00, 00)

end_year     = input(title='end year'     ,defval=2050)
end_month    = input(title='end month'    ,defval=1)
end_day      = input(title='end day'      ,defval=1)
end_time = timestamp(end_year, end_month, end_day, 23, 59)

is_back_test_time() => true



// EMA
ema50 = ta.ema(close, 50)
ema200 = ta.ema(close, 200)

// RSI
rsi200 = ta.rsi(close, 200)

// EMA_CD
emacd = ema50 - ema200
emacd_signal = ta.ema(emacd, 50)
hist = emacd - emacd_signal

// BHD Unit
bhd_unit = ta.rma(high - low, 200) * 2
bhd_upper = ema200 + bhd_unit
bhd_lower = ema200 - bhd_unit



// All n candles is going down
all_body_decrease(n) =>
    isValid = true
    for i = 0 to (n - 1)
        if (close[i] > close[i + 1])
            isValid := false
            break
    isValid



// ENTRY CONDITIONS

// Long-term uptrend
entry_condition1 = rsi200 > 51 and hist > 0

// Short-term downtrend
entry_condition2 = all_body_decrease(2)

ENTRY_CONDITIONS = entry_condition1 and entry_condition2

if ENTRY_CONDITIONS and is_back_test_time()
    strategy.entry('entry', strategy.long)


// CLOSE CONDITIONS

// Price increase 2 BHD unit
take_profit = close > strategy.position_avg_price + bhd_unit * 2

// Price decrease 3 BHD unit
stop_loss = close < strategy.position_avg_price - bhd_unit * 3

CLOSE_CONDITIONS = take_profit or stop_loss

if CLOSE_CONDITIONS
    strategy.close('entry')



// Draw
plot(ema50, color=color.orange, linewidth=2)
plot(ema200, color=color.purple, linewidth=2)
bhd_upper_line = plot(bhd_upper, color=color.teal)
bhd_lower_line = plot(bhd_lower, color=color.teal)
fill(bhd_upper_line, bhd_lower_line, color=color.new(color.teal, 90))


Больше