
Strategi ini membolehkan perdagangan lelang di antara pasaran yang berbeza dengan mengira purata bergerak yang menyesuaikan diri. Strategi ini mempunyai ciri-ciri seperti lelang lintas pasaran, penyesuaian parameter dinamik, dan kawalan risiko.
Strategi ini mula-mula mendefinisikan fungsi scaleMinimax untuk menstandardkan urutan masa ke dalam julat yang ditetapkan. Kemudian mendefinisikan fungsi rema rata-rata bergerak yang beradaptasi untuk meluruskan dan mengira garis isyarat yang telah diluruskan.
Setelah mendapat isyarat, strategi memutuskan untuk memilih ruang kosong dengan menilai isyarat dengan harga. Secara khusus:
Di samping itu, strategi ini menambah faktor kelancaran dan menunjukkan garis isyarat show_line sebagai parameter yang boleh disesuaikan, meningkatkan fleksibiliti strategi.
Strategi ini mempunyai kelebihan berbanding strategi purata bergerak tradisional:
Strategi ini juga mempunyai risiko:
Penyelesaian adalah dengan menyesuaikan parameter kelancaran dengan betul, mengelakkan gegaran garis isyarat.
Arbitrage merentas pasaran mesti memastikan bahawa kedua-dua pasaran mempunyai hubungan harga dan pergerakan yang konsisten. Penyelesaian adalah memilih pasaran yang mempunyai hubungan tinggi untuk melakukan arbitrage.
Pengoptimuman parameter memerlukan pengumpulan data sejarah yang mencukupi untuk pengesanan semula. Penyelesaian adalah dengan menyesuaikan parameter dengan berhati-hati dalam perdagangan sebenar.
Strategi ini juga boleh dioptimumkan dengan:
Dalam pemilihan parameter, algoritma pembelajaran mesin boleh diperkenalkan untuk mengoptimumkan secara automatik set parameter.
Dalam penjanaan isyarat, lebih banyak penunjuk boleh diperkenalkan untuk digabungkan, untuk membina isyarat perdagangan yang lebih stabil.
Dalam kawalan risiko, anda boleh menetapkan garis stop loss untuk mengawal kerugian tunggal.
Dalam arbitraj merentas pasaran, ia boleh diperluaskan kepada lebih banyak jenis transaksi yang relevan.
Strategi ini mewujudkan perdagangan lebihan antara pasaran dengan cara mengira purata bergerak secara automatik. Berbanding dengan strategi purata bergerak tradisional, ia mempunyai kelebihan seperti penyesuaian parameter, pemprosesan yang lancar, lebihan antara pasaran. Langkah seterusnya adalah untuk mengoptimumkan lagi strategi ini melalui pembelajaran mesin, gabungan isyarat, dan pengurusan risiko.
/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Crossover82%", overlay=true)
//
// Functions
//
scaleMinimax(X, p, min, max) =>
hi = highest(X, p), lo = lowest(X, p)
(max - min) * (X - lo)/(hi - lo) + min
rema(ts, p) => // regularized ma
rm = 0.0, lambda = .5, a = 2 / (p + 1)
rm := (nz(rm[1]) + a * (ts - nz(rm[1])) + lambda * (2 * nz(rm[1]) - nz(rm[2]))) / (lambda + 1)
rm
//
// Inputs
//
X = input(close, title="Data source")
smooth = input(2, title="REMA smooth factor")
show_line = input(true, title="Show signal line")
//
// Main
//
p = 5
sig = rema(scaleMinimax(pow(X*p,-X) - 0.1, 100, lowest(X, 100), highest(X, 100)), smooth)
plot(show_line ? sig : na, linewidth=1)
plot(cross(sig, X) ? ohlc4 : na, style=circles, linewidth=8, color=blue, transp=50)
longCondition = crossover(sig, X)
if (longCondition)
strategy.entry("LE", strategy.long)
shortCondition = crossunder(sig, X)
if (shortCondition)
strategy.entry("SE", strategy.short)