Berdasarkan strategi terobosan tren ganda


Tanggal Pembuatan: 2024-02-19 11:52:40 Akhirnya memodifikasi: 2024-02-19 11:52:40
menyalin: 0 Jumlah klik: 711
1
fokus pada
1617
Pengikut

Berdasarkan strategi terobosan tren ganda

Ringkasan

Strategi penembusan tren ganda menggunakan berbagai indikator teknis, terutama termasuk garis tren, persimpangan garis rata-rata, dan penembusan saluran harga, untuk mengidentifikasi perubahan tren pasar dan menangkap peluang untuk membalikkan tren. Strategi ini menggabungkan pelacakan tren dan sinyal penembusan.

Prinsip Strategi

Garis tren

Strategi ini pertama-tama menggunakan titik tinggi dan titik rendah pada sumbu pivot untuk membagi tren bullish, yang menunjukkan pembalikan tren potensial ketika harga menembus garis tren. Perhitungan slope menggunakan metode ATR untuk membuatnya lebih dekat dengan fluktuasi aktual.

Garis rata yang bersilang

Strategi ini menggunakan garis pendek 5 hari dan garis panjang 34 hari, untuk membangun strategi persilangan rata-rata yang cepat. Penjejakan rata-rata panjang di atas garis rata-rata pendek untuk sinyal beli, dan di bawah untuk sinyal jual. Gunakan rata-rata cepat untuk menangkap tren jangka pendek, dan rata-rata lambat untuk melacak tren jangka panjang.

Saluran Harga

Strategi ini juga menetapkan saluran harga 5 hari, untuk menerobos pembelian di atas rel, menerobos penjualan di bawah rel, dan menangkap terobosan harga jangka pendek.

Tiga indikator teknis ini digunakan dalam strategi ini untuk membentuk mekanisme penilaian ganda yang kuat dan menghindari kesalahan perdagangan.

Keunggulan Strategis

  1. Dengan adanya berbagai indikator teknis yang terintegrasi, sinyal dianggap lebih kuat dan mengurangi kerugian akibat penembusan palsu.

  2. Garis rata-rata cepat dan saluran harga dapat menangkap perubahan tren harga jangka pendek tepat waktu. Garis rata-rata lambat dan garis tren mengikuti tren jangka panjang, masuk dan keluar relatif stabil.

  3. Struktur kode jelas, parameter indikator dapat disesuaikan, dapat disesuaikan dan dioptimalkan untuk berbagai siklus dan varietas.

  4. Kombinasi penilaian tren dan sinyal breakout, dalam tren bull market, pasar yang lebih agresif menguntungkan keuntungan; dalam pengelompokan kisaran, frekuensi perdagangan sinyal breakout akan berkurang, membantu menghindari guncangan besar.

Risiko Strategis

  1. Ada beberapa risiko terobosan palsu, terutama dalam skenario penurunan harga, yang dapat menyebabkan kerugian.

  2. Jika ada perubahan besar, ada risiko untuk membeli lebih tinggi atau menjual lebih rendah.

  3. Terintegrasi berbagai indikator teknis, pengoptimalan parameter membutuhkan banyak pengujian dan perhitungan, yang memakan waktu.

  • Untuk risiko false breakout, Anda dapat menambahkan indikator volume transaksi untuk disaring, seperti perlu meningkatkan volume transaksi saat terobosan, atau harga penutupan K-line yang belum terobosan atau terendah sebelumnya.

  • Untuk mengejar risiko beli tinggi, Anda dapat mengatur kondisi penyaringan indikator overbought dan oversold, seperti indikator RSI untuk menghindari overbought. Atau mengatur garis stop loss untuk mempercepat stop loss.

  • Untuk masalah optimasi parameter, metode pembelajaran mesin dapat digunakan untuk membantu mencari optimasi, mencari kombinasi parameter yang optimal dalam banyak data historis.

Optimasi Strategi

  1. Tambahkan indikator volume transaksi atau indikator overbought oversold untuk menilai keandalan tren, dan atur kondisi penyaringan yang ketat untuk menghindari kerugian akibat terobosan palsu.

  2. Untuk varietas perdagangan yang berbeda, menyesuaikan pengaturan parameter garis rata-rata dan parameter saluran harga agar lebih sesuai dengan karakteristik varietas tersebut.

  3. Meningkatkan strategi stop loss, mengendalikan kerugian tunggal dengan cara-cara seperti stop loss bergerak, stop loss yang tergantung.

  4. Menggunakan metode adaptif, ketika pasar memasuki fase penyusunan gejolak, mengurangi frekuensi pembukaan posisi; meningkatkan frekuensi perdagangan ketika tren jelas.

  5. Metode pembelajaran mendalam digunakan untuk melatih model untuk menentukan titik jual beli, untuk membantu atau menggantikan indikator teknis tradisional, untuk mencari strategi perdagangan yang lebih efektif dengan kemampuan generalisasi pembelajaran mendalam.

Meringkaskan

Strategi ini mengintegrasikan berbagai indikator teknis yang umum digunakan untuk membentuk sistem penilaian ganda, yang dapat secara efektif mengidentifikasi perubahan tren, dan menunjukkan stabilitas yang baik dalam pengujian ulang. Namun, Anda juga harus memperhatikan risiko terobosan palsu tertentu, dengan menambahkan kondisi penyaringan, strategi stop loss, penyesuaian parameter, dan penggunaan metode pembelajaran mesin untuk mengoptimalkan, yang dapat meningkatkan kinerja strategi di lapangan.

