Strategi Perdagangan Pelarian Berskala


Tarikh penciptaan: 2023-10-30 17:25:17 Akhirnya diubah suai: 2023-10-30 17:25:17
Salin: 0 Bilangan klik: 630
1
fokus pada
1617
Pengikut

Strategi Perdagangan Pelarian Berskala

Gambaran keseluruhan

Strategi penembusan harga yang boleh diperluas adalah strategi penembusan yang sangat fleksibel dan boleh diperluas dengan mengenal pasti kawasan sokongan dan rintangan utama harga, menghasilkan isyarat perdagangan apabila harga menembusi kawasan ini. Strategi ini boleh digunakan untuk tempoh masa yang berbeza dengan menyesuaikan parameter, dan dengan mudah mengintegrasikan pelbagai syarat penapisan tambahan dan mekanisme pengurusan risiko untuk mengoptimumkan aset tertentu.

Prinsip Strategi

Strategi ini bermula dengan menggunakanswings()Fungsi ini mengira harga semasa berdasarkan tempoh pertimbangan balik.swingLookbackTetapan parameter, dengan lalai 20 garis K. Selepas itu, apabila harga menembusi titik tertinggi turun naik, buat lebih banyak; apabila harga jatuh ke titik rendah turun naik, buat kosong.

Logik spesifik untuk memberi isyarat lebih banyak ialah, apabila harga penutupan lebih besar daripada sama dengan harga tinggi berfluktuasi, memberi lebih banyak. Logik spesifik untuk isyarat penutupan adalah, apabila harga penutupan lebih kecil daripada sama dengan harga rendah berfluktuasi, memberi lebih banyak.

Di samping itu, strategi ini juga menetapkan stop loss, yang boleh digunakan untuk menjimatkan wang.stopTargetPercentParameter untuk menetapkan markah hentian. Contohnya, menetapkan harga hentian lebih rendah daripada 5% daripada harga tertinggi, dan menetapkan harga hentian lebih rendah daripada 5% daripada harga terendah.

Kelebihan strategi ini ialah anda dapat mengawal frekuensi perdagangan dengan menyesuaikan tempoh pertimbangan balik. Semakin pendek tempoh pertimbangan balik, lebih sensitif terhadap penembusan, frekuensi perdagangan lebih tinggi. Sebaliknya, terlalu lama tempoh pertimbangan balik, frekuensi perdagangan menurun tetapi mungkin kehilangan peluang. Oleh itu, mencari tempoh pertimbangan balik yang terbaik adalah penting untuk mengoptimumkan strategi.

Kelebihan Strategik

  • Idea yang mudah dan mudah difahami
  • Parameter pengoptimuman tempoh semak balik boleh dikawal untuk mengawal frekuensi dagangan
  • Kaedah pengurusan risiko yang mudah diintegrasikan seperti penutupan kerugian, penutupan kerugian bergerak
  • Skala yang kuat, boleh menambah pelbagai syarat penapisan untuk meningkatkan kadar keuntungan
  • Boleh digunakan dalam sebarang tempoh masa, sesuai untuk perdagangan dalam hari dan talian panjang

Risiko dan tindakan

  • Penetapan jangka masa yang terlalu pendek boleh menyebabkan perdagangan berlebihan
  • Terlalu lama untuk melihat semula mungkin kehilangan peluang perdagangan
  • Tetapan stop loss terlalu lebar boleh mengurangkan ruang keuntungan
  • Penutupan yang terlalu sempit boleh menyebabkan penutupan yang sering dicetuskan

