
Strategi penyambungan garis rata-rata Galileo adalah strategi perdagangan berdasarkan purata bergerak. Strategi ini menghasilkan isyarat perdagangan dengan mengira purata bergerak indeks untuk tempoh tertentu dan membandingkannya dengan harga. Ia menghasilkan isyarat jual apabila harga menembus garis rata-rata dari arah atas ke bawah; ia menghasilkan isyarat beli apabila harga menembus garis rata-rata dari arah bawah.
EMA adalah algoritma purata bergerak yang cenderung memberi lebih banyak kepentingan kepada harga terkini. Rumus pengiraan adalah:
EMA hari ini = (harga penutupan hari ini x kestabilan lancar) + (EMA semalam × ((1- kestabilan lancar))
Di antaranya, bilangan biasa licin α = ((2/(bilangan kitaran + 1)).
Strategi ini mengira nilai EMA dalam masa nyata melalui panjang kitaran input pengguna. Ia kemudian membandingkan harga dengan EMA dan menilai persilangan kedua-duanya sebagai isyarat membeli dan menjual:
Apabila harga jatuh ke bawah EMA dari arah atas ke bawah, menghasilkan isyarat menjual dan melakukan operasi garis pendek.
Apabila harga menembusi EMA dari arah bawah, ia akan menghasilkan isyarat beli dan melakukan operasi ganda.
Strategi ini memetakan garisan EMA dan juga anak panah yang menandakan isyarat beli dan jual.
Strategi penyambungan garisan rata Galileo mempunyai kelebihan berikut:
Strategi penyambungan linear Galileo juga mempunyai risiko:
Strategi penyambungan linear Galileo boleh dioptimumkan dari beberapa arah:
Gabungan dengan penunjuk lain, membina strategi komposit, mengelakkan isyarat palsu, meningkatkan kestabilan. Sebagai contoh, tambah jumlah transaksi, penunjuk trend dan sebagainya.
Tambah strategi hentikan kerugian, set hentikan bergerak atau peratusan hentikan kerugian, mengawal kerugian tunggal.
Uji kesan pelbagai parameter EMA, pilih kombinasi parameter terbaik. Anda juga boleh menguji jenis purata bergerak yang lain.
Kajian untuk menyertai mekanisme kemasukan semula (re-entry mechanism) untuk meningkatkan kadar keuntungan apabila harga berbalik.
Strategi penyambung garisan rata Galileo adalah strategi perdagangan yang mudah digunakan, jelas, mudah dikendalikan, sesuai untuk pemula yang melakukan perdagangan kuantitatif. Dengan pengoptimuman dan peningkatan yang berterusan, kami yakin bahawa kesannya akan menjadi lebih baik dan lebih baik.
/*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)