資源の読み込みに... 荷物...

ダイナミックストップ・ロストとテイク・プロフィート戦略を持つダブル・EMAインジケーター・スマート・クロシング・トレーディング・システム

作者: リン・ハーンチャオチャン開催日:2024年11月29日 16:33:21
タグ:エイママックドSMARSICCIATR

img

概要

この戦略は,2つの移動平均クロスオーバーをベースとしたインテリジェントな取引システムで,コア指標として9期と21期指数的な移動平均 (EMA) を利用している.この戦略はダイナミックなストップ・ロストとテイク・プロフィートメカニズムを組み込み,リアルタイムでEMAクロスオーバー信号を監視することによって自動的に取引オーダーを実行している.このシステムはパーセントベースのトレーリングストップと固定比率のテイク・プロフィートレベルを採用し,取引の安全性と利益の可能性の両方を保証している.

戦略の原則

基本論理は,高速EMA (9期) と遅いEMA (21期) の間のクロスオーバー関係に基づいて動作する.高速EMAがスローEMAを超えると,システムは上昇信号を認識し,自動的にすべてのショートポジションを閉じてロングポジションを開く.高速EMAがスローEMAを下回ると,システムは下落信号を識別し,すべてのロングポジションを閉じてショートポジションを開く.さらに,システムはダイナミックなストップ・ロストとテイク・プロフィートメカニズムを実装する.ロングポジションでは,ストップ・ロスはエントリー価格を下回5%とテイク・プロフィートは上回10%;ショートポジションでは,ストップ・ロスはエントリー価格を下回5%とテイク・プロフィートは上回10%と設定される.

戦略 の 利点

  1. 科学指標の選択: EMAは市場の変化により敏感に反応し,市場の動向を効果的に把握する
  2. 全面的なストップ・ロスト・テイク・プロフィート・メカニズム: パーセントベースの設定により,異なる市場状況に柔軟に調整できます
  3. 高度な自動化: 信号検出から取引実行まで完全に自動化され,人間の介入を最小限に抑える
  4. 効果的なリスク管理:各取引に対して明確なストップ・ロストとテイク・プロフィートレベル
  5. 明確なコード構造: 標準化された変数命名と論理階層,保守と最適化を容易にする

戦略リスク

  1. 横向的な市場リスク: 市場範囲で頻繁にクロスオーバー信号が発生し,過剰な取引につながる可能性があります.
  2. 格差リスク:高波動時の理論的価格と実際の実行価格の潜在的な格差
  3. 資金管理リスク: 固定比率のポジションサイズ化には,特定の市場条件で柔軟性が欠けることがあります.
  4. システムリスク: ストップ・ロースまたはテイク・プロフィート・オーダーは,極端な市場状況下で,間に合わない場合がある.

オプティマイゼーションの方向性

  1. トレンドフィルターを導入する: ADX または ATR インディケーターを追加して,トレンド強さを評価し,変動市場での頻繁な取引を避ける
  2. ストップ・ロストとテイク・プロフィートのメカニズムを最適化:ストップ・ロストとテイク・プロフィートの距離を動的に調整するためにATRを使用することを検討する
  3. 時間フィルターを追加: 高い変動期間の回避のために,特定の取引時間制限を実施する
  4. ポジションサイズを改善する: 市場の変動に基づいてポジションサイズを動的に調整する
  5. 市場情勢指標を追加する: 取引の確認のためにRSIまたはMACDを組み込む

概要

この戦略は,完全な論理的に健全な自動取引システムを表しています. EMAクロスオーバー信号と動的なストップ・ロストとテイク・プロフィートメカニズムを組み合わせることで,トレンド市場で良好なパフォーマンスを発揮できます.しかし,ユーザーは市場の状況を監視し,それに合わせてパラメータを調整し,適切なリスク制御を維持する必要があります.継続的な最適化と精製を通じて,この戦略は安定した信頼性の高い取引ツールになる可能性があります.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-28 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA Cross Strategy", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// 添加策略参数设置
var showLabels = input.bool(true, "显示标签")
var stopLossPercent = input.float(5.0, "止损百分比", minval=0.1, maxval=20.0, step=0.1)
var takeProfitPercent = input.float(10.0, "止盈百分比", minval=0.1, maxval=50.0, step=0.1)

// 计算EMA
ema9 = ta.ema(close, 9)
ema21 = ta.ema(close, 21)

// 绘制EMA线
plot(ema9, "EMA9", color=color.blue, linewidth=2)
plot(ema21, "EMA21", color=color.red, linewidth=2)

// 检测交叉
crossOver = ta.crossover(ema9, ema21)  
crossUnder = ta.crossunder(ema9, ema21)

// 格式化时间显示 (UTC+8)
utc8Time = time + 8 * 60 * 60 * 1000
timeStr = str.format("{0,date,MM-dd HH:mm}", utc8Time)

// 计算止损止盈价格
longStopLoss = strategy.position_avg_price * (1 - stopLossPercent / 100)
longTakeProfit = strategy.position_avg_price * (1 + takeProfitPercent / 100)
shortStopLoss = strategy.position_avg_price * (1 + stopLossPercent / 100)
shortTakeProfit = strategy.position_avg_price * (1 - takeProfitPercent / 100)

// 交易逻辑
if crossOver
    if strategy.position_size < 0  // 如果持有空仓
        strategy.close("做空")     // 先平掉空仓
    strategy.entry("做多", strategy.long)  // 开多仓
    if showLabels
        label.new(bar_index, high, text="做多入场\n" + timeStr, color=color.green, textcolor=color.white, style=label.style_label_down, yloc=yloc.abovebar)

if crossUnder
    if strategy.position_size > 0  // 如果持有多仓
        strategy.close("做多")     // 先平掉多仓
    strategy.entry("做空", strategy.short)  // 开空仓
    if showLabels
        label.new(bar_index, low, text="做空入场\n" + timeStr, color=color.red, textcolor=color.white, style=label.style_label_up, yloc=yloc.belowbar)

// 设置止损止盈
if strategy.position_size > 0  // 多仓止损止盈
    strategy.exit("多仓止损止盈", "做多", stop=longStopLoss, limit=longTakeProfit)
    
if strategy.position_size < 0  // 空仓止损止盈
    strategy.exit("空仓止损止盈", "做空", stop=shortStopLoss, limit=shortTakeProfit) 

関連性

もっと