3 10 Strategi penandaan kontur pendingin dengan mengira perbezaan antara purata bergerak sederhana hari ke-3 dan ke-10 sebagai penunjuk MACD, menggabungkan analisis jumlah transaksi untuk menilai kekuatan dan kelemahan pasaran, sehingga menghasilkan isyarat perdagangan. Strategi ini menggabungkan kawasan harga utama, ciri-ciri jumlah transaksi, dan perubahan MACD untuk mengesahkan peluang masuk dan keluar.
Penunjuk teras strategi ini adalah MACD, yang terdiri daripada purata bergerak cepat dan purata bergerak perlahan. Garis cepat adalah purata bergerak mudah 3 hari, dan garis perlahan adalah purata bergerak mudah 10 hari. Perbezaan antara mereka membentuk garis pilar MACD.
Selain itu, strategi ini menggabungkan hubungan antara jumlah pembelian dan jumlah penjualan untuk setiap garis K untuk menentukan kekuatan relatif pasaran. Kaedah khusus adalah: jumlah pembelian = jumlah penjualan x (harga penutupan-harga terendah) ÷ ((harga tertinggi-harga terendah); jumlah penjualan = jumlah penjualan x (harga tertinggi-harga penutupan) ÷ ((harga tertinggi-harga terendah). Jika jumlah pembelian secara ketara lebih besar daripada jumlah penjualan, ini menunjukkan bahawa garis K berakhir dengan pembelian yang lebih kuat, ini adalah isyarat membeli.
Dengan menggabungkan indikator MACD dan analisis kuantiti transaksi, strategi ini dapat menilai hubungan bekalan dan permintaan di pasaran dan arah pendirian. Pada masa yang sama, strategi ini juga akan mengesahkan sama ada harga berada di rantau penting, sama ada MACD berbalik secara berkesan, dan sama ada perbezaan kuantiti pembelian dan penjualan cukup besar, untuk menyaring beberapa bunyi operasi dorongan, memastikan kemungkinan tinggi dan masuk yang cekap.
Kelebihan terbesar strategi ini adalah penghakiman yang sepenuhnya menggabungkan hubungan bekalan dan permintaan pasaran. Garis tiang MACD dapat menilai kekuatan perdagangan dan arah trend pasaran dengan berkesan; analisis perbezaan kuantiti perdagangan dapat dengan jelas mengenal pasti kekuatan dominan dalam perdagangan.
Risiko di atas boleh dielakkan dengan kaedah berikut: menilai dengan tepat trend utama pasaran, mengelakkan menggunakan strategi ini dalam cakera goyah; perhatikan maklumat pasaran, mengenal pasti keadaan di mana jumlah transaksi ditarik oleh manusia; penyesuaian parameter harus berhati-hati, boleh mengambil nasihat daripada institusi profesional.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Secara keseluruhannya, terdapat ruang yang besar untuk mengoptimumkan strategi ini, dan pelabur boleh membuat penyesuaian dan penambahbaikan yang sesuai dengan keadaan mereka dan keadaan pasaran, untuk menjadikan strategi lebih berkesan.
3 10 Strategi penandaan kontur vibrator berjaya menggabungkan analisis MACD, perbandingan jumlah transaksi dan pengesahan penapisan pelbagai syarat. Ia mempunyai keupayaan yang kuat untuk menilai hubungan bekalan dan permintaan dan arah trend pasaran, sambil mengawal risiko dengan mekanisme hentian hentian terbina dalam.
/*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)