3 10 Strategi Penanda Profil Osilator

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

img

Ringkasan

Strategi 3 10 Oscillator Profile Flagging menghasilkan isyarat perdagangan dengan mengira perbezaan antara purata bergerak mudah 3 hari dan 10 hari sebagai penunjuk MACD dan menggabungkan analisis jumlah untuk menentukan kekuatan pembeli dan penjual di pasaran. Strategi ini juga menggabungkan pengesahan peluang masuk dan keluar menggunakan kawasan harga utama, ciri-ciri jumlah, dan pembalikan penunjuk MACD.

Prinsip Strategi

Indikator utama strategi ini ialah MACD, yang terdiri daripada garis purata bergerak pantas dan garis purata bergerak perlahan. Garis pantas adalah purata bergerak mudah 3 hari dan garis perlahan adalah purata bergerak mudah 10 hari. Perbezaan antara mereka membentuk histogram MACD. Apabila garis pantas melintasi di atas garis perlahan dari bawah, ia mewakili penguatan kuasa beli dan menghasilkan isyarat beli. Sebaliknya, apabila garis pantas melintasi di bawah garis perlahan dari atas, kuasa jual semakin kuat dan isyarat jual dihasilkan.

Selain itu, strategi ini menggabungkan analisis kekuatan relatif jumlah pembelian dan penjualan berdasarkan hubungan saiz antara jumlah pembelian dan jumlah penjualan setiap candlestick. Kaedah khusus adalah: Volume pembelian = Volume x (Tutup - Rendah) ÷ (Tinggi - Rendah); Volume penjualan = Volume x (Tinggi - Tutup) ÷ (Tinggi - Rendah). Jika jumlah pembelian jauh lebih besar daripada jumlah penjualan, ini bermakna candlestick ditutup dengan daya beli yang agak kuat, yang merupakan isyarat beli.

Dengan menggabungkan penunjuk MACD dan analisis jumlah, strategi ini dapat menentukan hubungan bekalan dan permintaan dan arah yang menunggu di pasaran dengan berkesan. Pada masa yang sama, strategi ini juga mengesahkan keadaan seperti sama ada harga berada di kawasan utama, sama ada MACD mempunyai pembalikan yang berkesan, dan sama ada perbezaan antara jumlah pembelian dan penjualan cukup besar, untuk menapis beberapa bunyi impuls dan memastikan kemungkinan tinggi dan kemasukan kecekapan tinggi.

Analisis Kelebihan

  • Gunakan penunjuk MACD untuk menilai arah pasaran yang menunggu
  • Analisis perbezaan jumlah untuk menentukan kekuatan pembeli dan penjual
  • Penyaringan pelbagai keadaan memastikan kemungkinan operasi yang tinggi
  • Mengambil strategi stop profit dan stop loss untuk mengawal risiko

Kelebihan terbesar strategi ini adalah bahawa ia sepenuhnya menggabungkan pertimbangan hubungan bekalan dan permintaan pasaran. Histogram MACD dapat menentukan secara berkesan kontras antara kuasa beli dan jual dan arah yang menunggu di pasaran; analisis perbezaan jumlah dapat dengan jelas mengenal pasti kuasa dominan antara pembeli dan penjual. Pada masa yang sama, strategi menetapkan pelbagai syarat untuk semakan untuk mengelakkan mengejar kenaikan dan mengalahkan penurunan, memastikan kebarangkalian keuntungan yang agak tinggi. Di samping itu, mekanisme berhenti keuntungan dan berhenti kerugian strategi yang terbina dalam juga dapat mengehadkan kerugian tunggal.

Analisis Risiko

  • Risiko kegagalan MACD: Apabila pasaran turun naik atau mengukuhkan dalam corak rata, MACD boleh menghasilkan isyarat palsu.
  • Risiko kegagalan jumlah. Mungkin ada manipulasi pasaran untuk meningkatkan jumlah dagangan, yang akan mengurangkan ketepatan analisis jumlah.
  • Kesukaran pengoptimuman parameter. Strategi ini mengandungi beberapa parameter yang sukar untuk dioptimumkan, menjadikannya tidak sesuai untuk pelabur dengan keupayaan penyesuaian parameter yang agak lemah.

Risiko di atas dapat dielakkan dengan: menentukan dengan tepat trend utama pasaran untuk mengelakkan menggunakan strategi ini semasa turun naik pasaran; memberi perhatian kepada maklumat pasaran untuk mengenal pasti jumlah dagangan yang dipenuhi secara buatan; menyesuaikan parameter dengan teliti, atau mendapatkan nasihat daripada profesional.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dalam aspek berikut:

  • Menggunakan penunjuk seperti KD, Bollinger Bands dan lain-lain untuk menggantikan atau membantu MACD dan meningkatkan ketepatan penilaian
  • Tambah mekanisme pengurusan kedudukan untuk pelarasan parameter dinamik
  • Mengoptimumkan titik stop profit dan stop loss untuk keuntungan tunggal yang lebih tinggi
  • Berjalan pada pelbagai bingkai masa untuk meningkatkan kestabilan

Ringkasnya, dapat dilihat bahawa terdapat banyak ruang untuk mengoptimumkan strategi ini. Pelabur boleh membuat penyesuaian dan penambahbaikan yang sesuai mengikut keadaan dan keadaan pasaran mereka sendiri untuk mencapai keberkesanan strategi yang lebih baik.

Ringkasan

Strategi 3 10 Oscillator Profile Flagging berjaya mengintegrasikan idea analisis MACD, perbandingan jumlah, dan pengesahan penapisan pelbagai keadaan. Ia mempunyai keupayaan yang kuat dalam menentukan hubungan bekalan permintaan dan arah pasaran yang menunggu, sambil mengawal risiko melalui mekanisme berhenti keuntungan dan berhenti kerugian terbina dalam. Strategi ini mempunyai ruang pengoptimuman yang besar dan prospek aplikasi yang luas yang bernilai pertimbangan utama dan penyelidikan mendalam untuk pelabur.


/*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 lanjut