Tren Posisi Siklus Mengikuti Strategi

Penulis:ChaoZhang, Tanggal: 2023-11-17 17:05:11
Tag:

img

Gambaran umum

Strategi Cycle Position Trend Following adalah strategi perdagangan kuantitatif yang menentukan arah tren berdasarkan 200-hari Simple Moving Average (SMA). Strategi ini menyediakan dua mode - Follow Uptrend dan Follow Downtrend bagi trader untuk dipilih sesuai preferensi mereka. Strategi ini memungkinkan trader untuk menyesuaikan stop loss dan mengambil tingkat keuntungan untuk fleksibilitas yang lebih besar.

Cara Kerja Strategi

Indikator inti dari strategi ini adalah SMA 200 hari.

  1. Mengikuti Uptrend Mode: Pergi panjang ketika close berada di atas SMA 200 hari; posisi close ketika stop loss atau take profit dipicu.

  2. Mengikuti Mode Downtrend: Pergi panjang ketika close berada di bawah SMA 200 hari; posisi close ketika stop loss atau take profit dipicu.

Kondisi panjang didefinisikan dalamlongConditionvariabel berdasarkan hubungan harga penutupan dengan SMA 200 hari.closeConditionvariabel berdasarkan stop loss, take profit dan SMA.

Secara khusus,strategy.entrydigunakan untuk membuka posisi panjang ketika kondisi panjang terpenuhi.strategy.exitdigunakan untuk menutup posisi ketika kondisi close dipicu.

Keuntungan dari Strategi

Keuntungan dari strategi ini meliputi:

  1. Logika sederhana dan jelas yang mudah dimengerti.

  2. Menyediakan dua mode opsional yang sesuai dengan lingkungan pasar yang berbeda.

  3. Stop loss dan take profit yang dapat disesuaikan memungkinkan penyesuaian profil risiko-manfaat.

  4. Menggunakan indikator SMA 200 hari yang terkenal untuk menentukan arah tren.

  5. Menghasilkan sinyal perdagangan otomatis tanpa intervensi manual.

Risiko dari Strategi

Risiko dari strategi ini meliputi:

  1. Terlalu bergantung pada satu indikator, rentan terhadap sinyal palsu.

  2. Stop loss dan take profit level yang terlalu ketat atau terlalu luas dapat menyebabkan stop out prematur atau kehilangan titik keluar yang ideal.

  3. Menggunakan harga dekat untuk sinyal memiliki bias harga penutupan. Pertimbangkan untuk menggunakan tubuh lilin atau menambahkan konfirmasi sinyal.

  4. Tidak memperhitungkan biaya perdagangan.

Cara Memperbaiki Strategi

Beberapa cara untuk meningkatkan strategi:

  1. Tambahkan indikator lain untuk mengkonfirmasi sinyal dan menghindari sinyal palsu, misalnya MACD.

  2. Optimalkan parameter stop loss dan take profit untuk menemukan kombinasi optimal melalui backtesting.

  3. Tambahkan filter tren untuk hanya berdagang dalam tren yang didefinisikan dengan baik, misalnya ADX.

  4. Meningkatkan metode masuk dengan mempertimbangkan tubuh lilin atau menambahkan konfirmasi.

  5. Pertimbangkan volume perdagangan untuk memvalidasi keandalan sinyal.

  6. Uji periode SMA yang berbeda untuk menemukan parameter yang optimal.

Kesimpulan

Pada akhirnya, strategi ini memiliki logika yang jelas dan mudah dimengerti dengan nilai praktis. Tetapi ketergantungan pada satu indikator memiliki keterbatasan. Lebih banyak kondisi harus ditambahkan untuk konfirmasi. Parameter juga perlu diuji dan dioptimalkan untuk kinerja live yang lebih baik.


/*backtest
start: 2022-11-10 00:00:00
end: 2023-11-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © I11L

//@version=5
strategy("Cycle Position Trading", overlay=true, pyramiding=1, default_qty_value=100000, initial_capital=100000, default_qty_type=strategy.cash, process_orders_on_close=false, calc_on_every_tick=false)

// Input for selecting the mode
mode = input.string("Buy Uptrend", options = ["Buy Uptrend", "Buy Downtrend"])

// Input for customizing stop loss and take profit levels
stopLoss = input.float(0.9, title="Stop Loss (SL) level", step=0.01)
takeProfit = input.float(1.1, title="Take Profit (TP) level", step=0.01)

// Calculate the 200-day Simple Moving Average (SMA)
sma = ta.sma(close, 200)

// Plot the SMA on the chart
plot(sma)

// Define the conditions for entering a long position based on the selected mode
longCondition = mode == "Buy Uptrend" ? close > sma and close[5] > sma : close < sma

// Define the conditions for closing a position based on the selected mode
closeCondition = mode == "Buy Uptrend" ? (strategy.position_avg_price * stopLoss > close or strategy.position_avg_price * takeProfit < close or close < sma * 0.95) : (strategy.position_avg_price * stopLoss > close or strategy.position_avg_price * takeProfit < close or close > sma * 1.05)

// Execute a long position if the longCondition is met
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

// Close the position if the closeCondition is met
if (closeCondition)
    strategy.exit("Exit", limit = close)


Lebih banyak