Предыдущий день завершен с стратегией отслеживания трендов ATR

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

img

Обзор

Эта стратегия устанавливает длинные и короткие уровни входной цены и уровни стоп-лосса на основе ценовой оценки закрытия предыдущего дня и индикатора ATR для отслеживания тренда.

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

В данной стратегии используется индикатор закрытия, высокой цены, низкой цены и показатель ATR предыдущего дня для расчета уровней входных цен и уровней стоп-лосса.

Уровень длинной входной цены TPup = закрытие предыдущего дняs + ATR * 0,8
Уровень короткой входной цены TPdown = Закрытие предыдущего дня - ATR * 0,8

Уровень длинного стоп-лосса снизился = Закрытие предыдущего дня + ATR * 0,2
Уровень короткой остановки потери sldown = Закрытие предыдущего дня - ATR * 0,2

Уровень прибыли по долгосрочному сборуУровень прибылиповышен = Предыдущий деньнижний + ATR * 1,7
Уровень прибыли при коротком закупке уровень прибыли при снижении = Предыдущий деньвысокий - ATR * 1,7

Когда цена проходит через TPup, займите 10 лотов. Когда цена пройдет через TPdown, займите 10 лотов. Затем установите стоп-лосс и возьмите прибыль. Выходные позиции на триггер стоп-лосса или триггер прибыли.

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

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

  1. Использование индикатора ATR для установления динамических уровней входных цен и уровней остановки потерь на основе волатильности рынка, что делает сделки более адаптивными к рыночным условиям.

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

  3. Установка стоп-лосса и механизмов получения прибыли для эффективного контроля риска каждой сделки.

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

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

  1. Уровни цен, установленные ATR, могут быть слишком идеалистичными, чтобы действительно отражать рыночные условия, что приводит к частому запуску стоп-лосса. Параметры ATR можно скорректировать или расширить диапазон стоп-лосса.

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

  3. Стоп-лосс и стоп-профит могут быть манипулированы, чтобы вызвать, не удалось действительно остановить потерю.

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

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

  1. Оптимизировать параметры ATR, чтобы уровни торговли лучше соответствовали волатильности рынка.

  2. Добавить механизмы оценки тренда для предотвращения переворотов торговли, например, комбинирование с индикаторами MA.

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

  4. Установите стоп-лосс и прибыль, чтобы уменьшить вероятность попадания в ловушку или потери.

  5. Добавить механизм размещения позиций для увеличения позиций на этапах тренда.

Заключение

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


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("PC with ATR Strategy (by Zhipengcfel)", shorttitle="PC_ATR", pyramiding=1, overlay=true)

// Zhipengcfel's Previous day's close with ATR Strategy
//
// Version 1.0
// @copyright Idea by Zhipengcfel on June 29, 2017.

//Previous day's close plus ATR strategy. 
//Buy (if breaking PC+ATR*0.8) or sell (if breaking PC-0.8*ATR). 

//This is just a demo vision and can not be used for real auto trading



///////////// ATR value
ATRlength = input(14, minval=1, title="lookback length of ATR")
//ATR = atr(ATRlength)
ATR = request.security(syminfo.tickerid, 'D', atr(ATRlength))

///////////// Entry levels and target levels
entr = input(0.8, minval=0.1, step = 0.05, title="Entry level for ATR")
tplevel = input(1.7, minval=0.1, step = 0.05, title="Exit level for ATR")
yesterday = request.security(syminfo.tickerid, 'D', close[1])
dl = request.security(syminfo.tickerid, 'D', low[1])
dh = request.security(syminfo.tickerid, 'D', high[1])
TPup = yesterday+entr*ATR
TPdown = yesterday-entr*ATR
profitlevelup = dl+tplevel*ATR
profitleveldown = dh-tplevel*ATR

///////////// Stop loss level
sl = input( 0.2  ,minval=0.01, step = 0.05, title="Stop loss level for ATR") //82 for 2, 83 for 3 and more positions
slup = yesterday+sl*ATR
sldown = yesterday-sl*ATR

///////////// Starting year to backtest
yer = input( 2014  , title="Backtest Starting year")


///////////// strategy: PC + ATR
if (close > TPup) and (close < profitlevelup)
    strategy.entry("LONG", strategy.long, 10, comment="Buy", when = year > yer, oca_name="My oca")
    strategy.exit("Stopped", "LONG",  stop = slup, limit= profitlevelup, oca_name="My oca")
            

if (close < TPdown) and (close > profitleveldown)
    strategy.entry("SHORT", strategy.short, 10, comment="Sell", when = year > yer, oca_name="My oca")
    strategy.exit("Stopped", "SHORT", stop = sldown, limit= profitleveldown, oca_name="My oca")
 

Больше