Sumber dimuat naik... memuat...

Strategi Beli / Jual Berdasarkan Bentuk Volume & Candlestick

Penulis:ChaoZhang, Tarikh: 2024-06-03 16:31:28
Tag:SMAEMA

img

Ringkasan

Strategi ini menggabungkan isyarat dari harga dan jumlah dagangan, bersama dengan tahap retracement Fibonacci, untuk menjana isyarat beli dan jual dalam jangka masa 15 minit dan 45 minit. Strategi ini menggunakan pelbagai purata bergerak (MA) sebagai penunjuk trend dan momentum, termasuk Purata Bergerak Sederhana (SMA) dan Purata Bergerak Eksponen (EMA).

Prinsip Strategi

  1. Mengira MA pantas (default 10) dan MA perlahan (default 30). Apabila MA pantas melebihi MA perlahan, ia menunjukkan trend menaik; sebaliknya, ia menunjukkan trend menurun.
  2. Mengira MA jumlah (default 20). Apabila jumlah semasa lebih tinggi daripada MA jumlah, ia menunjukkan peningkatan dalam jumlah; sebaliknya, ia menunjukkan penurunan dalam jumlah.
  3. Menggunakan pelbagai MA dan EMA sebagai penunjuk tambahan, termasuk MA pantas (default 9), SMA jangka pendek (default 10 dan 60), dan EMA (default 3 dan 7).
  4. Mengira tahap retracement Fibonacci (0.47, 0.658, dan 0.886) sebagai tahap sokongan dan rintangan yang berpotensi.
  5. Menghasilkan isyarat beli atau jual apabila SMA jangka pendek (60) melintasi garis ketepatan (berdasarkan persilangan EMA pantas dan EMA perlahan).
  6. Menghasilkan isyarat keluar apabila MA pantas (9) melintasi EMA (7).

Analisis Kelebihan

  1. Menggabungkan maklumat dari harga dan jumlah dagangan, menyediakan analisis pasaran yang lebih komprehensif.
  2. Menggunakan pelbagai MAs dan EMA sebagai penunjuk tambahan, membantu mengesahkan perubahan trend dan momentum.
  3. Tahap retracement Fibonacci menyediakan rujukan untuk titik masuk yang berpotensi, membantu dalam mengoptimumkan masa masuk.
  4. Isyarat beli dan jual adalah berdasarkan persilangan SMA jangka pendek dan garis ketepatan, membantu menangkap titik perubahan pasaran dengan segera.
  5. Isyarat keluar adalah berdasarkan persilangan MA dan EMA yang cepat, yang membantu mengambil keuntungan atau menghentikan kerugian tepat pada masanya.

Analisis Risiko

  1. Dalam pasaran yang berbelit-belit, isyarat silang yang kerap boleh menyebabkan kerugian perdagangan dan komisen yang berlebihan.
  2. Strategi ini bergantung kepada MAs dan tahap Fibonacci yang dikira dari data sejarah, yang mungkin tidak dapat disesuaikan dengan cepat dengan perubahan pasaran yang tiba-tiba.
  3. Strategi ini tidak mempunyai penilaian kekuatan trend pasaran dan boleh menghasilkan isyarat palsu apabila trend lemah.
  4. Parameter strategi (seperti tempoh MA) perlu dioptimumkan mengikut keadaan pasaran yang berbeza; jika tidak, keberkesanan strategi mungkin terjejas.

Arahan pengoptimuman

  1. Memperkenalkan penunjuk kekuatan trend (seperti ADX) untuk mengelakkan perdagangan atau mengamalkan strategi yang lebih konservatif apabila trend lemah.
  2. Mengoptimumkan parameter tempoh MA dan EMA untuk menyesuaikan diri dengan keadaan pasaran dan instrumen dagangan yang berbeza.
  3. Menggabungkan penunjuk teknikal lain (seperti RSI, MACD) untuk meningkatkan kebolehpercayaan isyarat.
  4. Memperkenalkan mekanisme stop-loss dan mengambil keuntungan untuk mengawal pendedahan risiko perdagangan individu.
  5. Untuk pasaran yang bergelombang, pertimbangkan untuk menggunakan strategi perdagangan yang lebih sesuai (seperti perdagangan julat).

Ringkasan

