Strategi perdagangan berjangka otomatis jangka panjang dan pendek yang komprehensif


Tanggal Pembuatan: 2024-02-18 14:25:04 Akhirnya memodifikasi: 2024-02-18 14:25:04
menyalin: 0 Jumlah klik: 874
1
fokus pada
1617
Pengikut

Strategi perdagangan berjangka otomatis jangka panjang dan pendek yang komprehensif

Strategi ini adalah sebuah inovasi.Strategi perdagangan berjangka otomatis jangka panjang dan pendek yang komprehensifStrategi ini bertujuan untuk menemukan tren utama di pasar dan mendapatkan keuntungan yang stabil dengan mengontrol risiko.

Prinsip Strategi

Strategi ini didasarkan pada tiga bagian utama:

  1. Indikator SuperTrend bertanggung jawab untuk menentukan arah tren utama pasar. Ketika harga melampaui garis uptrend, itu adalah bullish, dan ketika melewati garis downtrend, itu adalah bearish.

  2. Indikator QQE digabungkan dengan RSI untuk menilai status overbought oversold. Berdasarkan rata-rata RSI, standar deviasi dihitung untuk menentukan batas atas dan bawah dinamis. RSI lebih tinggi dari batas atas sebagai sinyal overbought, dan lebih rendah dari batas bawah sebagai sinyal oversold.

  3. Indikator Trend Indicator A-V2 menilai tren dengan menghitung posisi garis cepat dan lambat EMA, garis cepat lebih tinggi dari garis lambat untuk melihat sinyal.

Dalam menilai arah pasar, ketika SuperTrend adalah bullish, dan QQE memutuskan tidak oversold, dan A-V2 adalah bullish, keluar sinyal masuk untuk melakukan lebih banyak; ketika SuperTrend adalah bearish, dan QQE memutuskan tidak oversold, dan A-V2 adalah bearish, keluar sinyal masuk untuk melakukan kosong.

Keunggulan Strategis

  1. Menggunakan beberapa indikator secara komprehensif untuk membuat keputusan perdagangan yang lebih andal dan mengurangi sinyal palsu.

  2. Ini memungkinkan untuk mendeteksi sinyal perdagangan secara otomatis, tanpa intervensi manusia, mengurangi kesalahan manusia.

  3. Menggunakan penggabungan organik dari indikator untuk mengendalikan risiko dan mencapai keuntungan yang stabil.

  4. Parameter dapat disesuaikan, dan pengguna dapat menyesuaikan strategi sesuai dengan preferensi mereka sendiri.

  5. Mendukung transaksi unilateral, multilateral atau bilateral, dan fleksibilitas transaksi.

Risiko dan Solusi

  1. Dalam kondisi khusus pasar, indikator dapat mengirimkan sinyal yang salah, yang dapat dikurangi dengan mengoptimalkan parameter indikator.

  2. Biaya transaksi dan slippage dapat mempengaruhi ruang keuntungan strategi, yang dapat dioptimalkan dengan menerapkan mekanisme stop loss.

  3. Tidak tepatnya parameter indikator dapat menyebabkan kinerja yang buruk dari strategi, mencoba parameter yang berbeda untuk mencari konfigurasi terbaik.

Arah optimasi

  1. Menambahkan algoritma pembelajaran mesin untuk mengoptimalkan parameter indikator secara otomatis berdasarkan data historis, membuat strategi lebih cerdas.

  2. Ini akan menghasilkan sinyal perdagangan yang lebih efektif dengan menggabungkan lebih banyak faktor mikro-struktur pasar, seperti volume transaksi, data eksposur, dan sebagainya.

  3. Menggunakan teknologi perdagangan frekuensi tinggi untuk melakukan transaksi dengan mengirimkan pesanan secara otomatis melalui model algoritma.

Meringkaskan

