Sumber dimuat naik... memuat...

Strategi Model Pengoptimuman Trend Fusi ATR

Penulis:ChaoZhang, Tarikh: 2024-11-28 17:06:21
Tag:ATRSMATPBPTRSL

img

Ringkasan

Strategi ini adalah sistem trend berikut yang maju berdasarkan purata tertimbang ATR dan Fibonacci. Ia menggabungkan analisis turun naik dalam pelbagai jangka masa dengan purata tertimbang Fibonacci untuk mewujudkan model perdagangan yang responsif dan adaptif. Kekuatan terasnya terletak pada peruntukan berat dinamik untuk menangkap trend yang lebih baik dan mengambil keuntungan yang tepat menggunakan ATR.

Prinsip Strategi

Strategi ini menggunakan pendekatan penunjuk teknikal berlapis-lapis: Ia mula-mula mengira Julat Benar (TR) dan Tekanan Beli (BP), kemudian mengira nisbah tekanan berdasarkan tempoh urutan Fibonacci (8,13,21,34,55). Berat yang berbeza (5,4,3,2,1) digunakan pada tempoh yang berbeza untuk membina purata tertimbang, yang lebih dilancarkan oleh SMA 3 tempoh. Isyarat perdagangan dipicu oleh silang SMA dengan ambang yang telah ditetapkan (58.0 dan 42.0), dan mekanisme mengambil keuntungan empat langkah direka menggunakan ATR.

Kelebihan Strategi

  1. Analisis pelbagai dimensi: Menggabungkan data dari pelbagai jangka masa untuk perspektif pasaran yang komprehensif
  2. Penyesuaian dinamik: Penyesuaian kepada turun naik pasaran melalui ATR, meningkatkan kestabilan strategi
  3. Mengambil keuntungan pintar: Mekanisme keuntungan empat langkah menyesuaikan dengan fleksibel dengan keadaan pasaran yang berbeza
  4. Risiko terkawal: Syarat kemasukan dan keluar yang jelas mengurangkan risiko penilaian subjektif
  5. Operasi yang sistematik: Logik strategi yang jelas, mudah diukur dan backtest

Risiko Strategi

  1. Sensitiviti parameter: Pelbagai ambang dan parameter berat memerlukan penyesuaian yang teliti
  2. Risiko kelewatan: Penghapusan SMA boleh menyebabkan kelewatan isyarat
  3. Kebergantungan persekitaran pasaran: Boleh menghasilkan isyarat palsu di pasaran yang berbeza
  4. Pemasangan parameter: Parameter memerlukan pengoptimuman untuk keadaan pasaran yang berbeza Penyelesaian: Cadangkan pengoptimuman parameter yang menyeluruh dan pengujian semula, dengan penyesuaian parameter dinamik untuk fasa pasaran yang berbeza.

Arahan Pengoptimuman Strategi

  1. Penyesuaian parameter: Membangunkan mekanisme penyesuaian parameter adaptif
  2. Penapisan pasaran: Tambah modul pengiktirafan persekitaran pasaran
  3. Pengoptimuman isyarat: Memperkenalkan penunjuk pengesahan tambahan
  4. Peningkatan kawalan risiko: Tambahkan pengendalian stop-loss dan kedudukan dinamik
  5. Kawalan pengambilan: Melaksanakan had pengambilan maksimum

Ringkasan

Strategi ini mengintegrasikan purata tertimbang ATR dan Fibonacci untuk membina sistem trend berikut yang komprehensif. Kekuatannya terletak pada analisis berbilang dimensi dan keupayaan penyesuaian dinamik, sementara perhatian mesti diberikan kepada pengoptimuman parameter dan penapisan persekitaran pasaran. Melalui pengoptimuman berterusan dan peningkatan kawalan risiko, strategi dapat mengekalkan prestasi yang stabil dalam keadaan pasaran yang berbeza.


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

// This Pine Scriptâ„¢ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © PresentTrading

// The Fibonacci ATR Fusion Strategy is an advanced trading methodology that uniquely integrates Fibonacci-based weighted averages with the Average True Range (ATR) to 
// identify and exploit significant market trends. Unlike traditional strategies that rely on single indicators or fixed parameters, this approach leverages multiple timeframes and 
// dynamic volatility measurements to enhance accuracy and adaptability. 

//@version=5
strategy("Fibonacci ATR Fusion - Strategy [presentTrading]", overlay=false, precision=3, commission_value= 0.1, commission_type=strategy.commission.percent, slippage= 1, currency=currency.USD, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, initial_capital=10000)

