
This strategy is a trend-following trading system that combines the Stochastic RSI (Relative Strength Index) and Moving Average indicators. The strategy identifies market trend turning points by analyzing the crossover signals of these two technical indicators, thereby capturing potential trading opportunities. The strategy employs multiple indicator cross-validation methods to effectively reduce false signals and improve trading accuracy.
The core logic of the strategy is based on two main indicator systems: 1. Stochastic RSI: - RSI period set to 17, stochastic period set to 20 - K-line and D-line crossovers serve as primary signals - Long signal triggered when K value is below 17 and D value is below 23, with K line crossing above D line - Short signal triggered when K value is above 99 and D value is above 90, with K line crossing below D line
This strategy constructs a relatively complete trend-following trading system by combining Stochastic RSI and Moving Average systems. The strategy’s strength lies in its multiple indicator cross-validation mechanism, which effectively reduces interference from false signals. However, attention must be paid to risk control, especially in oscillating markets. Through continuous optimization and improvement, this strategy shows promise for better performance in actual trading.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Quantuan_Research
//@version=6
version=6
strategy("Quantuan Research - Alpha", overlay=true, pyramiding=200, default_qty_value=1)
// Define Stochastic RSI settings
lengthRSI = input(17, title="RSI Length")
lengthStoch = input(20, title="Stochastic Length")
src = input(close, title="Source")
rsi = ta.rsi(src, lengthRSI)
k = ta.stoch(rsi, rsi, rsi, lengthStoch)
d = ta.sma(k, 3)
// Define MA settings
fastMALength = input(10, title="Fast MA Length")
slowMALength = input(20, title="Slow MA Length")
fastMA = ta.sma(close, fastMALength)
slowMA = ta.sma(close, slowMALength)
// Define long and short conditions
longCondition = k < 17 and d < 23 and k > d
shortCondition = k > 99 and d > 90 and k < d
// Create long and short signals
if longCondition//@
strategy.entry("Long", strategy.long)
if shortCondition
strategy.entry("Short", strategy.short)
// Add alerts for long and short signals
alertcondition(longCondition, title="Long Signal", message="Long signal generated")
alertcondition(shortCondition, title="Short Signal", message="Short signal generated")
// Plot Moving Averages with color based on trend
plot(fastMA, color = fastMA > slowMA ? color.new(color.rgb(0, 255, 170), 0) : color.new(color.rgb(255, 0, 0), 0), title = 'Fast MA')
plot(slowMA, color = color.new(color.rgb(255, 255, 0), 0), title = 'Slow MA')