この戦略は,価格動向を追跡するためにEMAクロスオーバーを採用する.速いEMAが遅いEMAを超えると長引く.速いEMAが遅いEMAを下回るとポジションを閉じる.主に明らかなトレンドを持つ製品に適しており,効果的にトレンドをフォローし,過剰なリターンを得る.
この戦略の核心指標は EMA です.EMAの公式は以下の通りです.
EMA (t) =C (t) ×2/ (n+1) +EMA (t-1) × (n-1) / (n+1)
EMAは,重度の要素を持つ移動平均技術であり,最近の価格により重みを割り当て,最新の価格変化により速く反応する.
この戦略は,速いEMAと遅いEMAを構成し,スローEMAの上のEMAの速いクロスリングを購入信号として,そしてスローEMAの下のEMAの速いクロスリングを販売信号として採用する.上記のEMAの速いクロスリングは,新たな上昇ラウンドの開始を示し,下のEMAの速いクロスリングは,上昇傾向の終わりと引き下がりの開始を示します.
この戦略の利点は次のとおりです.
主なリスクは以下のとおりです.
上記のリスクを軽減するために,以下の最適化措置が可:
戦略は以下の側面から最適化できます.
概要すると,これは価格傾向を判断するためにEMAを使用するシンプルで実践的なトレンドフォロー戦略である.論理は明確で実行が簡単である.メリットはパラメータを調整し,トレンドを効果的にフォローするシンプルさにある.デメリットは,誤った信号になりやすいし,実際のパフォーマンスはバックテストに劣る可能性があります.最適化の次のステップは,フィルター,ダイナミックパラメータ,モデル構築を追加することで戦略をより堅牢にすることができます.
/*backtest start: 2022-12-20 00:00:00 end: 2023-12-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("EMA交叉策略by GPT", format = format.inherit, overlay = true, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, currency = currency.USD, initial_capital = 1000000) // 定義回測交易開始和結束時間的變數 start_time = input(title="開始時間", type=input.time, defval=timestamp("01 Jan 2020 00:00 +0000")) end_time = input(title="結束時間", type=input.time, defval=timestamp("31 Dec 2050 23:59 +0000")) // 判斷是否在回測交易時間範圍內 in_range = true // Define input variables fast_length = input(title="Fast EMA Length", type=input.integer, defval=5) slow_length = input(title="Slow EMA Length", type=input.integer, defval=20) // Define EMAs fast_ema = ema(close, fast_length) slow_ema = ema(close, slow_length) // Define buy and sell signals buy_signal = crossover(fast_ema, slow_ema) sell_signal = crossunder(fast_ema, slow_ema) // Buy signal if in_range and buy_signal strategy.entry("Buy", strategy.long, when=in_range) // Sell signal if in_range and sell_signal strategy.close("Buy", when=sell_signal)