Strategi perdagangan niaga hadapan automatik panjang dan pendek yang komprehensif


Tarikh penciptaan: 2024-02-18 14:25:04 Akhirnya diubah suai: 2024-02-18 14:25:04
Salin: 0 Bilangan klik: 874
1
fokus pada
1617
Pengikut

Strategi perdagangan niaga hadapan automatik panjang dan pendek yang komprehensif

Strategi ini adalah satu inovasi.Strategi perdagangan niaga hadapan automatik panjang dan pendek yang komprehensifMengintegrasikan beberapa petunjuk SuperTrend, QQE dan Trend Indicator A-V2 untuk mewujudkan isyarat perdagangan yang ditemui secara automatik dan melakukan perdagangan berlainan. Strategi ini bertujuan untuk mencari trend utama pasaran dan memperoleh keuntungan yang stabil dengan syarat mengawal risiko.

Prinsip Strategi

Strategi ini terdiri daripada tiga bahagian:

  1. Indikator SuperTrend bertanggungjawab untuk menentukan arah trend utama pasaran. Apabila harga melebihi garisan putaran ke atas, ia adalah bullish, dan apabila ia melampaui garisan putaran ke bawah, ia adalah bearish.

  2. Indikator QQE digabungkan dengan RSI untuk menentukan keadaan lebihan dan lebihan. Berdasarkan nilai purata RSI, perbezaan piawai dikira batas atas dan bawah dinamik, RSI lebih tinggi daripada had atas sebagai isyarat lebihan dan lebih rendah daripada had bawah sebagai isyarat lebihan.

  3. Indikator Trend Indicator A-V2 menilai trend dengan mengira kedudukan garis laju dan lambat EMA, garis laju lebih tinggi daripada garis lambat sebagai isyarat mata angin.

Dalam menilai arah pasaran, apabila SuperTrend adalah bullish, dan QQE memutuskan tidak oversold, dan A-V2 adalah bullish, keluarkan sinyal masuk yang banyak; apabila SuperTrend adalah bearish, dan QQE memutuskan tidak oversold, dan A-V2 adalah bearish, keluarkan sinyal masuk yang kosong.

Kelebihan Strategik

  1. Menggunakan pelbagai indikator untuk membuat keputusan perdagangan yang lebih dipercayai dan mengurangkan isyarat palsu.

  2. Ia juga dapat mengesan isyarat perdagangan secara automatik, tanpa intervensi manusia, dan mengurangkan kesilapan manusia.

  3. Menggunakan penggabungan organik penunjuk, mengawal risiko semasa mencari isyarat, mencapai keuntungan yang stabil.

  4. Parameter boleh disesuaikan, pengguna boleh menyesuaikan strategi mengikut keutamaan mereka sendiri.

  5. Membantu transaksi unilateral, multilateral atau dua hala, dan fleksibiliti transaksi.

Risiko dan penyelesaian

  1. Dalam keadaan khusus pasaran, penunjuk mungkin menghantar isyarat yang salah, yang boleh dikurangkan dengan mengoptimumkan parameter penunjuk.

  2. Kos dagangan dan slippage mungkin mempengaruhi ruang keuntungan strategi, yang boleh dioptimumkan dengan melaksanakan mekanisme henti rugi.

  3. Penetapan parameter penunjuk yang tidak betul boleh menyebabkan prestasi strategi yang tidak baik, boleh mencuba parameter yang berbeza untuk mencari konfigurasi terbaik.

Arah pengoptimuman

  1. Menambah algoritma pembelajaran mesin untuk mengoptimumkan parameter penunjuk secara automatik berdasarkan data sejarah, menjadikan strategi lebih bijak.

  2. Dengan lebih banyak faktor struktur mikro pasaran, seperti jumlah dagangan, pasaran luar, dan lain-lain, data ini dapat digunakan untuk mencari isyarat dagangan yang lebih berkesan.

  3. Menggunakan teknologi perdagangan frekuensi tinggi untuk melaksanakan transaksi melalui model algoritma yang menghantar pesanan secara automatik.

ringkaskan

Strategi ini mengintegrasikan beberapa penunjuk untuk menentukan struktur pasaran, mencapai keuntungan yang stabil dengan syarat mengawal risiko, mempertimbangkan arah trend dan mempertimbangkan keadaan overbought dan oversold, keputusan perdagangan lebih halus. Ruang pengoptimuman masih besar, dapat meningkatkan prestasi strategi dari segi pengoptimuman parameter, pengoptimuman struktur, pengoptimuman pelaksanaan dan sebagainya.

Kod 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")