この戦略は,トレンド決定と取引決定のための二重移動平均システムを採用し,トレンド開始,継続,または終了を特定する特定の時間点における高速および遅い指数的な移動平均 (EMA) の相対位置を利用する.この戦略は,毎日の固定時間に高速および遅いEMAの関係をチェックし,高速線がスローラインの上にあり,低線が下にあるとき,ロングポジションを確立する.
戦略の核心は,トレンド決定のための異なる期間を持つ2つのEMAに基づいている.高速EMA (デフォルト期間10) は価格変化により敏感で,市場の動きを迅速に把握することができる.遅いEMA (デフォルト期間50) は長期的な傾向を反映する.戦略は,各取引日の指定された時間 (デフォルト9時00分) に,これらの2つのライン間のポジション関係を確認し,EMAクロスオーバー信号を使用して市場のトレンド方向を決定し,取引を実行する.高速EMAが緩やかなEMAを超越すると,上昇勢力の強化を示し,高速EMAが緩やかなEMAを超越すると,低位ポジションが入力される.
この戦略は,デュアルEMAシステムと固定時間チェックメカニズムを組み合わせて,シンプルで効果的なトレンドフォローリングシステムを達成する.その強みは明確な論理と高度な自動化にあるが,移動平均遅延と固定エントリータイムからの制限に直面している.追加の技術指標の導入,パラメータ選択メカニズムの最適化,および強化されたリスク管理措置を通じて,改善の余地が依然としてある.全体的に,これは具体的な要件に応じてさらに精製および最適化できる実践的な基本戦略フレームワークを表す.
/*backtest start: 2024-12-06 00:00:00 end: 2025-01-04 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Daily EMA Comparison Strategy", shorttitle="Daily EMA cros Comparison", overlay=true) //------------------------------------------------------------------------------ // Inputs //------------------------------------------------------------------------------ fastEmaLength = input.int(10, title="Fast EMA Length", minval=1) // Fast EMA period slowEmaLength = input.int(50, title="Slow EMA Length", minval=1) // Slow EMA period checkHour = input.int(9, title="Check Hour (24h format)", minval=0, maxval=23) // Hour to check checkMinute = input.int(0, title="Check Minute", minval=0, maxval=59) // Minute to check //------------------------------------------------------------------------------ // EMA Calculation //------------------------------------------------------------------------------ fastEMA = ta.ema(close, fastEmaLength) slowEMA = ta.ema(close, slowEmaLength) //------------------------------------------------------------------------------ // Time Check //------------------------------------------------------------------------------ // Get the current bar's time in the exchange's timezone currentTime = timestamp("GMT-0", year, month, dayofmonth, checkHour, checkMinute) // Check if the bar's time equals or passes the daily check time isCheckTime = (time >= currentTime and time < currentTime + 60 * 1000) // 1-minute tolerance //------------------------------------------------------------------------------ // Entry Conditions //------------------------------------------------------------------------------ // Buy if Fast EMA is above Slow EMA at the specified time buyCondition = isCheckTime and fastEMA > slowEMA // Sell if Fast EMA is below Slow EMA at the specified time sellCondition = isCheckTime and fastEMA < slowEMA //------------------------------------------------------------------------------ // Strategy Execution //------------------------------------------------------------------------------ // Enter Long if buyCondition strategy.entry("Long", strategy.long) // Enter Short if sellCondition strategy.entry("Short", strategy.short) //------------------------------------------------------------------------------ // Plot EMAs //------------------------------------------------------------------------------ plot(fastEMA, color=color.blue, title="Fast EMA") plot(slowEMA, color=color.orange, title="Slow EMA")