Strategi Pembalikan Tren Ideologi Dinamis


Tanggal Pembuatan: 2023-12-13 16:52:34 Akhirnya memodifikasi: 2023-12-13 16:52:34
menyalin: 0 Jumlah klik: 635
1
fokus pada
1621
Pengikut

Strategi Pembalikan Tren Ideologi Dinamis

Ringkasan

Strategi reversal tren ideologis dinamis menggunakan harga prediksi regresi linier dan ideologi yang terbentuk dalam kombinasi dengan rata-rata bergerak untuk menghasilkan sinyal perdagangan. Ini menghasilkan sinyal beli ketika harga prediksi melintasi rata-rata bergerak dari bawah ke atas; Ini menghasilkan sinyal jual ketika harga prediksi melintasi rata-rata bergerak dari atas ke bawah, untuk menangkap reversal tren.

Prinsip Strategi

  1. Regresensi linier dari harga saham berdasarkan volume transaksi, mendapatkan nilai perkiraan harga
  2. Perhitungan rata-rata bergerak dalam kondisi diferensial
  3. Ketika harga yang diprediksi melintasi rata-rata bergerak dari bawah ke atas, menghasilkan sinyal beli
  4. Ketika harga yang diproyeksikan melintasi moving average dari atas ke bawah, menghasilkan sinyal jual
  5. Indikator MACD dan waktu yang tepat untuk membalikkan tren

Sinyal di atas menggabungkan beberapa jenis konfirmasi, menghindari penembusan palsu, sehingga meningkatkan akurasi sinyal.

Analisis Keunggulan

  • Menggunakan regresi linier untuk memprediksi tren harga, meningkatkan akurasi sinyal
  • Dengan menggunakan Moving Average, ideologinya menangkap pergeseran tren.
  • Regresi linier berdasarkan volume transaksi lebih masuk akal secara ekonomi
  • Menggabungkan indikator seperti MACD untuk melakukan multiple confirmation, mengurangi sinyal palsu

Analisis risiko

  • Pengaturan parameter regresi linier sangat berpengaruh pada hasil
  • Pengaturan moving average juga mempengaruhi kualitas sinyal
  • Meskipun ada mekanisme konfirmasi, masih ada risiko sinyal palsu
  • Kode dapat dioptimalkan lebih lanjut untuk mengurangi jumlah transaksi dan meningkatkan margin

Arah optimasi

  • Parameter untuk mengoptimalkan regresi linier dan moving average
  • Meningkatkan kondisi konfirmasi, mengurangi tingkat sinyal palsu
  • Faktor-faktor lain yang berperan dalam menilai kualitas
  • Optimalkan strategi stop loss untuk mengurangi risiko transaksi tunggal

Meringkaskan

Strategi reversal tren ideologis yang mengintegrasikan prediksi regresi linier dan pembentukan rata-rata bergerak ideologis untuk menangkap waktu reversal tren. Dengan reliabilitas yang lebih tinggi dibandingkan dengan indikator tunggal. Strategi ini dapat meningkatkan kualitas sinyal dan tingkat keuntungan lebih lanjut dengan penyesuaian parameter dan pengoptimalan kondisi konfirmasi.

Kode Sumber Strategi
/*backtest
start: 2023-12-05 00:00:00
end: 2023-12-12 00:00:00
period: 1m
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/
// © stocktechbot
//@version=5
strategy("Linear Cross", overlay=true, margin_long=100, margin_short=0)

//Linear Regression

vol = volume

// Function to calculate linear regression
linregs(y, x, len) =>
    ybar = math.sum(y, len)/len
    xbar = math.sum(x, len)/len
    b = math.sum((x - xbar)*(y - ybar),len)/math.sum((x - xbar)*(x - xbar),len)
    a = ybar - b*xbar
    [a, b]

// Historical stock price data
price = close

// Length of linear regression
len = input(defval = 21, title = 'Strategy Length')
linearlen=input(defval = 9, title = 'Linear Lookback')
[a, b] = linregs(price, vol, len)

// Calculate linear regression for stock price based on volume
//eps = request.earnings(syminfo.ticker, earnings.actual)
//MA For double confirmation

out = ta.sma(close, 200)
outf = ta.sma(close, 50)
outn = ta.sma(close, 90)
outt = ta.sma(close, 21)
outthree = ta.sma(close, 9)

// Predicted stock price based on volume
predicted_price = a + b*vol

// Check if predicted price is between open and close
is_between = open < predicted_price and predicted_price < close

//MACD
//[macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9)

// Plot predicted stock price
plot(predicted_price, color=color.rgb(65, 59, 150), linewidth=2, title="Predicted Price")
plot(ta.sma(predicted_price,linearlen), color=color.rgb(199, 43, 64), linewidth=2, title="MA Predicted Price")
//offset = input.int(title="Offset", defval=0, minval=-500, maxval=500)
plot(out, color=color.blue, title="MA200")
[macdLine, signalLine, histLine] = ta.macd(predicted_price, 12, 26, 9)

//BUY Signal

longCondition=false
mafentry =ta.sma(close, 50) > ta.sma(close, 90)
//matentry = ta.sma(close, 21) > ta.sma(close, 50)
matwohun = close > ta.sma(close, 200)
twohunraise = ta.rising(out, 2)
twentyrise = ta.rising(outt, 2)
macdrise = ta.rising(macdLine,2)
macdlong = ta.crossover(predicted_price, ta.wma(predicted_price,linearlen))  and (signalLine < macdLine)
if macdlong and macdrise
    longCondition := true

if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)
//Sell Signal
lastEntryPrice = strategy.opentrades.entry_price(strategy.opentrades - 1)
daysSinceEntry = len
daysSinceEntry := int((time - strategy.opentrades.entry_time(strategy.opentrades - 1)) / (24 * 60 * 60 * 1000))
percentageChange = (close - lastEntryPrice) / lastEntryPrice * 100
//trailChange = (ta.highest(close,daysSinceEntry) - close) / close * 100

//label.new(bar_index, high, color=color.black, textcolor=color.white,text=str.tostring(int(trailChange)))
shortCondition=false
mafexit =ta.sma(close, 50) < ta.sma(close, 90)
matexit = ta.sma(close, 21) < ta.sma(close, 50)
matwohund = close < ta.sma(close, 200)
twohunfall = ta.falling(out, 3)
twentyfall = ta.falling(outt, 2)
shortmafall = ta.falling(outthree, 1)
macdfall = ta.falling(macdLine,1)
macdsell = macdLine < signalLine
if macdfall and macdsell and (macdLine < signalLine) and ta.falling(low,2)
    shortCondition := true

if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)