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


Дата создания: 2024-02-19 14:59:10 Последнее изменение: 2024-02-19 14:59:10
Копировать: 4 Количество просмотров: 622
1
Подписаться
1617
Подписчики

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

Обзор

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

Стратегический принцип

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

Таким образом, когда RSI ниже 40, то есть близко к состоянию перепродажи, и 9-й день пересекает цену под подвижной средней, можно рассматривать как время, когда цена акций может перевернуться. Затем устанавливается остановка убытка и остановка выхода, ожидая, что цена акций перевернется вверх.

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

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

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

Эта стратегия зависит от параметров, таких как RSI judgment threshold, Moving Average Time Window и т. д. Разные параметры могут привести к разным результатам. И в определенных условиях рынка, все еще может быть остановка.

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

Направление оптимизации

Можно рассматривать возможность динамической корректировки параметров движущихся средних, выбирая различные параметры в разных периодах; или ввести другие показатели, такие как KDJ, MACD и т. Д., Чтобы сформировать многоусловное комплексное суждение.

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

Подвести итог

В целом, стратегия использует RSI и Moving Average для определения времени покупки, чтобы эффективно оценить обратную сторону цены, покупая при перепродаже и получая более высокий уровень успеха. В сочетании с стоп-стопами для блокирования прибыли, можно получить лучший эффект.

Исходный код стратегии
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-24 23:59:59
period: 30m
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/
// © Coinrule

//@version=4
strategy(shorttitle='MARSI',title='Moving Average', overlay=true, initial_capital=1000,  default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2020, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true

//MA inputs and calculations
inshort=input(9, title='MA short period')
MAshort= sma(close, inshort)

// RSI inputs and calculations
lengthRSI = input(14, title = 'RSI period', minval=1)
RSI = rsi(close, lengthRSI)

//Entry 
strategy.entry(id="long", long = true, when = MAshort<close and RSI<40 and window())

//Exit
longLossPerc = input(title="Long Stop Loss (%)",
     type=input.float, minval=0.0, step=0.1, defval=1.5) * 0.01
longTakePerc = input(title="Long Take Profit (%)",
     type=input.float, minval=0.0, step=0.1, defval=3) * 0.01
longSL  = strategy.position_avg_price * (1 - longLossPerc)
longTP  = strategy.position_avg_price * (1 + longTakePerc)
if (strategy.position_size > 0 and window())
    strategy.exit(id="TP/SL", stop=longSL, limit=longTP)


bgcolor(color = showDate and window() ? color.gray : na, transp = 90)  
plot(MAshort, color=color.purple, linewidth=4)