この戦略は,異なる期間の2つの指数関数移動平均値 (EMA) のクロスオーバー信号を使用して,市場の短期的な勢いを把握する. 速い EMAが下の方から緩い EMAを上回るとロングポジションを開く. 速い EMAが上方から緩い EMAを下回るとショートポジションを開く. ストップ・ロストとテイク・プロフィートのレベルはリスクを制御し,利益をロックするために設定されている. これはモメント効果に基づくシンプルでクラシックな短期取引戦略である.
EMAクロスオーバーモメントスカルピング戦略は,初心者が迅速に練習し,定量的な取引プロセスに慣れるのに適したシンプルで使いやすい短期間の取引戦略である.この戦略は,短期的なモメント効果を捉え,市場のトレンド方向をフォローし,リスクを制御するために固定パーセントストップ・ロストとテイク・プロフィートを設定することができる.しかし,この戦略には,頻繁な取引,低いリスク・リターン比率,遅れのトレンド認識などのリスクもあります.ストップ・ロストとテイク・プロフィートの方法を最適化し,不安定な市場条件をフィルタリングし,動的にポジションを調整し,異なる期間を組み合わせ,マクロ経済分析を統合することで,戦略のリスク・リターンと安定性を向上させる.
/*backtest start: 2023-06-08 00:00:00 end: 2024-06-13 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Scalping Strategy", overlay=true) // Parameters length_fast = input.int(9, title="Fast EMA Length", minval=1) length_slow = input.int(21, title="Slow EMA Length", minval=1) stop_loss_pct = 0.7 // Risk 0.7% of capital take_profit_pct = 0.5 // Target 0.5% of capital // Calculate EMAs ema_fast = ta.ema(close, length_fast) ema_slow = ta.ema(close, length_slow) // Plot EMAs plot(ema_fast, color=color.blue, title="Fast EMA") plot(ema_slow, color=color.red, title="Slow EMA") // Trading logic long_condition = ta.crossover(ema_fast, ema_slow) short_condition = ta.crossunder(ema_fast, ema_slow) // Calculate stop loss and take profit levels stop_loss_long = strategy.position_avg_price * (1 - stop_loss_pct / 100) take_profit_long = strategy.position_avg_price * (1 + take_profit_pct / 100) stop_loss_short = strategy.position_avg_price * (1 + stop_loss_pct / 100) take_profit_short = strategy.position_avg_price * (1 - take_profit_pct / 100) // Enter and exit trades if (long_condition) strategy.entry("Long", strategy.long) if (short_condition) strategy.entry("Short", strategy.short) // Exit long trades if (strategy.position_size > 0) strategy.exit("Take Profit Long", "Long", limit=take_profit_long) strategy.exit("Stop Loss Long", "Long", stop=stop_loss_long) // Exit short trades if (strategy.position_size < 0) strategy.exit("Take Profit Short", "Short", limit=take_profit_short) strategy.exit("Stop Loss Short", "Short", stop=stop_loss_short)