
Ini adalah strategi perdagangan kuantitatif sederhana yang didasarkan pada indikator rata-rata. Ini menggunakan garis rata-rata yang cepat dan lambat untuk menentukan waktu membeli dan menjual. Ini menghasilkan sinyal beli ketika garis cepat menembus garis lambat dari bawah; Ini menghasilkan sinyal jual ketika garis cepat menembus garis lambat dari atas.
Strategi ini terutama didasarkan pada fitur pelacakan tren pada garis rata. Parameter garis cepat kecil, dapat merespons perubahan harga dengan cepat; Parameter garis lambat besar, mewakili tren jangka panjang.
Secara khusus, strategi ini mendefinisikan dua garis rata-rata pada hari ke-5 (garis cepat) dan ke-34 (garis lambat). Setiap hari menghitung nilai kedua garis rata-rata ini, dan membandingkan apakah garis cepat menembus garis lambat dari arah bawah. Jika terjadi sinyal garpu emas, lakukan lebih banyak; Jika terjadi sinyal garpu mati, pasang.
Strategi ini sederhana, mudah dipahami, dan mudah diimplementasikan. Dibandingkan dengan strategi yang lebih rumit, strategi ini lebih cocok untuk pemula dalam perdagangan kuantitatif.
Strategi dua rata-rata dapat secara efektif menyaring kebisingan pasar dan menangkap tren utama. Dengan menyesuaikan parameter harian rata-rata cepat dan lambat, strategi ini dapat beradaptasi dengan perubahan pasar dalam berbagai siklus.
Strategi ini juga dilengkapi dengan mekanisme stop loss. Ketika harga mulai berbalik dan terjadi dead fork, maka strategi ini akan menghentikan stop loss secara tepat waktu, sehingga dapat mengontrol risiko secara efektif.
Strategi dua garis sejajar dapat menimbulkan risiko seperti stop loss yang tidak bisa dihentikan, kegagalan penyesuaian kurva, dan lain-lain. Secara khusus, masalah utama adalah:
Garis rata-rata memiliki keterlambatan, mungkin terjadi sinyal yang dikeluarkan hanya setelah dimodifikasi sepenuhnya. Pada saat ini keuntungan telah berubah menjadi kerugian.
Dalam situasi yang bergejolak, sinyal palsu dapat muncul berkali-kali. Ini akan menyebabkan terlalu banyak transaksi yang tidak perlu, meningkatkan biaya transaksi dan kehilangan slippage.
Strategi ini sepenuhnya bergantung pada indikator teknis, tanpa kombinasi analisis fundamental.
Manajemen posisi dan pengendalian risiko tidak dipertimbangkan.
Untuk lebih memanfaatkan keuntungan dari strategi ini dan mengurangi risiko, ada beberapa cara untuk mengoptimalkannya:
Kombinasi indikator tren dan indikator fluktuasi, menetapkan persyaratan masuk yang lebih ketat, memfilter sinyal palsu. Misalnya indikator MACD atau KDJ.
Menambahkan mekanisme penghentian yang tepat. Jika turun setelah garpu emas, maka akan berhenti. Atau jika turun setelah terbentuknya titik tinggi baru, maka akan berhenti.
Mengoptimalkan kombinasi parameter harian dari garis rata-rata cepat dan lambat, untuk menyesuaikan dengan perubahan harga yang berbeda-beda. Anda dapat melakukan pengoptimalan kombinasi parameter untuk mencari parameter terbaik.
Anda dapat menilai pergerakan pasar secara keseluruhan dari indeks pasar besar, menghindari perdagangan frekuensi tinggi dalam kondisi bergolak.
Terkait dengan perubahan volume transaksi untuk memverifikasi keandalan sinyal tren. Sebagai contoh, kenaikan harus memiliki kondisi pemberian yang melampaui batas.
Strategi linier ganda adalah strategi perdagangan kuantitatif yang sangat khas. Ini memiliki karakteristik sederhana, intuitif, dan mudah diterapkan, sangat cocok untuk belajar dan menguasai para pemula perdagangan kuantitatif. Dengan terus-menerus menguji dan mengoptimalkan parameter, dapat memperoleh hasil yang lebih baik. Namun, strategi ini juga memiliki beberapa masalah, seperti mengidentifikasi sinyal yang terlambat, mudah menghasilkan sinyal palsu, dll.
/*backtest
start: 2022-11-15 00:00:00
end: 2023-11-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// This strategy is a modification to the "Bill Williams, Awesome Oscillator
// (AO) Backtest" strategy (Copyright by HPotter v1.0 29/12/2016)
//
// This version of the strategy by Midnight Mouse. 10/4/2018
//
// DESCRIPTION
//
// This indicator plots the oscillator as a column where periods fit for buying
// are marked as green, and periods fit for selling as orange/brown. If the
// current value of AO (Awesome Oscillator) is > the previous, the period is
// deemed fit for buying and the indicator is marked green. If the AO values is
// not over the previous, the period is deemed fit for selling and the indicator
// is marked orange/brown.
//
// You can change long to short in the Input Settings
//
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy("Awesome Oscillator.MMouse_Lager_BCE")
// === SETTINGS ===
// Strategy start date
FromMonth = input(defval = 1, title = "From Month", minval = 1)
FromDay = input(defval = 1, title = "From Day", minval = 1)
FromYear = input(defval = 2017, title = "From Year", minval = 2014)
// Strategy settings
nLengthSlow = input(34, minval=1, title="Length Slow")
nLengthFast = input(5, minval=1, title="Length Fast")
allowShorts = input(false, title="Include Short Trades")
reverse = input(false, title="Trade reverse")
// === BODY ===
// Use Heikin-Ashi candles for the buy/sell signal
ha_t = heikinashi(syminfo.tickerid)
ha_high = security(ha_t, timeframe.period, high)
ha_low = security(ha_t, timeframe.period, low)
length = input( 14 )
price = open
vrsi = rsi(price, length)
// Calc (H+L)/2 for each length
xSMA1_hl2 = sma((ha_high + ha_low)/2, nLengthFast)
xSMA2_hl2 = sma((ha_high + ha_low)/2, nLengthSlow)
// Get SMA difference (Fast - Slow)
xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2
// Derive the color of the column
cClr = xSMA1_SMA2 > xSMA1_SMA2[1] ? #93c47d : #ad5e1d
// Determine the position to take (Long vs. Short)
pos = iff(xSMA1_SMA2 > xSMA1_SMA2[1], 1, iff(xSMA1_SMA2 < xSMA1_SMA2[1], -1, nz(pos[1], 0)))
possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos))
// Only apply strategy from the start date
if (time >= timestamp(FromYear, FromMonth, FromDay, 00, 00))
if (possig == 1)
// Market is currently fit for a Long position
strategy.entry("Long", strategy.long)
if (possig == -1)
// Market is currently fit for a Short position
if(allowShorts)
// Shorts are allowed. Record a Short position
strategy.entry("Short", strategy.short)
else
// Shorts are not allowed. Closec the Long position.
strategy.close("Long")
// Define the candle colors
//barcolor(possig == -1 ? red :
// possig == 1 ? green :
// blue )
// Plot the oscillator
plot(xSMA1_SMA2, style=columns, linewidth=1, color=cClr)