Стратегия перемены импульса в движущейся средней

Автор:Чао Чжан, Дата: 2024-02-19 14:59:10
Тэги:

img

Обзор

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

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

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

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

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

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

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

Эта стратегия основана на параметровых настройках, таких как порог суждения RSI, скользящее среднее время окна и т. Д. Различные параметры могут привести к разным результатам. И при определенных рыночных условиях, остановка потери все еще возможна.

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

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

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

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

Резюме

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


/*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)



Больше