Эта стратегия определяет тренд с использованием скользящих средних, получает прибыль по фиксированным кратным ATR и динамически размещает позиции на основе ATR. Ее целью является использование трендов для получения прибыли при одновременном контроле риска.
Стратегия использует простую скользящую среднюю длину N для определения направления тренда.
После вступления целевая прибыль устанавливается на фиксированные кратные ATR от входной цены, например, Целевая прибыль = Целевая прибыль + ATR * Фактор для длинных позиций.
Стратегия также размещает позиции обратно к ATR, который представляет волатильность рынка.
MA определяет тенденцию, позволяя следовать за ней.
ATR получает прибыль, получая прибыль от тенденций, избегая перемен.
Динамическое размещение позиций управляет риском в соответствии с волатильностью рынка.
Настраиваемый коэффициент прибыли и параметры размеров.
Стоп-лосс может еще больше ограничить риски.
Продолжительность MA может привести к задержке введения.
Колебания ATR могут привести к слишком маленьким или слишком большим целям прибыли.
Чрезмерная волатильность приводит к слишком маленьким позициям, ограничивающим прибыль.
Отсутствие стоп-лосса может привести к неконтролируемым потерям.
Плохой выбор символов, например, активы с низкой волатильностью, может привести к низкой производительности.
Испытывать различные комбинации параметров для оптимальных настроек.
Улучшить логику ввода, добавив другие индикаторы в качестве фильтра.
Исследование динамического получения прибыли и остановки убытков для гибкости.
Управлять позициями на основе показателей волатильности.
Добавить механизм повторного ввода для продления срока хранения.
Стратегия определяет тренд с помощью скользящих средних, получает прибыль по ATR кратным и размерам позиции по ATR. У нее есть определенный тренд, следующий за потенциалом и риском, который может быть скорректирован с помощью параметров. Но существуют проблемы с выбором параметров и целевой прибылью. Дальнейшие улучшения могут быть сделаны с помощью оптимизации, остановки убытков, чтобы сделать стратегию более надежной.
/*backtest start: 2023-09-10 00:00:00 end: 2023-09-17 00:00:00 period: 5m basePeriod: 1m 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/ // © dongyun //@version=4 strategy("利润目标止损的移动平均线", overlay=true) period = input(80,'') ptper = input(252,'') ptfactor = input(12,'') sizeper = input(20, '') trend = 0.0 signal = 0 size = 1.0 investment = 100000 atrange = 0.0 ptrange = 0.0 stoph = 0.0 stopl = 0.0 if sizeper != 0 atrange := atr(sizeper) if atrange == 0 or sizeper == 0 size := 1 else size := investment/atrange * 0.1 trend := sma(close,period) if signal != 1 and nz(trend[1]) < nz(trend[2]) and trend > nz(trend[1]) strategy.entry('long',strategy.long, comment='open_long') signal := 1 else signal := nz(signal[1]) if signal != -1 and nz(trend[1]) > nz(trend[2]) and trend < nz(trend[1]) strategy.entry('short',strategy.short, comment='open_short') signal := -1 else if signal == 0 signal := nz(signal[1]) ptrange := atr(ptper) if strategy.position_size > 0 strategy.exit("exit_long", "long", qty = strategy.position_size, limit = close + ptfactor*ptrange , comment='trail_long') else if strategy.position_size < 0 strategy.exit("exit_short", "short", qty = abs(strategy.position_size), limit = close - ptfactor*ptrange, comment='trail_short')