これは,移動平均値に基づいた短期追跡戦略である.長期および短期移動平均値の黄金のクロスオーバーを買い信号,死亡クロスを販売信号として使用する.偽信号をフィルターするためにRSI指標と組み合わせると,これは高周波の日中取引に適した典型的な短期取引戦略である.
この戦略は,200期間の単純な移動平均マロングを長期線として,21期間の指数関数移動平均マショートを短期線として使用する.価格が長期線を超越し,RSIが20を下回ると購入信号を生成する.価格が短期線を下回り,RSIが80を超えると販売信号を生成する.誤った信号をフィルタリングするために,追加の基準が設定される:価格が短期線を下回り,前のバーの最低価格を超えるとのみロングポジションが閉鎖される.価格が短期線上,以前のバーの最高価格を下回る場合にのみショートポジションが閉鎖される.
ストップ・ロスは1%,テイク・プロフィートは1%.つまり,ロングポジションのストップ・ロスはエントリー価格の99%,テイク・プロフィートはエントリー価格の101%に設定されている.ショートポジションは逆である.これはすべての取引に対して厳格なリスク管理を保証する.
この戦略の最大の利点は,短期追跡能力にある.移動平均の黄金/死亡クロス組み合わせは,短期的なトレンド変化を特定するための効果的な技術指標であることが証明されている.RSIの極端値フィルタリングと組み合わせると,短期的な逆転機会を効果的に検出し,ポジションを迅速に調整することができます.そのような高周波戦略は,短期的な価格変動を完全に把握し,利益を実現することができます.
また,ストップ・ロスは,ストラテジーに設定された厳格なストップ・ロスのメカニズムである.ストップ・ロスは,ロングまたはショートであっても,エントリー/エグジット価格より1%低く設定され,損失拡大を防ぐために迅速なストップ・ロスを可能にします.同様に,利益を取ることは,利益を得た後にタイムリーに利益を得るために1%に設定されます.
この戦略の最大のリスクは,過剰な取引につながる可能性があることである.価格が移動平均値に近い振動をすると,しばしば開店と閉店を誘発する傾向があり,これはキャリーコストと取引手数料の制御に有利ではない.この場合,不必要な取引を減らすために指標パラメータの適切な緩和が必要です.
また,リスクは移動平均値の誤ったシグナルにある.価格が急激な変動を経験すると,実際のトレンドは変化しないかもしれないが,移動平均値は依然として間違ったシグナルを与える可能性がある.これは,RSIの極端値フィルタリングを頼りにして上下を追いかけるのを避ける必要があるときである.RSIパラメータは,フィルタリングをより厳格にするためにテストおよび最適化することができる.
戦略の次の側面はさらに最適化できる:
フィルタリングのための他の指標,例えばKD,MACDなどを追加し,複数の指標に基づいて実際の市場傾向を決定し,誤った信号を避ける.
移動平均のパラメータを最適化するために,異なるサイクルパラメータを性能に影響のためにテストする.
ストップ損失を最適化し,ストップ損失範囲を適切に拡大し,ストップアウトの可能性を減らすために利益参数を取ります.
トレーディングセッションフィルターを追加して,アクティブ・トレード・時間のみでポジションを取ることで,一夜間のリスクを最小限に抑える.
日中のサイクルと空の倉庫フィルターを追加して,不要な取引頻度とコストを削減します.
概要すると,これは典型的な短期追跡戦略である.短期間のトレンドを決定するために移動平均の黄金/死亡クロス組み合わせを使用し,誤ったシグナルをフィルタリングするためにRSIインジケーターを補完する.この戦略は,短期間の価格変動を完全に把握できる高周波のイントラデイ取引の利点があります.しかし,誤ったシグナルや過剰な取引のリスクもあります.パラメータ最適化やより多くの指標を統合することで,戦略の安定した収益性を高めるためにさらなる改善ができます.
/*backtest start: 2024-01-27 00:00:00 end: 2024-02-26 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("simple pull back", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // Input values malongperiod = input.int(200, "Long Term SMA Period", group="Parameters") mashortperiod = input.int(21, "Short Term SMA Period", group="Parameters") stoprate = 1 // Set the stop loss percentage to 1% profit = input.int(1, "Take Profit Percentage", group="Parameters") // Change the take profit percentage to 1% startday = input(title="Start Trade Day", defval=timestamp("01 Jan 2000 13:30 +0000"), group="Period") endday = input(title="End Trade Day", defval=timestamp("1 Jan 2099 19:30 +0000"), group="Period") // Plotting indicators malong = ta.sma(close, malongperiod) mashort = ta.ema(close, mashortperiod) plot(malong, color=color.aqua, linewidth=2) plot(mashort, color=color.yellow, linewidth=2) // Date range datefilter = true // Long entry condition if close > malong and close < mashort and strategy.position_size == 0 and datefilter and ta.rsi(close, 3) < 20 strategy.entry("Long", strategy.long) // Short entry condition if close < malong and close > mashort and strategy.position_size == 0 and datefilter and ta.rsi(close, 3) > 80 strategy.entry("Short", strategy.short) // Exit conditions with 1% stop loss and 1% take profit strategy.exit("Cut", "Long", stop=(1 - 0.01 * stoprate) * strategy.position_avg_price, limit=(1 + 0.01 * profit) * strategy.position_avg_price) if close > mashort and close < low[1] and strategy.position_size > 0 strategy.close("Long") if close < mashort and close > high[1] and strategy.position_size < 0 strategy.close("Short")