RSIブレイクストラテジー

作者: リン・ハーンチャオチャン開催日:2023年9月26日 16:11:55
タグ:

概要

この戦略は,RSIインジケーターを使用して,暗号通貨が過売れているかどうかを判断し,RSIが30を下回ると購入します.これは過売とみなされます.その後,ストップ損失を設定し,利益を得る価格を設定します.ストップ損失価格がヒットした場合,ポジションを退場します.利益を得る価格に達した場合,利益を得るためにポジションを閉鎖します.

働き方

  1. この戦略は,RSIインジケーターを使用してエントリーシグナルを識別する.RSIは,資産が過買いまたは過売れているかどうかを判断するために価格変化の速度と規模を測定する.RSIは0から100まで,70を超える値は過買い,30未満は過売れていると考えられる.

  2. RSIが30を下回ると 戦略はトレンド逆転を賭けて ロングポジションに入ります

  3. ポジションを開いた後,ストップ・ロースとテイク・プロフィートが設定されます.ストップ・ロスはエントリー価格より1%低く設定されます.テイク・プロフィートはエントリー価格より7%高く設定されます.

  4. ストップ・ロスの値を下回ると,ポジションは閉鎖されます.値がテイク・プロフィートの値を超えると,ポジションはプロフィートとして閉鎖されます.

利点分析

  1. RSIを使用して 過売状況を特定すると,相対的な低点での良いエントリーポイントが提供されます.

  2. ストレートストップ・ロスは,取引ごとにリスクを制御します.ストップアウトする前に,少し引き下げを可能にします.

  3. 大幅な上向きの動きから得られる利益です

  4. この戦略は,強固な抽出管理と,全体的にリスクが低い.

リスク分析

  1. RSIの過剰売り信号は必ずしも逆転を招くわけではありません 価格が引き続き下がり ストップロストにつながります

  2. ストップ・ロスは狭すぎると,引き上げが大きい場合,早速ストップになる可能性があります.

  3. 利益は大きく過ぎて 利益は早めに収束し 勝者は逃げないかもしれません

  4. この戦略は 市場が動揺している間に 大きな損失を 引き起こす可能性があります

最適化

  1. RSIとKDJなどの他の指標を組み合わせると 信号の正確性が向上し 誤った信号を回避できます

  2. ストップ・ロスの最適化と 異なるコインの波動性に基づく 利益率の取付

  3. 最適な組み合わせを見つけるために 異なるタイムフレームのパラメータをテストします

  4. バックテスト結果に基づいて位置サイズを最適化

結論

ストップ・ロストとテイク・プロフィートのメカニズムは,リスクを制御し,利益をロックするのに役立ちます.引き下げは管理可能であり,長期保有に適しています. パラメータは,改善されたパフォーマンスのために変化する市場状況に応じて最適化することができます.


/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-25 00:00:00
period: 15m
basePeriod: 5m
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/
// © brodieCoinrule

//@version=4
strategy(shorttitle='Oversold RSI with tight SL',title='Oversold RSI with tight SL Strategy (by Coinrule)', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 50, commission_type=strategy.commission.percent, commission_value=0.1)
//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       // create function "within window of time"

perc_change(lkb) =>
    overall_change = ((close[0] - close[lkb]) / close[lkb]) * 100



// RSI inputs and calculations
lengthRSI = 14
RSI = rsi(close, lengthRSI)
oversold= input(30)


//Entry 
strategy.entry(id="long", long = true, when = RSI< oversold and window())

//Exit
Stop_loss= ((input (1))/100)
Take_profit= ((input (7)/100))

longStopPrice  = strategy.position_avg_price * (1 - Stop_loss)
longTakeProfit = strategy.position_avg_price * (1 + Take_profit)

strategy.close("long", when = close < longStopPrice or close > longTakeProfit and window())



もっと