この戦略は,ボリンジャーバンド,RSI指標,移動平均値に基づいた包括的な取引システムである.ボリンジャーバンドの価格変動幅,RSI過剰購入/過剰販売レベル,EMAトレンドフィルタリングを通じて潜在的な取引機会を特定する.システムは長期と短期の両方をサポートし,資本を保護するための複数の退出メカニズムを提供します.
戦略は以下の基本要素に基づいています.
これは,複数の技術指標を通じて市場機会を把握する,よく設計された定量的な取引戦略である.この戦略は高度に構成可能で,異なる取引ニーズに適応することができる.固有リスクがあるものの,パラメータ最適化および追加の補助指標によって安定性と信頼性がさらに向上することができる. 体系的な取引方法を探している投資家にとって,これは検討する価値のある戦略フレームワークである.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-11 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Bands Scalp Pro", overlay=true) // Inputs for the strategy length = input(20, title="Bollinger Band Length") src = input(close, title="Source") mult = input(1.8, title="Bollinger Band Multiplier") rsiLength = input(7, title="RSI Length") rsiOverbought = input(75, title="RSI Overbought Level") rsiOversold = input(25, title="RSI Oversold Level") // Custom RSI exit points rsiExitLong = input(75, title="RSI Exit for Long (Overbought)") rsiExitShort = input(25, title="RSI Exit for Short (Oversold)") // Moving Average Inputs emaLength = input(500, title="EMA Length") enableEMAFilter = input.bool(true, title="Enable EMA Filter") // Exit method: Choose between 'RSI' and 'Bollinger Bands' exitMethod = input.string("RSI", title="Exit Method", options=["RSI", "Bollinger Bands"]) // Enable/Disable Long and Short trades enableLong = input.bool(true, title="Enable Long Trades") enableShort = input.bool(false, title="Enable Short Trades") // Enable/Disable Stop Loss enableStopLoss = input.bool(false, title="Enable Stop Loss") stopLossPercent = input.float(1.0, title="Stop Loss Percentage (%)", minval=0.1) / 100 // Bollinger Bands calculation basis = ta.sma(src, length) dev = mult * ta.stdev(src, length) upperBB = basis + dev lowerBB = basis - dev // RSI calculation rsi = ta.rsi(src, rsiLength) // 200 EMA to filter trades (calculated but only used if enabled) ema200 = ta.ema(src, emaLength) // Long condition: RSI below oversold, price closes below the lower Bollinger Band, and optionally price is above the 200 EMA longCondition = enableLong and (rsi < rsiOversold) and (close < lowerBB) and (not enableEMAFilter or close > ema200) if (longCondition) strategy.entry("Long", strategy.long) // Short condition: RSI above overbought, price closes above the upper Bollinger Band, and optionally price is below the 200 EMA shortCondition = enableShort and (rsi > rsiOverbought) and (close > upperBB) and (not enableEMAFilter or close < ema200) if (shortCondition) strategy.entry("Short", strategy.short) // Stop Loss setup if (enableStopLoss) strategy.exit("Long Exit", "Long", stop = strategy.position_avg_price * (1 - stopLossPercent)) strategy.exit("Short Exit", "Short", stop = strategy.position_avg_price * (1 + stopLossPercent)) // Exit conditions based on the user's choice of exit method if (exitMethod == "RSI") // Exit based on RSI exitLongCondition = rsi >= rsiExitLong if (exitLongCondition) strategy.close("Long") exitShortCondition = rsi <= rsiExitShort if (exitShortCondition) strategy.close("Short") else if (exitMethod == "Bollinger Bands") // Exit based on Bollinger Bands exitLongConditionBB = close >= upperBB if (exitLongConditionBB) strategy.close("Long") exitShortConditionBB = close <= lowerBB if (exitShortConditionBB) strategy.close("Short")