Strategi ini menghasilkan isyarat beli dan jual dalam beberapa jangka masa dengan menggabungkan harga, jumlah dagangan, dan tahap retracement Fibonacci. Kelebihan strategi ini terletak pada pertimbangan menyeluruh pelbagai elemen pasaran dan penggunaan pelbagai MA dan EMA sebagai penunjuk tambahan. Walau bagaimanapun, strategi ini boleh menghasilkan isyarat perdagangan yang berlebihan di pasaran yang bergolak dan bergantung pada penunjuk yang dikira dari data sejarah. Oleh itu, pengoptimuman lanjut diperlukan untuk meningkatkan daya adaptasi dan kebolehpercayaannya. Arahan pengoptimuman termasuk memperkenalkan penunjuk kekuatan trend, mengoptimumkan parameter, menggabungkan penunjuk teknikal lain, dan memperkenalkan langkah pengurusan risiko.


/*backtest
start: 2023-05-28 00:00:00
end: 2024-06-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Buy/Sell with Volume and Candlestick Signals", overlay=true)

// Fibonacci Retracement Levels
var float[] fibonacciLevels = array.new_float(5)
array.set(fibonacciLevels, 2, 0.47)
array.set(fibonacciLevels, 3, 0.658)
array.set(fibonacciLevels, 4, 0.886)

// Calculate Fibonacci Retracement Levels
fibonacciRetrace(highLevel, lowLevel) =>
    priceRange = highLevel - lowLevel
    retracementLevels = array.new_float(0)
    for i = 0 to array.size(fibonacciLevels) - 1
        level = highLevel - array.get(fibonacciLevels, i) * priceRange
        array.push(retracementLevels, level)
    retracementLevels

fibRetracementValues = fibonacciRetrace(high, low)
fibRetracement = ta.sma(close, 21)
plot(fibRetracement, color=color.purple, title="Fibonacci Retracement")

// Define inputs
fast_ma = input.int(title="Fast MA Period", defval=10)
short_sma_10 = input.int(title="Short SMA 10 Period", defval=10)
short_sma_60 = input.int(title="Short SMA 60 Period", defval=60)
slow_ma = input.int(title="Slow MA Period", defval=30)
ema1Length = input.int(title="EMA 1 Length", defval=3)
fast_ma_9 = input.int(title="Fast MA 9", defval=9)

// Define indicators
fast_ma_val = ta.sma(close, fast_ma)
short_sma_10_val = ta.sma(close, short_sma_10)
short_sma_60_val = ta.sma(close, short_sma_60)
slow_ma_val = ta.sma(close, slow_ma)
up_trend = fast_ma_val > slow_ma_val
down_trend = fast_ma_val < slow_ma_val
volume_up = volume > ta.sma(volume, 20)
volume_down = volume < ta.sma(volume, 20)

// Calculate accuracy values
fast_ema_val = ta.ema(close, fast_ma)
slow_ema_val = ta.ema(close, slow_ma)
ema1_val = ta.ema(close, ema1Length)
fast_ma_9_val = ta.sma(close, fast_ma_9)
ema7_val = ta.ema(close, 7)
accuracy = ta.crossover(close, slow_ma_val) ? fast_ema_val : slow_ema_val

// Define lines
plot(up_trend ? fast_ma_val : na, color=color.green, linewidth=2, title="Up Trend")
plot(down_trend ? fast_ma_val : na, color=color.red, linewidth=2, title="Down Trend")
plot(volume_up ? fast_ma_val : na, color=color.green, linewidth=2, title="Volume Up")
plot(volume_down ? fast_ma_val : na, color=color.red, linewidth=2, title="Volume Down")
plot(accuracy, color=color.yellow, linewidth=1, title="Accuracy Line")
plot(ema1_val, color=color.purple, linewidth=1, title="EMA 1")
plot(fast_ma_9_val, color=color.orange, linewidth=1, title="Fast MA 9")
plot(ema7_val, color=color.blue, linewidth=1, title="EMA 7")
plot(short_sma_60_val, color=color.red, linewidth=1, title="Short SMA 60")
hline(0, color=color.gray, linestyle=hline.style_dotted, title="Zero Line")

// Buy/Sell Signals
buySignal = ta.crossunder(short_sma_60_val, accuracy)
sellSignal = ta.crossover(short_sma_60_val, accuracy)

// Exit Signals
exitLongSignal = ta.crossunder(fast_ma_9_val, ema7_val)
exitShortSignal = ta.crossover(fast_ma_9_val, ema7_val)

// Plot Buy/Sell Signals
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")

if exitLongSignal
    strategy.close("Buy")

if exitShortSignal
    strategy.close("Sell")


if buySignal
    strategy.entry("Enter Long", strategy.long)
else if sellSignal
    strategy.entry("Enter Short", strategy.short)

Berkaitan

Lebih lanjut