この戦略は,単純な移動平均値 (SMA) と相対強度指数 (RSI) の指標に基づいています.RSIが定義されたエントリーレベルを超え,閉値がSMAを下回ると短くなります.トレンドフォローと過買い/過売り指標を組み合わせ,中期的な時間枠で逆転の機会を把握することを目的としています.
SMA (200期) を用いて,全体的なトレンド方向を決定する.価格がSMAを下回るときにショートカットする機会を探します.
RSI (14期) を用いて過買い/過売状態を特定する.RSIが51点を超えると,売り動力が増加し,ショートに入場できる.
ショートポジションを開いた後, 最低の閉店価格でストップロスを設定します. RSI が 54 以上または 32 以下を横断した場合, 閉店します.
ストップ・ロスは3種類あります 価格ストップ,RSIストップ,利益ストップ
トレンドフォローと過剰購入/過剰販売の指標を組み合わせることで,エントリのタイミングの正確性が向上します.
トレイリングストップロスは,リアルタイム価格変動に応じて利益を保護し,固いストップロスを回避します.
RSIの双方向トリガーは 利益を固定し 過剰な引き戻し損失を防ぐのに役立ちます
固定パラメータの簡単な指標を使うことで 中期取引に簡単に実装できます
SMAとRSIのパラメータはすべての製品やタイムフレームに適合しない可能性があり,最適化が必要である.
スリップや手数料などの取引コストは無視され 実際のPnLに影響を与えます
市場規模や市場構造などの他の要因は考慮されていないため,信頼性の低い信号が生じる.
指標に過度に頼り 価格の動きを無視すると 逆転のタイミングが失われます
ストップ・ロスは比較的頑丈で 市場の大きな変化に適応できない
最適な組み合わせを見つけるため,SMA期間とRSIパラメータをテストし最適化します.
低音量で誤ったブレイクを避けるために 音量指標を追加することを検討します
MACD,ボリンジャー帯など他の指標とのテスト組み合わせ
機械学習アルゴリズムを追加して 信号の精度を向上させ 歴史的なデータで訓練します
ストップロスを最適化して 柔軟性を高め 市場の変化に適応する
単一の取引損失額を制御するためにリスク管理を追加します.
この戦略は,SMAとRSI指標の強みを統合し,いくつかの騒々しい取引機会をフィルタリングする.そのシンプルな論理は実行が簡単ですが,長期的に安定して動作するために,パラメータとルール最適化,適切なリスク管理が必要です.他の指標またはアルゴリズムと組み合わせることで,強度をさらに高めるために探求する価値もあります.
/*backtest start: 2022-10-01 00:00:00 end: 2023-10-07 00:00:00 period: 2d basePeriod: 1d 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/ // © abdllhatn //@version=5 // strategy("Alpha Short SMA and RSI Strategy", overlay=true, initial_capital=10000, default_qty_value=100) // Inputs sma_length = input(200, title="SMA Length") rsi_length = input(14, title="RSI Length") rsi_entry = input(51, title="RSI Entry Level") rsi_stop = input(54, title="RSI Stop Level") rsi_take_profit = input(32, title="RSI Take Profit Level") // Indicators sma_value = ta.sma(close, sma_length) rsi_value = ta.rsi(close, rsi_length) var float trailingStop = na var float lastLow = na // Conditions shortCondition = ta.crossover(rsi_value, rsi_entry) and close < sma_value if (shortCondition) strategy.entry("Sell", strategy.short) trailingStop := na lastLow := na if (strategy.position_size < 0) if (na(lastLow) or close < lastLow) lastLow := close trailingStop := close if not na(trailingStop) and close > trailingStop strategy.close("Sell") if (rsi_value >= rsi_stop) strategy.close("Sell") if (rsi_value <= rsi_take_profit) strategy.close("Sell") // Plot plot(sma_value, color=color.red, linewidth=2)