モメント・ムービング・平均逆転戦略

作者: リン・ハーンチャオチャン,日付: 2024-02-19 14:59:10
タグ:

img

概要

この戦略の主な考え方は,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)



もっと