Strategi Terobosan Penyu Ganda

Penulis:ChaoZhang, Tanggal: 2023-11-28 16:25:41
Tag:

img

Gambaran umum

Strategi Double Turtle Breakthrough mengintegrasikan strategi terobosan perdagangan penyu dan prinsip stop loss bergerak Linda Raschke, dengan kinerja terobosan yang sangat baik dan kontrol risiko yang ketat. Strategi ini secara bersamaan memantau terobosan harga naik dan turun, menetapkan posisi panjang atau pendek ketika terobosan terjadi, dan menggunakan stop loss bergerak dan mengambil keuntungan bergerak untuk mengelola posisi.

Prinsip Strategi

Logika inti adalah untuk pergi pendek ketika menembus siklus kecil tinggi pada titik tinggi siklus besar, dan pergi panjang ketika menembus siklus kecil rendah pada titik rendah siklus besar. Setelah membuka posisi, mengatur stop loss bergerak dan bergerak mengambil keuntungan, pertama stop loss untuk mengkonfirmasi risiko. Ketika jumlah kepemilikan terakumulasi ke set mengambil keuntungan kuantitas, membatalkan perintah stop loss pada siklus berikutnya, kemudian keluar setengah dari posisi dan mengatur stop loss bergerak dan mengambil keuntungan bergerak untuk mengunci keuntungan dan melacak spread.

Langkah-langkah operasi spesifik adalah:

  1. Menghitung siklus besar (20 siklus) titik tinggi sebelumHigh dan siklus kecil (4 siklus) titik tinggi kecilPeriodHigh.

  2. Ketika puncak garis K terbaru lebih besar dari prevHigh, dan prevHigh lebih besar dari smallPeriodHigh, ini menunjukkan bahwa titik tinggi siklus besar melanggar titik tinggi siklus kecil.

  3. Setelah membuka posisi, atur stop loss bergerak. Tunggu posisi untuk berbalik sebelum membatalkan perintah stop loss untuk mencegah berhenti keluar.

  4. Ketika jumlah kepemilikan mencapai set bergerak mengambil siklus keuntungan nomor (saat ini 0 siklus), keluar setengah dari posisi dalam siklus berikutnya, dan mengatur stop loss bergerak dan bergerak mengambil keuntungan untuk melacak spread dan mengunci keuntungan.

  5. Untuk terobosan titik rendah, posisi panjang ditetapkan berdasarkan hubungan terobosan antara titik terendah siklus besar dan titik terendah siklus kecil.

Analisis Keuntungan

Ini adalah strategi terobosan yang sangat komprehensif dengan keuntungan berikut:

  1. Menggabungkan perdagangan penyu siklus ganda dapat secara efektif mengidentifikasi sinyal terobosan.

  2. Penggunaan stop loss bergerak dan bergerak mengambil keuntungan teknik ketat mengontrol risiko dan menghindari kerugian besar.

  3. Keluar dalam dua tahap, mengambil keuntungan setengah posisi pada satu waktu, kemudian keluar sepenuhnya melalui bergerak mengambil keuntungan, mengunci keuntungan.

  4. Pertimbangkan operasi jangka panjang dan jangka pendek, sesuai dengan karakteristik pasar multi-kosong bergantian.

  5. Hasil backtesting yang sangat baik dengan kinerja perdagangan nyata yang kuat.

Analisis Risiko

Risiko utama dan penanggulangan adalah sebagai berikut:

  1. Risiko terobosan palsu: Sesuai menyesuaikan parameter siklus untuk memastikan validitas terobosan.

  2. Risiko mengejar meningkat dan membunuh turun. penyaringan harus dikombinasikan dengan tren dan pola untuk menghindari membuka posisi di akhir tren.

  3. Risiko stop loss yang dicuci.

  4. Risiko stop loss bergerak yang terlalu sensitif Sesuaikan pengaturan slippage setelah stop loss untuk menghindari stop out yang tidak perlu.

Arahan Optimasi

Strategi ini juga dapat dioptimalkan dalam aspek berikut:

  1. Tambahkan filter volume untuk memastikan keaslian terobosan.

  2. Tambahkan indikator penilaian tren untuk menghindari membuka posisi di akhir tren.

  3. Gabungkan lebih banyak siklus waktu untuk menentukan waktu terobosan.

  4. Meningkatkan algoritma pembelajaran mesin untuk optimasi dinamis parameter.

  5. Gabungkan dengan strategi lain untuk arbitrase statistik.

