
Ý tưởng cốt lõi của chiến lược này là thực hiện giao dịch mua khi giá đóng cửa của cổ phiếu cao hơn giá mở cửa. Khi đáp ứng các điều kiện mua, chiến lược sẽ vào nhiều vị trí với giá đóng cửa khi kết thúc đường K. Sau đó, thiết lập giá dừng lỗ và giá dừng, khi giá chạm vào cả hai giá này, nó sẽ được thanh toán.
Giá đóng cửa của đường K ngày hôm đó cao hơn giá mở cửa, cho thấy giá cổ phiếu ngày hôm đó đã tăng lên. Đây là một tín hiệu mua. Giá đóng cửa vượt qua giá mở cửa ngày hôm đó, cho thấy sức mạnh của người mua tương đối mạnh mẽ, giá cổ phiếu có thể tiếp tục tăng lên.
Do đó, tín hiệu giao dịch của chiến lược này là: giá đóng cửa K vào ngày > giá mở cửa K vào ngày. Khi điều kiện này được đáp ứng, hãy mua với giá đóng cửa K vào ngày hôm nay.
Chính sách này sử dụng hai tham số:
Entry Price: giá mua, mặc định là 0, biểu thị mua với giá đóng cửa
Take Profit Parameter: tham số dừng, công thức tính giá dừng là: Entry Price * (1 + tham số dừng), giá mặc định là 0.5%, tương đương với 0.5% giá mua
Quá trình giao dịch cụ thể như sau:
Chiến lược này có những ưu điểm sau:
Chiến lược này cũng có một số rủi ro:
Các biện pháp để giảm nguy cơ là:
Chính sách này có thể được tối ưu hóa bằng cách:
Chiến lược này dựa trên phá vỡ giá đóng cửa để tạo ra tín hiệu mua, ý tưởng đơn giản, rủi ro rút lui thấp hơn. Bằng cách thêm các phương tiện như chỉ số xác nhận, dừng dừng động và tối ưu hóa tham số, bạn có thể nâng cao hơn nữa sự ổn định và khả năng lợi nhuận của chiến lược. Nhìn chung, chiến lược này phù hợp để sử dụng và tối ưu hóa cho các nhà đầu tư quan tâm đến chiến lược phá vỡ mở cửa, có tính thực tế tốt.
/*backtest
start: 2024-02-19 00:00:00
end: 2024-02-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Buy on Close Strategy", overlay=true)
// Входные параметры
var float entry_price = na
if (na(entry_price))
entry_price := input.float(title="Entry Price", defval=0)
// Функция для расчета Take Profit
calc_take_profit(price) =>
price * 1.005 // 0.5% от суммы сделки
// Проверяем условие для открытия позиции на покупку
buy_condition = close > open
// Переменная для отслеживания открытой позиции
var bool open_position = na
// Реализация стратегии
if (buy_condition)
// Открываем сделку на покупку
strategy.entry("Buy", strategy.long)
open_position := true
// Закрываем позицию по Take Profit или при закрытии свечи
if (open_position)
// Рассчитываем уровень Take Profit
take_profit_level = calc_take_profit(entry_price)
// Закрываем сделку по Take Profit
strategy.exit("Take Profit", "Buy", limit=take_profit_level)
// Закрываем сделку при закрытии свечи
if (close < open)
strategy.close("Close Candle", "Buy")