
Strategi perdagangan kuantitatif Gandalf adalah strategi pelacakan tren yang didasarkan pada garis tengah. Ini menilai arah tren saat ini dengan menghitung harga rata-rata tertimbang, garis tengah, dan harga entitas tengah untuk menemukan titik masuk yang optimal.
Logika inti dari strategi Gandalf adalah membandingkan harga rata-rata tertimbang, garis tengah, dan hubungan ukuran antara harga tengah entitas untuk menilai arah dan kekuatan tren saat ini.
Secara khusus, ia menghitung harga sebagai berikut:
Pada saat masuk, ia akan membandingkan hubungan ukuran antara nilai rata-rata tertimbang, nilai tengah, dan harga entitas antara dua garis K terdahulu untuk menentukan apakah itu sesuai dengan karakteristik yang memulai tren.
Misalnya, jika nilai rata-rata tertimbang lebih rendah dari nilai tengah, dan harga entitas intermediate juga lebih rendah dari nilai rata-rata tertimbang, itu menunjukkan bahwa harga sedang turun, dan ini adalah peluang untuk melakukan shorting.
Pada saat stop loss keluar, ia akan terus membandingkan hubungan besar dan kecil antara harga-harga ini untuk menilai apakah ada tanda-tanda pembalikan tren. Jika harga rata-rata tertimbang lebih tinggi dari harga median entitas, dan garis tengahnya juga lebih rendah dari harga rata-rata tertimbang, menunjukkan adanya pembalikan tren, stop loss harus segera dilakukan.
Dengan metode ini dari perbandingan harga-ukuran, strategi Gandalf memungkinkan penilaian dan pelacakan tren. Ini dapat menemukan waktu masuk yang baik dan dapat dengan cepat mendeteksi pembalikan tren sehingga menghentikan kerugian.
Strategi Gandalf memiliki beberapa keuntungan:
Menggunakan garis tengah untuk menilai arah tren, Anda dapat secara efektif menyaring kebisingan pasar dan mengunci tren utama.
Kondisi masuk dengan berbagai perbandingan harga, dapat memberikan penilaian yang lebih akurat tentang awal tren.
Kondisi stop loss juga menggunakan perbandingan harga untuk menentukan pembalikan tren, dapat menghentikan kerugian dengan cepat, mengendalikan risiko.
Dengan menggunakan metode satu-persatu, Anda bisa masuk di dekat harga yang ideal.
Anda dapat mengatur jumlah stop-loss dan batas posisi di muka, sehingga Anda dapat mengunci keuntungan dan mengontrol risiko dalam satu transaksi.
Struktur kodenya jelas dan sederhana, mudah dipahami dan dimodifikasi.
Parameter dapat disesuaikan dengan preferensi risiko pribadi dan mudah dioptimalkan.
Untuk varietas yang sedang tren, Anda bisa mendapatkan keuntungan dari tren.
Secara keseluruhan, Gandalf strategi menggunakan garis tengah untuk menilai tren, mengatur kondisi stop loss, dan dapat secara efektif mengontrol risiko untuk melacak tren, merupakan strategi pelacakan tren yang andal.
Strategi Gandalf juga memiliki beberapa risiko yang perlu diperhatikan:
Sebagai strategi trend-following, lebih sedikit kerugian akan terjadi jika tren tidak jelas atau sering berbalik.
Tidak dapat menilai titik balik tren secara efektif, yang dapat menyebabkan peningkatan kerugian.
Dalam menyusun situasi, mudah untuk melakukan arbitrage.
Bergantung pada pengaturan parameter, berbagai varietas perlu menyesuaikan parameter.
Ini adalah posisi tunggal yang tidak dapat dimanfaatkan untuk keuntungan.
Tingkat kegagalan dalam satu kondisi tinggi, kemungkinan menunggu waktu yang lama untuk masuk
Langkah-langkah manajemen risiko yang sesuai:
Menggunakan posisi kecil, masuk dalam kelompok, dan mengendalikan kerugian tunggal.
Tetapkan garis stop loss, stop loss cepat. Atau gunakan stop loss mobile untuk melacak stop loss.
Parameter optimasi, disesuaikan dengan varietas saat ini. Dapat membantu menilai tren dengan indikator lain.
Pengurangan biaya dengan metode pengisian ulang Martingale.
Ini adalah varietas dengan tren yang jelas, dan keuntungan yang tidak dapat dipercaya.
Persyaratan masuk harus dipermudah sesuai dengan probabilitas masuk.
Strategi Gandalf juga dapat dioptimalkan dalam beberapa hal:
Membangun indikator penilaian tren untuk membantu menentukan kapan tren berbalik. Misalnya, masuk MACD, Brin band dan lain-lain.
Menambahkan fungsi optimasi terpisah, parameter optimasi otomatis, menyesuaikan lebih banyak varietas.
Menambahkan algoritma pembelajaran mesin untuk melatih neural network atau model SVM untuk menilai tren menggunakan data historis.
Menambahkan cara berhenti, seperti berhenti bergerak, berhenti bergerak indeks.
Arbitrase harga atau arbitrase statistik dalam kombinasi dengan produk terkait.
Menambahkan prediksi status berdasarkan model Hidden Markov untuk menilai status quo.
Membangun strategi kompleks, seperti kombinasi dengan strategi linier, untuk manajemen multi-strategi.
Menjelajahi optimasi portofolio strategi perdagangan, menemukan bobot portofolio.
Secara keseluruhan, strategi Gandalf dapat diperluas dan dioptimalkan pada berbagai tingkatan, seperti penilaian tren, optimasi otomatis, dan manajemen risiko, sehingga strategi lebih stabil dan andal.
Strategi Gandalf kuantitatif adalah strategi yang sederhana dan efektif untuk menilai tren berdasarkan perbandingan harga. Ini menggabungkan pemikiran tentang pelacakan tren dengan stop loss yang cepat, sehingga dapat mengontrol risiko secara efektif.
/*backtest
start: 2023-10-22 00:00:00
end: 2023-10-29 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
// The GandalfProjectResearchSystem strategy, as discussed in
// “System Development Using Artificial Intelligence”
// by Domenico D’Errico and Giovanni Trombetta
strategy("Gandalf Project Research System", overlay=true)
// Inputs
Quantity = input(0, title="Quantity (0 to auto calc)")
Single_Trade_Money = input(10000, minval=1, title="Money to spend on single trade")
MaxProfitCloses = input(6, minval=1, title="Max Profit Close")
MaxBars = input(8, minval=1, title="Max Total Bars")
Enter_Gap = input(-0.08, title="Distance from low price to place entry limit")
AltExit = input(true, title="Use Alt Exit")
// Calculate Order Quantity
Ncon = Single_Trade_Money / close
// Misc Variables
src = close
BarsSinceEntry = 0
MaxProfitCount = 0
MedBodyPrice = (open + close) / 2.0
Weighted = (high + low + close + close) / 4.0
Median = (high + low) / 2.0
// Enter Conditions
Cond00 = strategy.position_size == 0
Cond01 = ((Weighted[1] < Median[1] and Median[2] <= Weighted[1] and MedBodyPrice[2] <= Weighted[3]) or (Weighted[1] < Median[3] and MedBodyPrice[0] < Median[2] and MedBodyPrice[1] < MedBodyPrice[2]))
Entry01 = Cond00 and Cond01
// Update Exit Variables
BarsSinceEntry := Cond00 ? 0 : nz(BarsSinceEntry[1]) + 1
MaxProfitCount := Cond00 ? 0 : (close > strategy.position_avg_price and BarsSinceEntry > 1) ? nz(MaxProfitCount[1]) + 1 : nz(MaxProfitCount[1])
// Exit Conditions
eCond01 = BarsSinceEntry - 1 >= MaxBars
eCond02 = MaxProfitCount >= MaxProfitCloses
eCond03 = ((Weighted[1] < MedBodyPrice[1] and Median[2] == MedBodyPrice[3] and MedBodyPrice[1] <= MedBodyPrice[4]) or (Weighted[2] < MedBodyPrice[0] and Median[4] <= Weighted[3] and MedBodyPrice[1] <= Weighted[1]) or (Weighted[2] < MedBodyPrice[0] and Median[4] <= Weighted[3] and MedBodyPrice[1] <= Weighted[1]))
eCond04 = AltExit ? true : close - strategy.position_avg_price < 0
Exit01 = not Cond00 and (eCond01 or eCond02 or (eCond03 and eCond04))
// Entries
strategy.entry(id="L1", long=true, limit=low + Enter_Gap, qty=(Quantity > 0 ? Quantity : Ncon), when=Entry01)
// Exits
strategy.close("L1", Exit01)