Strategi Momentum Skala Waktu Ganda

SMA
Tanggal Pembuatan: 2024-04-25 17:33:02 Akhirnya memodifikasi: 2024-04-25 17:33:02
menyalin: 0 Jumlah klik: 592
1
fokus pada
1617
Pengikut

Strategi Momentum Skala Waktu Ganda

Ringkasan

Strategi ini adalah strategi momentum skala waktu ganda. Strategi ini menilai arah tren dengan menggunakan rata-rata bergerak sederhana (SMA) pada periode waktu tingkat tinggi, dan titik pivot (PivotLow dan PivotHigh) pada periode waktu tingkat rendah untuk mengidentifikasi titik balik. Strategi ini lebih terbuka ketika periode waktu tingkat tinggi menunjukkan tren naik dan periode waktu tingkat rendah menunjukkan pivot bearish, dan lebih kosong ketika periode waktu tingkat tinggi menunjukkan tren turun dan periode waktu tingkat rendah menunjukkan pivot bearish.

Prinsip Strategi

Prinsip utama dari strategi ini adalah bahwa arah tren dari siklus waktu tingkat tinggi akan mempengaruhi pergerakan siklus waktu tingkat rendah. Ketika siklus waktu tingkat tinggi menunjukkan tren naik, pengembalian siklus waktu tingkat rendah lebih mungkin menjadi peluang beli; Ketika siklus waktu tingkat tinggi menunjukkan tren turun, rebound siklus waktu tingkat rendah lebih mungkin menjadi peluang kosong. Strategi ini menggunakan rata-rata bergerak sederhana (SMA) untuk menentukan arah tren dari siklus waktu tingkat tinggi, menggunakan titik pivot (PowLivot dan PivotHigh) untuk mengidentifikasi titik balik siklus waktu tingkat tinggi.

Keunggulan Strategis

  1. Analisis skala waktu ganda, memanfaatkan pengaruh periode waktu tingkat tinggi terhadap periode waktu tingkat rendah, meningkatkan probabilitas keberhasilan transaksi.
  2. Menggunakan SMA untuk menentukan arah tren lebih dapat diandalkan, menggunakan titik pivot untuk menangkap titik balik lebih akurat.
  3. Parameter yang dapat disesuaikan, beradaptasi. Pengguna dapat menyesuaikan skala waktu yang tinggi dan rendah sesuai dengan kebutuhan mereka sendiri, siklus SMA, parameter titik pusat, dll.
  4. Logika yang jelas, mudah dipahami dan diterapkan.

Risiko Strategis

  1. Risiko perubahan tren. Jika tren di periode waktu tingkat tinggi berubah secara tiba-tiba, periode waktu tingkat rendah mungkin belum bereaksi, menyebabkan strategi gagal.
  2. Risiko pengaturan parameter. Pengaturan parameter yang tidak tepat dapat menyebabkan kinerja strategi yang buruk. Misalnya, memilih siklus SMA yang terlalu pendek dapat menyebabkan perdagangan yang terlalu sering, memilih terlalu panjang dapat menyebabkan keterlambatan penilaian tren.
  3. Risiko ekstremitas. Dalam situasi ekstremitas (seperti badai), strategi ini mungkin gagal. Karena dalam situasi ini, siklus waktu tingkat rendah mungkin tidak mengikuti tren siklus waktu tingkat tinggi.

Arah optimasi strategi

  1. Menambahkan penilaian perubahan tren. Beberapa logika dapat ditambahkan untuk menilai apakah tren siklus waktu tingkat tinggi berubah, untuk lebih cepat menyesuaikan perdagangan periode waktu tingkat rendah.
  2. Optimalisasi pilihan parameter. Beberapa metode optimasi parameter dapat digunakan (misalnya algoritma genetik, pencarian grid, dll.) untuk menemukan kombinasi parameter yang optimal.
  3. Meningkatkan pengendalian risiko. Anda dapat menambahkan beberapa langkah pengendalian risiko (seperti stop loss, manajemen posisi, dll.) untuk mengurangi kerugian dalam situasi ekstrem.
  4. Integrasi multi-faktor. Anda dapat mempertimbangkan untuk memasukkan indikator atau faktor lain (seperti volatilitas, volume transaksi, dll.) ke dalam strategi untuk meningkatkan stabilitas strategi.

Meringkaskan

Strategi ini memanfaatkan hubungan antara siklus waktu tingkat tinggi dan rendah, dengan menentukan arah tren pada siklus waktu tingkat tinggi, menangkap titik balik pada siklus waktu tingkat rendah, untuk mencapai trend mengikuti dan membalikkan perdagangan. Strategi ini logis jelas, keunggulan jelas, tetapi juga ada beberapa risiko.

Kode Sumber Strategi
/*backtest
start: 2023-04-19 00:00:00
end: 2024-04-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Riester

//@version=5
strategy("Dual Timeframe Momentum", overlay=true, precision=6, pyramiding=0, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=25.0, commission_value=0.05)

n = input.int(20, "Moving Average Period", minval=1)
src = input.source(close, "Source")
high_tf = input.timeframe("240", "Resolution")
pivot_l = input.int(5, "Pivot Let Bars")
pivot_r = input.int(2, "Pivot Right Bars")

//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
// Calculations
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------

// 1. Define low and high timeframe prices
low_src = src
high_src = request.security(syminfo.tickerid, high_tf, src)

// 2. Use simple moving average to determine trend of higher timeframe (up or down)
high_tf_ma = ta.sma(high_src, n)
plot(high_tf_ma,  color=color.yellow)
high_tf_trend = high_tf_ma > high_tf_ma[1] ? 1 : -1

// 3. Use pivots to identify reversals on the low timeframe
low_tf_pl = ta.pivotlow(high_src, pivot_l, pivot_r)
plot(low_tf_pl, style=plot.style_line, linewidth=3, color= color.green, offset=-pivot_r)

low_tf_ph = ta.pivothigh(high_src, pivot_l, pivot_r)
plot(low_tf_ph, style=plot.style_line, linewidth=3, color= color.red, offset=-pivot_r)

bool long = low_tf_pl and high_tf_trend == 1
bool short = low_tf_ph and high_tf_trend == -1

//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
// Plots
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------

// this message is an alert that can be sent to a webhook, which allows for simple automation if you have a server that listens to alerts and trades programmatically.
enter_long_alert = '{"side": "Long", "order": "Enter", "price": ' + str.tostring(open) + ', "timestamp": ' + str.tostring(timenow) + '}'
exit_long_alert = '{"side": "Long", "order": "Exit", "price": ' + str.tostring(open) + ', "timestamp": ' + str.tostring(timenow) + '}'

if long
    strategy.entry(id="Long", direction=strategy.long, limit=open, alert_message=enter_long_alert)

if short
    strategy.close(id="Long", comment="Close Long", alert_message=exit_long_alert)