Strategi perdagangan kuantitatif berdasarkan rata-rata pergerakan tinggi dan rendah


Tanggal Pembuatan: 2023-09-19 15:53:55 Akhirnya memodifikasi: 2023-09-19 15:53:55
menyalin: 0 Jumlah klik: 626
1
fokus pada
1617
Pengikut

Ringkasan

Strategi ini digunakan untuk menentukan kapan membeli dan menjual dengan menghitung rata-rata bergerak sederhana dari titik tinggi dan rendah dan membandingkannya dengan harga penutupan saat ini. Tujuannya adalah untuk menangkap sinyal bahwa harga telah menembus garis rata-rata untuk mendapatkan kesempatan awal untuk tren.

Prinsip Strategi

  1. Perhitungan rata-rata bergerak sederhana dengan tinggi 4

  2. Perhitungan rata-rata bergerak sederhana dengan panjang titik rendah 4

  3. Ketika harga penutupan menembus titik rata-rata tertinggi, masuk lebih banyak

  4. Ketika harga penutupan menembus titik rata-rata terendah, bukalah

  5. Mengelola risiko dengan strategi stop loss dan stop loss tetap

Analisis Keunggulan

  1. Implementasi dengan indikator sederhana dan mudah dipahami

  2. Menangkap sinyal harga yang menembus garis rata-rata

  3. Anda dapat menyaring kebisingan dengan cepat dan mengidentifikasi tren.

  4. Perhitungan kecil dapat mengurangi biaya operasional strategi

  5. Adaptasi untuk memperluas strategi berbasis kerja sama

Analisis risiko

  1. Set parameters yang masuk akal dan hindari sensitivitas

  2. Tidak mampu menangani risiko terobosan besar

  3. Ada beberapa tingkat risiko arbitrage yang bergoyang

  4. Tidak dapat mengatur posisi stop loss secara otomatis

  5. Sulit untuk menilai panjangnya latar belakang tren

Arah optimasi

  1. Pengujian pengaruh berbagai parameter terhadap kualitas sinyal

  2. Meningkatkan kondisi penyaringan untuk memastikan terobosan efektif

  3. Analisis Tren untuk Menghindari Kecurangan

  4. Mengembangkan strategi stop loss yang dinamis

  5. Optimalkan mekanisme penghentian kerugian, meningkatkan peluang strategi

  6. Strategi pengujian kekuatan pada siklus yang berbeda

Meringkaskan

Strategi ini memberikan ide perdagangan tren dasar dengan mengevaluasi dinamika harga dengan indikator sederhana. Dengan pengoptimalan parameter, pengendalian risiko, dan lain-lain, logika perdagangan dapat diperluas dan dapat dikembangkan menjadi sistem kuantitatif yang lebih kuat. Secara keseluruhan, strategi ini mudah dipraktikkan dan cocok untuk digunakan sebagai strategi awal perdagangan kuantitatif.

Kode Sumber Strategi
/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-13 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("HiLo", overlay=true)

// Testing a specific period
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(4, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2017, "Backtest Stop Year")
testStopMonth = input(5, "Backtest Stop Month")
testStopDay = input(1, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false


//HiLo Strategy
length = input(4, minval=0)
displace = input(0, minval=0)
highsma = sma(high, length)
lowsma = sma(low, length)

longCondition = close > highsma[displace]
if (longCondition)
    strategy.entry("long", true)

shortCondition = close < lowsma[displace]
if (shortCondition)
    strategy.entry("short", false)

// Exit seems with a problem. it keeps saying the order's limit (2000) was reached even if I back test it just for a day. 
// If the two lines bellow are commented, then it it works. Anyone? Any idea what's wrong?

// strategy.exit("exit", "long", profit=10, loss=5)
// strategy.exit("exit", "short", profit=10, loss=5)