Strategi kuantitatif peta haba hab kecairan tempoh berbilang masa

MTF
Tarikh penciptaan: 2024-12-20 14:20:11 Akhirnya diubah suai: 2024-12-20 14:20:11
Salin: 0 Bilangan klik: 433
1
fokus pada
1617
Pengikut

Strategi kuantitatif peta haba hab kecairan tempoh berbilang masa

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan kuantitatif yang berdasarkan pada pengesanan titik pusat kecairan pelbagai kitaran masa. Ia mengenal pasti tahap sokongan dan rintangan utama dengan menganalisis tingkah laku harga dalam tiga kitaran masa yang berbeza (minit 15, 1 jam dan 4 jam) dan membuat keputusan perdagangan berdasarkan itu. Sistem ini mengintegrasikan fungsi pengurusan wang, termasuk tetapan stop loss untuk jumlah tetap, sambil memberikan maklum balas visual yang intuitif untuk membantu pedagang memahami struktur pasaran dengan lebih baik.

Prinsip Strategi

Inti strategi ini adalah dengan fungsi ta.pivothigh dan ta.pivotlow untuk mengesan titik pusat harga pada beberapa tempoh masa. Untuk setiap tempoh masa, sistem menggunakan kiri dan kanan rujukan K-garis ((default 7) untuk menentukan titik tinggi dan rendah yang ketara. Apabila titik pusat baru muncul dalam tempoh masa, sistem menghasilkan banyak isyarat; apabila titik pusat baru muncul, sistem menghasilkan isyarat kosong.

Kelebihan Strategik

  1. Analisis kitaran masa berbilang memberikan pandangan pasaran yang lebih menyeluruh, membantu menangkap peluang dagangan di pelbagai peringkat
  2. Logik dagangan berasaskan hub dengan asas analisis teknikal yang kukuh, mudah difahami dan dilaksanakan
  3. Fungsi pengurusan wang yang bersepadu dapat mengawal risiko setiap urus niaga dengan berkesan
  4. Antara muka visual yang menunjukkan status perdagangan secara langsung, termasuk kedudukan, tahap stop loss dan kawasan untung
  5. Parameter strategi boleh disesuaikan, mudah disesuaikan, dan dapat dioptimumkan mengikut keadaan pasaran yang berbeza

Risiko Strategik

  1. Isyarat kitaran masa berbilang mungkin bercanggah dan memerlukan mekanisme keutamaan isyarat yang munasabah
  2. Stop loss dengan jumlah tetap mungkin tidak sesuai untuk semua keadaan pasaran dan disyorkan untuk disesuaikan dengan dinamika turun naik
  3. Keterlambatan pengesanan hub boleh menyebabkan penarikan lewat
  4. Dalam keadaan bergolak, isyarat pecah palsu mungkin berlaku.
  5. Perhatian perlu diberikan kepada perbezaan aliran dalam tempoh masa yang berbeza

Arah pengoptimuman strategi

  1. Pengenalan penunjuk kadar turun naik, penyesuaian dinamik tahap stop loss
  2. Menambah mekanisme pengesahan jumlah transaksi dan meningkatkan kebolehpercayaan hub
  3. Membangunkan sistem keutamaan kitaran masa untuk menyelesaikan konflik isyarat
  4. Mengintegrasikan penapis trend untuk mengelakkan perdagangan berlebihan di pasaran horizontal
  5. Pertimbangkan untuk menambah analisis struktur harga untuk meningkatkan ketepatan waktu kemasukan

ringkaskan

Strategi kuantitatif panas titik likuiditi kitaran masa adalah sistem perdagangan yang lengkap dan logik yang jelas. Ia menyediakan kerangka perdagangan yang boleh dipercayai kepada peniaga melalui analisis pasaran pelbagai dimensi dan pengurusan risiko yang ketat. Walaupun terdapat beberapa risiko dan batasan yang wujud, tetapi dengan pengoptimuman dan penambahbaikan yang berterusan, strategi ini dijangka dapat mengekalkan prestasi yang stabil dalam pelbagai keadaan pasaran.

Kod sumber strategi
/*backtest
start: 2024-11-19 00:00:00
end: 2024-12-18 08:00:00
period: 4h
basePeriod: 4h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © pmotta41
//@version=5
strategy("GPT Session Liquidity Heatmap Strategy", overlay=true)

// Inputs
timeframe1 = input.timeframe("15", title="Intraday Timeframe 1")
timeframe2 = input.timeframe("60", title="Intraday Timeframe 2")
timeframe3 = input.timeframe("240", title="Higher Timeframe")
leftBars = input.int(7, title="Left Bars for Pivot", minval=2, maxval=20)
rightBars = input.int(7, title="Right Bars for Pivot", minval=2, maxval=20)
takeProfitDollar = input(200, title="Take Profit $$")
stopLossDollar = input(100, title="Stop Loss $$")

// Pivot Detection Function
detectPivot(highs, lows, left, right) =>
    pivotHigh = ta.pivothigh(highs, left, right)
    pivotLow = ta.pivotlow(lows, left, right)
    [pivotHigh, pivotLow]

// Get Pivots from Different Timeframes
[pivotHigh1, pivotLow1] = request.security(syminfo.tickerid, timeframe1, detectPivot(high, low, leftBars, rightBars))
[pivotHigh2, pivotLow2] = request.security(syminfo.tickerid, timeframe2, detectPivot(high, low, leftBars, rightBars))
[pivotHigh3, pivotLow3] = request.security(syminfo.tickerid, timeframe3, detectPivot(high, low, leftBars, rightBars))

// Plot Pivots
plotshape(series=pivotHigh1, title="Pivot High 1", location=location.abovebar, color=color.red, style=shape.labeldown, text="H1")
plotshape(series=pivotLow1, title="Pivot Low 1", location=location.belowbar, color=color.green, style=shape.labelup, text="L1")
plotshape(series=pivotHigh2, title="Pivot High 2", location=location.abovebar, color=color.red, style=shape.labeldown, text="H2")
plotshape(series=pivotLow2, title="Pivot Low 2", location=location.belowbar, color=color.green, style=shape.labelup, text="L2")
plotshape(series=pivotHigh3, title="Pivot High 3", location=location.abovebar, color=color.red, style=shape.labeldown, text="H3")
plotshape(series=pivotLow3, title="Pivot Low 3", location=location.belowbar, color=color.green, style=shape.labelup, text="L3")

// Strategy Logic
buyCondition = pivotLow1 or pivotLow2 or pivotLow3
sellCondition = pivotHigh1 or pivotHigh2 or pivotHigh3

if (buyCondition)
    strategy.entry("Buy", strategy.long)

if (sellCondition)
    strategy.entry("Sell", strategy.short)

// Function to Convert $$ to Points for Stop Loss and Take Profit
moneyToSLPoints(money) =>
    strategy.position_size != 0 ? (money / syminfo.pointvalue / math.abs(strategy.position_size)) / syminfo.mintick : na

p = moneyToSLPoints(takeProfitDollar)
l = moneyToSLPoints(stopLossDollar)

// Exit Conditions
strategy.exit("Exit Buy", from_entry="Buy", profit=p, loss=l)
strategy.exit("Exit Sell", from_entry="Sell", profit=p, loss=l)

// Visualization for Stop Loss and Take Profit Levels
pointsToPrice(pp) =>
    na(pp) ? na : strategy.position_avg_price + pp * math.sign(strategy.position_size) * syminfo.mintick

tp = plot(pointsToPrice(p), style=plot.style_linebr, color=color.green, title="Take Profit Level")
sl = plot(pointsToPrice(-l), style=plot.style_linebr, color=color.red, title="Stop Loss Level")
avg = plot(strategy.position_avg_price, style=plot.style_linebr, color=color.blue, title="Entry Price")
fill(tp, avg, color=color.new(color.green, 90), title="Take Profit Area")
fill(avg, sl, color=color.new(color.red, 90), title="Stop Loss Area")

// Background for Gain/Loss
gainBackground = strategy.position_size > 0 and close > strategy.position_avg_price
lossBackground = strategy.position_size > 0 and close < strategy.position_avg_price
bgcolor(gainBackground ? color.new(color.green, 90) : na, title="Gain Background")
bgcolor(lossBackground ? color.new(color.red, 90) : na, title="Loss Background")