Стратегия скользящей средней с динамической целью прибыли

Автор:Чао Чжан, Дата: 2023-09-18 21:46:47
Тэги:

Обзор

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

Принципы

Стратегия использует простую скользящую среднюю длину N для определения направления тренда.

После вступления целевая прибыль устанавливается на фиксированные кратные ATR от входной цены, например, Целевая прибыль = Целевая прибыль + ATR * Фактор для длинных позиций.

Стратегия также размещает позиции обратно к ATR, который представляет волатильность рынка.

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

  1. MA определяет тенденцию, позволяя следовать за ней.

  2. ATR получает прибыль, получая прибыль от тенденций, избегая перемен.

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

  4. Настраиваемый коэффициент прибыли и параметры размеров.

  5. Стоп-лосс может еще больше ограничить риски.

Риски и способы их смягчения

  1. Продолжительность MA может привести к задержке введения.

  2. Колебания ATR могут привести к слишком маленьким или слишком большим целям прибыли.

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

  4. Отсутствие стоп-лосса может привести к неконтролируемым потерям.

  5. Плохой выбор символов, например, активы с низкой волатильностью, может привести к низкой производительности.

Возможности для расширения

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

  2. Улучшить логику ввода, добавив другие индикаторы в качестве фильтра.

  3. Исследование динамического получения прибыли и остановки убытков для гибкости.

  4. Управлять позициями на основе показателей волатильности.

  5. Добавить механизм повторного ввода для продления срока хранения.

Резюме

Стратегия определяет тренд с помощью скользящих средних, получает прибыль по 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')


Больше