Sumber daya yang dimuat... Pemuatan...

Strategi perdagangan dua arah dengan volatilitas besar: Sistem entri ambang berbasis titik

Penulis:ChaoZhang, Tanggal: 2024-11-18 16:11:21
Tag:ATRSLTP

img

Gambaran umum

Strategi ini adalah sistem perdagangan dua arah berdasarkan lilin 30 menit, mencari peluang perdagangan melalui pemantauan volatilitas harga. Mekanisme inti melibatkan mengidentifikasi pergerakan harga yang signifikan menggunakan ambang titik dan mengeksekusi perdagangan setelah konfirmasi breakout. Strategi ini menggabungkan manajemen waktu yang ketat, mekanisme stop-loss / take-profit, dan protokol manajemen perdagangan untuk perdagangan otomatis yang terkontrol.

Prinsip Strategi

Strategi ini menggunakan beberapa mekanisme penyaringan untuk mengidentifikasi sinyal perdagangan yang valid. Ini menghitung rentang volatilitas setiap lilin 30 menit pada saat penutupan, menandai peluang perdagangan potensial ketika rentang melebihi ambang batas yang telah ditetapkan sebelumnya. Untuk memastikan keabsahan sinyal, strategi menerapkan titik penyangga tambahan, memicu sinyal perdagangan aktual hanya ketika harga menembus zona penyangga ini. Sistem ini memungkinkan posisi panjang dan pendek, memasukkan posisi panjang pada pembobolan ke atas dan pendek pada pembobolan ke bawah, dengan target keuntungan dan tingkat stop-loss yang sesuai.

Keuntungan Strategi

  1. Manajemen waktu yang komprehensif: Jendela perdagangan terbatas menghindari sinyal palsu selama periode tidak aktif
  2. Perdagangan dua arah: Menangkap peluang di kedua arah pasar, meningkatkan efisiensi modal
  3. Pengendalian risiko yang kuat: Tingkat stop loss dan take profit yang tetap mempermudah penilaian dan manajemen risiko
  4. Otomatisasi tinggi: sepenuhnya otomatis dari identifikasi sinyal hingga pelaksanaan perdagangan, meminimalkan intervensi manusia
  5. Pengaturan parameter yang fleksibel: Parameter kunci yang dapat disesuaikan beradaptasi dengan kondisi pasar yang berbeda

Risiko Strategi

  1. Risiko pecah palsu: Volatilitas besar dapat menyebabkan pecah palsu yang mengakibatkan stop-loss exit
  2. Sensitivitas parameter: Pengaturan ambang batas yang tidak benar dapat menyebabkan kesempatan yang hilang atau overtrading
  3. Ketergantungan lingkungan pasar: Dapat memicu seringnya stop loss di pasar yang berbeda
  4. Dampak slippage: Harga eksekusi sebenarnya dapat menyimpang secara signifikan dari harga sinyal selama volatilitas tinggi
  5. Risiko manajemen modal: Kurangnya mekanisme ukuran posisi dapat menyebabkan eksposur risiko yang berlebihan

Arah Optimasi Strategi

  1. Tambahkan penyaringan tren: Masukkan indikator tren jangka panjang untuk meningkatkan kualitas sinyal
  2. Optimasi parameter dinamis: Sesuaikan ambang batas dan parameter stop-loss secara otomatis berdasarkan volatilitas pasar
  3. Konfirmasi volume: Tambahkan kondisi penyaringan volume untuk meningkatkan keandalan breakout
  4. Mengoptimalkan stop-loss/take-profit: Menerapkan exit dinamis yang beradaptasi dengan kondisi pasar yang berbeda
  5. Mengintegrasikan ukuran posisi: Sesuaikan ukuran posisi secara dinamis berdasarkan kekuatan sinyal dan volatilitas pasar

Kesimpulan

Ini adalah strategi perdagangan otomatis yang dirancang secara komprehensif dengan logika yang jelas. Melalui penyaringan kondisi yang ketat dan pengendalian risiko, strategi menunjukkan penerapan praktis. Namun, pengujian menyeluruh dan optimalisasi dalam perdagangan langsung diperlukan, terutama dalam pengaturan parameter dan aspek pengendalian risiko yang perlu disesuaikan berdasarkan kondisi pasar yang sebenarnya. Implementasi strategi yang sukses membutuhkan kondisi pasar yang stabil dan konfigurasi parameter yang tepat, dengan pengujian backtesting ekstensif yang direkomendasikan sebelum penyebaran langsung.


