この戦略は,移動平均値 (EMA),相対強度指数 (RSI),移動平均収束差差 (MACD) を組み合わせて,複数のタイムフレームにわたる取引機会を見つけ,自動取引を可能にします. 市場動向を効果的に追跡し,取引リスクを軽減することができます.
この戦略は主にEMA,RSIおよびMACD指標に基づいています.取引論理は以下のとおりです.
25日間の EMA と 45日間の EMA を使って,金色のクロスと死のクロスを取引信号として形成します.短期間の EMA が長期間の EMA を越えると購入し,短期間の EMA が長期間の EMA を越えると販売します.
誤ったブレイクを避けるために,RSIインジケーターを組み込む.RSIが50を超えると金色のクロスから購入信号のみを受け取り,RSIが50未満の場合,死亡クロスから販売信号のみを受け取ります.
RSI>30,RSI<30などを含む異なるRSIパラメータ設定でより多くの取引機会を見つけます.
MACD指標は,EMA取引信号の確認のための補助的な判断ツールとして使用できます.
異なる時間枠でより多くの取引機会を見つけることで,戦略の収益性が向上できます.一方,複数の指標の統合は,誤った取引を削減し,リスクを効果的に制御するのに役立ちます.
この戦略の最大の強みは,複数の指標とタイムフレーム間の取引の組み合わせにあります.これは,取引の勝利の確率を向上させます.主な利点は以下の通りです.
EMAの交差点は,市場の動向変化を効果的に追跡し,取引機会を適時に把握することができます.
RSIインジケーターは,偽のブレイクを回避し,取引リスクを減らすのに役立ちます.
異なるRSIパラメータの設定によるより多くのエントリー機会が収益性を向上させる.
MACDは,リスクをさらに減らすため,EMA信号の二次確認を提供します.
多期取引は 利益を得る機会を倍にする
この戦略にはいくつかのリスクもあります:
短期間の取引機会を逃す可能性があります.
多指標コンボのパラメータの調節が不適切であれば,過度に最適化される可能性があります.
多期取引は損失を複合させる可能性があるため,厳格なストップ損失管理が必要です.
トランザクションコストは,過剰な取引を避けるために,ライブ・トレード環境で監視する必要がある.
戦略をさらに最適化できる余地があります.
EMAのパラメータをテストして最適化します
BOLL バンド,KD などなどの補助指標をテストします.
市場変動に基づく適応型ストップロスのメカニズムを組み込む.
異なるパラメータ設定で位置サイズを最適化します.
入力ロジックを改良し,矛盾する信号を排除したり,フィルタリング力を増やしたりする.
この戦略は,指標や時間枠にわたるシグナルを統合し,トレンドを追跡し,短期間の機会を把握することができます.一方,厳格なエントリーメカニズムは,戦略に適切なリスク管理能力も備えています.一般的に,これは安定したリターンと実用的な価値のある戦略であり,推奨に値します.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Aqualizer //@version=5 strategy("Aserin Buy and Sell", overlay=true) shortSMA = ta.sma(close, 25) longSMA = ta.sma(close, 45) rsi = ta.rsi(close, 7) ta.macd(close,12, 26, 9) atr = ta.atr(3) longCondition = ta.crossover(shortSMA, longSMA) shortCondition = ta.crossunder(shortSMA, longSMA) if (longCondition) strategy.entry("long", strategy.long, 100, when = rsi > 50) if (shortCondition) strategy.entry("short", strategy.short, 100, when = rsi < 50) if (longCondition) strategy.entry("long", strategy.long, 100, when = rsi > 30) if (shortCondition) strategy.entry("short", strategy.short, 100, when = rsi < 30) if (longCondition) strategy.entry("long", strategy.long, 100, when = rsi > 20) if (shortCondition) strategy.entry("short", strategy.short, 100, when = rsi < 50) plot(shortSMA) plot(longSMA, color=color.black) if (longCondition) stopLoss = low - atr * 2,45 takeProfit = high + atr * 2,45 strategy.entry("long", strategy.long, 1, when = rsi > 30) strategy.exit("exit", "long", stop=stopLoss, limit=takeProfit) if (shortCondition) stopLoss = high + atr * 3 takeProfit = low - atr * 3 strategy.entry("short", strategy.short, 1, when = rsi < 30) strategy.exit("exit", "short", stop=stopLoss, limit=takeProfit) plot(shortSMA) plot(longSMA, color=color.black)