Strategi Perdagangan Kuantum Efisien Menggabungkan

Penulis:ChaoZhang, Tanggal: 2024-02-01 15:09:06
Tag:

img

Gambaran umum

Strategi ini terutama menggabungkan indikator RSI 5 hari dan rata-rata bergerak 200 hari untuk membentuk sinyal keputusan perdagangan, yang merupakan bagian dari strategi kombinasi indikator teknis. Prinsip utamanya adalah: ketika harga berjalan ke area overbought/oversold, itu sinyal untuk menjual; ketika harga jatuh ke area oversold, itu sinyal untuk membeli. Keuntungan terbesar dari strategi ini adalah bahwa sinyal strategi relatif jelas dan risiko retracement relatif kecil.

Prinsip Strategi

Strategi ini terutama menggabungkan indikator RSI 5 hari dan rata-rata bergerak 200 hari untuk menilai area overbought / oversold di mana harga berjalan dan membentuk keputusan perdagangan:

  1. Indikator RSI 5 hari menilai area overbought/oversold di mana harga sedang berjalan. Garis overbought ditetapkan pada 72 dan area oversold adalah 30. Ketika indikator RSI menembus 30 dari bawah ke atas, sinyal beli dihasilkan; ketika indikator RSI jatuh dari atas ke bawah di bawah 72, sinyal jual dihasilkan.

  2. Rata-rata bergerak 200 hari menentukan arah tren jangka menengah hingga panjang. Ketika harga berada di bawah rata-rata bergerak 200 hari, itu adalah fase penurunan harga; ketika harga berada di atas rata-rata bergerak 200 hari, itu adalah fase kenaikan harga.

  3. Menggabungkan penilaian 1 dan 2, strategi ini menjual ketika indikator RSI 5 hari terlalu banyak dibeli dan jatuh di bawah 72, dan membeli ketika RSI 5 hari pecah di bawah 30 dan harga berada di bawah rata-rata bergerak 200 hari.

Keuntungan dari Strategi

  1. Sinyal strategi relatif jelas, menggunakan indikator RSI untuk menentukan sinyal overbought/oversold oleh area penilaian.

  2. Rata-rata bergerak 200 hari menentukan arah tren utama untuk menghindari operasi sebaliknya.

  3. Jumlah maksimum posisi dapat ditetapkan untuk membantu mengendalikan risiko.

  4. Strategi ini memiliki ruang besar untuk optimasi parameter, parameter RSI yang dapat disesuaikan dan parameter rata-rata bergerak.

  5. Risiko retracement yang relatif kecil dapat secara efektif mengendalikan retracement maksimum dari strategi.

Risiko dari Strategi

  1. Menggunakan hanya indikator RSI dan rata-rata bergerak, sinyal strategi mungkin tidak stabil, dengan risiko kerugian goyah jangka panjang dan pendek di pasar yang tidak stabil.

  2. Perlu mengoptimalkan dan menguji parameter RSI dan parameter moving average untuk hasil strategi yang lebih baik.

  3. Indikator atau model lain dapat diperkenalkan untuk mengoptimalkan sinyal strategi. seperti memperkenalkan indikator volatilitas, penilaian pembelajaran mesin, dll.

Arahan untuk Optimasi Strategi

  1. Gunakan lebih banyak kombinasi indikator untuk menilai. seperti MACD, KD, indikator volatilitas, dll.

  2. Meningkatkan penilaian model pembelajaran mesin seperti LSTM untuk menilai stabilitas sinyal perdagangan.

  3. Meningkatkan faktor kuantitatif seperti perubahan volume perdagangan, arah arus modal dan penilaian faktor modal lainnya.

  4. Mengoptimalkan parameter strategi seperti parameter RSI, parameter rata-rata bergerak, dll.

  5. Mengoptimalkan mekanisme stop loss. seperti stop loss bergerak, stop loss waktu, dll.

Ringkasan

Strategi ini terutama menggunakan kombinasi indikator RSI 5 hari dan indikator rata-rata bergerak 200 hari untuk menilai area overbought / oversold harga dan membentuk sinyal perdagangan. Ini termasuk dalam strategi kombinasi indikator teknis. Sinyal strategi relatif jelas dan risiko retracement maksimum relatif kecil.


/*backtest
start: 2024-01-24 00:00:00
end: 2024-01-31 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// ©chewyScripts.

//@version=5
strategy("96er RSI+200EMA Strategy + Alerts", overlay=true)
// This works best on a small account $100, with 50% of equity and up to 10 max open trades. 
// 96% Profitable, turns $100 into $350 in 1 month. very few losses. super happy with it.
// So far it triples the account on a 1m chart in 1 month back testing on the SEI-USD pair.
// I did not test on FX pairs or other instruments.
// had some issues with the inputs not working so had to hard code some, also the lastClose var sometimes breaks and starts following every candle, not sure why.

in_r1 = input.int(5,"5 day input or RSI1")
in_openOrders = input.int(3,"max open orders")

in_lowerRSI = input.int(30,"RSI Lower")
in_upperRSI = input.int(72,"RSI Upper ")

in_emaperiod = input.int(200,"EMA Period")

in_buybreakout = input.int(50,"Buy breakout range")

in_buyTP = input.float(1.05,"Buy TP: 1+TP %, .05 seems to work well.")
in_sellTP = input.float(0.9850, "Sell TP: 1-TP%. .025 seems to work well. ")

simple int rsi5 = in_r1

// 3 rsi strategy , when all of them are overbought we sell, and vice versa
rsi7 = ta.rsi(close,rsi5)
lastClose = request.security(syminfo.tickerid, "D", close, lookahead = barmerge.lookahead_on)
rsi3 = ta.rsi(close[5],rsi5)

ma = ta.ema(close,in_emaperiod)

plot(rsi7,"5 Day RSI",color.red)
plot(lastClose,"Yesterdays Close",color.green)
plot(rsi3,"Previous 5th candles RSI",color.purple)


// sell condition
//sell = ta.crossunder(rsi7,70) and ta.crossunder(rsi14,70) and ta.crossunder(rsi21,70)

//buy condition
//buy = ta.crossover(rsi7,in_lowerRSI) and close < ma and rsi3 <= in_upperRSI and strategy.opentrades < in_openOrders
//sell = ta.crossunder(rsi7,in_upperRSI) and close > ma and rsi3 >= in_lowerRSI3 and strategy.opentrades < in_openOrders

buy = ta.crossover(rsi7,in_lowerRSI) and close < ma and close < lastClose and strategy.opentrades < in_openOrders
sell = ta.crossunder(rsi7,in_upperRSI) and close > ma and close > lastClose and strategy.opentrades < in_openOrders


var lastBuy = close 
var lastSell = close 

if (buy)
    strategy.entry("BUY", strategy.long)
    lastBuy := close 
    alert("Buy")

if ((close >= lastBuy*in_buyTP ) or rsi7 > in_buybreakout and close >= lastClose and (close >= lastClose*in_buyTP or close >= lastBuy*in_buyTP ) )
    strategy.close("BUY", "BUY Exit")
    alert("Buy Exit")
    
if (sell)
    strategy.entry("SELL", strategy.short)
    lastSell := close 
    alert("Sell")

if ( close < ma and (close <= lastSell*in_sellTP ) or (close < lastClose*in_sellTP) )
    strategy.close("SELL", "Sell Exit")
    alert("Sell Exit")


Lebih banyak