Strategi Penangkapan Tren dengan Penembusan Garis Horizontal

Penulis:ChaoZhangTanggal: 2024-04-26 15:22:06
Tag:

img

Gambaran umum

Strategi ini menggunakan garis horizontal sebagai level support dan resistance, dan menghasilkan sinyal perdagangan ketika harga menembus garis ini. Ide utamanya adalah: pertama, tarik garis horizontal berdasarkan kondisi tertentu, pergi panjang ketika harga melanggar di atas garis, dan tutup posisi ketika harga melanggar di bawah garis. Pada saat yang sama, ada kondisi yang sesuai untuk menghasilkan garis horizontal, seperti harga rendah lilin sebelumnya lebih besar dari harga penutupan saat ini.

Prinsip Strategi

  1. Berdasarkan kondisi bahwa harga rendah lilin sebelumnya lebih besar dari harga penutupan saat ini, tarik garis horizontal dengan panjang 20 pada harga rendah lilin sebelumnya, dan selalu menyimpan hanya 10 baris terakhir.
  2. Jika harga saat ini menembus garis horizontal terakhir, tutup semua posisi panjang sebelumnya dan buka posisi panjang baru.
  3. Saat menggambar garis horizontal baru, jika ada posisi, tutup dulu dan kemudian buka posisi panjang baru.

Keuntungan Strategi

  1. Logika strategi sederhana dan jelas, mudah dimengerti dan diterapkan.
  2. Dengan menggunakan terobosan tingkat dukungan dan resistensi garis horizontal untuk menghasilkan sinyal, ia dapat menangkap tren dengan baik.
  3. Ketika garis horisontal baru dihasilkan, pertama akan menutup posisi sebelumnya dan kemudian membuka posisi baru, yang dapat mengurangi risiko yang dapat dibawa oleh posisi sebelumnya.
  4. Strategi dapat dioptimalkan dengan menyesuaikan panjang dan jumlah garis horizontal.

Risiko Strategi

  1. Untuk pasar yang berosilasi, terjadinya terobosan garis horizontal yang sering dapat menyebabkan overtrading, yang mengakibatkan slippage dan biaya transaksi yang besar.
  2. Definisi garis horizontal dalam strategi ini relatif sederhana dan tidak memiliki verifikasi dari indikator lain, yang dapat menghasilkan beberapa sinyal palsu.
  3. Hanya panjang dan tidak pendek, dan tidak dapat sepenuhnya memanfaatkan tren menurun.

Arah Optimasi Strategi

  1. Indikator lain dapat dikombinasikan untuk mengkonfirmasi validitas garis horizontal, seperti perubahan volume perdagangan, untuk mengurangi sinyal palsu.
  2. Untuk pasar osilasi, frekuensi perdagangan dapat dikurangi dengan meningkatkan besarnya terobosan garis horizontal.
  3. Tambahkan mekanisme short selling untuk mendapatkan keuntungan dari tren penurunan.
  4. Pertimbangkan untuk menyesuaikan panjang dan jumlah garis horizontal secara dinamis untuk menyesuaikan diri dengan kondisi pasar yang berbeda.

Ringkasan

Strategi ini menggunakan garis horisontal sebagai level support dan resistance yang penting, dan menghasilkan sinyal perdagangan melalui terobosan garis. Keuntungannya adalah bahwa logika sederhana dan mudah diterapkan, dan dapat menangkap tren dengan baik. Namun, kekurangannya adalah bahwa hal itu dapat overtrade, menghasilkan sinyal palsu, dan hanya dapat pergi panjang tetapi tidak pendek. Di masa depan, dapat dioptimalkan dan ditingkatkan dengan menggabungkan indikator lain, mengurangi frekuensi perdagangan, menambahkan mekanisme jual pendek, dan menyesuaikan parameter secara dinamis.


/*backtest
start: 2023-04-20 00:00:00
end: 2024-04-25 00:00:00
period: 1d
basePeriod: 1h
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/
// © Traderxprox

//@version=5
strategy("Alarm Trader_ALL", overlay=true)

// Yatay çizgi oluşum
yatayc = low[1] > close[0]

if yatayc
    if strategy.opentrades > 0
        strategy.close("AL", comment = "Fiyat:" + str.tostring(low[1], "#.##") + "\n" + timeframe.period +"\n Yatay Direnç Oluştu")
    else
        strategy.entry("AL", strategy.long, comment = "Fiyat:" + str.tostring(low[1], "#.##") + "\n" + timeframe.period +"\n Yatay Direnç Oluştu")


//YATAY ÇİZGİ
int cizgilen = input.int(20, "Çizgi uzunluğu?", group = "Yatay Çizgi Ayarları")
var array<line> lines = array.new<line>()
int numberOfLines = input.int(10, "Son Kaç Çizgi?", 0, group = "Yatay Çizgi Ayarları")
kural22 = low[1] > close[0]
// if kural22
//     newLine = line.new(bar_index-2, low[1], bar_index+cizgilen, low[1] ,color=color.red, width=1, style=line.style_solid)
//     // Push the `newLine` into the `lines` array.
//     lines.push(newLine)
//     // Delete the oldest line when the size of the array exceeds the specified `numberOfLines`.
//     if array.size(lines) > numberOfLines
//         line.delete(lines.shift())
    
// Alarm kırılım için koşul

var float lastLinePrice = na
if not na(close) and array.size(lines) > 0 
    lastLinePrice := line.get_price(array.get(lines, array.size(lines) - 1), bar_index)
if open < lastLinePrice and close > lastLinePrice
    if strategy.opentrades > 0
        strategy.close("AL", comment = "Fiyat:" + str.tostring(lastLinePrice, "#.##") + "\n" + timeframe.period +" \n Yatay çizgi yukarı kırılımı")
    else
        strategy.entry("AL", strategy.long, comment = "Fiyat:" + str.tostring(lastLinePrice, "#.##") + "\n" + timeframe.period +" \n Yatay çizgi yukarı kırılımı")



Lebih banyak