
この戦略の核心思想は,RSI指標と移動平均を組み合わせて,株価の反転の機会を探し,低買い高売りを実現することである. RSI指標が株価が超売り状態にあることを示し,短期移動平均の下から価格を穿越するとき,買入信号として; ストップとストップを設定した後,価格の反転を待つ.
この戦略は,主にRSI指標を使用して,超売り超買いを判断し,移動平均の金叉死叉を判断する価格傾向を判断する.具体的には,RSI指標は,株式が超売りまたは超買いであるかどうかを効果的に判断する.RSIが30を下回るときは,超売り範囲に属します.そして,短期移動平均 (この戦略で9日線として設定) が価格を下回るときは,価格が下がっていることを示します.
したがって,RSI指標が40を下回り,つまり超売り状態に近い状態で,9日目の移動平均線の下の価格穿越時,株価が逆転する可能性のある時間として判断して,多買買を行うことができる.その後,ストップ損失とストップ退出を設定し,株価が逆転して上騰した後,利潤を収める.
この戦略は,RSI指標と移動平均を組み合わせて,購入のタイミングを効果的に判断することができる.単一の判断の過売と比較して,移動平均の条件判断が加えられ,過売区域の変動を避ける.止損止めの設定は柔軟であり,人によって異なる.
この戦略は,RSI判断値,移動平均時間ウィンドウなどのパラメータ設定に依存し,異なるパラメータにより異なる結果をもたらす可能性があります.また,特定の市場の状況では,ストップが起こる可能性があります.
また,取引費用は利益にも一定の影響を及ぼします. 後に取引量または資金管理モジュールを追加することを検討して最適化することができます.
移動平均のパラメータを動的に調整し,異なる周期で異なるパラメータを選択することを考慮することができます.または,KDJ,MACDなどの他の指標判断を導入し,多種条件総合判断を形成することができます.
また,取引量や資金管理モジュールを構築して,単一の取引が占める資金の割合を制御し,単一の損失の影響を軽減することもできます.
戦略全体として,RSI指標と移動平均を使用して購入のタイミングを判断し,価格の逆転を効果的に判断し,超売り時に購入し,比較的に高い成功率を得ることができます. 利益をロックするためにストップ・ロストを組み合わせて,よりよい効果を得ることができます. 後期最適化の方向は,より多くの指標を追加したり,追加の取引/資金管理モジュールを構築したりして,戦略をより強めることを考えることができます.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-24 23:59:59
period: 30m
basePeriod: 15m
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/
// © Coinrule
//@version=4
strategy(shorttitle='MARSI',title='Moving Average', overlay=true, initial_capital=1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
//Backtest dates
fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12)
fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31)
fromYear = input(defval = 2020, title = "From Year", type = input.integer, minval = 1970)
thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12)
thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31)
thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970)
showDate = input(defval = true, title = "Show Date Range", type = input.bool)
start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window
finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window
window() => true
//MA inputs and calculations
inshort=input(9, title='MA short period')
MAshort= sma(close, inshort)
// RSI inputs and calculations
lengthRSI = input(14, title = 'RSI period', minval=1)
RSI = rsi(close, lengthRSI)
//Entry
strategy.entry(id="long", long = true, when = MAshort<close and RSI<40 and window())
//Exit
longLossPerc = input(title="Long Stop Loss (%)",
type=input.float, minval=0.0, step=0.1, defval=1.5) * 0.01
longTakePerc = input(title="Long Take Profit (%)",
type=input.float, minval=0.0, step=0.1, defval=3) * 0.01
longSL = strategy.position_avg_price * (1 - longLossPerc)
longTP = strategy.position_avg_price * (1 + longTakePerc)
if (strategy.position_size > 0 and window())
strategy.exit(id="TP/SL", stop=longSL, limit=longTP)
bgcolor(color = showDate and window() ? color.gray : na, transp = 90)
plot(MAshort, color=color.purple, linewidth=4)