Signals Help Center
  • About Signals
  • Getting Started
    • Tutorials
      • Your First Strategy
        • Create a New Strategy
        • Define Variables
        • Define Setup Method
        • Define Register Actions Method
        • Backtest
        • Deploy Strategy & Start Receiving Signals
    • Dashboard
    • Strategies
      • Strategy Tools and Settings
        • Editor
        • Strategy Detail
        • Backtests
          • Backtest Detail
          • Deploying a Backtest
          • Delete a Backtest
        • Deployments
          • Deployment Detail
          • Edit About, Rules & Alternative Markets
          • Undeploy an Active Deployment
          • (Un)Publish a Deployment
          • (Un)Follow a Deployment
          • Delete a Deployment
        • Followings
          • Following Detail
          • Unfollow a Deployment
          • Delete Record of Following
      • Strategies Marketplace
        • Follow a Strategy
        • Publish Strategy
      • Strategy Details
      • Strategy Metrics
        • Initial Capital
        • Initial Capital (USDT)
        • Strategy Balance
        • Strategy Balance (USDT)
        • Total Performance
        • Total Performance (USDT)
      • Strategy Types
        • Single Market Strategy
        • Multi Market Strategy
    • Account
      • Change Plan
      • Change or Reset Password
      • Change Name, Username, or E-mail
  • Framework Documentation
    • Strategy
      • Methods
        • Setup()
          • DataMarketplace
          • IndicatorsMarketplace
        • RegisterActions()
        • Orders Management
          • CancelOrder()
          • CancelAllPendingOrders()
          • EnterLong()
          • EnterLongLimit()
          • EnterShort()
          • EnterLongStop()
          • EnterShortLimit()
          • ExitLong()
          • EnterShortStop()
          • ExitLongLimit()
          • ExitShort()
          • ExitShortLimit()
          • ExitLongStop()
          • ExitShortStop()
        • Risk Management
          • SetProfitTarget()
          • SetStopLoss()
      • Properties
        • Market
        • Markets
        • PendingOrders
        • Position
        • Time
      • Types
        • IOrder
        • PendingOrder
    • Data
    • Logs
  • Knowledge Base
    • Vocabulary
      • Base currency
      • Deployment
      • Following
      • Quote currency
      • Strategy
    • Technical Indicators
      • Oscillators
        • Average Directional Index (ADX)
        • Momentum Indicator (MOM)
        • Moving Average Convergence Divergence (MACD)
        • Relative Strength Index (RSI)
        • Stochastic RSI (STOCH RSI)
      • Volatility
        • Average True Range (ATR)
        • Bollinger Bands (BB)
      • Trend Analysis
        • Exponential Moving Average (EMA)
        • Simple Moving Average (SMA)
        • Volume-weighted Moving Average (VWMA)
        • Weighted Moving Average (WMA)
      • Volume
        • Accumulation/Distribution Line (ADL)
  • Have a question?
    • FAQ
    • Ask on the forums
    • Contact us
Powered by GitBook
On this page
  • Trading application
  • Calculation
  • Parameters
  • Examples
  1. Knowledge Base
  2. Technical Indicators
  3. Oscillators

Stochastic RSI (STOCH RSI)

Indicator that uses a Stochastic formula on a set of RSI values to measure momentum and determine if an asset is overbought or oversold.

Stochastic RSI, also called StochRSI, as an oscillator which uses a Stochastic formula on a set of RSI values to measure momentum and determine if an asset is overbought or oversold. RSI is, essentially, an indicator of an indicator and is used as it is more sensitive, and consequently able to detect more signals, than the original Stochastic indicator.

Trading application

Within a range of 0 to 100, this indicator shows two lines, %K (K in the calculation formula belove) and %D (D in the calculation formula belove). Overbought conditions are indicated by the %K line crossing above 80, while oversold conditions are present once %K goes down below 20. When the 2 lines intersect, we can interpret that there might be a reversal in the trend: %K crossing above %D indicates bullish conditions, while %K crossing below %D indicates bearish conditions.

Divergences also reflect bullish or bearish conditions: we can consider the environment bearish if the asset’s price increases more than the %D (e.g. reaching a new high while the indicator doesn’t), in the same way, it would be bullish to see the asset’s price decreasing more than the %D does.

Calculation

K=(RSI−RSIL)/(RSIH−RSIL)K = (RSI - RSIL) / (RSIH - RSIL)K=(RSI−RSIL)/(RSIH−RSIL)
D=100∗((K1+K2+K3)/3)D=100*((K1+K2+K3)/3)D=100∗((K1+K2+K3)/3)

RSI: Current RSI RSIL: Lowest RSI value in last n periods RSIH: Highest RSI value in last n periods K1, K2 and K3: Last 3 values of K

Parameters

Input Parameters

Name

Type

Range of value

Description

period

int

<1, int.MaxValue>

Number of bars used for calculation.

Output Parameters

Indicator ouptuts a single value.

Type

Range of value

double

(0, double.MaxValue)

Examples

// Prints the current value of a 20 period Stochastic RSI using
// the daily bars close price value.
stochRsi = indicators.StochasticRSI(20).OnSeries(dailyBars.Close);
Log(stochRsi.Value.ToString());

// Evaluates if the current bar Stochastic RSI value is greater than
// the value one bar ago.
stochRsi = indicators.StochasticRSI(20).Keep(2).OnSeries(dailyBars.Close);
if (stochRsi.Values[0] > stochRsi.Values[1]) {
    Log("Stochatic RSI is rising.");
}

Complete example

using Signals.DataSeries.Bars;
using Signals.Framework;
using Signals.Indicators.StochasticRSI;

public class MyStrategy : SingleMarketStrategy
{
    private Bars dailyBars;
    private StochasticRSI stochRsi;

    public override void Setup(DataMarketplace data, IndicatorsMarketplace indicators)
    {
        dailyBars = data.Bars(BarPeriodType.Day, 1).WithOffset(25);
        stochRsi = indicators.StochasticRSI(20).Keep(2).OnSeries(dailyBars.Close);
    }

    public override void RegisterActions()
    {
        OnUpdateOf(dailyBars).Do(() =>
        {
            Log(stochRsi.Value.ToString());

            if (stochRsi.Values[0] > stochRsi.Values[1]) {
                Log("Stochatic RSI is rising.");
            } else {
                Log("Stochatic RSI is descending.");
            }
        });
    }
}

PreviousRelative Strength Index (RSI)NextVolatility

Last updated 5 years ago