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

ダイナミック・ダブル・ムービング・メアワー・ブレークスルー・トレーディング・システム

作者: リン・ハーンチャオチャン,日付: 2024-12-05 16:22:32
タグ:エイマSMAクロス

img

概要

これは,ダブル・ムービング・平均クロスオーバーに基づいた自動化された取引戦略システムである.このシステムは,クロスオーバーを通じて取引シグナルを生成し,コアインジケーターとして9期と21期指数関数移動平均 (EMA) を利用している.ストップ・ロストとテイク・プロフィート管理を組み込み,取引シグナルと主要な価格レベルを表示するビジュアルインターフェースを併用している.

戦略原則

この戦略は,取引システムを構築するために,高速EMA (9期) と遅いEMA (21期) を採用している.高速EMAが遅いEMAを超えると長信号が生成され,高速EMAが遅いEMAを下回ると短信号が発生する.システムは,各取引の事前設定のパーセントに基づいて自動でストップ・ロストとテイク・プロフィートレベルを設定する.ポジションサイジングは,口座資本の100%にデフォルトして,パーセントベースのアプローチを使用する.

戦略 の 利点

  1. 明確なシグナル: 移動平均のクロスオーバーを,明白で理解しやすい取引信号として使用します.
  2. リスク管理: すべての取引のためのストップ・ロストとテイク・プロフィート管理システム
  3. ビジュアルサポート: 入場時間,価格,ストップ・ロスト,およびテイク・プロフィートのレベルを表示する商標表示を提供します.
  4. 柔軟なパラメータ: EMA 期間とリスク管理パラメータを異なる市場状況に適応するように調整することができます.
  5. コンプリート エクジット メカニズム: ポジションのオフセットを避けるために,反対の信号でポジションを自動的に閉じる

戦略リスク

  1. 市場変動リスク:横向市場で頻繁に誤ったブレイクシグナルを生成し,連続した損失を引き起こす可能性があります.
  2. スリップリスク:高波動期間に実際の実行価格が意図された水準から逸脱する可能性があります.
  3. ポジションサイズリスク: 既定の100%の株式配分は,口座を過度のリスクにさらす可能性があります.
  4. シグナル遅延: EMA は本質的に価格の動きを遅らせ,最適なエントリーポイントを逃す可能性があり,または退出が遅れる可能性があります.
  5. 単一指標依存性: 移動平均のクロスオーバーだけに依存することは,他の重要な市場情報を無視する可能性があります.

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

  1. トレンド 確認 を 追加 する: 偽信号 を フィルタリング する ため に ADX や トレンド 強度 指標 を 組み込む こと を 考え て ください.
  2. 資金管理を改善する: 市場の変動に基づいて動的ポジションサイズを追加する
  3. ストップ・ロスの強化メカニズム: 利益のよりよい保護のために,トラッキング・ストップの実施を検討
  4. 市場環境のフィルタリング: 不利な条件で取引を停止するために波動性指標を追加
  5. シグナル確認を最適化する: 音量確認や補完的な技術指標を追加することを検討する

概要

これは,よく設計された,論理的に健全な移動平均クロスオーバー戦略システムである. EMAクロスオーバー信号とリスク管理メカニズムを組み合わせることで,戦略はトレンド市場で利益を得ることができる.固有のリスクが存在する一方で,提案された最適化は戦略の安定性と信頼性をさらに高めることができる.この戦略は,特に中長期のトレンドを追跡するのに適しており,患者トレーダーにとって堅牢な選択である.


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

//@version=5
//
//  ██╗         █████╗         ██████╗     ██████╗     ██╗   ██╗    ██╗
//  ██║        ██╔══██╗       ██╔═══██╗    ██╔══██╗    ██║   ██║    ██║
//  ██║        ███████║       ██║   ██║    ██║  ██║    ██║   ██║    ██║
//  ██║        ██╔══██║       ██║   ██║    ██║  ██║    ██║   ██║    ██║
//  ███████╗   ██║  ██║       ╚██████╔╝    ██████╔╝    ╚██████╔╝    ██║
//  ╚══════╝   ╚═╝  ╚═╝        ╚═════╝     ╚═════╝      ╚═════╝     ╚═╝
//
//  BTC-EMA做多策略(5分钟确认版) - 作者:LAODUI
//  版本:2.0
//  最后更新:2024
// ═══════════════════════════════════════════════════════════════════════════

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, "显示标签", group="显示设置")
var stopLossPercent = input.float(5.0, "止损百分比", minval=0.1, maxval=20.0, step=0.1, group="风险管理")
var takeProfitPercent = input.float(10.0, "止盈百分比", step=0.1, group="风险管理")

// EMA参数设置
var emaFastLength = input.int(9, "快速EMA周期", minval=1, maxval=200, group="EMA设置")
var emaSlowLength = input.int(21, "慢速EMA周期", minval=1, maxval=200, group="EMA设置")

// 计算EMA
ema_fast = ta.ema(close, emaFastLength)
ema_slow = ta.ema(close, emaSlowLength)

// 绘制EMA线
plot(ema_fast, "快速EMA", color=color.blue, linewidth=2)
plot(ema_slow, "慢速EMA", color=color.red, linewidth=2)

// 检测交叉
crossOver = ta.crossover(ema_fast, ema_slow)  
crossUnder = ta.crossunder(ema_fast, ema_slow)

// 格式化时间显示 (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 + "\n入场价: " + str.tostring(close) + "\n止损价: " + str.tostring(longStopLoss) + "\n止盈价: " + str.tostring(longTakeProfit), 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 + "\n入场价: " + str.tostring(close) + "\n止损价: " + str.tostring(shortStopLoss) + "\n止盈价: " + str.tostring(shortTakeProfit), 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) 

関連性

もっと