3 10 Strategi Penandatanganan Profil Osilator

Penulis:ChaoZhang, Tanggal: 2024-02-18 16:17:26
Tag:

img

Gambaran umum

Strategi 3 10 Oscillator Profile Flagging menghasilkan sinyal perdagangan dengan menghitung perbedaan antara rata-rata bergerak sederhana 3 hari dan 10 hari sebagai indikator MACD dan menggabungkan analisis volume untuk menentukan kekuatan pembeli dan penjual di pasar. Strategi ini juga menggabungkan konfirmasi peluang masuk dan keluar menggunakan area harga kunci, karakteristik volume, dan pembalikan indikator MACD.

Prinsip Strategi

Indikator inti dari strategi ini adalah MACD, yang terdiri dari garis rata-rata bergerak cepat dan garis rata-rata bergerak lambat. Garis cepat adalah rata-rata bergerak sederhana 3 hari dan garis lambat adalah rata-rata bergerak sederhana 10 hari. Perbedaan antara keduanya membentuk histogram MACD. Ketika garis cepat melintasi di atas garis lambat dari bawah, itu mewakili penguatan daya beli dan menghasilkan sinyal beli. Sebaliknya, ketika garis cepat melintasi di bawah garis lambat dari atas, daya jual menguat dan sinyal jual dihasilkan.

Selain itu, strategi ini menggabungkan analisis kekuatan relatif dari volume pembelian dan penjualan berdasarkan hubungan ukuran antara volume pembelian dan volume penjualan setiap candlestick. Metode spesifik adalah: Volume pembelian = Volume x (Tutup - Rendah) ÷ (Tinggi - Rendah); Volume penjualan = Volume x (Tinggi - Tutup) ÷ (Tinggi - Rendah). Jika volume pembelian jauh lebih besar dari volume penjualan, itu berarti candlestick ditutup dengan daya beli yang relatif kuat, yang merupakan sinyal beli.

Dengan menggabungkan indikator MACD dan analisis volume, strategi dapat secara efektif menentukan hubungan penawaran dan permintaan dan arah yang menunggu di pasar. Pada saat yang sama, strategi juga memverifikasi kondisi seperti apakah harga berada di area kunci, apakah MACD memiliki pembalikan yang efektif, dan apakah perbedaan antara volume pembelian dan penjualan cukup besar, sehingga dapat menyaring beberapa kebisingan impulsif dan memastikan kemungkinan tinggi dan masuk efisiensi tinggi.

Analisis Keuntungan

  • Menggunakan indikator MACD untuk menilai arah pasar yang menunggu
  • Analisis perbedaan volume untuk menentukan kekuatan pembeli dan penjual
  • Penyaringan multi-kondisi memastikan kemungkinan operasi yang tinggi
  • Mengadopsi strategi stop profit dan stop loss untuk mengendalikan risiko

Keuntungan terbesar dari strategi ini adalah bahwa ia sepenuhnya menggabungkan penilaian hubungan penawaran dan permintaan pasar. Histogram MACD dapat secara efektif menentukan kontras antara daya beli dan daya jual dan arah yang menunggu di pasar; analisis perbedaan volume dapat dengan jelas mengidentifikasi kekuatan dominan antara pembeli dan penjual. Pada saat yang sama, strategi menetapkan beberapa kondisi untuk ditinjau untuk menghindari mengejar kenaikan dan mengalahkan penurunan, memastikan probabilitas keuntungan yang relatif tinggi. Selain itu, mekanisme stop profit dan stop loss yang dibangun dalam strategi juga dapat membatasi kerugian tunggal.

Analisis Risiko

  • Risiko kegagalan MACD: Ketika pasar berfluktuasi atau mengkonsolidasikan dalam pola datar, MACD dapat menghasilkan sinyal palsu.
  • Ada kemungkinan manipulasi pasar untuk meningkatkan volume perdagangan, yang akan mengurangi akurasi analisis volume.
  • Kesulitan pengoptimalan parameter. Strategi berisi beberapa parameter yang sulit dioptimalkan, membuatnya tidak cocok untuk investor dengan kemampuan penyesuaian parameter yang relatif lemah.

Risiko di atas dapat dihindari dengan: menentukan dengan tepat tren utama pasar untuk menghindari menggunakan strategi ini selama fluktuasi pasar; memperhatikan informasi pasar untuk mengidentifikasi volume perdagangan yang diinflasi secara artifisial; menyesuaikan parameter dengan hati-hati, atau mencari saran dari para profesional.

Arahan Optimasi

Strategi dapat dioptimalkan dalam aspek berikut:

  • Menggunakan indikator seperti KD, Bollinger Bands dll untuk mengganti atau membantu MACD dan meningkatkan akurasi penilaian
  • Tambahkan mekanisme manajemen posisi untuk penyesuaian parameter dinamis
  • Mengoptimalkan titik stop profit dan stop loss untuk keuntungan tunggal yang lebih tinggi
  • Jalankan pada beberapa kerangka waktu untuk meningkatkan stabilitas

Singkatnya, dapat dilihat bahwa ada banyak ruang untuk mengoptimalkan strategi ini. Investor dapat melakukan penyesuaian dan perbaikan yang sesuai sesuai dengan situasi dan kondisi pasar mereka sendiri untuk mencapai efektivitas strategi yang lebih baik.