Strategi ini mengintegrasikan beberapa indikator untuk menentukan struktur pasar, dalam hal pengendalian risiko untuk mencapai keuntungan yang stabil, baik mempertimbangkan arah tren dan mempertimbangkan keadaan overbought dan oversold, keputusan perdagangan lebih halus. Ada banyak ruang untuk pengoptimalan, dapat meningkatkan kinerja strategi lebih lanjut dari segi pengoptimalan parameter, pengoptimalan struktur, dan pengoptimalan pelaksanaan.

Kode Sumber Strategi
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//author:盧振興 芙蓉中華中學畢業 育達科技大學畢業碩士
//參考資料 : QQE MOD By:Mihkel00 ,SuperTrend By:KivancOzbilgic , TrendIndicator A-V2 By:Dziwne

strategy("綜合交易策略", shorttitle="Comprehensive Strategy", overlay=true)

// 添加單邊或多空參數
OnlyLong = input(true, title="單邊")

// SuperTrend 参数
PeriodsST = input(9, title="ST ATR Period")
MultiplierST = input(3.9, title="ST ATR Multiplier")
srcST = input(hl2, title="ST Source")

atrST = atr(PeriodsST)
upST = srcST - (MultiplierST * atrST)
upST := close[2] > upST[1] ? max(upST, upST[1]) : upST
dnST = srcST + (MultiplierST * atrST)
dnST := close[2] < dnST[1] ? min(dnST, dnST[1]) : dnST
trendST = 1
trendST := nz(trendST[1], trendST)
trendST := trendST == -1 and close[2] > dnST[1] ? 1 : trendST == 1 and close[2] < upST[1] ? -1 : trendST

// QQE 参数
RSI_PeriodQQE = input(6, title='QQE RSI Length')
SFQQE = input(5, title='QQE RSI Smoothing')
QQE = input(3, title='QQE Fast Factor')
ThreshHoldQQE = input(3, title="QQE Thresh-hold")
srcQQE = input(close, title="QQE RSI Source")

Wilders_PeriodQQE = RSI_PeriodQQE * 2 - 1

RsiQQE = rsi(srcQQE, RSI_PeriodQQE)
RsiMaQQE = ema(RsiQQE, SFQQE)
AtrRsiQQE = abs(RsiMaQQE[1] - RsiMaQQE)
MaAtrRsiQQE = ema(AtrRsiQQE, Wilders_PeriodQQE)
darQQE = ema(MaAtrRsiQQE, Wilders_PeriodQQE) * QQE

basisQQE = sma(RsiMaQQE - 50, 50)
devQQE = 0.35 * stdev(RsiMaQQE - 50, 50)
upperQQE = basisQQE + devQQE
lowerQQE = basisQQE - devQQE

qqeCondition = RsiMaQQE[1] - 50 > upperQQE[1] ? true : RsiMaQQE[1] - 50 < lowerQQE[1] ? false : na

// Trend Indicator A-V2 参数
ma_periodA_V2 = input(52, title="TIA-V2 EMA Period")
oA_V2 = ema(open, ma_periodA_V2)
cA_V2 = ema(close, ma_periodA_V2)
trendIndicatorAV2Condition = cA_V2[1] >= oA_V2[1] ? true : false

// 综合交易逻辑
longCondition = trendST == 1 and qqeCondition and trendIndicatorAV2Condition
shortCondition = trendST == -1 and not qqeCondition and not trendIndicatorAV2Condition

// 针对多单的开平仓逻辑
if (OnlyLong)
    if (longCondition)
        strategy.entry("Buy", strategy.long)        
    else
        strategy.close("Buy")

// 多空都做时的逻辑
if (not OnlyLong)
    if (longCondition)
        strategy.entry("Buy", strategy.long)
    else if (shortCondition)
        strategy.entry("Sell",strategy.short)

    // 添加多空平仓逻辑
    if (not longCondition)
        strategy.close("Buy")
    if (not shortCondition)
        strategy.close("Sell")

// 可视化信号
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition and not OnlyLong, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")