Penunjuk momentum trend dipacu mengikut strategi dagangan


Tarikh penciptaan: 2023-12-12 14:52:11 Akhirnya diubah suai: 2023-12-12 14:52:11
Salin: 0 Bilangan klik: 559
1
fokus pada
1621
Pengikut

Penunjuk momentum trend dipacu mengikut strategi dagangan

Gambaran keseluruhan

Strategi ini membina isyarat dagangan berdasarkan RSI dan harga Exponential Moving Average (EMA) dan Simple Moving Average (SMA). Ia adalah jenis strategi trend-following.

Prinsip Strategi

Strategi ini menggunakan 3 syarat untuk menghasilkan isyarat dagangan:

  1. RSI > 45: RSI lebih besar daripada 45 dianggap sebagai isyarat pembelian yang baik
  2. EMA ((RSI) > SMA ((RSI): EMA lebih besar daripada SMA menunjukkan RSI sedang meningkat ke atas dan merupakan isyarat momentum yang baik
  3. EMA ((harga tutup) > SMA ((harga tutup): Garis EMA lebih besar daripada garis SMA menunjukkan trend harga semakin meningkat

Memenuhi mana-mana 2 daripada 3 syarat di atas akan menghasilkan isyarat beli; jika semuanya tidak dipenuhi, ia akan menghasilkan isyarat jual.

Strategi ini juga menyediakan model yang sentiasa membeli dan membeli untuk menguji prestasi sistem itu sendiri terhadap pertaruhan yang besar.

Analisis kelebihan strategi

  1. Menggunakan RSI untuk menilai keadaan pasaran, anda boleh mengurangkan kedudukan semasa pasaran bergolak
  2. Gabungan EMA dan SMA untuk menentukan arah trend, dapat menangkap perubahan harga dalam masa yang tepat
  3. Peraturan Syarat adalah ringkas, jelas, mudah difahami dan dioptimumkan
  4. Kelebihan Sistem Pemeriksaan Pola Yang Selalu Membeli Ketum

Analisis risiko strategi

  1. Bergantung pada tetapan parameter, parameter yang salah akan menyebabkan perdagangan yang kerap atau kehilangan peluang perdagangan yang baik
  2. Harga dalam jangka masa pendek boleh berubah-ubah dengan ketara apabila terdapat berita besar yang menyebabkan penurunan harga.
  3. Strategi itu sendiri tidak dapat menentukan bila trend akan berbalik, ia perlu dikombinasikan dengan petunjuk lain.

Arah pengoptimuman

  1. Mengoptimumkan parameter RSI, EMA dan SMA untuk mencari kombinasi parameter terbaik
  2. Menambah peraturan penghakiman untuk petunjuk teknikal lain seperti Volume, MACD
  3. Meningkatkan trend reversal indicator dan mengurangkan kemungkinan kerugian

ringkaskan

Strategi ini secara keseluruhannya adalah strategi perdagangan frekuensi pertengahan, yang bertujuan untuk menangkap trend harga jangka menengah, dan mengelakkan pergerakan pasaran jangka pendek, kelebihan dan risikonya agak jelas. Dengan pengoptimuman parameter dan peraturan yang kaya, anda dapat meningkatkan kestabilan strategi, adalah strategi perdagangan kuantitatif yang sangat cekap yang patut dikaji dan dioptimumkan.

Kod sumber strategi
/*backtest
start: 2022-12-05 00:00:00
end: 2023-12-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("I11L Unitrend",overlay=false, initial_capital=1000000,default_qty_value=1000000,default_qty_type=strategy.cash,commission_type=strategy.commission.percent,commission_value=0.00)
tradingMode = input.string("Unitrend", "Trading Mode", ["Unitrend", "Always Buy"], tooltip="Choose the Trading Mode by trying Both in your Backtesting. I use it if one is far better then the other one.")
compoundingMode = input.bool(false)
leverage = input.float(1.0,step=0.1)
SL_Factor = 1 - input.float(1,"Risk Capital per Trade unleveraged (%)", minval=0.1, maxval=100, step=0.1) / 100
TPFactor = input.float(2, step=0.1)




var disableAdditionalBuysThisDay = false
var lastTrade = time
if(time > lastTrade + 1000 * 60 * 60 * 8 or tradingMode == "Always Buy")
    disableAdditionalBuysThisDay := false

if(strategy.position_size != strategy.position_size[1])
    lastTrade := time
    disableAdditionalBuysThisDay := true

//Trade Logic
SCORE = 0

//rsi momentum
RSIFast = ta.ema(ta.rsi(close,50),24)
RSISlow = ta.sma(ta.rsi(close,50),24)
RSIMomentum = RSIFast / RSISlow
goodRSIMomentum = RSIMomentum > 1
SCORE := goodRSIMomentum ? SCORE + 1 : SCORE

//rsi trend
RSITrend = RSISlow / 45
goodRSI = RSITrend > 1
SCORE := goodRSI ? SCORE + 1 : SCORE

//price trend
normalTrend = ta.ema(close,50) / ta.sma(close,50)
goodTrend = normalTrend > 1
SCORE := goodTrend ? SCORE + 1 : SCORE



isBuy =  SCORE > 1 or tradingMode == "Always Buy"
isSell = false //SCORE == 0

//plot(SCORE, color=isBuy ? color.green : #ffffff88)
//reduced some of the values just for illustrative purposes, you can buy after the signal if the trendlines seem to grow
plot(1, color=isBuy ? #77ff7733 : SCORE == 2 ? #ffff0033 : SCORE == 1 ? #ff888833 : #ff000033,linewidth=10)
plot(1 - (1 - RSIMomentum) * 6,color=#00F569)
plot(1 - (1 - RSITrend) * 0.25,color=#00DB9B)
plot(1 - (1 - normalTrend) * 20,color=#00F5EE)


strategy.initial_capital = 50000
if(isBuy and not(disableAdditionalBuysThisDay))
    if(compoundingMode)
        strategy.entry("Long", strategy.long, (strategy.equity / close) * leverage)
    else
        strategy.entry("Long", strategy.long, (strategy.initial_capital / close) * leverage)


if(strategy.position_size != 0)
    strategy.exit("TP/SL Long", "Long", stop=strategy.position_avg_price * (1 - (1 - SL_Factor)), limit=strategy.position_avg_price * (1 + (1 - SL_Factor) * TPFactor))