
L’idée centrale de cette stratégie est d’effectuer une opération d’achat lorsque le prix de clôture du cours de l’action est supérieur au prix d’ouverture. Lorsque les conditions d’achat sont remplies, la stratégie entre en position sur le cours de clôture du cours de la ligne K.
Le prix de clôture de la ligne K est supérieur au prix d’ouverture, ce qui indique que le cours de l’action est en hausse ce jour-là. C’est un signal d’achat. Le prix de clôture dépasse le prix d’ouverture du jour, ce qui indique que le pouvoir des acheteurs est relativement fort et que le cours de l’action devrait continuer à augmenter.
Par conséquent, le signal de négociation de cette stratégie est: le prix de clôture de la ligne K du jour > le prix d’ouverture de la ligne K du jour. Lorsque cette condition est remplie, acheter et détenir au jour le jour au prix de clôture de la ligne K au moment de la clôture.
Cette stratégie utilise deux paramètres:
Prix d’entrée: prix d’achat, 0 par défaut, indiquant le prix de clôture
Paramètre de prise de profit: paramètre d’arrêt, la formule de calcul du prix d’arrêt est: Prix d’entrée * (1 + paramètre d’arrêt), la valeur par défaut est de 0,5%, ce qui correspond à 0,5% du prix d’achat
Le processus de transaction est le suivant:
Cette stratégie présente les avantages suivants:
Cette stratégie présente aussi des risques:
Le risque peut être réduit par:
Cette stratégie peut être optimisée dans les domaines suivants:
Cette stratégie est basée sur la rupture du cours de clôture pour générer un signal d’achat, l’idée est simple, le risque de rétractation est faible. La stabilité et la rentabilité de la stratégie peuvent être encore améliorées par l’ajout d’indicateurs de confirmation, de stop-loss dynamiques et d’optimisation des paramètres.
/*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")