Strategi lanjutan dengan jumlah dan harga Pullback Multiple Take Profit

Penulis:ChaoZhang, Tarikh: 2023-12-12 15:39:19
Tag:

img

Ringkasan

Strategi ini menggabungkan crossover purata bergerak, indeks kekuatan relatif (RSI), dan jumlah dagangan yang diperkuat dengan ketara untuk mengambil kedudukan panjang / pendek selepas mengesan peratusan tertentu penarikan balik harga pada lonjakan jumlah yang tinggi.

Prinsip-prinsip

Perpindahan purata bergerak cepat dan perlahan memberikan isyarat awal perubahan arah trend. Penunjuk RSI menilai keadaan overbought / oversold untuk mengelakkan senario ini untuk isyarat kemasukan yang lebih kuat. Peningkatan jumlah yang ketara berbanding purata isyarat pergerakan harga yang berpotensi menarik perhatian pasaran. Puncak jumlah ini memperkuat kekuatan isyarat kemasukan. Selepas lonjakan jumlah dan kenaikan harga, pesanan kemasukan dicetuskan apabila harga dan jumlah telah menarik balik peratusan tertentu, menunjukkan pembetulan atau pembalikan yang berpotensi. Tiga pesanan TP bertahap digunakan untuk merealisasikan keuntungan. Setiap tahap TP menutup sebahagian kedudukan apabila mencapai sasaran keuntungan yang telah ditentukan. Ciri berhenti jejak pilihan tersedia untuk TP. Sebaik sahaja harga mencapai sasaran TP, berhenti bergerak mengikuti kedudukan untuk menangkap lebih banyak keuntungan jika harga terus menguntungkan.

Prinsip yang sama berlaku untuk isyarat masuk dan keluar pendek.

Analisis Kelebihan

Kelebihan utama strategi ini:

  1. Perpindahan MAs cepat/lambat digabungkan dengan RSI membentuk isyarat kemasukan yang kuat, mengelakkan kawasan overbought/oversold untuk meningkatkan peluang menang.

  2. Puncak jumlah memastikan perubahan harga yang besar ditangkap untuk penubuhan kedudukan, menguatkan kekuatan isyarat.

  3. Mekanisme tarik balik harga/volume meningkatkan ketepatan masa kemasukan untuk menangkap peluang pembalikan atau kenaikan.

  4. TP tiga peringkat menggunakan trend kenaikan harga untuk mengunci keuntungan berdasarkan toleransi risiko.

  5. Hentian pengangkutan pilihan membolehkan fleksibiliti untuk membolehkan pemeliharaan modal sambil mengekalkan peluang untuk keuntungan yang lebih tinggi bergantung kepada turun naik pasaran.

  6. Berlaku untuk kedua-dua perdagangan panjang dan pendek, keuntungan boleh direalisasikan di kedua-dua pasaran uptrend atau downtrend, meningkatkan utiliti.

Analisis Risiko

Walaupun reka bentuk yang teliti, perdagangan produk kewangan membawa risiko.

  1. MA crossover tidak selalu menentukan trend dengan tepat. Isyarat yang salah mungkin berlaku jika parameter MA yang tidak sesuai digunakan.

  2. Penentuan tempoh RSI yang tidak betul boleh menyebabkan kegagalan untuk mengelakkan kawasan overbought / oversold.

  3. Peningkatan jumlah tidak semestinya sesuai dengan perubahan harga yang signifikan.

  4. Penarikan harga/volume yang berlebihan atau tidak mencukupi mempengaruhi masa kemasukan.

  5. Tahap mengambil keuntungan yang telah ditetapkan tidak dapat menjamin pelaksanaan pesanan TP sepenuhnya.

  6. Stop loss yang terlalu luas boleh keluar dari kedudukan sebelum masa yang kehilangan keuntungan yang lebih besar.

Risiko ini memerlukan pengoptimuman kod, penyesuaian parameter, dan ujian belakang yang ketat untuk memastikan kebolehpercayaan strategi.

Arahan pengoptimuman

Peningkatan lanjut:

  1. Tambah penunjuk lain seperti Bollinger Bands atau KD untuk membantu keputusan kemasukan, meningkatkan ketepatan.

  2. Menggabungkan model pembelajaran mesin seperti LSTM untuk menubuhkan MA dinamik yang menyesuaikan parameter secara automatik dengan keadaan pasaran terkini, meningkatkan tangkapan trend.

  3. Membina stop loss / mengambil keuntungan dinamik berdasarkan turun naik pasaran untuk menyesuaikan tahap secara automatik.

  4. Menggunakan analisis kointegrasi untuk memilih faktor pulback yang optimum setiap pergerakan harga di seluruh pasaran berbanding korelasi stok individu, mendapatkan masa kemasukan yang optimum.

  5. Menggunakan model pelbagai faktor dengan analisis sentimen, perlombongan peraturan persatuan dan lain-lain untuk memilih saham dengan korelasi perubahan harga / jumlah tertinggi untuk melaksanakan strategi untuk peningkatan prestasi yang luar biasa.

