
Strategi perdagangan yang mengikuti tren dinamis yang didasarkan pada sudut Gansu adalah metode perdagangan kuantitatif yang menggabungkan teori Gansu dan titik tinggi dan rendah yang berayun. Strategi ini menggunakan sudut Gansu untuk mengidentifikasi tren pasar dan menghasilkan sinyal perdagangan ketika harga menerobos garis sudut ini.
Identifikasi titik tertinggi dan terendah yang bergoyang: Strategi menggunakan siklus yang ditentukan pengguna (default 14) untuk mengidentifikasi titik tertinggi dan terendah yang bergoyang. Titik-titik ini adalah dasar untuk menggambar garis sudut Gansey.
Perhitungan garis sudut Gannett: Berdasarkan titik tinggi dan rendah yang teridentifikasi, strategi menghitung garis sudut Gannett ke atas dan ke bawah. Sudut dapat disesuaikan oleh pengguna, default 45 derajat.
Sinyal perdagangan dihasilkan:
Manajemen risiko: Strategi ini menggabungkan tingkat stop loss dan stop loss yang dapat disesuaikan untuk mengontrol risiko setiap transaksi.
Adaptasi Dinamis: Strategi dapat beradaptasi dengan berbagai kondisi pasar dan fluktuasi harga dengan terus-menerus menyesuaikan titik awal dari garis sudut Ganges.
Pelacakan tren: Strategi pada dasarnya adalah sistem pelacakan tren yang membantu menangkap keuntungan signifikan dari tren besar.
Pengelolaan risiko: Penetapan dan penghentian risiko yang dibangun membantu mengendalikan risiko dan mencegah kerugian yang berlebihan dari satu transaksi.
Visualisasi: Strategi menampilkan garis sudut gandhi dan sinyal perdagangan secara intuitif di grafik, membantu pedagang memahami struktur pasar dan logika strategi.
Fleksibilitas: Berbagai parameter yang dapat disesuaikan (seperti sudut, panjang siklus, tingkat stop loss) memungkinkan strategi untuk beradaptasi dengan berbagai jenis perdagangan dan kerangka waktu.
Risiko pasar yang bergoyang: Dalam pasar yang bergoyang atau di posisi terbalik, sering terjadi penembusan palsu yang dapat menyebabkan terlalu banyak sinyal yang salah dan biaya transaksi.
Risiko slippage: Dalam pasar cepat, harga transaksi yang sebenarnya mungkin berbeda secara signifikan dari harga saat sinyal dihasilkan.
Risiko over-optimisasi: terlalu banyak penyesuaian parameter untuk menyesuaikan dengan data historis dapat menyebabkan strategi berkinerja buruk di masa depan.
Risiko Trend Reversal: Strategi dapat menghasilkan kerugian jika terjadi pembalikan tren pada awal.
Untuk mengurangi risiko ini, pertimbangkan untuk:
Analisis multi-frame: Mengintegrasikan informasi tren dari frame waktu yang lebih tinggi dapat meningkatkan kualitas sinyal perdagangan.
Adaptasi sudut dinamis: Adaptasi sudut Ganshe secara dinamis sesuai dengan fluktuasi pasar, dapat membuat strategi lebih sesuai dengan lingkungan pasar yang berbeda.
Pertimbangan volume transaksi: Menggunakan volume transaksi sebagai indikator tambahan dapat meningkatkan keandalan sinyal.
Optimasi Pembelajaran Mesin: Menggunakan algoritma pembelajaran mesin untuk mengoptimalkan parameter strategi secara dinamis, yang dapat meningkatkan kemampuan adaptasi strategi.
Filter relevansi: Dalam perdagangan multi-varietas, mempertimbangkan relevansi antar-varietas dapat mengurangi risiko sistemik.
Pengendalian penarikan: Memperkenalkan mekanisme pengendalian penarikan yang didasarkan pada kurva hak dan kepentingan, dapat melindungi modal dengan lebih baik ketika tren besar berbalik.
Tujuan dari orientasi optimasi ini adalah untuk meningkatkan stabilitas dan profitabilitas strategi, sekaligus mengurangi risiko yang melekat.
Strategi perdagangan yang mengikuti tren dinamis berdasarkan sudut Ganse adalah sistem perdagangan yang menggabungkan teori analisis teknis klasik dan metode kuantitatif modern. Ini mengidentifikasi dan melacak tren pasar melalui garis sudut Ganse yang disesuaikan secara dinamis dan menghasilkan sinyal perdagangan di titik-titik penting. Keunggulan strategi terletak pada adaptasi dinamis dan mekanisme manajemen risiko yang dibangun, tetapi juga menghadapi tantangan seperti pasar yang bergoyang dan pengoptimalan berlebihan.
/*backtest
start: 2024-06-01 00:00:00
end: 2024-06-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Gann Strategy", overlay=true)
// User inputs
gann_angle_up = input.float(45, "Gann Angle Up (degrees)")
gann_angle_down = input.float(45, "Gann Angle Down (degrees)")
length = input.int(14, "Length for Swing High/Low")
// Functions to find Swing High and Swing Low
var float swingHigh = na
var float swingLow = na
if (high[length] == ta.highest(high, length * 2 + 1))
swingHigh := high[length]
if (low[length] == ta.lowest(low, length * 2 + 1))
swingLow := low[length]
// Gann angles calculation
gann_up = swingLow + math.tan(gann_angle_up * math.pi / 180) * (bar_index - ta.valuewhen(not na(swingLow), bar_index, 0))
gann_down = swingHigh - math.tan(gann_angle_down * math.pi / 180) * (bar_index - ta.valuewhen(not na(swingHigh), bar_index, 0))
// Gann angles visualization
plot(na(gann_up) ? na : gann_up, color=color.green, linewidth=2, title="Gann Angle Up")
plot(na(gann_down) ? na : gann_down, color=color.red, linewidth=2, title="Gann Angle Down")
// Entry and exit conditions
longCondition = ta.crossover(close, gann_up)
shortCondition = ta.crossunder(close, gann_down)
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Visualization of entry and exit points
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Setting stop loss and take profit levels
stopLossLevel = input.float(1.0, "Stop Loss Level (percent)") / 100
takeProfitLevel = input.float(2.0, "Take Profit Level (percent)") / 100
if (strategy.position_size > 0)
strategy.exit("Take Profit/Stop Loss", from_entry="Long", limit=close * (1 + takeProfitLevel), stop=close * (1 - stopLossLevel))
if (strategy.position_size < 0)
strategy.exit("Take Profit/Stop Loss", from_entry="Short", limit=close * (1 - takeProfitLevel), stop=close * (1 + stopLossLevel))