Strategi perdagangan ini menggabungkan tiga penunjuk teknikal yang kukuh - Indeks Kekuatan Relatif (RSI), Bollinger Bands dan tahap Sokongan / Ketahanan untuk membolehkan keputusan perdagangan automatik. Robot dapat mengenal pasti titik masuk dan keluar yang berpotensi berdasarkan keadaan pasaran yang berlaku tanpa campur tangan manual.
Logik teras robot perdagangan ini dibina di atas RSI, Bollinger Bands dan analisis Sokongan / Rintangan.
Pertama, RSI mengukur kekuatan trend yang sedang berlangsung. RSI di atas 70 menunjukkan pasaran yang terlalu banyak dibeli manakala RSI di bawah 30 menunjukkan pasaran yang terlalu banyak dijual.
Kedua, Bollinger Bands menentukan julat turun naik pasaran. Julat atas dan bawah merangkumi julat turun naik normal pasaran. menyentuh band atas menunjukkan zon yang agak tinggi di mana pembalikan ke bawah mungkin berlaku. Begitu juga, menyentuh band bawah menunjukkan zon yang agak rendah di mana pantulan ke atas dijangka.
Akhirnya, tahap Sokongan dan Rintangan boleh diperolehi dari Bollinger Bands. Sokongan terletak di sekitar band bawah manakala Rintangan melayang di sekitar band atas. Ini menunjukkan bahawa trend menaik mungkin menghadapi tekanan penjualan di sekitar Rintangan, yang membawa kepada penurunan yang berpotensi. Sebaliknya, trend menurun mungkin memenuhi permintaan membeli di sekitar Sokongan, mendorong kebangkitan teknikal.
Dengan mengkonsolidasikan penunjuk ini, logik kemasukan ditakrifkan sebagai: pergi panjang apabila harga menyentuh jalur bawah (zon oversold) yang bertepatan dengan Sokongan; pergi pendek apabila harga melanggar band atas (zon overbought) dengan tinggi melebihi Rintangan. Logik keluar ditadbir oleh perubahan arah purata bergerak.
Kebolehpercayaan isyarat yang kukuh melalui gabungan beberapa penunjuk
Pelaksanaan sepenuhnya automatik tanpa campur tangan manual
Amaran masa nyata untuk kemas kini segera di mana sahaja
Anotasi carta intuitif untuk memvisualisasikan tahap perdagangan
Parameter yang boleh disesuaikan untuk pengoptimuman di seluruh instrumen dan jangka masa
Volatiliti yang luar biasa boleh menimbulkan stop loss. Tahap stop loss yang munasabah dapat membantu mengehadkan kerugian maksimum.
Penyesuaian parameter yang kurang optimum boleh menyebabkan overtrading atau kualiti isyarat yang buruk. Parameter harus disesuaikan berdasarkan hasil backtest untuk tetapan yang optimum.
Kegagalan sistem boleh menyebabkan gangguan isyarat atau kelewatan pelaksanaan.
Menggabungkan logik stop loss untuk mengehadkan lagi risiko penurunan.
Memperkenalkan peraturan saiz kedudukan mengikut ekuiti akaun untuk pengurusan risiko yang lebih bijak.
Memanfaatkan pembelajaran mesin dengan melatih model pada data sejarah untuk meningkatkan keupayaan ramalan.
Melakukan pengoptimuman parameter di pelbagai produk untuk mendedahkan set parameter terbaik yang disesuaikan dengan setiap produk.
Strategi ini menunjukkan kemampuan beradaptasi dan serba boleh yang kuat. Dengan memantau pelbagai penunjuk untuk menilai keadaan pasaran, ia dapat menentukan tahap pembalikan trend dengan boleh dipercayai untuk pelaksanaan automatik. Penambahbaikan berterusan kepada algoritma akan meningkatkan prestasi strategi untuk secara konsisten menghasilkan alpha. Penyelesaian perdagangan algo yang sangat baik yang sesuai untuk perdagangan kuantitatif.
/*backtest start: 2024-01-19 00:00:00 end: 2024-02-06 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("RSI, Bollinger Bands, and Support/Resistance Trading Bot", overlay=true) // Define RSI parameters rsiLength = input(14, title="RSI Length") rsiOverbought = input(70, title="Overbought Level") rsiOversold = input(30, title="Oversold Level") // Define Bollinger Bands parameters bbLength = input(20, title="Bollinger Bands Length") bbMultiplier = input(2, title="Bollinger Bands Multiplier") // Calculate RSI rsiValue = rsi(close, rsiLength) // Calculate Bollinger Bands basis = sma(close, bbLength) upperBand = basis + bbMultiplier * stdev(close, bbLength) lowerBand = basis - bbMultiplier * stdev(close, bbLength) // Calculate Support and Resistance based on Bollinger Bands support = basis - bbMultiplier * stdev(close, bbLength) resistance = basis + bbMultiplier * stdev(close, bbLength) // Strategy logic rsiCondition = rsiValue > rsiOverbought or rsiValue < rsiOversold touchingUpperBand = close >= upperBand touchingLowerBand = close <= lowerBand // Entry conditions longCondition = touchingLowerBand and low <= support shortCondition = touchingUpperBand and high >= resistance // Exit conditions longExitCondition = crossover(close, basis) shortExitCondition = crossunder(close, basis) // Automatic close if moving in opposite direction if (strategy.position_size > 0 and shortCondition) strategy.close("Long") if (strategy.position_size < 0 and longCondition) strategy.close("Short") // Strategy orders strategy.entry("Long", strategy.long, when=longCondition) strategy.entry("Short", strategy.short, when=shortCondition) // Plot entry and exit arrows plotarrow(series=longCondition ? 1 : na, colorup=color.new(color.green, 0), offset=-1, minheight=5) plotarrow(series=shortCondition ? 1 : na, colordown=color.new(color.red, 0), offset=-1, minheight=5) plotarrow(series=longExitCondition ? -1 : na, colorup=color.new(color.red, 0), offset=-1, minheight=5) plotarrow(series=shortExitCondition ? -1 : na, colordown=color.new(color.green, 0), offset=-1, minheight=5) // Plot Bollinger Bands on chart plot(upperBand, title="Upper Band", color=color.red) plot(lowerBand, title="Lower Band", color=color.green) // Highlight areas where price touches Bollinger Bands bgcolor(touchingUpperBand ? color.new(color.red, 90) : na) bgcolor(touchingLowerBand ? color.new(color.green, 90) : na) // Plot Support and Resistance plot(support, title="Support", color=color.blue) plot(resistance, title="Resistance", color=color.purple) // Plot RSI on chart hline(rsiOverbought, "Overbought Level", color=color.red) hline(rsiOversold, "Oversold Level", color=color.green) plot(rsiValue, title="RSI", color=color.blue)