Strategi arbitrase lintas pasar berdasarkan rata-rata pergerakan teratur adaptif


Tanggal Pembuatan: 2023-11-16 16:20:11 Akhirnya memodifikasi: 2023-11-16 16:20:11
menyalin: 0 Jumlah klik: 642
1
fokus pada
1617
Pengikut

Strategi arbitrase lintas pasar berdasarkan rata-rata pergerakan teratur adaptif

Ringkasan

Strategi ini memungkinkan perdagangan lelang di antara pasar yang berbeda dengan menghitung rata-rata bergerak reguler adaptif. Strategi ini memiliki fitur seperti lelang lintas pasar, penyesuaian parameter dinamis, dan kontrol risiko.

Prinsip Strategi

Strategi ini pertama-tama mendefinisikan fungsi scaleMinimax untuk menstandarisasi urutan waktu ke kisaran yang ditentukan. Kemudian mendefinisikan fungsi rema rata-rata bergerak yang beradaptasi untuk meluruskan dan menghitung garis sinyal yang telah dihaluskan.

  1. Definisi jendela geser dengan panjang default 5 hari.
  2. Nilai sig harian adalah rata-rata tertimbang dari nilai sig hari sebelumnya dengan harga penutupan hari tersebut. Rata-rata tertimbang menggunakan mekanisme penambahan berat adaptif, semakin dekat dari nilai saat ini, semakin besar bobotnya.
  3. Dengan menambahkan parameter λ sebagai regularity, transformasi sig menjadi lebih halus.

Setelah mendapatkan sinyal, strategi memutuskan apakah ada ruang kosong dengan menilai sinyal dan harga. Secara khusus:

  1. Ketika harga naik di atas sig, lakukan lebih banyak.
  2. Jika Anda tidak memiliki tanda tangan, Anda tidak akan dapat melihat harga.

Selain itu, kebijakan ini menambahkan faktor smooth dan menampilkan garis sinyal show_line sebagai parameter yang dapat disesuaikan, meningkatkan fleksibilitas kebijakan tersebut.

Analisis Keunggulan

Strategi ini memiliki beberapa keuntungan dibandingkan dengan strategi moving average tradisional:

  1. Adaptif weighting mechanism (AWM) dapat merespons perubahan harga dengan lebih cepat.
  2. Menambahkan faktor regulasi untuk membuat garis sinyal lebih halus dan menghindari sinyal yang salah karena fluktuasi harga yang drastis.
  3. Arbitrage lintas-pasar, memanfaatkan perbedaan harga antara pasar yang berbeda.
  4. Desain parameter yang dapat disesuaikan fleksibel dan dapat dioptimalkan sesuai dengan kondisi pasar.

Risiko dan Solusi

Strategi ini juga memiliki beberapa risiko:

  1. Bilateral crossover memiliki probabilitas yang lebih tinggi dari sinyal yang salah. Solusinya adalah dengan menyesuaikan parameter smoothing yang tepat untuk menghindari getaran garis sinyal.

  2. Arbitrage lintas pasar harus memastikan bahwa kedua pasar memiliki hubungan harga dan tren yang konsisten. Solusi adalah memilih pasar dengan relevansi tinggi untuk melakukan arbitrage.

  3. Optimasi parameter membutuhkan akumulasi data historis yang cukup untuk pengujian ulang. Solusinya adalah dengan hati-hati menyesuaikan parameter dalam transaksi nyata.

Arah optimasi

Strategi ini juga dapat dioptimalkan dengan:

  1. Pada pilihan parameter, Anda dapat memasukkan algoritma pembelajaran mesin untuk mengoptimalkan kombinasi parameter secara otomatis.

  2. Dalam pembuatan sinyal, lebih banyak indikator dapat diperkenalkan untuk dikombinasikan, untuk membangun sinyal perdagangan yang lebih stabil.

  3. Dalam pengendalian risiko, Anda dapat mengatur stop loss untuk mengendalikan kerugian tunggal.

  4. Dalam Arbitrage lintas pasar, dapat diperluas ke lebih banyak jenis transaksi yang relevan.

Meringkaskan

Strategi ini memungkinkan perdagangan lelang antar pasar dengan cara menghitung rata-rata bergerak secara otomatis. Ini memiliki beberapa keunggulan dibandingkan strategi rata-rata bergerak tradisional, seperti penyesuaian parameter, pemrosesan yang halus, dan lelang antar pasar. Langkah selanjutnya adalah mengoptimalkan strategi ini melalui pembelajaran mesin, kombinasi sinyal, dan manajemen risiko.

Kode Sumber Strategi
/*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)