
Strategi dagangan kuantitatif Gandalf adalah strategi pengesanan trend berdasarkan garis nilai tengah. Ia menilai arah trend semasa dengan mengira purata berat, garis nilai tengah, dan harga tengah entiti untuk mencari titik masuk yang lebih baik. Apabila pengesanan trend dikesan, ia akan berhenti dengan cepat dan keluar.
Logik teras Gandalf adalah membandingkan harga purata bertimbangan, garis nilai tengah, dan hubungan saiz harga tengah entiti untuk menentukan arah dan kekuatan trend semasa.
Secara khusus, ia akan mengira harga berikut:
Pada permulaan, ia akan membandingkan purata berat dua garis K terdahulu, garis nilai tengah dan hubungan saiz harga tengah sebenar untuk menentukan sama ada ia sesuai dengan ciri permulaan trend.
Sebagai contoh, jika purata berat berada di bawah garis nilai tengah, dan harga perantaraan entiti juga di bawah purata berat, menunjukkan bahawa harga sedang jatuh, ini adalah peluang untuk melakukan shorting.
Apabila berhenti kehilangan, ia akan terus membandingkan hubungan besar dan kecil antara harga ini untuk menentukan apakah terdapat tanda-tanda pembalikan trend. Jika purata berat lebih tinggi daripada harga tengah entiti dan garis tengahnya juga lebih rendah daripada purata berat, menunjukkan bahawa trend telah berbalik, ia harus berhenti kehilangan.
Dengan menggunakan kaedah ini untuk membandingkan harga dan saiznya, strategi Gandalf dapat menilai dan mengesan trend. Ia dapat mencari masa masuk yang baik dan dapat mengesan perubahan tren dengan cepat.
Strategi Gandalf mempunyai kelebihan berikut:
Menggunakan garis nilai tengah untuk menentukan arah trend, anda boleh menyaring bunyi pasaran dengan berkesan dan mengunci trend utama.
Syarat kemasukan menggabungkan pelbagai perbandingan harga untuk menilai permulaan trend dengan lebih yakin.
Syarat stop loss juga menggunakan perbandingan harga untuk menentukan pembalikan trend, boleh menghentikan kerugian dengan cepat, mengawal risiko.
Anda boleh membeli tiket dengan harga yang berdekatan dengan harga yang sesuai.
Anda boleh menetapkan jumlah hentian dan had kedudukan yang boleh dikunci untuk mengunci keuntungan dan mengawal risiko perdagangan tunggal.
Kodnya mudah difahami dan diubah suai.
Parameter boleh disesuaikan dengan keutamaan risiko peribadi, mudah dioptimumkan.
Untuk varieti trend, anda boleh mendapatkan keuntungan dari trend.
Secara keseluruhannya, strategi Gandalf menggunakan garis tengah untuk menilai trend, menetapkan keadaan berhenti dan berhenti, dan dapat mengawal trend pengesanan risiko dengan berkesan, merupakan strategi pengesanan trend yang boleh dipercayai.
Namun, ada beberapa risiko yang perlu diperhatikan dalam taktik Gandalf:
Sebagai strategi trend-following, kerugian yang lebih kecil akan dihasilkan apabila trend tidak jelas atau sering berbalik.
Tidak dapat menilai dengan tepat titik perubahan trend, yang boleh menyebabkan kerugian meningkat.
Dalam perhitungan, ia mudah dilabelkan.
Bergantung pada tetapan parameter, pelbagai jenis memerlukan penyesuaian parameter.
“Saya tidak tahu apa yang berlaku di Malaysia, tetapi saya tidak tahu apa yang berlaku di Malaysia”, katanya.
Kadar kegagalan yang lebih tinggi dan mungkin menunggu masa yang lama untuk kemasukan.
Kaedah pengurusan risiko:
Menggunakan kedudukan kecil, masuk dalam kumpulan, mengawal kerugian tunggal.
Tetapkan garis hentian, hentian pantas. Atau gunakan hentian bergerak untuk mengesan titik hentian.
Parameter pengoptimuman, disesuaikan dengan varieti semasa. Ia boleh membantu menilai trend dengan petunjuk lain.
Ia boleh digunakan untuk mengurangkan kos dengan menggunakan kaedah pengisian semula Martingale.
Ia adalah jenis perdagangan yang mempunyai trend yang jelas dan keuntungan yang tinggi.
Syarat kemasukan perlu dilengkapkan dengan mengambil kira kemungkinan kemasukan.
Strategi Gandalf juga boleh dioptimumkan dalam beberapa aspek:
Membina indikator penilaian trend, membantu menentukan masa pembalikan trend. Contohnya, masukkan MACD, keputusan Brin dan lain-lain.
Menambah fungsi pengoptimuman separa, parameter pengoptimuman automatik, menyesuaikan lebih banyak varieti.
Menambah algoritma pembelajaran mesin, menggunakan rangkaian saraf atau model SVM yang dilatih untuk menilai trend menggunakan data sejarah.
Tambah cara penangguhan, seperti penangguhan bergerak, penangguhan bergerak indeks.
Berkongsi dengan produk yang berkaitan, melakukan arbitraj perbezaan harga atau arbitraj statistik.
Menambah ramalan keadaan berdasarkan model Markov yang tersembunyi untuk menilai keadaan.
Membina strategi komposit, seperti kombinasi dengan strategi linear, untuk pengurusan pelbagai strategi.
Meneroka cara untuk mengoptimumkan portfolio strategi dagangan dan mencari berat portfolio.
Secara keseluruhannya, strategi Gandalf boleh diperluaskan dan dioptimumkan dalam pelbagai peringkat seperti penilaian trend, pengoptimuman automatik, dan pengurusan risiko, menjadikan strategi lebih stabil dan boleh dipercayai.
Strategi kuantitatif Gandalf adalah strategi yang mudah dan berkesan untuk menilai trend berdasarkan perbandingan harga. Ia menggabungkan trend tracking dengan pemikiran yang cepat untuk menghentikan kerugian, yang dapat mengawal risiko dengan berkesan. Logik strategi jelas dan mudah difahami, parameter boleh disesuaikan mengikut pilihan risiko peribadi.
/*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)