
Strategi crossover dua rata-rata adalah strategi perdagangan kuantitatif yang relatif sederhana. Dengan menghitung rata-rata harga penutupan 7 garis K dan rata-rata harga penutupan 20 garis K terbaru, strategi ini dapat menangkap titik balik tren jangka menengah pasar dengan melakukan operasi seperti itu ketika rata-rata jangka pendek melewati rata-rata jangka panjang dari bawah dan ketika rata-rata jangka pendek melewati rata-rata jangka panjang dari atas.
Logika inti dari strategi ini adalah dengan menghitung harga penutupan rata-rata dari 7 garis K terbaru (tidak termasuk garis K saat ini) sebagai rata-rata jangka pendek, dan dengan menghitung harga penutupan rata-rata dari 20 garis K terbaru (tidak termasuk garis K terbaru) sebagai rata-rata jangka panjang. Ketika rata-rata jangka pendek melintasi rata-rata jangka panjang dari bawah, berarti pasar berbalik dari bawah ke bawah, dan lebih banyak. Ketika rata-rata jangka pendek melintasi rata-rata jangka panjang dari atas ke bawah, berarti pasar berbalik dari bawah ke bawah, dan kosong.
Setelah melakukan sinyal lebih banyak, buka posisi lebih banyak sesuai dengan jumlah dana seluruh akun; Setelah sinyal kurang, buka posisi lebih banyak sesuai dengan jumlah posisi lebih banyak, lalu buka posisi kosong sesuai dengan jumlah tersebut. Setiap posisi setelah buka posisi akan memegang 20-25 garis K, selama ini jika terjadi kerugian akan menghentikan setengah posisi, jika terjadi keuntungan yang cukup akan menghentikan setengah posisi.
Ini adalah strategi yang sangat sederhana, dua garis sejajar, dan keunggulan utamanya adalah:
Ini adalah strategi yang lebih sederhana untuk melacak tren, tetapi juga memiliki beberapa risiko potensial:
Untuk mengatasi risiko tersebut, Anda dapat mengoptimalkannya dengan:
Ini adalah strategi yang lebih sederhana, namun dapat dioptimalkan secara mendalam dari beberapa aspek:
Mengoptimalkan parameter rata-rata, menguji kombinasi rata-rata jangka pendek dan jangka panjang yang berbeda, mencari parameter optimal;
Menambahkan indikator-indikator penyaringan lainnya, seperti indikator energi, indikator volatilitas, dan lain-lain, untuk menghindari kesalahan sinyal dalam pasar yang bergejolak;
Mengoptimalkan strategi stop loss, menguji berbagai rasio stop loss, dan menentukan parameter optimal;
Uji siklus pasar yang berbeda untuk mengoptimalkan jangka waktu memegang posisi dan menentukan siklus mana yang paling sesuai dengan strategi;
Menambahkan algoritma pembelajaran mesin untuk terus mengoptimalkan parameter strategi melalui pengujian terbalik, membuat strategi lebih stabil.
Strategi ini adalah strategi yang lebih sederhana dari dua garis sejajar silang, dengan menghitung garis sejajar silang dari siklus yang berbeda untuk menentukan titik pembalikan tren jangka menengah. Strategi ini sangat praktis, ide yang sederhana dan mudah untuk beroperasi. Tetapi strategi ini juga memiliki beberapa keterbatasan, masalah utama adalah tidak dapat secara efektif menentukan titik pembalikan pasar yang sebenarnya.
/*backtest
start: 2024-01-05 00:00:00
end: 2024-02-04 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © nrathi2211
//@version=5
strategy("Closing Prices", overlay=true)
//variables
closingB7 = ta.highest(close, 7)[7]
closingB14 = ta.highest(close, 7)[20]
highB14 = ta.highest(low, 50)[7]
capital = 50000
//functions
qty_find(float price) => capital / int(price)
profit_take() =>
profit = strategy.opentrades.profit(strategy.opentrades - 1)
profit*.95
if(closingB7 < closingB14)
if(ta.crossover(close, closingB7))
strategy.entry("long_buy", strategy.long, qty_find(close))
current_profit = strategy.opentrades.profit(strategy.opentrades - 1)
if(current_profit < 0)
strategy.close("Exit long_buy SL", "long_buy", qty_percent = 50)
else if(current_profit < profit_take())
strategy.close("Exit long_buy TP", "long_buy", qty_percent = 50)
if(ta.crossunder(close, closingB7))
strategy.exit("long_sell", from_entry = "long_buy", stop = closingB7)
plot(closingB7, "cl", color.green, 2)
//plot(closingB14, "cl", color.red, 2)
plot(highB14, "cl", color.purple, 2)