Strategi beli dan jual berdasarkan harga penutupan K-line


Tarikh penciptaan: 2024-01-08 11:11:18 Akhirnya diubah suai: 2024-01-08 11:11:18
Salin: 2 Bilangan klik: 1039
1
fokus pada
1617
Pengikut

Strategi beli dan jual berdasarkan harga penutupan K-line

Gambaran keseluruhan

Strategi ini membandingkan harga penutupan K-Line semasa dengan harga penutupan K-Line terdahulu untuk menentukan sama ada ia akan mencetuskan isyarat beli atau jual.

Khususnya, jika harga penutupan K semasa lebih tinggi daripada harga tertinggi K sebelumnya, ia akan mencetuskan isyarat beli; jika harga penutupan K semasa lebih rendah daripada harga terendah K sebelumnya, ia akan mencetuskan isyarat jual.

Prinsip Strategi

  1. Dapatkan harga tertinggi dan terendah dalam tempoh masa tertentu (seperti garis hari, garis jam, dan lain-lain)
  2. Hitung jarak berhenti dan jarak berhenti
    • Jarak Hentikan Kerosakan = harga tertinggi K baris atas - harga terendah K baris atas
    • Jarak penghentian = Jarak penghentian * 3 ((set 1: 3 nisbah penghentian penghentian)
  3. Menilai hubungan harga penutupan K semasa dengan harga tertinggi dan terendah K sebelumnya
    • Jika harga penutupan semasa adalah > harga tertinggi pada baris K, isyarat beli akan dicetuskan
    • Jika harga penutupan semasa adalah < harga terendah pada baris K, ia akan mencetuskan isyarat jual.
  4. Tetapkan hentian dan hentian selepas masuk
    • Selepas membeli, set Stop Loss sebagai harga terendah pada baris K teratas - Jarak Stop Loss, Stop Stop sebagai harga tertinggi pada baris K teratas + Jarak Stop Stop
    • Set Stop Loss sebagai harga tertinggi + Jarak Stop Loss pada baris K terdahulu, dan Stop Loss sebagai harga terendah pada baris K terdahulu - Jarak Stop Loss

Ini adalah logik dasar dalam strategi ini.

Analisis kelebihan

  • Strategi yang jelas, mudah difahami dan dilaksanakan
  • Menggunakan maklumat garis K untuk menentukan arah trend
  • Kawalan risiko dengan mekanisme penghadang kerosakan

Analisis risiko

  • Penghakiman hanya berdasarkan satu tempoh masa K linear mungkin menghasilkan lebih banyak isyarat palsu
  • Tidak mengambil kira faktor-faktor lain seperti perubahan dalam jumlah dagangan, turun naik dan sebagainya.
  • Penangguhan kerosakan mungkin tidak betul, jarak yang terlalu besar atau terlalu kecil adalah bahaya

Arah pengoptimuman

  • Ia adalah satu-satunya cara untuk memastikan bahawa anda berada di dalam pasaran.
  • Mengoptimumkan algoritma penangguhan kerugian, menjadikan penangguhan lebih munasabah dan lebih mencukupi
  • Tetapan parameter yang berbeza mungkin memerlukan penyesuaian
  • Ia juga boleh diuji untuk jangka masa yang lebih panjang.

ringkaskan

Strategi ini secara keseluruhannya mudah dan jelas, menggunakan maklumat harga penutupan K untuk menentukan arah trend, sambil menetapkan risiko kawalan hentian berhenti, boleh digunakan sebagai strategi asas untuk perdagangan saham, mata wang digital. Tetapi hanya berdasarkan bentuk garis K untuk tempoh masa tunggal, mudah menghasilkan isyarat palsu, ruang pengoptimuman masih besar, perlu dipertimbangkan lebih lanjut untuk menggabungkan lebih banyak faktor dan penyesuaian parameter, untuk meningkatkan keberkesanan strategi.

Kod sumber strategi
/*backtest
start: 2023-12-08 00:00:00
end: 2024-01-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Buy/Sell on Candle Close", overlay=true)

var float prevLowest = na
var float prevHighest = na
var float slDistance = na
var float tpDistance = na

// Specify the desired timeframe here (e.g., "D" for daily, "H" for hourly, etc.)
timeframe = "D"

// Fetching historical data for the specified timeframe
pastLow = request.security(syminfo.tickerid, timeframe, low, lookahead=barmerge.lookahead_on)
pastHigh = request.security(syminfo.tickerid, timeframe, high, lookahead=barmerge.lookahead_on)

if bar_index > 0
    prevLowest := pastLow[1]
    prevHighest := pastHigh[1]

currentClose = close

if not na(prevLowest) and not na(prevHighest)
    slDistance := prevHighest - prevLowest
    tpDistance := 3 * slDistance // Adjusted for 1:3 risk-reward ratio

// Buy trigger when current close is higher than previous highest
if not na(prevLowest) and not na(prevHighest) and currentClose > prevHighest
    strategy.entry("Buy", strategy.long)
    strategy.exit("Buy TP/SL", "Buy", stop=prevLowest - slDistance, limit=prevHighest + tpDistance)

// Sell trigger when current close is lower than previous lowest
if not na(prevLowest) and not na(prevHighest) and currentClose < prevLowest
    strategy.entry("Sell", strategy.short)
    strategy.exit("Sell TP/SL", "Sell", stop=prevHighest + slDistance, limit=prevLowest - tpDistance)

plot(prevLowest, color=color.blue, title="Previous Lowest")
plot(prevHighest, color=color.red, title="Previous Highest")