Chiến lược đảo ngược mở Engulfing


Ngày tạo: 2023-11-22 16:05:24 sửa đổi lần cuối: 2023-11-22 16:05:24
sao chép: 1 Số nhấp chuột: 615
1
tập trung vào
1617
Người theo dõi

Chiến lược đảo ngược mở Engulfing

Tổng quan

Chiến lược tiêu thụ mở cửa ngược là một chiến lược giao dịch trong ngày đơn giản dựa trên đường K đầu tiên của cổ phiếu. Ý tưởng cốt lõi của chiến lược này là xác định hướng tăng giảm của nó khi đường K đầu tiên xuất hiện sau mỗi ngày mở cửa và thực hiện hành động ngược. Nếu đường K đầu tiên là đường nắng đỏ, hãy làm nhiều hơn; Nếu đường K đầu tiên là đường âm xanh, hãy làm trống.

Nguyên tắc chiến lược

Nguyên tắc của chiến lược này dựa trên đặc tính của đường K đầu tiên sau khi mở. Khi mở, sức mạnh của hai bên trên không gian đối đầu dữ dội nhất, khả năng biến đổi của thị trường cao hơn. Xác định hướng giảm của đường K đầu tiên và đi ngược lại là ý tưởng cốt lõi của chiến lược.

Cụ thể, sau khi mở một ngày mới, chiến lược sẽ ghi lại giá mở, giá đóng và giá giảm của đường K đầu tiên. Nếu giá mở cao hơn giá đóng (đường màu xanh lá cây), đại diện cho chiến thắng vô địch, hãy làm nhiều; Nếu giá mở thấp hơn giá đóng (đường màu đỏ), đại diện cho chiến thắng vô địch, hãy làm không. Bằng cách hoạt động ngược lại như vậy, chiến lược cố gắng săn lùng cơ hội đảo ngược sau khi mở lệnh.

Trong khi đó, chiến lược cũng thiết lập các cơ chế dừng lỗ và ngăn chặn, bao gồm giá dừng nhiều lỗ, giá dừng nhiều lỗ, giá dừng lỗ và giá dừng lỗ, kiểm soát rủi ro và lợi nhuận đối với các vị trí trống nhiều, tránh tổn thất quá mức hoặc cắt thịt quá sớm.

Phân tích lợi thế

Chiến lược ăn trộm mở cửa ngược có những ưu điểm sau:

  1. Ý tưởng của tôi rất đơn giản, rõ ràng, dễ hiểu và dễ thực hiện.

  2. Các nhà đầu tư đã sử dụng các tính năng dự báo giá trị cao trong thời gian mở cửa để nắm bắt cơ hội đảo ngược.

  3. Ngoài ra, thiết lập Stop Loss Stop để kiểm soát rủi ro hiệu quả.

  4. Chiến lược này có tính phổ quát và có thể áp dụng cho hầu hết các cổ phiếu.

  5. Chi phí tham gia thấp, kiểm soát tài chính dễ dàng.

Phân tích rủi ro

Các chiến lược ăn trộm mở cửa ngược cũng có một số rủi ro, bao gồm:

  1. Tỷ lệ thất bại của việc đảo ngược ổ đĩa. Nếu tín hiệu đảo ngược của dây K đầu tiên bị hỏng, có thể gây ra thiệt hại lớn hơn.

  2. Không có khả năng lọc một cách hiệu quả các cổ phiếu chất lượng thấp. Chiến lược này thiếu phân tích cơ bản về cổ phiếu và có thể chọn một số cổ phiếu tồi với cơ bản kém.

  3. Không có khả năng kiểm soát hiệu quả các rủi ro hệ thống của các sự kiện bất ngờ, chẳng hạn như ảnh hưởng của các thông tin tiêu cực quan trọng.

  4. Việc thiết lập trạm dừng lỗ không đúng cách có thể dẫn đến tăng lỗ hoặc thu hẹp lợi nhuận.

Hướng tối ưu hóa

Chiến lược ăn đĩa ngược có thể được tối ưu hóa theo các khía cạnh sau:

  1. Thêm kiểm tra hiệu quả của tín hiệu quay ngược đĩa để tránh tín hiệu không hiệu quả. Ví dụ: tích hợp phân tích khối lượng giao thông.

  2. Xác định các chỉ số cơ bản và kỹ thuật của cổ phiếu, lọc các cổ phiếu chất lượng thấp.

  3. Thêm mô-đun giám sát cho các sự kiện quan trọng và tin tức, kiểm soát rủi ro hệ thống.

  4. Sử dụng các thuật toán di truyền, học máy và các phương pháp khác để tối ưu hóa các thiết lập dừng thiệt hại.

