Strategi Penembusan Sesyen Asia Tinggi Rendah

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

img

Ringkasan

Idea utama strategi ini adalah untuk menggunakan titik tinggi dan rendah sesi Asia sebagai titik pecah. Dalam beberapa jam selepas pasaran Eropah dan Amerika dibuka, jika harga memecahkan di atas sesi tinggi Asia, ia pergi panjang; jika ia memecahkan di bawah sesi rendah Asia, ia pergi pendek. Hentikan kerugian dan ambil keuntungan ditetapkan untuk mengawal risiko. Strategi hanya membuka satu perdagangan sehari, dengan maksimum 100,000 kedudukan serentak.

Prinsip Strategi

  1. Tentukan masa dagangan sesi Asia. Pengguna boleh menyesuaikan masa permulaan dan akhir.
  2. Semasa sesi Asia, rakam harga tertinggi dan terendah hari itu.
  3. Pada masa tertentu (jam-jam yang ditakrifkan pengguna) selepas pasaran Eropah dan Amerika dibuka, jika harga memecahkan di atas sesi tinggi Asia, pergi panjang; jika ia memecahkan di bawah sesi rendah Asia, pergi pendek.
  4. Tetapkan stop loss dan mengambil keuntungan.
  5. Hanya buka satu dagangan baru setiap hari, dengan maksimum 100,000 kedudukan serentak.
  6. Jika kedudukan telah dibuka untuk hari itu, tiada dagangan baru akan dibuka.

Analisis Kelebihan

  1. Dengan menggunakan ciri-ciri sesi Asia yang agak tenang dan menggunakan titik tinggi dan rendah sesi Asia sebagai titik pecah, ia dapat menangkap peluang trend sesi Eropah dan Amerika dengan lebih baik.
  2. Menetapkan stop loss dan mengambil keuntungan dapat mengawal risiko dengan berkesan, membiarkan perdagangan yang menguntungkan berjalan dan dengan cepat menghentikan kerugian pada perdagangan yang tidak menguntungkan.
  3. Mengehadkan hanya satu dagangan setiap hari dan bilangan maksimum kedudukan serentak dapat mengelakkan perdagangan berlebihan dan penggunaan dana yang berlebihan.
  4. Pengguna boleh menetapkan parameter yang fleksibel seperti masa sesi Asia dan menggeser jam mengikut keperluan mereka sendiri.

Analisis Risiko

  1. Titik tinggi dan rendah sesi Asia mungkin bukan titik tinggi dan rendah sebenar hari ini. Adalah mungkin bahawa selepas pasaran Eropah dan Amerika menerobos, mereka dengan cepat kembali, menyebabkan kerugian.
  2. Stop loss titik tetap dan mengambil keuntungan mungkin tidak dapat mengatasi turun naik yang besar di pasaran. Kadang-kadang stop loss mungkin terlalu awal, dan kadang-kadang mengambil keuntungan mungkin terlalu awal.
  3. Dalam situasi di mana trend tidak jelas atau turun naik pasaran tinggi, strategi mungkin mengalami kerugian pembukaan dan berhenti yang kerap.

Arah pengoptimuman

  1. Pertimbangkan untuk menyesuaikan secara dinamik bilangan mata untuk berhenti kerugian dan mengambil keuntungan berdasarkan penunjuk turun naik seperti ATR untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.
  2. Tambah beberapa penunjuk penilaian trend, seperti MA, dan hanya pergi lama apabila trend besar naik dan pergi pendek apabila ia turun untuk meningkatkan kadar kejayaan.
  3. Pertimbangkan untuk menetapkan parameter yang berbeza untuk tempoh masa yang berbeza, seperti menggunakan stop loss yang lebih kecil dan mengambil keuntungan pada permulaan sesi perdagangan Eropah dan Amerika, dan meningkatkan stop loss dan mengambil keuntungan apabila trend jelas.

Ringkasan

Strategi ini menggunakan titik tinggi dan rendah sesi Asia sebagai titik pecah untuk perdagangan dan sesuai untuk digunakan pada varieti dengan trend yang jelas di pasaran Eropah dan Amerika. Walau bagaimanapun, titik tetap berhenti kerugian dan mengambil keuntungan dan kaedah kemasukan pecah standard juga mempunyai beberapa batasan. Dengan memperkenalkan beberapa penunjuk dinamik dan berasaskan trend, strategi boleh dioptimumkan 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 lanjut