この戦略は,ビットコインの移動平均線のクロスオーバー原理に基づいて設計されたトレンドフォロートレード戦略である.この戦略は,高速移動平均線と遅い移動平均線のクロスオーバーを買い売り信号として使用する.高速移動平均線がスロームービング平均線を越えると,それは黄金十字とみなされ,長くなってしまう.高速移動平均線がスロームービング平均線を下回ると,それは死亡十字とみなされ,短くなってしまう.同時に,この戦略は無謀なエントリーを避けるためにRSI指標も組み込む.
この戦略は主に2つの指標に基づいています.
移動平均 (MA): 価格動向と逆転信号を決定するために,一定の期間における平均閉店価格を計算する.
相対強度指数 (RSI): 値上がりや下落の速度を計算し,過買い・過売を判断する.
具体的には,この戦略は,短めのMAを高速線と,より長いMAをスローラインとして使用する.高速線がスローラインを超えると,短期間の価格上昇が加速し,購入信号が生成される.高速線がスローラインを下回ると,短期間の価格下落が加速し,販売信号が生成される.
同時に,この戦略はRSIの
この戦略には以下の利点があります.
この戦略にはいくつかのリスクもあります:
リスクを軽減するために,移動平均期間のパラメータを最適化し,ストップ損失ポジションを調整し,ポジションサイズを適切に縮小することが推奨されます.主要な根本的な変化が発生した場合,戦略は中止されるべきです.
この戦略の主要な最適化方向は以下の通りである.
移動平均周期パラメータを最適化して,インクリメント検索や遺伝アルゴリズムなどで最適なパラメータの組み合わせを見つけます
KDJ,MACDなどのフィルタリングのための他の技術指標を増加させ,取引信号の質を向上させる.
価格変動を監視し,それに応じてポジションを調整し,ストップ・ロスをします
偽のブレイクを避けるため,取引量が増加するときにのみシグナルを発信します.
パラメータの自己適応メカニズムを開発し,異なる市場環境に基づいてパラメータ値を自動的に調整する戦略を可能にします.
概要すると,これは典型的なトレンドフォロー戦略である.移動平均クロスオーバーの原則に基づいて,取引論理はシンプルで明確で,理解し,実装しやすい.RSIインジケーターを組み込むことで不合理な取引を避けることができます.この戦略はリスクと報酬の両方を伴うため,いくつかの量子取引経験を持つ投資家には適しています.しかし,潜在的な損失リスクに対して注意する必要があります.開発者がより多くのフィルターを追加し,パラメータ適応性を最適化できれば,戦略の安定した収益性をさらに向上させることができます.
/*backtest start: 2023-11-03 00:00:00 end: 2023-12-03 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //Trading Strategy Warning - Past performance may not equal future performance //Account Size Warning - Performance based upon default 10% risk per trade, of account size $100,000. Adjust before you trade to see your own drawdown. //Time Frame - D1 and H4, warning H4 has a lower profit factor (fake-outs, and account drawdown), D1 recommended //Trend Following System - Profitability of this system is dependent on a STRONG trend in Bitcoin, into the future strategy("Bitcoin - MA Crossover Strategy", overlay=true) // User Input usr_risk = input(title="Equity Risk (%)",type=input.integer,minval=1,maxval=100,step=1,defval=10,confirm=false) sma_fast = input(title="Fast MA (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=20,confirm=false) sma_slow = input(title="Slow MA (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=40,confirm=false) rsi_valu = input(title="RSI (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=14,confirm=false) // Create Indicator's shortSMA = sma(close, sma_fast) longSMA = sma(close, sma_slow) rsi = rsi(close, rsi_valu) strategy.initial_capital = 50000 // Units to buy amount = usr_risk / 100 * (strategy.initial_capital + strategy.netprofit) units = floor(amount / close) // Specify entry conditions longEntry = crossover(shortSMA, longSMA) shortEntry = crossunder(shortSMA, longSMA) // Specify exit conditions longExit = crossunder(shortSMA, longSMA) shortExit = crossover(shortSMA, longSMA) // Execute long trade if (longEntry) strategy.entry("long", strategy.long, units, when = rsi > 50) // Exit long trade if(longExit and strategy.position_size > 0) strategy.order("exit long", strategy.short, abs(strategy.position_size)) // Execute short trade if (shortEntry) strategy.entry("short", strategy.short, units, when = rsi < 50) // Exit short trade if(shortExit and strategy.position_size < 0) strategy.order("exit short", strategy.long, abs(strategy.position_size)) // Plot Moving Average's to chart plot(shortSMA) plot(longSMA, color=color.black)