Tóm tắt

Chiến lược ăn trọn đĩa ngược bằng cách đánh giá hướng của đường K đầu tiên và thực hiện hoạt động ngược, cố gắng nắm bắt cơ hội đảo ngược sau khi mở. Chiến lược này đơn giản, chi phí tham gia thấp và có giá trị thực tế. Nhưng chúng ta cũng phải tỉnh táo nhận ra rủi ro trong đó và liên tục hoàn thiện và tối ưu hóa chiến lược trong thực tế để làm cho nó ổn định và đáng tin cậy hơn.

Mã nguồn chiến lược
/*backtest
start: 2023-10-22 00:00:00
end: 2023-11-21 00:00:00
period: 3h
basePeriod: 15m
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/
// © vikris
//@version=4
strategy("[VJ]First Candle Strategy", overlay = true,calc_on_every_tick = true,default_qty_type=strategy.percent_of_equity,default_qty_value=100,initial_capital=750,commission_type=strategy.commission.percent, 
     commission_value=0.02)


// ********** Strategy inputs - Start **********

// Used for intraday handling
// Session value should be from market start to the time you want to square-off 
// your intraday strategy
// Important: The end time should be at least 2 minutes before the intraday
// square-off time set by your broker
var i_marketSession = input(title="Market session", type=input.session, 
     defval="0915-1455", confirm=true)

// Make inputs that set the take profit % (optional)
longProfitPerc = input(title="Long Take Profit (%)",
     type=input.float, minval=0.0, step=0.1, defval=1) * 0.01

shortProfitPerc = input(title="Short Take Profit (%)",
     type=input.float, minval=0.0, step=0.1, defval=1) * 0.01
     
// Set stop loss level with input options (optional)
longLossPerc = input(title="Long Stop Loss (%)",
     type=input.float, minval=0.0, step=0.1, defval=0.5) * 0.01

shortLossPerc = input(title="Short Stop Loss (%)",
     type=input.float, minval=0.0, step=0.1, defval=0.5) * 0.01    


// ********** Strategy inputs - End **********


// ********** Supporting functions - Start **********

// A function to check whether the bar or period is in intraday session
barInSession(sess) => time(timeframe.period, sess) != 0



// Figure out take profit price
longExitPrice  = strategy.position_avg_price * (1 + longProfitPerc)
shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc)

// Determine stop loss price
longStopPrice  = strategy.position_avg_price * (1 - longLossPerc)
shortStopPrice = strategy.position_avg_price * (1 + shortLossPerc)


// ********** Supporting functions - End **********


// ********** Strategy - Start **********
// See if intraday session is active
bool intradaySession = barInSession(i_marketSession)

// Trade only if intraday session is active

//=================Strategy logic goes in here===========================
 
// If start of the daily session changed, then it's first bar of the new session
isNewDay = time("D") != time("D")[1]
var firstBarCloseValue = close
var firstBarOpenValue = open
if isNewDay
    firstBarCloseValue := close
    firstBarOpenValue := open


greenCandle = firstBarOpenValue < firstBarCloseValue
redCandle = firstBarOpenValue > firstBarCloseValue

buy = redCandle
sell = greenCandle


// plot(firstBarCloseValue)
// plot(firstBarOpenValue)



//Final Long/Short Condition
longCondition = buy
shortCondition =sell
 
//Long Strategy - buy condition and exits with Take profit and SL
if (longCondition and intradaySession)
    stop_level = longStopPrice
    profit_level = longExitPrice
    strategy.entry("My Long Entry Id", strategy.long)
    strategy.exit("TP/SL", "My Long Entry Id", stop=stop_level, limit=profit_level)


//Short Strategy - sell condition and exits with Take profit and SL
if (shortCondition and intradaySession)
    stop_level = shortStopPrice
    profit_level = shortExitPrice
    strategy.entry("My Short Entry Id", strategy.short)
    strategy.exit("TP/SL", "My Short Entry Id", stop=stop_level, limit=profit_level)
 
 
// Square-off position (when session is over and position is open)
squareOff = (not intradaySession) and (strategy.position_size != 0)
strategy.close_all(when = squareOff, comment = "Square-off")

// ********** Strategy - End **********