Ringkasan

Strategi Double Turtle Breakthrough secara komprehensif menggunakan teknik siklus ganda, teori terobosan dan metode manajemen risiko yang ketat untuk memastikan tingkat kemenangan yang tinggi sambil memastikan pengembalian yang stabil. Model strategi ini sederhana dan jelas, mudah dimengerti dan diterapkan, dan merupakan strategi kuantitatif yang sangat baik. Strategi ini masih memiliki potensi besar untuk optimasi. Investor dapat berinovasi atas dasar ini untuk menciptakan sistem perdagangan yang lebih baik.


/*backtest
start: 2022-11-21 00:00:00
end: 2023-11-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "Turtle soup plus one", shorttitle = "Turtle soup plus one", overlay=true)

bigPeriod = input(20)
smallPeriod = input(4)
takeProfitBars = input(0)
trailingStop = input(5, title = "Trailing stop percentages")
if (strategy.position_size == 0)
    strategy.cancel("Long")
    strategy.cancel("Short")
    strategy.cancel("Stop")



stopLossPrice = 0.1
stopLossPrice := nz(stopLossPrice[1])
takeProfitStarted = false
takeProfitStarted := nz(takeProfitStarted[1])

prevHigh = highest(high, bigPeriod - smallPeriod)[smallPeriod]
smallPeriodHigh = highest(high, smallPeriod - 1)[1]
if (high > prevHigh and prevHigh > smallPeriodHigh and close > prevHigh and strategy.position_size == 0)
    strategy.order("Short", strategy.short, stop = prevHigh)

if strategy.position_size < 0 and strategy.position_size[1] == 0
    stopLossPrice := high[1]
    strategy.order("Stop", strategy.long, qty = -strategy.position_size, stop = stopLossPrice)
    takeProfitStarted := false

if (strategy.position_size < 0 and sum(strategy.position_size, takeProfitBars) == strategy.position_size * takeProfitBars and close < strategy.position_avg_price and not takeProfitStarted)
    takeProfitStarted := true
    strategy.cancel("Stop")
    strategy.order("ExitHalf", strategy.long, qty = ceil(-strategy.position_size / 2), stop = close)
    if (strategy.position_size != -1)
        strategy.exit("ExitFull", "Short", qty = -strategy.position_size - ceil(-strategy.position_size / 2), loss = stopLossPrice, trail_price  = close, trail_offset = -(close - strategy.position_avg_price) * trailingStop / 100 / syminfo.mintick)
        

prevLow = lowest(low, bigPeriod - smallPeriod)[smallPeriod]
smallPeriodLow = lowest(low, smallPeriod - 1)[1]
if (low < prevLow and prevLow < smallPeriodLow and close < prevLow and strategy.position_size == 0)
    strategy.order("Long", strategy.long, stop = prevLow)

if strategy.position_size > 0 and strategy.position_size[1] == 0
    stopLossPrice := low[1]
    strategy.order("Stop", strategy.short, qty = strategy.position_size, stop = stopLossPrice)
    takeProfitStarted := false

if (strategy.position_size > 0 and sum(strategy.position_size, takeProfitBars) == strategy.position_size * takeProfitBars and close > strategy.position_avg_price and not takeProfitStarted)
    takeProfitStarted := true
    strategy.cancel("Stop")
    strategy.order("ExitHalf", strategy.short, qty = ceil(strategy.position_size / 2), stop = close)
    if (strategy.position_size != 1)
        strategy.exit("ExitFull", "Long", qty = strategy.position_size - ceil(strategy.position_size / 2),loss = stopLossPrice, trail_price  = close, trail_offset = (close - strategy.position_avg_price) * trailingStop / 100 / syminfo.mintick)

// === Backtesting Dates ===
testPeriodSwitch = input(false, "Custom Backtesting Dates")
testStartYear = input(2018, "Backtest Start Year")
testStartMonth = input(3, "Backtest Start Month")
testStartDay = input(6, "Backtest Start Day")
testStartHour = input(08, "Backtest Start Hour")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,testStartHour,0)
testStopYear = input(2038, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(14, "Backtest Stop Day")
testStopHour = input(14, "Backtest Stop Hour")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,testStopHour,0)
testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false
isPeriod = testPeriodSwitch == true ? testPeriod() : true
// === /END
if not isPeriod
    strategy.cancel_all()
    strategy.close_all()

Lebih banyak