Стратегия Take Profit on Trend направлена на выявление долгосрочных тенденций и краткосрочных отступлений, занятие длинных позиций во время общих восходящих тенденций при одновременном отслеживании краткосрочных падений, с разумным уровнем стоп-лосса и получения прибыли, установленным в соответствии с тенденцией и своевременным получением прибыли.
Стратегия в основном использует EMA и RSI для определения долгосрочных и краткосрочных тенденций. В частности, она использует 50-дневную EMA и 200-дневную EMA для оценки долгосрочных тенденций, а RSI для измерения силы тренда. Когда долгосрочная находится в восходящем тренде (200-дневная EMA растет) и сильна (RSI выше 50), а краткосрочная видит откат (последние 2 свечи закрываются ниже), принимается длинная позиция.
После входа в позицию стратегия устанавливает условия остановки потери и получения прибыли. Когда цена повышается более чем на 2x единиц BHD выше цены входа, прибыль принимается. Когда цена падает более чем на 3x единиц BHD ниже цены входа, позиция останавливается. Единица BHD рассчитывается на основе амплитуды последних 200 свечей.
Таким образом, стратегия полностью учитывает долгосрочные и краткосрочные тенденции, увеличивая прибыль, контролируя риски, следуя тенденции, получая своевременную прибыль.
Стратегия имеет следующие преимущества:
Учитывает долгосрочные и краткосрочные тенденции, в сочетании с показателями силы, избегает слепого входа на различные рынки.
Заявки следуют направлению тренда, более высокий процент выигрыша.
Точки получения прибыли и остановки потери позволяют своевременно получать прибыль и контролировать риск.
TP и SL являются динамическими, основанными на волатильности, относительно разумными.
Обратные тесты показывают хорошую отдачу и стабильность в различных символах и временных рамках.
Простая и понятная логика, легко понятная и реализуемая для всех уровней навыков.
Стратегия также сопряжена с некоторыми рисками:
Долгосрочные/короткосрочные ошибки, приводящие к ошибочным направлениям входа.
Рыночные крахи, похожие на скалы, могут проникнуть через остановки.
Плохие параметры негативно влияют на производительность.
ТП слишком плотно, может выйти преждевременно.
Backtest ≠ производительность в режиме реального времени, требуется постоянная оптимизация.
Решения:
Оптимизировать параметры, корректировать периоды MA, добавить показатели перекрестной проверки.
Более широкие остановки, размеры позиций, другие меры контроля риска.
Обширные обратные тесты для оценки параметров.
Динамическая оптимизация TP на основе рыночных условий.
Продолжаем тестирование, оптимизацию, корректировку.
Стратегия может быть дополнительно оптимизирована путем:
Настройка параметров, периоды MA, периоды единиц BHD и т.д.
Добавление индикаторов, MACD, KD и т.д. для лучшей краткосрочной точности.
Оптимизация TP/SL, динамический размер на основе волатильности и т.д.
Добавление размеров позиций на основе силы тренда.
Проверяю надежность на большем количестве символов и временных рамок.
Добавление фильтров, таких как цена закрытия > открытие, чтобы избежать ловушек.
Включение машинного обучения для большей автоматизации и интеллекта.
Они могут улучшить уровень выигрыша, доходность, стабильность, адаптивность и т.д.
В целом стратегия 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))