Strategi Dagangan Automatik Masa Depan yang Komprehensif untuk Kedua-dua Lama dan Pendek

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

img

Strategi ini merupakan satuStrategi Dagangan Automatik Masa Depan yang Komprehensif untuk Kedua-dua Lama dan Pendek. Ia mengintegrasikan SuperTrend, QQE dan Trend Indicator A-V2 untuk mengesan isyarat perdagangan secara automatik dan membuat perdagangan panjang / pendek.

Prinsip Strategi

Strategi ini terdiri daripada tiga bahagian utama:

  1. Indikator SuperTrend menentukan trend utama pasaran. Apabila harga pecah di atas garis trend menaik, ia menunjukkan trend menaik. Apabila harga pecah di bawah garis trend turun, ia menunjukkan trend menurun.

  2. Indikator QQE menggabungkan RSI untuk mengenal pasti status overbought / oversold. Tahap overbought / oversold dinamik dikira berdasarkan purata RSI dan penyimpangan standard. RSI di atas tahap atas menunjukkan isyarat overbought dan RSI di bawah tahap yang lebih rendah menunjukkan isyarat oversold.

  3. Trend Indicator A-V2 menilai trend dengan membandingkan garis EMA cepat dan perlahan. Apabila EMA cepat lebih tinggi daripada EMA perlahan, ia menghantar isyarat beli.

Apabila menilai arah pasaran, isyarat panjang dipicu apabila SuperTrend menunjukkan trend menaik, QQE tidak terlalu dijual dan isyarat beli A-V2 berlaku. isyarat pendek dipicu apabila keadaan bertentangan berlaku.

Kelebihan

  1. Menggunakan pelbagai penunjuk meningkatkan kebolehpercayaan dan mengurangkan isyarat palsu.

  2. Penemuan isyarat automatik tanpa gangguan manual mengurangkan kesilapan manusia.

  3. Gabungan organik penunjuk menyediakan kawalan risiko yang berkesan semasa menemui peluang perdagangan.

  4. Parameter yang boleh disesuaikan untuk memenuhi keperluan pengguna.

  5. Sokong perdagangan panjang sahaja dan perdagangan panjang/pendek untuk fleksibiliti.

Risiko dan Penyelesaian

  1. Indikator boleh menghasilkan isyarat palsu di bawah keadaan pasaran yang melampau.

  2. Kos urus niaga dan slippage boleh mengikis keuntungan.

  3. Setup parameter yang tidak mencukupi membawa kepada prestasi yang buruk. Cuba nilai yang berbeza untuk mencari konfigurasi yang optimum.

Arahan pengoptimuman

  1. Meningkatkan pembelajaran mesin untuk mengoptimumkan parameter automatik berdasarkan data sejarah.

  2. Menggabungkan lebih banyak faktor struktur mikro pasaran seperti jumlah untuk menemui isyarat yang lebih baik.

  3. Melaksanakan teknik perdagangan frekuensi tinggi untuk menghantar pesanan secara automatik.

Kesimpulan

Strategi ini menggabungkan penunjuk untuk menilai struktur pasaran dan mencapai keuntungan yang stabil di bawah kawalan risiko. Ia mempertimbangkan kedua-dua arah trend dan status overbought / oversold untuk keputusan perdagangan yang bernuansa. Masih banyak ruang untuk pengoptimuman parameter, penambahbaikan logik dan peningkatan pelaksanaan untuk meningkatkan lagi prestasi 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 lanjut