Đóng mua tiếp theo mở chiến lược lấy lợi nhuận

Tác giả:ChaoZhang, Ngày: 2024-01-03 16:19:01
Tags:

img

Tổng quan

Ý tưởng chính của chiến lược này là mua tại đóng cửa vào ngày hiện tại và bán tại mở vào ngày hôm sau nếu giá cao hơn giá mua, nếu không tiếp tục giữ cho đến khi dừng lỗ hoặc lợi nhuận.

Chiến lược logic

Chiến lược đầu tiên thiết lập một đường trung bình di chuyển đơn giản 200 ngày như là chỉ số trạng thái thị trường, chỉ cho phép giao dịch khi giá vượt quá đường 200 ngày. Thời gian mua được thiết lập vào nửa giờ cuối cùng trước khi đóng mỗi ngày, và thời gian bán được thiết lập vào nửa giờ đầu tiên sau khi mở tiếp theo. Khi trạng thái thị trường đáp ứng yêu cầu trong thời gian mua, nó sẽ đặt lệnh mua. Trong thời gian bán, nó sẽ kiểm tra xem giá có cao hơn giá mua, nếu có, nó sẽ đặt lệnh bán và lấy lợi nhuận, nếu không, nó tiếp tục giữ cho đến khi dừng lỗ hoặc lấy lợi nhuận vào ngày mai. Nó cũng thiết lập một đường dừng lỗ 5% để hạn chế lỗ.

Phân tích lợi thế

Chiến lược có những lợi thế sau:

  1. Sử dụng hiệu ứng đóng cửa khi biến động giá và khoảng cách lớn hơn trong quá trình đóng cửa. Giá mở tiếp theo có thể có một sự dao động lớn.

  2. Thời gian nắm giữ ngắn cho phép dừng lỗ nhanh chóng và lấy lợi nhuận để giảm rủi ro.

  3. Lý thuyết đơn giản và dễ hiểu và thực hiện.

  4. Cấu hình linh hoạt trên đường dừng lỗ và chỉ số trạng thái thị trường để kiểm soát rủi ro.

Phân tích rủi ro

Ngoài ra còn có một số rủi ro:

  1. Mua ở giá đóng cửa có thể có các vị trí ở giá cao, làm tăng rủi ro mất mát.

  2. Thời gian giữ ngắn làm cho nó dễ dàng bị mắc kẹt. Có thể không có giới hạn lên hoặc xuống vào ngày hôm sau.

  3. Nó dựa trên các khoảng trống lớn, có thể không phải lúc nào cũng hình thành, dẫn đến tổn thất hoặc các vị trí bị mắc kẹt.

  4. Chọn biểu tượng sai, như hợp nhất chỉ số, có thể dẫn đến nhiều lỗ.

Giải pháp:

  1. Kết hợp các chỉ số kỹ thuật để đảm bảo mua ở mức thấp tương đối khi đóng cửa.

  2. Mở thời gian lưu giữ lên 2-3 ngày.

  3. Chỉ mua vào thời điểm hợp lệ.

  4. Chọn các biểu tượng cẩn thận, chọn các biểu tượng có xu hướng tăng.

Hướng dẫn tối ưu hóa

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

  1. Thêm nhiều chỉ số kỹ thuật cho tín hiệu mua để tăng độ chắc chắn.

  2. Kiểm tra các khoảng thời gian giữ khác nhau để tìm thời gian lợi nhuận tối ưu.

  3. Tối ưu hóa đường dừng lỗ để tìm điểm dừng lỗ tối ưu.

  4. Kiểm tra hiệu suất trên các biểu tượng và môi trường thị trường khác nhau, áp dụng biểu tượng và quản lý vị trí năng động.

Tóm lại

Chiến lược này có logic rõ ràng, sử dụng hiệu ứng khoảng cách đóng cửa để giao dịch dừng lỗ / lợi nhuận nhanh chóng. Nó dễ thực hiện và hiểu. Nhưng nó cũng có rủi ro bẫy cao. Định kích thước vị trí, quản lý dừng lỗ và chọn cổ phiếu là rất quan trọng. Nó có thể được tối ưu hóa hơn nữa để cải thiện độ chắc chắn mua, thời gian giữ tối ưu và điểm dừng lỗ, và định kích thước vị trí năng động để cải thiện sự ổn định và lợi nhuận trong khi kiểm soát rủi ro.


/*backtest
start: 2022-12-27 00:00:00
end: 2024-01-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//  @version=4
//  © HermanBrummer
//  This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
strategy("M8 BUY @ END OF DAY", "", 1)

///         BUYS AT THE END OF THE DAY
///         SELLS THE NEXT MORNING IF PRICE IS HIGHER THEN THE ENTRY PRICE
///         IF PRICE IS NOT HIGHER THEN IT WILL KEEP THE POSITION AND WAIT FOR EITHER A STOP OUT OR FOR PRICE TO BE HIGHER THAN THE ENTRY
///         USES A 5% STOP LOSS ON THE REDLINE  -- SETTABLE IN SETTINGS
///         USES A 200 DAY MARKET FILTER        -- SETTABLE IN SETTINGS -- IMPORTS DATA FROM HIGHER TIMEFRAME, BUT USES CLOSE[2] << SO THIS IS FIXED, NON-REPAITING DATA


MarketFilterLen = input(200)
StopLossPerc    = input(.95, step=0.01)

buyTime         = time(timeframe.period, "1429-1500")
sellTime        = time(timeframe.period, "0925-0935")

F1              = close > sma(security(syminfo.tickerid, "D", close[2]), MarketFilterLen) // HIGH OF OLD DATA -- SO NO REPAINTING

enter           = buyTime and F1
exit            = sellTime


StopLossLine    = strategy.position_avg_price * StopLossPerc

plot(StopLossLine, "StopLossLine", color.new(#FF0000, 50))

strategy.entry("L", true, when=enter)
strategy.exit("StopLoss", stop=StopLossLine )
if  close > strategy.position_avg_price
    strategy.close("L", when=exit)

barcolor(strategy.opentrades != 0 ? color.new(color.yellow, 0) : na ) 


Thêm nữa