Strategi Penembusan Sesi Asia Tinggi Rendah

Penulis:ChaoZhang, Tanggal: 2024-03-29 17:12:49
Tag:

img

Gambaran umum

Ide utama dari strategi ini adalah untuk menggunakan titik tinggi dan rendah sesi Asia sebagai titik breakout. Dalam beberapa jam setelah pasar Eropa dan Amerika dibuka, jika harga melanggar di atas sesi tinggi Asia, itu akan panjang; jika melanggar di bawah sesi rendah Asia, itu akan pendek. Stop loss dan mengambil keuntungan diatur untuk mengendalikan risiko. Strategi hanya membuka satu perdagangan per hari, dengan maksimal 100.000 posisi bersamaan.

Prinsip Strategi

  1. Menentukan waktu perdagangan sesi Asia. Pengguna dapat menyesuaikan waktu awal dan akhir.
  2. Selama sesi Asia, catat harga tertinggi dan terendah hari itu.
  3. Pada waktu tertentu (jam offset yang ditentukan pengguna) setelah pasar Eropa dan Amerika dibuka, jika harga melanggar di atas sesi tinggi Asia, pergi panjang; jika melanggar di bawah sesi rendah Asia, pergi pendek.
  4. Setel stop loss dan take profit. Jumlah poin untuk stop loss dan take profit dapat disesuaikan.
  5. Hanya membuka satu perdagangan baru per hari, dengan maksimal 100.000 posisi bersamaan.
  6. Jika suatu posisi telah dibuka untuk hari itu, tidak ada perdagangan baru yang akan dibuka.

Analisis Keuntungan

  1. Dengan menggunakan karakteristik relatif tenang dari sesi Asia dan menggunakan titik tinggi dan rendah dari sesi Asia sebagai titik keluar, dapat lebih menangkap peluang tren dari sesi Eropa dan Amerika.
  2. Menetapkan stop loss dan take profit dapat secara efektif mengendalikan risiko, membiarkan perdagangan yang menguntungkan berjalan dan dengan cepat menghentikan kerugian pada perdagangan yang tidak menguntungkan.
  3. Membatasi hanya satu perdagangan per hari dan jumlah maksimum posisi simultan dapat menghindari overtrading dan penggunaan dana yang berlebihan.
  4. Pengguna dapat secara fleksibel mengatur parameter seperti waktu sesi Asia dan jam offset sesuai dengan kebutuhan mereka sendiri.

Analisis Risiko

  1. Hal ini mungkin bahwa setelah pasar Eropa dan Amerika menerobos, mereka dengan cepat kembali, menyebabkan kerugian.
  2. Stop loss dan take profit titik tetap mungkin tidak dapat mengatasi fluktuasi besar di pasar. Kadang-kadang stop loss mungkin terlalu dini, dan kadang-kadang take profit mungkin terlalu dini.
  3. Dalam situasi di mana tren tidak jelas atau volatilitas pasar tinggi, strategi dapat mengalami kerugian pembukaan dan penghentian yang sering.

Arah Optimalisasi

  1. Pertimbangkan untuk menyesuaikan secara dinamis jumlah titik untuk stop loss dan mengambil keuntungan berdasarkan indikator volatilitas seperti ATR untuk beradaptasi dengan kondisi pasar yang berbeda.
  2. Tambahkan beberapa indikator penilaian tren, seperti MA, dan hanya pergi panjang ketika tren besar naik dan pergi pendek ketika turun untuk meningkatkan tingkat keberhasilan.
  3. Pertimbangkan untuk menetapkan parameter yang berbeda untuk periode waktu yang berbeda, seperti menggunakan stop loss yang lebih kecil dan mengambil keuntungan pada awal sesi perdagangan Eropa dan Amerika, dan meningkatkan stop loss dan mengambil keuntungan ketika tren jelas.

Ringkasan

Strategi ini menggunakan titik tinggi dan rendah dari sesi Asia sebagai titik breakout untuk perdagangan dan cocok untuk digunakan pada varietas dengan tren yang jelas di pasar Eropa dan Amerika. Namun, stop loss dan take profit titik tetap dan metode masuk breakout standar juga memiliki beberapa keterbatasan. Dengan memperkenalkan beberapa indikator dinamis dan berbasis tren, strategi dapat dioptimalkan untuk mendapatkan hasil yang lebih baik.


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

//@version=4
strategy("Asia Session", overlay=true)

var hourSessionStart = input(19, "Asia session start hour", minval=0, maxval=23)
var hourSessionStop  = input(1, "Asia session end hour", minval=0, maxval=23)
var offsetHours = input(3, "Offset hours after Asia session end")

var float hi              = na
var float lo              = na
var float plotHi          = na
var float plotLo          = na

var bool  inSession       = na
var bool  enteringSession = na
var bool  exitingSession  = na

inSession       := (hour >= hourSessionStart or hour < hourSessionStop)
enteringSession := inSession and not inSession[1]
exitingSession  := not inSession and inSession[1]

if enteringSession
    plotLo := na
    plotHi := na

if inSession
    lo := min(low,  nz(lo, 1.0e23))
    hi := max(high, nz(hi))

if exitingSession
    plotLo := lo
    plotHi := hi
    lo     := na
    hi     := na

bgcolor(inSession ? color.blue : na)

plot(plotLo, "Asia session Low",  color.red,   style=plot.style_linebr)
plot(plotHi, "Asia session High", color.green, style=plot.style_linebr)

// Implementazione delle condizioni di entrata
var float asiaSessionLow = na
var float asiaSessionHigh = na
var int maxTrades = 100000 // Impostiamo il massimo numero di operazioni contemporanee
var int tradesOpened = 0 // Variabile per tenere traccia del numero di operazioni aperte
var bool tradeOpened = false
var bool operationClosed = false // Nuova variabile per tenere traccia dello stato di chiusura dell'operazione

// Calcolo del range asiatico
if (inSession)
    asiaSessionLow := lo
    asiaSessionHigh := hi

// Apertura di un solo trade al giorno
if (enteringSession)
    tradeOpened := false

// Condizioni di entrata
var float stopLoss = 300 * syminfo.mintick
var float takeProfit = 300 * syminfo.mintick

if (not tradeOpened and not operationClosed and close < asiaSessionLow and tradesOpened < maxTrades and hour >= hourSessionStop + offsetHours)
    strategy.entry("Buy", strategy.long)
    tradeOpened := true
    tradesOpened := tradesOpened + 1 // Incrementiamo il contatore delle operazioni aperte

if (not tradeOpened and not operationClosed and close > asiaSessionHigh and tradesOpened < maxTrades and hour >= hourSessionStop + offsetHours)
    strategy.entry("Sell", strategy.short)
    tradeOpened := true
    tradesOpened := tradesOpened + 1 // Incrementiamo il contatore delle operazioni aperte

// Impostazione dello stop loss e del take profit
strategy.exit("Stop Loss / Take Profit", "Buy", stop=close - stopLoss, limit=close + takeProfit)
strategy.exit("Stop Loss / Take Profit", "Sell", stop=close + stopLoss, limit=close - takeProfit)


Lebih banyak