Покупка падений с получением прибыли и стоп-лосом

Автор:Чао Чжан, Дата: 2023-11-23 16:50:01
Тэги:

img

Обзор

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

Принципы

Основная логика этой стратегии заключается в использовании индикатора ATR для расчета динамических позиций с прибылью и остановкой убытков. В частности, длинный сигнал запускается, когда цена закрытия ниже самого низкого уровня за последние n дней (в коде устанавливается на 7 дней); во время длинных позиций цены на прибыль и остановку убытков будут рассчитываться динамически на основе индикатора ATR (установлены через кратные ATR) и отображаться на графике в режиме реального времени. Прибыль или контроль риска могут быть достигнуты, когда цена достигает точек получения прибыли или остановки убытков.

Стратегия сочетает в себе самый простой подход к покупке с идеей динамического стоп-лосса/приобретения прибыли для своевременного использования возможностей при одновременном контроле рисков.

Преимущества

Основными преимуществами этой стратегии являются:

  1. Использование динамических индикаторов ATR для установки стоп-лосса и получения прибыли позволяет корректировать уровень прибыли и убытка на основе волатильности рынка, избегая ненужных потерь или упуская большие возможности получения прибыли из-за чрезмерно фиксированного стоп-лосса / получения прибыли.

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

  3. Оценка коэффициента прибыли/стоп-лосса с помощью значений ATR является разумной и может быть гибко установлена в соответствии с рыночными условиями и индивидуальной толерантностью к риску.

  4. Логика кода проста и понятна, легко понятна. Установки параметров также интуитивны. Она подходит в качестве образцовой стратегии обучения.

Риски

Основными рисками этой стратегии являются:

  1. Невозможно определить амплитуду и силу отскока после падения. Существует риск того, что ожидания прибыли не оправдаются. Это можно решить путем корректировки параметров ATR для установки различных диапазонов прибыли.

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

  3. Стоп-потеря, слишком тесная, также может быть излишне выбита.

  4. Обязательное испытание при различных рыночных условиях с правильными настройками скольжения/запуска.

Улучшение

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

  1. Оптимизация уровня поддержки и определения сигнала. Более сложные индикаторы, такие как KDJ или полосы Боллинджера, могут быть использованы для более надежного оценки сигналов обворота.

  2. Оптимизация правил размещения позиций. Динамическое регулирование размеров позиций на основе волатильности рынка и т.д.

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

  4. Добавление фильтров слияния. Введите длинный только в том случае, если соответствующий сектор/широкий рынок также достигает поддержки, проверяя надежность сигнала.

Заключение

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


/*backtest
start: 2022-11-16 00:00:00
end: 2023-11-22 00:00:00
period: 1d
basePeriod: 1h
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/
// © racer8
//@version=4
strategy("Buy-The-Dip", overlay=true)

atn = input(15, "ATR Period")
atr = sma(tr,atn)[1]
bought = strategy.position_size[0] > strategy.position_size[1]

slm = input(2.0,"ATR SL Multiple",minval=0)
StopPrice  = strategy.position_avg_price - slm*atr              // determines stop loss's price 
FixedStopPrice = valuewhen(bought,StopPrice,0)                  // stores original StopPrice  
plot(FixedStopPrice,"Stop Loss",color=color.red,linewidth=2,style=plot.style_cross)

tpm = input(1.0,"ATR TP Multiple",minval=0)
TakePrice  = strategy.position_avg_price + tpm*atr              // determines Take Profit's price 
FixedTakePrice = valuewhen(bought,TakePrice,0)                  // stores original TakePrice  
plot(FixedTakePrice,"Take Profit",color=color.green,linewidth=2,style=plot.style_cross)

nn = input(7,"Channel Length")
ll = lowest(low,nn)

if close<ll[1]
    strategy.entry("Buy",strategy.long)
if strategy.position_size > 0
    strategy.exit(id="XL SL", stop=FixedStopPrice, limit=FixedTakePrice)    // commands stop loss order to exit!

plot(ll,color=color.orange)

Больше