/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Big Candle Breakout Strategy Both Side", overlay=true)  

// Input for the point move threshold
point_move_in = input.int(100, title="Point Move Threshold")
point_target = input.int(100, title="Point Target")
point_stoploss = input.int(100, title="Point Stop Loss")
point_buffer = input.int(5, title="Point Buffer")

point_move = point_buffer + point_move_in

// Define the start and end times for trading
start_hour = 9
start_minute = 15
end_hour = 14
end_minute = 30

// Function to check if the current time is within the allowed trading window
in_time_range = (hour(time('30')) > start_hour or (hour(time('30')) == start_hour and minute(time('30')) >= start_minute)) and (hour(time('30')) < end_hour or (hour(time('30')) == end_hour and minute(time('30')) <= end_minute))

// Retrieve the open, high, low, and close prices of 30-minute candles
open_30m = request.security(syminfo.tickerid, "30", open)
high_30m = request.security(syminfo.tickerid, "30", high)
low_30m = request.security(syminfo.tickerid, "30", low)
close_30m = request.security(syminfo.tickerid, "30", close)

// Calculate the range of the candle
candle_range_long = (close_30m - open_30m)
candle_range_short = (open_30m - close_30m)

// Determine if the candle meets the criteria to be marked
big_candle_long = candle_range_long >= point_move_in
big_candle_short = candle_range_short >= point_move_in

// Variables to store the state of the trade
var float long_entry_price = na
var float long_target_price = na
var float long_stop_loss_price = na

var float short_entry_price = na
var float short_target_price = na
var float short_stop_loss_price = na

// Check if there are no active trades
no_active_trades = (strategy.opentrades == 0)

// Long entry condition
if (big_candle_long and na(long_entry_price) and in_time_range and no_active_trades)
    long_entry_price := high_30m+point_buffer
    long_target_price := long_entry_price + point_target
    long_stop_loss_price := long_entry_price - point_stoploss
    strategy.entry("Buy", strategy.long, stop=long_entry_price, limit=long_target_price)

plot(long_entry_price, style=plot.style_linebr, color=color.blue, linewidth=2, title="Entry Price")
plot(long_target_price, style=plot.style_linebr, color=color.green, linewidth=2, title="Target Price")
plot(long_stop_loss_price, style=plot.style_linebr, color=color.red, linewidth=2, title="Stop Loss Price")

// Short entry condition
if (big_candle_short and na(short_entry_price) and in_time_range and no_active_trades)
    short_entry_price := low_30m - point_buffer
    short_target_price := short_entry_price - point_target
    short_stop_loss_price := short_entry_price + point_stoploss
    strategy.entry("Sell", strategy.short, stop=short_entry_price, limit=short_target_price)

plot(short_entry_price, style=plot.style_linebr, color=color.blue, linewidth=2, title="Short Entry Price")
plot(short_target_price, style=plot.style_linebr, color=color.green, linewidth=2, title="Short Target Price")
plot(short_stop_loss_price, style=plot.style_linebr, color=color.red, linewidth=2, title="Short Stop Loss Price") 

// Long exit conditions
if (not na(long_entry_price))
    strategy.exit("Long Exit", from_entry="Buy", limit=long_target_price, stop=long_stop_loss_price)
   
// Short exit conditions
if (not na(short_entry_price))
    strategy.exit("Short Exit", from_entry="Sell", limit=short_target_price, stop=short_stop_loss_price)

// Reset trade status
if (strategy.position_size == 0)
    long_entry_price := na
    long_target_price := na
    long_stop_loss_price := na

    short_entry_price := na
    short_target_price := na
    short_stop_loss_price := na

// Plot the big candle and entry/exit levels
plotshape(series=big_candle_long, location=location.abovebar, style=shape.circle, color=color.green)
plotshape(series=big_candle_short, location=location.abovebar, style=shape.circle, color=color.red)

//plot(long_entry_price, style=plot.style_stepline, color=color.blue, linewidth=2, title="Entry Price")
//plot(long_target_price, style=plot.style_stepline, color=color.green, linewidth=2, title="Target Price")
//plot(long_stop_loss_price, style=plot.style_stepline, color=color.red, linewidth=2, title="Stop Loss Price")


Berkaitan

Lebih banyak