// Calculate True High and True Low
tradingDirection = input.string(title="Trading Direction", defval="Both", options=["Long", "Short", "Both"])

// Trading Condition Thresholds
long_entry_threshold = input.float(58.0, title="Long Entry Threshold")
short_entry_threshold = input.float(42.0, title="Short Entry Threshold")
long_exit_threshold = input.float(42.0, title="Long Exit Threshold")
short_exit_threshold = input.float(58.0, title="Short Exit Threshold")

// Enable or Disable 4-Step Take Profit
useTakeProfit = input.bool(false, title="Enable 4-Step Take Profit")

// Take Profit Levels (as multiples of ATR)
tp1ATR = input.float(3.0, title="Take Profit Level 1 ATR Multiplier")
tp2ATR = input.float(8.0, title="Take Profit Level 2 ATR Multiplier")
tp3ATR = input.float(14.0, title="Take Profit Level 3 ATR Multiplier")

// Take Profit Percentages
tp1_percent = input.float(12.0, title="TP Level 1 Percentage", minval=0.0, maxval=100.0)
tp2_percent = input.float(12.0, title="TP Level 2 Percentage", minval=0.0, maxval=100.0)
tp3_percent = input.float(12.0, title="TP Level 3 Percentage", minval=0.0, maxval=100.0)

true_low = math.min(low, close[1])
true_high = math.max(high, close[1])

// Calculate True Range
true_range = true_high - true_low

// Calculate BP (Buying Pressure)
bp = close - true_low

// Calculate ratios for different periods
calc_ratio(len) =>
    sum_bp = math.sum(bp, len)
    sum_tr = math.sum(true_range, len)
    100 * sum_bp / sum_tr

// Calculate weighted average of different timeframes
weighted_avg = (5 * calc_ratio(8) + 4 * calc_ratio(13) + 3 * calc_ratio(21) + 2 * calc_ratio(34) + calc_ratio(55)) / (5 + 4 + 3 + 2 + 1)
weighted_avg_sma = ta.sma(weighted_avg,3)

// Plot the indicator
plot(weighted_avg, "Fibonacci ATR", color=color.blue, linewidth=2)
plot(weighted_avg_sma, "SMA Fibonacci ATR", color=color.yellow, linewidth=2)

// Define trading conditions
longCondition = ta.crossover(weighted_avg_sma, long_entry_threshold)  // Enter long when weighted average crosses above threshold
shortCondition = ta.crossunder(weighted_avg_sma, short_entry_threshold) // Enter short when weighted average crosses below threshold
longExit = ta.crossunder(weighted_avg_sma, long_exit_threshold)
shortExit = ta.crossover(weighted_avg_sma, short_exit_threshold)


atrPeriod = 14
atrValue = ta.atr(atrPeriod)

if (tradingDirection == "Long" or tradingDirection == "Both")
    if (longCondition)
        strategy.entry("Long", strategy.long)
        // Set Take Profit levels for Long positions
        if useTakeProfit
            tpPrice1 = strategy.position_avg_price + tp1ATR * atrValue
            tpPrice2 = strategy.position_avg_price + tp2ATR * atrValue
            tpPrice3 = strategy.position_avg_price + tp3ATR * atrValue
            // Close partial positions at each Take Profit level
            strategy.exit("TP1 Long", from_entry="Long", qty_percent=tp1_percent, limit=tpPrice1)
            strategy.exit("TP2 Long", from_entry="Long", qty_percent=tp2_percent, limit=tpPrice2)
            strategy.exit("TP3 Long", from_entry="Long", qty_percent=tp3_percent, limit=tpPrice3)
    if (longExit)
        strategy.close("Long")

if (tradingDirection == "Short" or tradingDirection == "Both")
    if (shortCondition)
        strategy.entry("Short", strategy.short)
        // Set Take Profit levels for Short positions
        if useTakeProfit
            tpPrice1 = strategy.position_avg_price - tp1ATR * atrValue
            tpPrice2 = strategy.position_avg_price - tp2ATR * atrValue
            tpPrice3 = strategy.position_avg_price - tp3ATR * atrValue
            // Close partial positions at each Take Profit level
            strategy.exit("TP1 Short", from_entry="Short", qty_percent=tp1_percent, limit=tpPrice1)
            strategy.exit("TP2 Short", from_entry="Short", qty_percent=tp2_percent, limit=tpPrice2)
            strategy.exit("TP3 Short", from_entry="Short", qty_percent=tp3_percent, limit=tpPrice3)
    if (shortExit)
        strategy.close("Short")

Berkaitan

Lebih lanjut