Ringkasan

Strategi 3 10 Oscillator Profile Flagging berhasil mengintegrasikan ide-ide analisis MACD, perbandingan volume, dan verifikasi penyaringan multi-kondisi. Strategi ini memiliki kemampuan yang kuat dalam menentukan hubungan penawaran-permintaan dan arah pasar yang menunggu, sambil mengendalikan risiko melalui mekanisme stop profit dan stop loss yang terintegrasi. Strategi ini memiliki ruang optimasi yang besar dan prospek aplikasi yang luas yang layak dipertimbangkan dan penelitian mendalam untuk investor.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("3 10 Oscillator Profile Flagging", shorttitle="3 10 Oscillator Profile Flagging", overlay=true)

signalBiasValue = input(title="Signal Bias", defval=0.26)
macdBiasValue = input(title="MACD Bias", defval=0.8)
shortLookBack = input( title="Short LookBack", defval=3)
longLookBack = input( title="Long LookBack", defval=10)
takeProfit = input( title="Take Profit", defval=0.75)
stopLoss = input( title="Stop Loss", defval=0.5)

fast_ma = ta.sma(close, 3)
slow_ma = ta.sma(close, 10)
macd = fast_ma - slow_ma
signal = ta.sma(macd, 16)
hline(0, "Zero Line", color = color.black)

buyVolume = volume*((close-low)/(high-low))
sellVolume = volume*((high-close)/(high-low))
buyVolSlope = buyVolume - buyVolume[1]
sellVolSlope = sellVolume - sellVolume[1]
signalSlope = ( signal - signal[1] )
macdSlope = ( macd - macd[1] )
//plot(macdSlope, color=color.red, title="Total Volume")
//plot(signalSlope, color=color.green, title="Total Volume")
intrabarRange = high - low

getLookBackSlope(lookBack) => signal - signal[lookBack]
getBuyerVolBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if buyVolume[i] > sellVolume[i]
            j += 1
    j

getSellerVolBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if sellVolume[i] > buyVolume[i]
            j += 1
    j

getVolBias(lookBack) =>
    float b = 0
    float s = 0
    for i = 1 to lookBack
        b += buyVolume[i]
        s += sellVolume[i]
    b > s

getSignalBuyerBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if signal[i] > signalBiasValue
            j += 1
    j

getSignalSellerBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if signal[i] < ( 0 - signalBiasValue )
            j += 1
    j

getSignalNoBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if signal[i] < signalBiasValue and signal[i] > ( 0 - signalBiasValue )
            j += 1
    j

getPriceRising(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if close[i] > close[i + 1]
            j += 1
    j


getPriceFalling(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if close[i] < close[i + 1] 
            j += 1
    j

getRangeNarrowing(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if intrabarRange[i] < intrabarRange[i + 1] 
            j+= 1
    j

getRangeBroadening(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if intrabarRange[i] > intrabarRange[i + 1] 
            j+= 1
    j

bool isNegativeSignalReversal = signalSlope < 0 and signalSlope[1] > 0
bool isNegativeMacdReversal = macdSlope < 0 and macdSlope[1] > 0

bool isPositiveSignalReversal = signalSlope > 0 and signalSlope[1] < 0
bool isPositiveMacdReversal = macdSlope > 0 and macdSlope[1] < 0

bool hasBearInversion = signalSlope > 0 and macdSlope < 0
bool hasBullInversion = signalSlope < 0 and macdSlope > 0

bool hasSignalBias = math.abs(signal) >= signalBiasValue
bool hasNoSignalBias = signal < signalBiasValue and signal > ( 0 - signalBiasValue )

bool hasSignalBuyerBias = hasSignalBias and signal > 0
bool hasSignalSellerBias = hasSignalBias and signal < 0

bool hasPositiveMACDBias = macd > macdBiasValue
bool hasNegativeMACDBias = macd < ( 0 - macdBiasValue )

bool hasBullAntiPattern = ta.crossunder(macd, signal)
bool hasBearAntiPattern = ta.crossover(macd, signal)

bool hasSignificantBuyerVolBias = buyVolume > ( sellVolume * 1.5 )
bool hasSignificantSellerVolBias = sellVolume > ( buyVolume * 1.5 )

// 7.48 Profit 52.5% 
if ( hasSignificantBuyerVolBias and getPriceRising(shortLookBack) == shortLookBack  and getBuyerVolBias(shortLookBack) == shortLookBack and hasPositiveMACDBias and hasBullInversion)
    strategy.entry("Short1", strategy.short, qty=10)
strategy.exit("TPS", "Short1", limit=strategy.position_avg_price - takeProfit, stop=strategy.position_avg_price + stopLoss)

// 32.53 Profit 47.91%
if ( getPriceFalling(shortLookBack) and (getVolBias(shortLookBack) == false) and signalSlope < 0 and hasSignalSellerBias)
    strategy.entry("Long1", strategy.long, qty=10)
strategy.exit("TPS", "Long1", limit=strategy.position_avg_price + takeProfit, stop=strategy.position_avg_price - stopLoss)

Lebih banyak