Strategi perdagangan otomatis berjangka yang komprehensif untuk jangka panjang dan pendek

Penulis:ChaoZhang, Tanggal: 2024-02-18 14:25:04
Tag:

img

Strategi ini adalah strategi inovatifStrategi perdagangan otomatis berjangka yang komprehensif untuk jangka panjang dan pendek. Ini mengintegrasikan SuperTrend, QQE dan Trend Indicator A-V2 untuk secara otomatis mendeteksi sinyal perdagangan dan melakukan perdagangan panjang/pendek. Strategi ini bertujuan untuk mengidentifikasi tren pasar utama dan mencapai keuntungan yang stabil dengan kontrol risiko yang baik.

Prinsip Strategi

Strategi ini terdiri dari tiga bagian utama:

  1. Indikator SuperTrend menentukan tren pasar utama. Ketika harga pecah di atas garis tren naik, itu menunjukkan tren naik. Ketika harga pecah di bawah garis tren turun, itu menunjukkan tren turun.

  2. Indikator QQE menggabungkan RSI untuk mengidentifikasi status overbought/oversold. Tingkat overbought/oversold dinamis dihitung berdasarkan rata-rata RSI dan standar deviasi. RSI di atas level atas menunjukkan sinyal overbought dan RSI di bawah level bawah menunjukkan sinyal oversold.

  3. Trend Indicator A-V2 menilai tren dengan membandingkan garis EMA cepat dan lambat.

Saat menilai arah pasar, sinyal panjang dipicu ketika SuperTrend menunjukkan tren naik, QQE tidak oversold dan sinyal beli A-V2 terjadi.

Keuntungan

  1. Menggunakan beberapa indikator meningkatkan keandalan dan mengurangi sinyal palsu.

  2. Penemuan sinyal otomatis tanpa gangguan manual mengurangi kesalahan manusia.

  3. Kombinasi indikator organik memberikan kontrol risiko yang efektif saat menemukan peluang perdagangan.

  4. Parameter yang dapat disesuaikan untuk memenuhi kebutuhan pengguna.

  5. Mendukung perdagangan hanya panjang dan panjang/pendek untuk fleksibilitas.

Risiko dan Solusi

  1. Indikator dapat menghasilkan sinyal palsu dalam kondisi pasar yang ekstrim.

  2. Biaya transaksi dan slippage dapat mengikis keuntungan.

  3. Pengaturan parameter yang tidak memadai menyebabkan kinerja yang buruk. Coba nilai yang berbeda untuk menemukan konfigurasi optimal.

Arahan Optimasi

  1. Meningkatkan pembelajaran mesin untuk mengoptimalkan parameter otomatis berdasarkan data historis.

  2. Masukkan lebih banyak faktor struktur mikro pasar seperti volume untuk menemukan sinyal yang lebih baik.

  3. Mengimplementasikan teknik perdagangan frekuensi tinggi untuk mengirimkan pesanan secara otomatis.

Kesimpulan

Strategi ini menggabungkan indikator untuk menilai struktur pasar dan mencapai keuntungan yang stabil di bawah kendali risiko. Strategi ini mempertimbangkan arah tren dan status overbought/oversold untuk keputusan perdagangan yang bernuansa. Masih banyak ruang untuk optimasi parameter, perbaikan logika dan peningkatan eksekusi untuk meningkatkan kinerja 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")


Lebih banyak