Strategi crossover rata-rata bergerak Galileo Galilei adalah strategi perdagangan yang didasarkan pada rata-rata bergerak. Sinyal perdagangan dihasilkan dengan menghitung rata-rata bergerak eksponensial (EMA) selama periode tertentu dan membandingkan crossover antara EMA dan harga. Sinyal jual dihasilkan ketika harga turun di bawah EMA dari atas ke bawah, sementara sinyal beli terjadi ketika harga pecah di atas EMA dari bawah ke atas.
Inti dari strategi Galileo Galilei terletak pada rata-rata bergerak eksponensial (EMA). EMA adalah jenis rata-rata bergerak yang menempatkan lebih banyak bobot pada harga terbaru. Rumus perhitungannya adalah:
EMA hari ini = (Harga penutupan hari ini × Faktor penyeimbang) + (EMA kemarin × (1 − Faktor penyeimbang))
Di mana faktor pelemahan α = (2/(jumlah periode + 1))
Strategi ini secara dinamis menghitung EMA berdasarkan parameter periode input pengguna. kemudian membandingkan persilangan antara harga dan EMA untuk menentukan sinyal perdagangan:
Ketika harga turun di bawah EMA dari atas ke bawah, sinyal jual dihasilkan untuk perdagangan pendek.
Ketika harga melintasi EMA dari bawah, sinyal beli dipicu untuk perdagangan panjang.
Strategi ini juga memetakan garis EMA pada grafik, bersama dengan penanda panah yang menunjukkan sinyal beli dan jual.
Strategi crossover rata-rata bergerak Galileo Galilei memiliki keuntungan berikut:
Risiko potensial dari strategi ini meliputi:
Beberapa cara untuk mengoptimalkan strategi:
Menggabungkan indikator lain untuk membangun strategi komposit untuk meningkatkan ketahanan terhadap sinyal palsu.
Tambahkan mekanisme stop loss seperti trailing stop loss atau stop loss berbasis persentase untuk mengontrol jumlah kerugian perdagangan tunggal.
Uji EMA dengan kombinasi parameter yang berbeda untuk menemukan pengaturan yang optimal.
Mengevaluasi logika re-entry untuk menangkap rebound setelah pembalikan harga awal, meningkatkan profitabilitas.
Galileo Galilei's moving average crossover adalah strategi sederhana namun praktis dengan logika yang jelas dan mudah dioperasikan. Ini cocok untuk pedagang kuantum pemula. Dengan perbaikan terus menerus, kinerjanya bisa menjadi semakin unggul dari waktu ke waktu.
/*backtest start: 2022-12-11 00:00:00 end: 2023-12-17 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/ // © armigoldman //@version=3 strategy(title="Galileo Galilei", shorttitle="Galileo Galilei", overlay=true, initial_capital = 100000, default_qty_type=strategy.cash, default_qty_value = 100000) len = input(11, minval=1, title="Length") src = input(open, title="Source") out = ema(src, len) plot(out, title="EMA", color=yellow) //last8h = highest(close, 8) //lastl8 = lowest(close, 8) //plot(last8h, color=red, linewidth=2) //plot(lastl8, color=green, linewidth=2) //////////////////////////////////////////////////////////////////////////////// // BACKTESTING RANGE // From Date Inputs fromDay = input(defval=1, title="From Day", minval=1, maxval=31) fromMonth = input(defval=1, title="From Month", minval=1, maxval=12) fromYear = input(defval=2020, title="From Year", minval=1970) // To Date Inputs toDay = input(defval=1, title="To Day", minval=1, maxval=31) toMonth = input(defval=12, title="To Month", minval=1, maxval=12) toYear = input(defval=2021, title="To Year", minval=1970) // Calculate start/end date and time condition startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true bearish = cross(close, out) == 1 and close[1] > close bullish = cross(close, out) == 1 and close[1] < close plotshape(bearish, color=white, style=shape.arrowdown, text="BEAR", location=location.abovebar) plotshape(bullish, color=white, style=shape.arrowup, text="BULL", location=location.belowbar) buy = if cross(close, out) == 1 and close[1] < close strategy.entry("BUY", strategy.long, when=time_cond) //strategy.close_all(when=bearish) // strategy.exit("exit", "Long", profit =, loss = 35) sell = if cross(close, out) == 1 and close[1] > close strategy.entry("SELL", strategy.short, when=time_cond) //sell = if bearish //strategy.close_all(when=bullish) // strategy.exit("exit", "Long", profit = bullish, loss = 100) profit = strategy.netprofit if not time_cond strategy.close_all() //plotshape(true, style=shape.triangleup, location=location.abovebar)