Стратегия отслеживания тенденций на основе многопоказателей

Автор:Чао Чжан, Дата: 2023-11-23 15:43:02
Тэги:

img

Обзор

Эта стратегия идентифицирует тенденции путем объединения нескольких индикаторов, таких как RSI, MA, EMA и полосы Боллинджера для реализации отслеживания тренда. Когда определяется относительно восходящий нисходящий тренд, стратегия установит длинную позицию. Напротив, когда определяется относительно нисходящий восходящий тренд, стратегия установит короткую позицию.

Принцип

Основная логика этой стратегии заключается в определении ценовых тенденций путем объединения RSI, MA, EMA и полос Боллинджера. В частности, она одновременно графизирует две линии MA, одна на 10 периодов, а другая на 5 периодов. В то же время, две линии EMA рисуются с параметрами 30 и 20 соответственно. Параметр индикатора RSI установлен на 7.

Когда цена закрытия проходит ниже 5-периодной линии MA, 20-периодной линии EMA и нижней рельсы, а индикатор RSI проходит ниже 25-ти линий перекупленности, стратегия считает, что цены относительно растут и вступят в длинную позицию.

Напротив, когда цена закрытия превышает 10-периодную линию MA, 30-периодную линию EMA и верхнюю рельсу, а показатель RSI превышает линию 75 перепроданных, стратегия считает, что цены относительно снижаются и вступят в короткую позицию.

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

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

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

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

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

Следует отметить, что ни одна стратегия не может быть 100% прибыльной, и эта стратегия не является исключением. Главный риск заключается в том, что комбинированное суждение нескольких индикаторов ошибается, что приводит к неправильным сделкам. Кроме того, внезапные события также могут привести к недействительности стратегии.

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

Оптимизация

Основные оптимизации для этой стратегии:

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

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

  3. Увеличить количество моделей машинного обучения для повышения точности суждений;

  4. Усиление адаптивных механизмов стоп-лосса для контроля рисков;

  5. Оптимизация обратных тестов для повышения стабильности и рентабельности.

Заключение

Эта стратегия разработала набор относительно восходящих механизмов отслеживания, основанных на RSI, MA, EMA и Bollinger Bands, и входит в направленные позиции после оценки ценовых тенденций путем объединения нескольких индикаторов. Интеграция нескольких индикаторов для суждения может эффективно уменьшить вероятность ошибочного суждения и фильтровать шум в определенной степени, отслеживая относительно четкие тенденции. Конечно, управление рисками также нуждается в внимании. В целом эта стратегия имеет большое пространство для оптимизации и может достичь лучших результатов с помощью машинного обучения и других средств.


/*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/
// © lepstick-TC
//@version=4
strategy("1", overlay=true)
length = input(5, minval=1)
src = input(close, title="Source")
mult = input(1.5, minval=0.001, maxval=50)
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
plot(basis, color=color.red)
p1 = plot(upper, color=color.blue)
p2 = plot(lower, color=color.blue)
fill(p1, p2)
rsicok=input(75,minval=0,title="Rsi yüksek")
rsiaz=input(25,maxval=50,title="Rsi düşük")
rsizaman=input(7,minval=0,title="Rsi zaman")
smadeger=input(10,minval=0,title="Ma üst")
smadeger2=input(5,minval=0,title="Ma alt")
emadeger=input(30,minval=0,title="Ema üst")
emadeger2=input(20,minval=0,title="Ema alt")
myrsi=rsi(close,rsizaman)
myrsi2=rsi(close,rsiaz)
myrsi3=rsi(close,rsicok)
myma=sma(close,smadeger)
myma2=sma(close,smadeger2)
myema=ema(close,emadeger)
myema2=ema(close,emadeger2)
mycond =myrsi >rsicok and close> myma and close>myema
mycond2=myrsi<rsiaz and close<myma2 and close<myema2
barcolor(mycond? #2196F3: na)
barcolor(mycond2? #FF9800: na)
plot(myma,title="Ma yüksek",color=color.black,linewidth=0)
plot(myma2,title="Ma düşük",color=color.blue,linewidth=0)
plot(myema,title="Ema yüksek",color=color.yellow,linewidth=0)
plot(myema2,title="Ema düşük",color=color.gray,linewidth=0)
idunno =close< sma(close,smadeger2) and close < sma(close,smadeger) and close<ema(close,emadeger)and close<ema(close,emadeger2)and crossunder(close,lower)and crossunder(myrsi,myrsi2)and crossunder(close,basis) 
plotchar(idunno,char="A",color=#808000 ,location=location.belowbar) 
idunno2 =close> sma(close,smadeger2) and close> sma(close,smadeger) and close>ema(close,emadeger)and close>ema(close,emadeger2)and crossover(close,upper)and crossover(myrsi,myrsi3)and crossover(close,basis)
plotchar(idunno2,char="S",color=#787B86 ,location=location.abovebar)
strategy.entry("Al",true,when =idunno)
strategy.entry("Sat",false,when = idunno2)
strategy.close("Al",when=ema(close,emadeger)and crossover(open,upper))
strategy.close("Sat",when=sma(close,smadeger2)and crossunder(open,lower))
//strategy.exit("Al çıkış","Al",limit=upper)
//strategy.exit("Sat çıkış","Sat",limit=lower)
//strategy.exit("Al çıkış","Al",trail_points=close*0.1/syminfo.mintick,trail_offset=close*0.005/syminfo.mintick)
//strategy.exit("Sat çıkış","Sat",trail_points=close*0.1/syminfo.mintick,trail_offset=close*0.005/syminfo.mintick)


Больше