
Strategi penembusan rata-rata Galileo adalah strategi perdagangan yang didasarkan pada rata-rata bergerak. Strategi ini menghasilkan sinyal perdagangan dengan menghitung rata-rata bergerak indeks untuk periode tertentu dan melakukan perbandingan silang dengan harga.
Inti dari strategi crossover rata-rata Galileo adalah rata-rata bergerak indeks (EMA). EMA adalah algoritma rata-rata bergerak yang cenderung memberikan lebih banyak bobot pada harga terbaru. Rumus perhitungan adalah:
EMA hari ini = (harus ditutup hari ini x smoothed normal) + (EMA kemarin × ((1- smoothed normal))
Di antaranya, bilangan konstan halus α = ((2/(bilangan siklus +1)) 。
Strategi ini menghitung EMA secara real-time dari panjang siklus yang dimasukkan oleh pengguna. Kemudian, harga dibandingkan dengan EMA untuk menilai perpotongan keduanya sebagai sinyal beli dan jual:
Ketika harga turun dari atas ke bawah di bawah EMA, menghasilkan sinyal jual dan melakukan operasi garis pendek.
Ketika harga menembus EMA dari arah bawah, sinyal beli dihasilkan, dan beberapa operasi dilakukan.
Strategi ini juga memetakan garis EMA dan panah yang menandai sinyal beli dan jual.
Strategi pengaliran garis rata-rata Galileo memiliki keuntungan sebagai berikut:
Strategi pengaliran garis rata-rata Galileo juga memiliki risiko sebagai berikut:
Strategi pengaliran garis rata Galileo dapat dioptimalkan dari beberapa arah:
Tergabung dengan indikator lain, membangun strategi komposit, menghindari sinyal palsu, meningkatkan stabilitas. Misalnya menambahkan volume transaksi, indikator tren, dll.
Menambahkan strategi stop loss, mengatur stop loss bergerak atau stop loss persentase, dan mengontrol kerugian tunggal.
Uji efek dari berbagai parameter EMA, pilih kombinasi parameter terbaik. Anda juga dapat menguji jenis rata-rata bergerak lainnya.
Evaluasi untuk bergabung dengan mekanisme re-entry, re-entry setelah harga berbalik, dan meningkatkan tingkat profit.
Strategi crossover linear Galileo adalah strategi perdagangan yang sederhana dan praktis, ide yang jelas, mudah dioperasikan, cocok untuk pemula yang ingin melakukan perdagangan kuantitatif. Dengan terus-menerus mengoptimalkan dan memperbaiki, percayalah bahwa efeknya akan menjadi lebih baik dan lebih baik, itu disarankan.
/*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)