Kode Sumber Strategi
/*backtest
start: 2024-02-11 00:00:00
end: 2024-02-18 00:00:00
period: 1h
basePeriod: 15m
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/
// © FinanceUpPvtLtd

//@version=5
strategy("FINANCE UP FREE STRATEGY (+919665229664)", overlay=true)

// Script 01 - Trendlines
length_tl = input.int(14, 'Swing Detection Lookback')
mult_tl = input.float(1., 'Slope', minval=0, step=.1)
calcMethod_tl = input.string('Atr', 'Slope Calculation Method', options=['Atr', 'Stdev', 'Linreg'])
backpaint_tl = input(true, tooltip='Backpainting offset displayed elements in the past. Disable backpainting to see real-time information returned by the indicator.')
upCss_tl = input(color.teal, 'Up Trendline Color', group='Style')
dnCss_tl = input(color.red, 'Down Trendline Color', group='Style')
showExt_tl = input(true, 'Show Extended Lines')

var upper_tl = 0.
var lower_tl = 0.
var slope_ph_tl = 0.
var slope_pl_tl = 0.
var offset_tl = backpaint_tl ? length_tl : 0
n_tl = bar_index
src_tl = close
ph_tl = ta.pivothigh(length_tl, length_tl)
pl_tl = ta.pivotlow(length_tl, length_tl)
slope_tl = switch calcMethod_tl
    'Atr'    => ta.atr(length_tl) / length_tl * mult_tl
    'Stdev'  => ta.stdev(src_tl, length_tl) / length_tl * mult_tl
    'Linreg' => math.abs(ta.sma(src_tl * n_tl, length_tl) - ta.sma(src_tl, length_tl) * ta.sma(n_tl, length_tl)) / ta.variance(n_tl, length_tl) / 2 * mult_tl
slope_ph_tl := ph_tl ? slope_tl : slope_ph_tl
slope_pl_tl := pl_tl ? slope_tl : slope_pl_tl
upper_tl := ph_tl ? ph_tl : upper_tl - slope_ph_tl
lower_tl := pl_tl ? pl_tl : lower_tl + slope_pl_tl
var upos_tl = 0
var dnos_tl = 0
upos_tl := ph_tl ? 0 : close > upper_tl - slope_ph_tl * length_tl ? 1 : upos_tl
dnos_tl := pl_tl ? 0 : close < lower_tl + slope_pl_tl * length_tl ? 1 : dnos_tl

// var uptl_tl = line.new(na, na, na, na, color=upCss_tl, style=line.style_dashed, extend=extend.right)
// var dntl_tl = line.new(na, na, na, na, color=dnCss_tl, style=line.style_dashed, extend=extend.right)
// if ph_tl and showExt_tl
//     uptl_tl.set_xy1(n_tl - offset_tl, backpaint_tl ? ph_tl : upper_tl - slope_ph_tl * length_tl)
//     uptl_tl.set_xy2(n_tl - offset_tl + 1, backpaint_tl ? ph_tl - slope_tl : upper_tl - slope_ph_tl * (length_tl + 1))
// if pl_tl and showExt_tl
//     dntl_tl.set_xy1(n_tl - offset_tl, backpaint_tl ? pl_tl : lower_tl + slope_pl_tl * length_tl)
//     dntl_tl.set_xy2(n_tl - offset_tl + 1, backpaint_tl ? pl_tl + slope_tl : lower_tl + slope_pl_tl * (length_tl + 1))

plot(backpaint_tl ? upper_tl : upper_tl - slope_ph_tl * length_tl, 'Upper', color=ph_tl ? na : upCss_tl, offset=-offset_tl)
plot(backpaint_tl ? lower_tl : lower_tl + slope_pl_tl * length_tl, 'Lower', color=pl_tl ? na : dnCss_tl, offset=-offset_tl)

plotshape(upos_tl > upos_tl[1] ? low : na, "Upper Break", shape.labelup, location.absolute, upCss_tl, text="B", textcolor=color.white, size=size.tiny)
plotshape(dnos_tl > dnos_tl[1] ? high : na, "Lower Break", shape.labeldown, location.absolute, dnCss_tl, text="B", textcolor=color.white, size=size.tiny)

alertcondition(upos_tl > upos_tl[1], 'Upward Breakout', 'Price broke the down-trendline upward')
alertcondition(dnos_tl > dnos_tl[1], 'Downward Breakout', 'Price broke the up-trendline downward')

// Script 02 - Channel Breakout
length_channel = input.int(title="Channel Length", minval=1, maxval=1000, defval=5)
upBound_channel = ta.highest(high, length_channel)
downBound_channel = ta.lowest(low, length_channel)
if (not na(close[length_channel]))
    strategy.entry("LE-LE", strategy.long, stop=upBound_channel + syminfo.mintick, comment="LE-LE")
strategy.entry("BECH-DE", strategy.short, stop=downBound_channel - syminfo.mintick, comment="BECH-DE")

// Script 03 - MA Cross
shortlen_ma = input.int(5, "Short MA Length", minval=1)
longlen_ma = input.int(34, "Long MA Length", minval=1)
short_ma = ta.sma(close, shortlen_ma)
long_ma = ta.sma(close, longlen_ma)
plot(short_ma, color=#FF6D00, title="Short MA")
plot(long_ma, color=#43A047, title="Long MA")
plot(ta.cross(short_ma, long_ma) ? short_ma : na, color=#2962FF, style=plot.style_cross, linewidth=4, title="Cross")