Strategi Crossover purata bergerak dengan corak candlestick intraday

Penulis:ChaoZhang, Tarikh: 2024-02-29 12:07:21
Tag:

img

Ringkasan

Logika Strategi

Apabila purata bergerak jangka pendek (9 hari MA) melintasi di atas purata bergerak jangka panjang (15-hari MA), ia menunjukkan momentum menaik jangka pendek yang lebih kuat untuk pergi lama. Apabila MA jangka pendek melintasi di bawah MA jangka panjang, ia menandakan momentum menurun jangka pendek yang lebih kuat untuk pergi pendek. Di samping itu, sudut MA perlu lebih besar daripada 30 darjah untuk memastikan kuasa menaik atau menurun yang mencukupi. corak lilin intraday tertentu digunakan untuk menapis isyarat palsu.

Analisis Kelebihan

Strategi ini menggabungkan penunjuk purata bergerak dan corak candlestick intraday untuk menapis bunyi bising dengan berkesan dan menjadikan isyarat perdagangan lebih boleh dipercayai. Terutamanya dengan ambang ambang, ia memastikan terdapat momentum perubahan harga yang mencukupi sebelum menghasilkan isyarat, mengelakkan isyarat palsu yang tidak perlu. Juga, tahap stop loss dan mengambil keuntungan secara automatik dapat mengehadkan kerugian maksimum dan penarikan keuntungan. Langkah-langkah ini meningkatkan kestabilan dan keuntungan.

Sebagai penunjuk trend, purata bergerak boleh menangkap trend harga jangka menengah hingga panjang. lilin intraday mencerminkan perbandingan kuasa peserta pasaran jangka pendek. Menggunakan mereka bersama-sama boleh mendapatkan implikasi perdagangan dalam jangka masa yang berbeza. Strategi ini mengintegrasikan kekuatan beberapa penunjuk dan harus mencapai prestasi yang baik dalam perdagangan sebenar.

Analisis Risiko

Risiko utama strategi ini termasuk:

  1. Risiko pecah palsu. Semasa penyatuan pasaran, purata bergerak mungkin mempunyai pelbagai salib, yang kebanyakannya adalah isyarat palsu. Jika dipukul di sini akan menimbulkan kerugian. Corak candlestick dan keadaan sudut dapat mengurangkan risiko ini.

  2. risiko pembalikan trend. purata bergerak tidak boleh memberi amaran awal pembalikan trend. memegang kedudukan di sini boleh membawa kepada kerugian besar. risiko ini boleh dikawal melalui stop loss yang ketat.

Secara amnya, strategi ini boleh menghasilkan beberapa isyarat palsu dan mengejar risiko tinggi / rendah tanpa mempertimbangkan keadaan pasaran.

Arahan pengoptimuman

Aspek berikut strategi ini boleh ditingkatkan lagi:

  1. Tambah analisis trend utama, contohnya, mengesahkan saluran jangka menengah / panjang, untuk mengelakkan perdagangan terhadap trend.

  2. Menggabungkan penunjuk jumlah. Sebagai contoh, jumlah pada imbangan boleh digunakan untuk mengelakkan harga pendek yang tinggi atau membeli harga yang rendah.

  3. Mengoptimumkan parameter purata bergerak. Uji tempoh panjang yang berbeza, sistem MA tiga atau lima kali ganda untuk fleksibiliti penyesuaian yang lebih besar.

  4. Uji parameter stop loss / mengambil keuntungan. Tetapkan nisbah rebate buku pesanan berdasarkan hasil backtest untuk mencapai nisbah risiko-balasan yang optimum.

Ringkasan

Ringkasnya, strategi ini menggabungkan kekuatan purata bergerak dan corak candlestick yang dipilih. Isyarat perdagangan dihasilkan dengan kriteria yang agak ketat, menapis banyak bunyi bising dan meningkatkan kualiti isyarat. Pengendalian stop loss dan mengambil keuntungan lebih lagi mengehadkan risiko dan mengunci keuntungan. Ini adalah strategi perdagangan kuantitatif yang stabil yang patut disyorkan.


/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-28 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Moving Average Crossover Strategy with Candlestick Patterns", overlay=true)

// Define input parameters
fast_length = input(9, "Fast MA Length")
slow_length = input(15, "Slow MA Length")
stop_loss_percent = input(0.25, "Stop Loss (%)")
target_percent = input(0.25, "Target (%)")
angle_threshold = input(30, "Angle Threshold (degrees)")

// Calculate moving averages
fast_ma = sma(close, fast_length)
slow_ma = sma(close, slow_length)

// Define candlestick patterns
is_pin_bar() =>
    pin_bar = abs(open - close) > 2 * abs(open[1] - close[1])
    high_tail = max(open, close) - high > abs(open - close) * 1.5
    low_tail = low - min(open, close) > abs(open - close) * 1.5
    pin_bar and high_tail and low_tail

is_marubozu() =>
    marubozu = abs(open - close) > abs(open[1] - close[1]) * 0.75
    no_upper_shadow = high == max(open, close)
    no_lower_shadow = low == min(open, close)
    marubozu and no_upper_shadow and no_lower_shadow

is_full_body() =>
    full_body = abs(open - close) > abs(open[1] - close[1]) * 0.95
    full_body

// Plot moving averages
plot(fast_ma, color=color.blue, title="Fast MA")
plot(slow_ma, color=color.red, title="Slow MA")

// Calculate angle of slow moving average
ma_angle = abs(180 * (atan(slow_ma[1] - slow_ma) / 3.14159))

// Generate buy/sell signals based on angle condition and candlestick patterns
buy_signal = crossover(fast_ma, slow_ma) and ma_angle >= angle_threshold and (is_pin_bar() or is_marubozu() or is_full_body())
sell_signal = crossunder(fast_ma, slow_ma)

// Calculate stop-loss and target levels
stop_loss_level = close * (1 - stop_loss_percent / 100)
target_level = close * (1 + target_percent / 100)

// Execute trades based on signals with stop-loss and target
strategy.entry("Buy", strategy.long, when=buy_signal)
strategy.exit("Exit", "Buy", stop=stop_loss_level, limit=target_level)

// Plot buy/sell signals on chart (optional)
plotshape(series=buy_signal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=sell_signal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)

// Plot angle line
hline(angle_threshold, "Angle Threshold", color=color.black, linestyle=hline.style_dashed)


Lebih lanjut