
Gold split backtesting adalah strategi swing trading. Strategi ini menghasilkan sinyal berdasarkan harga tertinggi dan harga terendah dalam 21 hari terakhir. Strategi ini memiliki mekanisme backtesting, hanya melakukan multiples, dan memiliki karakteristik memegang posisi garis panjang.
Strategi ini pertama-tama menghitung harga tertinggi (high21) dan harga terendah (low21) selama 21 hari terakhir, kemudian menghitung perbedaan keduanya. Sinyal perdagangan adalah: melakukan plus ketika harga rendah saat ini lebih tinggi dari low21 + diff * 0.382, dan ketika harga penutupan K-line sebelumnya lebih tinggi dari harga pembukaan K-line sebelumnya. Stop loss adalah low21 + diff * 0.236.
Garis pemisah emas digunakan sebagai indikator teknis yang penting karena garis pemisah emas sesuai dengan titik dukungan atau resistensi umum di pasar. 0,382 dan 0,236 sering dipantau sebagai posisi mundur atau posisi bouncing, yang bisa dikatakan sebagai salah satu angka paling ajaib di alam.
Strategi ini memiliki beberapa keuntungan:
Menggunakan teori pembagian emas untuk memandu perdagangan, yang merupakan metode analisis teknis yang lebih matang.
Hanya dengan melakukan lebih banyak, Anda bisa mengurangi risiko sistem.
Menggunakan mekanisme pelacakan tren untuk menentukan masuk melalui elastisitas ke atas.
Ada garis stop loss yang jelas untuk mengendalikan risiko.
Parameter pengembalian dapat disesuaikan untuk menguji keefektifan dalam lingkungan pasar yang berbeda.
Strategi ini juga memiliki beberapa risiko:
Bergantung pada data historis, mungkin tidak sensitif terhadap perubahan struktur pasar.
Garis stop loss lebih dekat, mungkin akan terguncang oleh GAP semalam.
Jika terjadi fluktuasi besar, siklus pengembalian yang tidak tepat dapat menyebabkan sinyal palsu.
Biaya titik geser yang ada dalam perdagangan kuantitatif juga berdampak pada keuntungan.
Risiko-risiko ini dapat dikurangi dengan cara-cara seperti menyesuaikan parameter siklus pengukuran kembali, mengoptimalkan posisi stop loss, dan mempertimbangkan biaya slippage.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Parameter yang dioptimalkan secara otomatis berdasarkan algoritma pembelajaran mesin, membuat parameter siklus pengukuran lebih sesuai dengan lingkungan pasar saat ini.
Bergabung dengan derivatif keuangan seperti indeks saham dan futures, menggunakan leverage untuk memperbesar operasi.
Menambahkan model untuk menangani insiden, seperti menambahkan mekanisme identifikasi untuk lubang loncat.
Optimalkan strategi stop loss dengan pengaturan stop loss yang dinamis berdasarkan volatilitas pasar.
Secara keseluruhan, ini adalah strategi multi-head yang menggunakan prinsip garis pemisah emas, dengan mekanisme masuk yang jelas dan pemikiran stop loss. Dengan penyesuaian parameter, optimasi model, dan aplikasi kombinasi, ini dapat dioptimalkan menjadi strategi perdagangan kuantitatif yang andal.
/*backtest
start: 2022-11-21 00:00:00
end: 2023-11-27 00:00:00
period: 1d
basePeriod: 1h
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/
// © omkarkondhekar
//@version=4
strategy("GRBLong", overlay=true)
highInput = input(title = "High Days", type = input.integer, defval = 21, minval = 11)
lowInput = input(title = "Low Days", type = input.integer, defval = 21, minval = 5)
// Configure backtest start date with inputs
startDate = input(title="Start Date", type=input.integer,
defval=1, minval=1, maxval=31)
startMonth = input(title="Start Month", type=input.integer,
defval=1, minval=1, maxval=12)
startYear = input(title="Start Year", type=input.integer,
defval=2019, minval=1800, maxval=2100)
// See if this bar's time happened on/after start date
afterStartDate = (time >= timestamp(syminfo.timezone,
startYear, startMonth, startDate, 0, 0))
high21 = highest(high, highInput)
low21 = lowest(low, lowInput)
diff = high21 - low21
longEntrySignal = low > low21 + (diff * 0.382) and close[1] > open[1]
strategy.entry("Long", strategy.long, limit = low, when = longEntrySignal and afterStartDate)
strategy.exit("Long Exit", "Long", stop = low21 + (diff * 0.236))
plot(low21 + (diff * 0.382), color= color.green)
plot(low21 + (diff * 0.236), color = color.red)