
A idéia central desta estratégia é fazer uma operação de compra quando o preço de fechamento do preço de abertura é superior ao preço de abertura. Quando as condições de compra são satisfeitas, a estratégia entra em uma posição a mais com o preço de fechamento no fechamento da linha K. Depois, configure o preço de stop loss e o preço de stop loss, e quando os preços tocam esses dois preços, o posicionamento é eliminado.
O preço de fechamento da linha K naquele dia foi maior do que o preço de abertura, indicando que o preço da ação no dia subiu. Este é um sinal de compra. O preço de fechamento quebrou o preço de abertura do dia, indicando que o poder do comprador é relativamente forte e o preço da ação deve continuar a subir.
Assim, o sinal de negociação para esta estratégia é: o preço de fechamento da linha K no dia > o preço de abertura da linha K no dia. Quando esta condição é satisfeita, a linha K é comprada ao preço de fechamento no dia e mantida no dia seguinte.
Esta estratégia tem dois parâmetros:
Preço de entrada: preço de compra, 0 por defeito, indicando a compra ao preço de fechamento
Parâmetro Take Profit: Parâmetro de parada, o preço de parada é calculado pela fórmula: Preço de entrada * (1 + parâmetro de parada), o valor padrão é de 0,5%, equivalente a 0,5% do preço de compra
O processo de transação é o seguinte:
A estratégia tem as seguintes vantagens:
A estratégia também apresenta alguns riscos:
Para reduzir o risco, os seguintes métodos podem ser usados:
Esta estratégia pode ser melhorada em:
Esta estratégia é baseada em uma ruptura do preço de fechamento para produzir um sinal de compra, a idéia é simples, o risco de retirada é menor. A estabilidade e a rentabilidade da estratégia podem ser melhoradas ainda mais pela adição de indicadores de confirmação, paradas de parada dinâmicas e otimização de parâmetros.
/*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")