Chiến lược mở

Tác giả:ChaoZhang, Ngày: 2023-10-23 15:13:49
Tags:

img

Tổng quan

Chiến lược mở theo dõi hành vi giá trong 30 phút đầu tiên sau khi thị trường mở mỗi ngày giao dịch, xác định sự đột phá theo hướng mạnh mẽ và tham gia vào các giao dịch xu hướng theo hướng đó.

Chiến lược logic

  1. Sử dụng các thanh 30 phút, vì cần có đủ thời gian để đo lường chuyển động giá cực sau khi mở.

  2. Xác định các quán bar mở trong những khoảng thời gian này: 0700-0715, 0800-0815, 1300-1315, 1430-1445.

  3. Kiểm tra xem thanh mở đáp ứng:

    • Mở gần thanh thấp, đóng gần thanh cao (bar lên)

    • Hoặc mở gần thanh cao, đóng gần thanh thấp (dưới thanh)

    • Và cao vượt quá mức cao 5 bar trước đó bằng 1 phạm vi 5 bar, hoặc thấp phá vỡ mức thấp 5 bar trước đó bằng 1 phạm vi 5 bar (breakout)

  4. Nếu các điều kiện trên được đáp ứng, nhập giao dịch xu hướng theo hướng đó 3 thanh sau thanh tín hiệu.

  5. Thiết lập stop loss ở mức cao/dưới của thanh nhập.

  6. Giữ vị trí trong 3 bar (90 phút), sau đó ra ngoài.

Phân tích lợi thế

  • Nhận được những chuyển động theo hướng mạnh do thanh khoản cao sau khi mở
  • Các bộ lọc đột phá tránh tín hiệu sai từ các điều kiện hỗn loạn
  • Khung thời gian dài hơn làm giảm giao dịch quá mức
  • Stop loss tránh mất mát quá mức

Phân tích rủi ro

  • Các khoảng thời gian mở cố định có nguy cơ thiếu sự đột phá xu hướng
  • Mức ngưỡng đột phá không đầy đủ có thể lọc các tín hiệu hợp lệ
  • Thời gian giữ cố định không thể thích nghi với các điều kiện cụ thể
  • Không có điểm dừng nào không theo xu hướng

Hãy xem xét:

  • Định kỳ mở năng động với nhiều thông số hơn
  • Tối ưu hóa ngưỡng thoát
  • Điều chỉnh thời gian giữ dựa trên biến động
  • Thêm các quy trình dừng kéo theo

Hướng dẫn cải thiện

  • Tích hợp nhiều chỉ số hơn để cải thiện chất lượng tín hiệu
  • Nhập giao dịch trong khung thời gian thấp hơn để có tần suất cao hơn
  • Tối ưu hóa các thông số như thời gian mở, ngưỡng đột phá, dừng, vv dựa trên backtests
  • Xem xét dừng lại, nhập lại, vv để tăng lợi nhuận
  • Kiểm tra ngược trên các sản phẩm khác nhau để tìm ra phù hợp nhất

Tóm lại

Chiến lược mở theo xu hướng bằng cách nắm bắt các đột phá hướng mạnh sau khi mở. So với các mục nhập ngẫu nhiên, nó cung cấp các đặc điểm rủi ro-lợi nhuận tốt hơn.


/*backtest
start: 2023-10-15 00:00:00
end: 2023-10-22 00:00:00
period: 10m
basePeriod: 1m
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/
// © Marcns_

//@version=5
// a script that highlights open drives around cash market opens throughout the day
// this indicator identifies the following cash open, open drives 0700 - 0715 / 0800 - 0815 / 1300 - 1315 / 1430 - 1445 
// an open drive is when a cash market opens and price runs either up or down away from the opening price, often this will be the high or the low the remainer of the session or day
// and often identify a trend session
strategy("Open Drive", commission_type =  strategy.commission.cash_per_contract, commission_value = 3.8 )

// open drive filter times - all times GMT
eu_sev = time(timeframe.period, "0700-0715", "GB")
eu_eig = time(timeframe.period, "0800-0815", "GB")
us_one = time(timeframe.period, "1300-1315", "GB")
us_two = time(timeframe.period, "1430-1445", "GB")


// identify bar that opens at low and closes at high + vice versa 
// bar needs to open at one extreme and close at another 
TrndExThreshold_Open = 0.15
TrndExThreshold_Close = 0.15

// add a bar range expansion filter - range of bar correlates to volume, high volume = wider range. This script will be able to filter for a break of a 5 bar range +100% or -100%

fbhi = ta.highest(5)
fblo = ta.lowest(5)

fbr = (fbhi - fblo)

RangeEx_up = 0.0

if high >= (fbhi[1] + fbr[1])
    RangeEx_up := 1.0
else
    na

// range ex down

RangeEx_do = 0.0

if low <= (fblo[1] - fbr[1]) 
    RangeEx_do := 1.0
else
    na


//#1 open within 5% of low

OpenAtLow = 0.0 

if (close > open) and (open-low) / (high-low) < TrndExThreshold_Open
    OpenAtLow := 1.0
else 
    na 

//#2 close within 5% of high
    
CloseAtHigh = 0.0

if (close > open) and (high-close) / (high-low) < TrndExThreshold_Close
    CloseAtHigh := 1.0
else
    na 

OD_Up = 0.0

if (OpenAtLow + CloseAtHigh + RangeEx_up == 3.0) and ( eu_sev or eu_eig or us_one or us_two)
    OD_Up := 1
else
    na

plot(OD_Up, title = "OD_up")



OpenAtHigh = 0.0 

if (close < open) and (high-open) / (high-low) < TrndExThreshold_Open
    OpenAtHigh := 1.0
else 
    na 

//#2 close within 5% of high
    
CloseAtLow = 0.0

if (close < open) and (close-low) / (high-low) < TrndExThreshold_Close
    CloseAtLow := 1.0
else
    na 

OD_Down = 0.0

if (OpenAtHigh + CloseAtLow + RangeEx_do == 3.0) and ( eu_sev or eu_eig or us_one or us_two)
    OD_Down := -1
else
    na

plot(OD_Down, title = "OD_down", color = color.red)


//3sma

ma = ta.sma(close,3)

// one time framing - highlight bars the make a series of lower highs or higher lows to identify trend 
// one time frame up 
otf_u = 0.0

if close > ma and close[1] > ma[1]
    otf_u := 1
else
    na
// one time frame down 
otf_d = 0.0

if close < ma and close[1] < ma[1]
    otf_d := 1
else
    na


//bgcolor(otf_u ? color.rgb(76, 175, 79, 70) : na)
//bgcolor(otf_d ? color.rgb(255, 82, 82, 66) : na)

// record high and low of entry bar into variable for absolute stop
// buy stop
bs = 0.0

if OD_Up
    bs := low[1]
else
    na

// sell stop
ss = 0.0

if OD_Down
    ss := high[1]
else
    na




// strategy entry and exits 
// long
if OD_Up
    strategy.entry("el", strategy.long, 2)
if ta.barssince(OD_Up)> 3 
    strategy.exit(id = "ex" , from_entry = "el", limit = close)

// short 
if OD_Down
    strategy.entry("es", strategy.short, 2)
if ta.barssince(OD_Down)> 3
    strategy.exit(id = "ex" , from_entry = "es", limit = close)



Thêm nữa