
Основная идея этой стратегии заключается в том, чтобы совершать покупку при закрытии цены акции выше, чем цена открытия. Когда условия покупки выполняются, стратегия входит в позицию по закрытии цены на закрытии линии K. Затем устанавливается цена остановки и цена остановки, когда цена касается этих двух цен.
Заключительная цена K-линии в тот день была выше, чем цена открытия, что указывает на то, что цена акций в тот день была выше. Это был сигнал к покупке. Заключительная цена прорвала цену открытия в тот день, что указывает на то, что сила покупателей была сильной, и цена акций, вероятно, продолжит расти.
Таким образом, торговый сигнал для этой стратегии будет выглядеть следующим образом: цена закрытия линии K на день > цена открытия линии K на день. Если это условие выполнено, то покупка и хранение на день будут осуществляться по цене закрытия линии K на день закрытия.
В этой стратегии используются два параметра:
Entry Price: цена покупки, по умолчанию 0, означает покупку по цене закрытия
Take Profit Parameter: Стоп-параметр, формула для расчета стоп-цены: Entry Price * (1 + стоп-параметр), по умолчанию 0,5%, что соответствует 0,5% от цены покупки
Процедура транзакций выглядит так:
Эта стратегия имеет следующие преимущества:
Однако есть и другие риски:
В этом случае риск может быть снижен следующими способами:
Эта стратегия может быть оптимизирована в следующих областях:
Эта стратегия основана на прорыве цены закрытия, чтобы создать сигнал покупки, идея проста, риск вывода меньше. С помощью дополнительных средств, таких как подтверждение показателей, динамический стоп-стоп и оптимизация параметров, можно дополнительно повысить стабильность и прибыльность стратегии. В целом, эта стратегия подходит для использования и оптимизации инвесторов, заинтересованных в стратегии открытого прорыва, имеет хорошую практическую полезность.
/*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")