Kaedah pencegahan:

  • Uji semula tempoh yang berbeza untuk mencari kombinasi parameter yang terbaik
  • Mengoptimumkan stop loss, mengimbangi ruang keuntungan dan kawalan risiko
  • Anda boleh menambah stop loss bergerak atau stop loss gelung untuk mengunci keuntungan.
  • Meningkatkan syarat penapisan untuk meningkatkan peluang untuk mendapatkan keuntungan

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Uji ulang parameter yang berbeza untuk mencari kombinasi parameter yang optimum;

  2. Uji kitaran dagangan yang berbeza, seperti 5 minit, 15 minit, 1 jam, dan lain-lain untuk memilih kitaran yang terbaik;

  3. Mengoptimumkan markah henti kerugian, mengimbangi ruang keuntungan dan kawalan risiko;

  4. Menambah syarat penapisan, seperti penapisan jumlah dagangan, penapisan penurunan, dan sebagainya, untuk mengurangkan isyarat yang kurang berkualiti;

  5. Mengintegrasikan lebih banyak mekanisme pengurusan risiko, seperti berhenti bergerak dan mengunci keuntungan;

  6. Pengoptimuman parameter, menggunakan pengoptimuman beransur-ansur, carian rawak dan lain-lain untuk mencari parameter yang optimum;

  7. Mengintegrasikan teknologi pembelajaran mesin, menggunakan AI untuk mengoptimumkan parameter secara automatik.

ringkaskan

Strategi perdagangan terobosan yang boleh diskalakan adalah sistem terobosan yang sangat praktikal. Ia mudah digunakan, disesuaikan, dan dapat dioptimumkan untuk aset yang berbeza dengan menyesuaikan tempoh pertimbangan balik dan mengintegrasikan pelbagai syarat penapisan.

Kod sumber strategi
/*backtest
start: 2023-09-29 00:00:00
end: 2023-10-29 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © deperp

//@version=5
// strategy("Range Breaker", overlay=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent, commission_value=0.07, pyramiding=0)

// Backtest Time Period

useDateFilter = input.bool(true, title="Begin Backtest at Start Date",
     group="Backtest Time Period")
backtestStartDate = input(timestamp("1 Jan 2020"), 
     title="Start Date", group="Backtest Time Period",
     tooltip="This start date is in the time zone of the exchange " + 
     "where the chart's instrument trades. It doesn't use the time " + 
     "zone of the chart or of your computer.")

inTradeWindow = true

swingLookback = input.int(20, title="Swing Lookback", minval=3)
stopTargetPercent = input.float(5, title="Stop Target Percentage", step=0.1)

// Calculate lockback swings
swings(len) =>
    var highIndex = bar_index
    var lowIndex = bar_index
    var swingHigh = float(na)
    var swingLow = float(na)
    
    upper = ta.highest(len)
    lower = ta.lowest(len)
    
    if high[len] > upper
        highIndex := bar_index[len]
        swingHigh := high[len]

    if low[len] < lower
        lowIndex := bar_index[len]
        swingLow := low[len]

    [swingHigh, swingLow, highIndex, lowIndex]


// Strategy logic
[swingHigh, swingLow, highIndex, lowIndex] = swings(swingLookback)
longCondition = inTradeWindow and (ta.crossover(close, swingHigh))
shortCondition = inTradeWindow and (ta.crossunder(close, swingLow))

if longCondition
    strategy.entry("Long", strategy.long)
if shortCondition
    strategy.entry("Short", strategy.short)

longStopTarget = close * (1 + stopTargetPercent / 100)
shortStopTarget = close * (1 - stopTargetPercent / 100)

strategy.exit("Long Stop Target", "Long", limit=longStopTarget)
strategy.exit("Short Stop Target", "Short", limit=shortStopTarget)

// Plot break lines
// line.new(x1=highIndex, y1=swingHigh, x2=bar_index, y2=swingHigh, color=color.rgb(255, 82, 82, 48), width=3, xloc=xloc.bar_index, extend=extend.right)
// line.new(x1=lowIndex, y1=swingLow, x2=bar_index, y2=swingLow, color=color.rgb(76, 175, 79, 47), width=3, xloc=xloc.bar_index, extend=extend.right)


// Alert conditions for entry and exit
longEntryCondition = inTradeWindow and (ta.crossover(close, swingHigh))
shortEntryCondition = inTradeWindow and (ta.crossunder(close, swingLow))

longExitCondition = close >= longStopTarget
shortExitCondition = close <= shortStopTarget

alertcondition(longEntryCondition, title="Long Entry Alert", message="Enter Long Position")
alertcondition(shortEntryCondition, title="Short Entry Alert", message="Enter Short Position")
alertcondition(longExitCondition, title="Long Exit Alert", message="Exit Long Position")
alertcondition(shortExitCondition, title="Short Exit Alert", message="Exit Short Position")