Двухлетняя новая стратегия высокого ретраксемента скользящей средней

Автор:Чао Чжан, Дата: 2024-01-26 14:49:28
Тэги:

img

Обзор

Эта стратегия основана на уникальном расчете двухлетней новой высокой цены и скользящей средней стоимости акций. Она генерирует сигнал покупки, когда цена акции отступает к 13-дневной экспоненциальной скользящей средней после достижения двухлетнего максимума.

Принцип стратегии

Основная логика этой стратегии основана на следующих уникальных расчетах:

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

  2. Когда цена отступает от этого нового максимума и возвращается к 13-дневной экспоненциальной скользящей средней, это представляет хорошую возможность покупки.

  3. Кроме того, когда запускается сигнал покупки, цена акций должна находиться в пределах 10% от двухлетнего максимума, не слишком далеко.

  4. Для открытых позиций, если цена превысит 5-процентную отметку ниже 21-дневной линии MA или снизится на 20% от двухлетнего максимума, позиция будет остановлена для получения прибыли.

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

Это долгосрочная стратегия выхода с такими преимуществами:

  1. Уникальная двухлетняя высокая цена может эффективно выявить потенциальные возможности для изменения тенденции.

  2. 13-дневная линия EMA служит фильтром входа, чтобы избежать сбоев и определить более сильный импульс.

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

  4. Разумная стоп-лосс позволяет зафиксировать большую часть прибыли.

Риски и решения

Существуют также некоторые риски, в основном следующие:

  1. Рынки могут испытывать глубокие снижения, не в состоянии остановиться вовремя.

  2. Большие разрывы за одну ночь могут предотвратить идеальную остановку потери.

  3. 13-дневная линия может плохо отфильтровывать консолидации, генерируя чрезмерные ложные сигналы.

  4. Новые высокие цены могут не работать хорошо для определения изменений тренда.

Предложения по оптимизации стратегии

Есть возможности для дальнейшей оптимизации:

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

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

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

  4. Использование машинного обучения для динамической оптимизации параметра двухлетнего максимума для большей гибкости.

Заключение

В целом, это уникальная долгосрочная стратегия прорыва, ключевым моментом которой является двухлетний высокий уровень цен и 13-дневная линия EMA, служащая фильтром входа.


/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-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/
// © Part Timer

//This script accepts from and to date parameter for backtesting. 
//This script generates white arrow for each buying signal

//@version=4
strategy("AMRS_LongOnly_PartTimer", overlay = true)

//i_endTime = input(defval = timestamp("02 Jun 2021 15:30 +0000"), title = "End Time", type=input.time)

StartYear=input(defval = 2000, title ="Start Year", type=input.integer)
StartMonth=input(defval = 01, title ="Start Month", type=input.integer)
StartDate=input(defval = 01, title ="Start Date", type=input.integer)

endYear=input(defval = 2021, title ="End Year", type=input.integer)
endMonth=input(defval = 06, title ="End Month", type=input.integer)
endDate=input(defval = 03, title ="End Date", type=input.integer)

ema11=ema(close,11)
ema13=ema(close,13)
ema21=ema(close,21)

afterStartDate = true
//g=bar_index==1
//ath()=>
    //a=0.0
    //a:=g ? high : high>a[1] ? high:a[1]
    
//a = security(syminfo.tickerid, 'M', ath(),lookahead=barmerge.lookahead_on)

newHigh = (high > highest(high,504)[1])
//plot down arrows whenever it's a new high
plotshape(newHigh, style=shape.triangleup, location=location.abovebar, color=color.green, size=size.tiny)
b=highest(high,504)[1]
VarChk=((b-ema13)/b)*100
TrigLow = (low <= ema13) and (low >= ema21) and (VarChk <= 10)
plotshape(TrigLow, style=shape.triangleup, location=location.belowbar, color=color.white, size=size.tiny)
ExitPrice=(ema21 - (ema21*0.05))
DrawPrice=(b - (b*0.20))
stopprice=0.0
if (close <= ExitPrice)
    stopprice := ExitPrice
if (close <= DrawPrice)
    stopprice := DrawPrice

if (TrigLow and afterStartDate)
    strategy.entry("Long", strategy.long)

strategy.exit("exit","Long", stop=stopprice)
//beforeEndDate = (time < i_endTime)
beforeEndDate = (time >= timestamp(syminfo.timezone,endYear, endMonth, endDate, 0, 0))
if (beforeEndDate)
    strategy.close_all()

Больше