0% found this document useful (0 votes)
9 views1 page

Estragia Rsi

This strategy uses a cumulative RSI indicator to generate buy and sell signals. It allows filtering trades to only those where the price is above an EMA. The strategy can be backtested over a specified date range and includes commission and slippage settings.

Uploaded by

Pepin
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views1 page

Estragia Rsi

This strategy uses a cumulative RSI indicator to generate buy and sell signals. It allows filtering trades to only those where the price is above an EMA. The strategy can be backtested over a specified date range and includes commission and slippage settings.

Uploaded by

Pepin
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 1

// This source code is subject to the terms of the Mozilla Public License 2.

0 at
https://mozilla.org/MPL/2.0/
// @version=5
// Author = TradeAutomation

strategy(title="Cumulative RSI Strategy", shorttitle="CRSI Strategy",


process_orders_on_close=true, overlay=true,
commission_type=strategy.commission.cash_per_contract, commission_value=.0035,
slippage = 1, margin_long = 75, initial_capital = 25000,
default_qty_type=strategy.percent_of_equity, default_qty_value=110)

// Cumulative RSI Indicator Calculations //


rlen = input.int(title="RSI Length", defval=3, minval=1)
cumlen = input(3, "RSI Cumulation Length")
rsi = ta.rsi(close, rlen)
cumRSI = math.sum(rsi, cumlen)
ob = (100*cumlen*input(94, "Oversold Level")*.01)
os = (100*cumlen*input(20, "Overbought Level")*.01)

// Operational Function //
TrendFilterInput = input(false, "Only Trade When Price is Above EMA?")
ema = ta.ema(close, input(100, "EMA Length"))
TrendisLong = (close>ema)
plot(ema)

// Backtest Timeframe Inputs //


startDate = input.int(title="Start Date", defval=1, minval=1, maxval=31)
startMonth = input.int(title="Start Month", defval=1, minval=1, maxval=12)
startYear = input.int(title="Start Year", defval=2010, minval=1950, maxval=2100)
endDate = input.int(title="End Date", defval=1, minval=1, maxval=31)
endMonth = input.int(title="End Month", defval=1, minval=1, maxval=12)
endYear = input.int(title="End Year", defval=2099, minval=1950, maxval=2100)
InDateRange = (time >= timestamp(syminfo.timezone, startYear, startMonth,
startDate, 0, 0)) and (time < timestamp(syminfo.timezone, endYear, endMonth,
endDate, 0, 0))

// Buy and Sell Functions //


if (InDateRange and TrendFilterInput==true)
strategy.entry("Long", strategy.long, when = ta.crossover(cumRSI, os) and
TrendisLong, comment="Buy", alert_message="buy")
strategy.close("Long", when = ta.crossover(cumRSI, ob) , comment="Sell",
alert_message="Sell")
if (InDateRange and TrendFilterInput==false)
strategy.entry("Long", strategy.long, when = ta.crossover(cumRSI, os),
comment="Buy", alert_message="buy")
strategy.close("Long", when = ta.crossover(cumRSI, ob), comment="Sell",
alert_message="sell")
if (not InDateRange)
strategy.close_all()

You might also like