Strategi perdagangan kuantitatif berdasarkan perbandingan harga penutupan harian

Penulis:ChaoZhang, Tanggal: 2023-11-21 14:34:11
Tag:

img

Gambaran umum

Strategi ini disebut Daily Close Price Comparison Strategy. Ini adalah strategi perdagangan kuantitatif yang membuat keputusan perdagangan berdasarkan harga penutupan harian. Strategi ini menghasilkan sinyal perdagangan dengan menghitung perbedaan antara harga penutupan harian saat ini dan harga penutupan harian sebelumnya. Ketika perbedaannya melebihi ambang batas yang ditetapkan, pesanan beli atau jual dilaksanakan.

Logika Strategi

Logika inti dari strategi ini adalah untuk membandingkan harga penutupan antara candlestick/bar saat ini dan yang sebelumnya.

  1. Menghitung perbedaan antara harga penutupan harian saat ini dan harga penutupan harian sebelumnya (hari ini - kemarin)
  2. Hitung rasio antara perbedaan dan harga penutupan kemarin (perbedaan / penutupan kemarin)
  3. Jika rasio lebih besar dari ambang positif yang ditetapkan, sinyal beli dihasilkan. Jika rasio kurang dari ambang negatif yang ditetapkan, sinyal jual dihasilkan.
  4. Masukkan posisi panjang atau pendek sesuai dengan sinyal

Strategi ini tidak menetapkan kondisi stop loss atau take profit, dan bergantung pada sinyal yang dipicu ambang untuk masuk dan keluar.

Analisis Keuntungan

  • Logika sederhana, mudah dipahami, cocok untuk pemula perdagangan kuantum
  • Hanya mengandalkan harga penutupan harian, menghindari perdagangan yang terlalu sering
  • Frekuensi perdagangan dapat dikontrol dengan menyesuaikan ambang

Analisis Risiko

  • Tidak ada stop loss, tidak dapat mengendalikan kerugian perdagangan tunggal
  • Dapat menghasilkan sinyal perdagangan berturut-turut yang mengakibatkan over trading
  • Pengeluaran mungkin besar, tidak dapat mengendalikan kerugian keseluruhan dengan baik

Arahan Optimasi

  • Tambahkan logika stop loss untuk mengendalikan kerugian perdagangan tunggal
  • Batas jumlah entri untuk menghindari perdagangan berlebihan
  • Mengoptimalkan parameter untuk menemukan frekuensi perdagangan yang optimal

Kesimpulan

Strategi ini menghasilkan sinyal perdagangan dengan membandingkan harga penutupan harian. Logika sederhana dan cocok untuk pemula untuk dipelajari.


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

//@version=2
strategy("Daily Close Comparison Strategy (by ChartArt) correct results", shorttitle="CA_-_Daily_Close_Strat", overlay=false)

// ChartArt's Daily Close Comparison Strategy
//
// Version 1.0
// Idea by ChartArt on February 28, 2016.
//
// This strategy is equal to the very
// popular "ANN Strategy" coded by sirolf2009,
// but without the Artificial Neural Network (ANN).
//
// Main difference besides stripping out the ANN
// is that I use close prices instead of OHLC4 prices.
// And the default threshold is set to 0 instead of 0.0014
// with a step of 0.001 instead of 0.0001.
//
// This strategy goes long if the close of the current day
// is larger than the close price of the last day.
// If the inverse logic is true, the strategy
// goes short (last close larger current close).
//
// This simple strategy does not have any
// stop loss or take profit money management logic.
//
// List of my work: 
// https://www.tradingview.com/u/ChartArt/
// 
//  __             __  ___       __  ___ 
// /  ` |__|  /\  |__)  |   /\  |__)  |  
// \__, |  | /~~\ |  \  |  /~~\ |  \  |  
// 
// 

threshold = input(title="Price Difference Threshold correct results", type=float, defval=0, step=0.004)

getDiff() =>
    yesterday=request.security(syminfo.tickerid, 'D', close[1])
    today=close
    delta=today-yesterday
    percentage=delta/yesterday
    
closeDiff = getDiff()
 
buying = closeDiff > threshold ? true : closeDiff < -threshold ? false : buying[1]

hline(0, title="zero line")

bgcolor(buying ? green : red, transp=25)
plot(closeDiff, color=silver, style=area, transp=75)
plot(closeDiff, color=aqua, title="prediction")

longCondition = buying
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = buying != true
if (shortCondition)
    strategy.entry("Short", strategy.short)

Lebih banyak