Kesimpulan

Ini adalah strategi yang sangat baik untuk peniaga jangka menengah hingga jangka pendek selepas peningkatan. Dengan fungsi yang semakin kukuh dan pintar yang dibina pada pengoptimuman, ia mempunyai kelebihan praktikal yang besar untuk perdagangan langsung sambil berusaha untuk memberikan pulangan yang mengalahkan pasaran dengan risiko yang dikawal dengan tegas. Sebagai strategi kuantitatif yang semakin maju, ia menjadi contoh perdagangan yang stabil dan berhati-hati.


/*backtest
start: 2023-11-11 00:00:00
end: 2023-12-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Advanced Strategy with Volume and Price Retracement and Multi-Take Profit (USDT)", overlay=true)

// Parametreler
fastLength = input(12, minval=1, title="Fast Moving Average")
slowLength = input(26, minval=1, title="Slow Moving Average")
rsiPeriod = input(14, minval=1, title="RSI Period")
volLength = input(20, minval=1, title="Volume MA Length")
volMultiplier = input(2.0, title="Volume Spike Multiplier")
trailOffset = input(1, title="Trailing Offset (%)")
usdtPerTrade = input(50000, title="USDT per Trade")
retraceFactor = input(0.8, title="Retracement Factor for Entry")
takeProfit1 = input(1, title="Take Profit 1 (%)")
takeProfit2 = input(2, title="Take Profit 2 (%)")
takeProfit3 = input(3, title="Take Profit 3 (%)")
trailForTP = input(true, title="Use Trailing Stop for Take Profits")

// Hesaplamalar
fastMA = sma(close, fastLength)
slowMA = sma(close, slowLength)
rsi = rsi(close, rsiPeriod)
volMA = sma(volume, volLength)
volumeSpike = volume > volMA * volMultiplier

// Durum Değişkenleri ve Saklanan Değerler
var float spikeVolume = na
var float spikePrice = na
var int direction = 0

// Alım/Satım Sinyalleri
longCondition = crossover(fastMA, slowMA) and rsi < 70
shortCondition = crossunder(fastMA, slowMA) and rsi > 30

// Hacim Spike ve Fiyat Hareketinin Saklanması
if (longCondition and volumeSpike)
    spikeVolume := volume
    spikePrice := close
    direction := 1
else if (shortCondition and volumeSpike)
    spikeVolume := volume
    spikePrice := close
    direction := -1

// Retracement Kontrolü ve Giriş Emirleri
if (direction == 1 and volume < spikeVolume * retraceFactor and close < spikePrice * (1 - trailOffset / 100))
    strategy.entry("Long", strategy.long, qty=usdtPerTrade / close)
    spikeVolume := na
    direction := 0
else if (direction == -1 and volume < spikeVolume * retraceFactor and close > spikePrice * (1 + trailOffset / 100))
    strategy.entry("Short", strategy.short, qty=usdtPerTrade / close)
    spikeVolume := na
    direction := 0

// Take Profit Emirleri
if strategy.position_size > 0
    strategy.exit("TP1", "Long", limit=strategy.position_avg_price * (1 + takeProfit1 / 100), qty_percent=33, trail_offset=trailForTP ? atr(14) / 2 : na)
    strategy.exit("TP2", "Long", limit=strategy.position_avg_price * (1 + takeProfit2 / 100), qty_percent=33, trail_offset=trailForTP ? atr(14) : na)
    strategy.exit("TP3", "Long", limit=strategy.position_avg_price * (1 + takeProfit3 / 100), qty_percent=34, trail_offset=trailForTP ? atr(14) * 1.5 : na)

if strategy.position_size < 0
    strategy.exit("TP1", "Short", limit=strategy.position_avg_price * (1 - takeProfit1 / 100), qty_percent=33, trail_offset=trailForTP ? atr(14) / 2 : na)
    strategy.exit("TP2", "Short", limit=strategy.position_avg_price * (1 - takeProfit2 / 100), qty_percent=33, trail_offset=trailForTP ? atr(14) : na)
    strategy.exit("TP3", "Short", limit=strategy.position_avg_price * (1 - takeProfit3 / 100), qty_percent=34, trail_offset=trailForTP ? atr(14) * 1.5 : na)

// Pozisyon çıkışları
strategy.close("Long", when=shortCondition)
strategy.close("Short", when=longCondition)


Lebih lanjut