
Эта стратегия использует в основном комбинацию 5-дневного RSI и 200-дневного движущегося среднего, чтобы сформировать сигнал для принятия решений о сделке. Она относится к стратегии портфеля технических показателей. Основные принципы торговли: сигнал продажи, когда цена движется в зону перекупа; сигнал покупки, когда цена падает в зону перепродажи.
Эта стратегия использует в основном 5-дневный RSI в сочетании с 200-дневным скользящим средним, чтобы определить, где цены находятся в зоне сверхпокупа и сверхпродажи, и формировать торговые решения:
5-й день RSI определяет зону перекупа и перепродажи, в которой работает цена. Установите линию перекупа на 72, зону перепродажи на 30. Когда RSI переходит от 30 вверх, создается сигнал покупки; когда RSI переходит от 72 вниз, создается сигнал продажи.
200-дневная скользящая средняя определяет направление средне-длиннолинейной тенденции цены. Когда цена ниже 200-дневного среднего, это фаза падения цены; когда цена выше 200-дневного среднего, это фаза повышения цены.
В сочетании с выводами 1 и 2, эта стратегия будет продаваться, когда 5-дневный RSI перекупает и пересекает 72, и покупаться, когда 5-дневный RSI пересекает 30 и цена ниже 200-дневного среднего уровня.
Стратегические сигналы более четкие, используя область RSI Judgment, чтобы определить сигнал о перепродаже.
200-дневная средняя линия определяет направление большого тренда, чтобы избежать обратной операции.
Максимальное количество позиций может быть установлено для контроля риска.
Для оптимизации параметров стратегии есть много места, можно настроить параметры RSI и средний параметр.
Снижение риска отмены, максимальное количество отмены с помощью эффективной стратегии контроля.
Используя только RSI и средний показатель, стратегический сигнал может быть неустойчивым, существует риск убытков при покупке и продаже в условиях многосторонних беспорядочных колебаний на рынке.
Необходимо оптимизировать и тестировать параметры RSI и параметры средней линии для достижения лучших результатов стратегии.
Можно ввести другие показатели или модели суждения, оптимизировать стратегические сигналы. Например, ввести показатели волатильности, суждения машинного обучения и т. Д.
Используйте более широкий спектр индикаторов, таких как MACD, KD, индикаторы волатильности и т. д.
Добавление модели машинного обучения для определения. Например, LSTM для определения стабильности торговых сигналов.
Добавление количественных факторов. Такие как изменение объемов сделок, движение капитала и другие факторы, определяющие финансовую сторону.
Параметры оптимизации стратегии. Например, параметры RSI, параметры средней линии и т. Д.
Оптимизация механизмов остановки убытков, таких как мобильная остановка, временная остановка и т. д.
Эта стратегия использует 5-дневный RSI и 200-дневную среднюю линию для определения зоны перепродажи, формируя торговый сигнал, относящийся к стратегии технического индикатора. Сигнал стратегии более ясен, максимальный риск отмены меньше.
/*backtest
start: 2024-01-24 00:00:00
end: 2024-01-31 00:00:00
period: 3m
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/
// ©chewyScripts.
//@version=5
strategy("96er RSI+200EMA Strategy + Alerts", overlay=true)
// This works best on a small account $100, with 50% of equity and up to 10 max open trades.
// 96% Profitable, turns $100 into $350 in 1 month. very few losses. super happy with it.
// So far it triples the account on a 1m chart in 1 month back testing on the SEI-USD pair.
// I did not test on FX pairs or other instruments.
// had some issues with the inputs not working so had to hard code some, also the lastClose var sometimes breaks and starts following every candle, not sure why.
in_r1 = input.int(5,"5 day input or RSI1")
in_openOrders = input.int(3,"max open orders")
in_lowerRSI = input.int(30,"RSI Lower")
in_upperRSI = input.int(72,"RSI Upper ")
in_emaperiod = input.int(200,"EMA Period")
in_buybreakout = input.int(50,"Buy breakout range")
in_buyTP = input.float(1.05,"Buy TP: 1+TP %, .05 seems to work well.")
in_sellTP = input.float(0.9850, "Sell TP: 1-TP%. .025 seems to work well. ")
simple int rsi5 = in_r1
// 3 rsi strategy , when all of them are overbought we sell, and vice versa
rsi7 = ta.rsi(close,rsi5)
lastClose = request.security(syminfo.tickerid, "D", close, lookahead = barmerge.lookahead_on)
rsi3 = ta.rsi(close[5],rsi5)
ma = ta.ema(close,in_emaperiod)
plot(rsi7,"5 Day RSI",color.red)
plot(lastClose,"Yesterdays Close",color.green)
plot(rsi3,"Previous 5th candles RSI",color.purple)
// sell condition
//sell = ta.crossunder(rsi7,70) and ta.crossunder(rsi14,70) and ta.crossunder(rsi21,70)
//buy condition
//buy = ta.crossover(rsi7,in_lowerRSI) and close < ma and rsi3 <= in_upperRSI and strategy.opentrades < in_openOrders
//sell = ta.crossunder(rsi7,in_upperRSI) and close > ma and rsi3 >= in_lowerRSI3 and strategy.opentrades < in_openOrders
buy = ta.crossover(rsi7,in_lowerRSI) and close < ma and close < lastClose and strategy.opentrades < in_openOrders
sell = ta.crossunder(rsi7,in_upperRSI) and close > ma and close > lastClose and strategy.opentrades < in_openOrders
var lastBuy = close
var lastSell = close
if (buy)
strategy.entry("BUY", strategy.long)
lastBuy := close
alert("Buy")
if ((close >= lastBuy*in_buyTP ) or rsi7 > in_buybreakout and close >= lastClose and (close >= lastClose*in_buyTP or close >= lastBuy*in_buyTP ) )
strategy.close("BUY", "BUY Exit")
alert("Buy Exit")
if (sell)
strategy.entry("SELL", strategy.short)
lastSell := close
alert("Sell")
if ( close < ma and (close <= lastSell*in_sellTP ) or (close < lastClose*in_sellTP) )
strategy.close("SELL", "Sell Exit")
alert("Sell Exit")