基于收盘价突破的买入策略

Author: ChaoZhang, Date: 2024-02-21 14:48:59
Tags:

基于收盘价突破的买入策略

概述

本策略的核心思想是在股价收盘价高于开盘价时进行买入操作。当满足买入条件时,策略会在该K线收盘时以收盘价进入多仓。之后设置止损价和止盈价,当价格触及这两个价格时就会平仓。

策略原理

当日K线的收盘价高于开盘价,说明当日的股价是上涨的。这是一个买入信号。收盘价突破当日开盘价,说明买方力量比较强劲,股价有望继续上涨。

因此,本策略的交易信号是:当日K线收盘价 > 当日K线开盘价。满足此条件时,在该K线收盘时以收盘价买入,进行逐日持有。

本策略采用了两个参数:

  1. Entry Price: 买入价格,默认为0,表示以收盘价买入

  2. Take Profit Parameter: 止盈参数,止盈价格计算公式为:Entry Price * (1 + 止盈参数),默认值为0.5%,相当于买入价格的0.5%

具体交易流程如下:

  1. 等待K线收盘,检查当日收盘价 > 当日开盘价
  2. 条件满足时,以收盘价买入
  3. 开仓后设置止损价和止盈价
  4. 当价格上涨至止盈价时,平仓止盈
  5. 当价格下跌至下一根K线的最低点时,平仓止损
  6. 每日重复1-5步骤

策略优势

本策略具有以下优势:

  1. 思路简单,容易理解和实现
  2. 对交易信号判断仅需使用K线的开盘价和收盘价,数据需求量小
  3. 回撤风险较小,使用止损止盈机制控制亏损

风险分析

本策略也存在一些风险:

  1. 当日潜在出现多个买入机会,而策略只在收盘时买入一次,可能错过部分机会
  2. 收盘后价格可能出现回调,导致止损被触发的概率较大

对此,可通过以下方法降低风险:

  1. 在触发买入条件后,追踪当日最高价,AdjustAmount functions来动态调整仓位
  2. 收盘后延迟一定时间再设置止损止盈价格,避免止损被直接触发

策略优化方向

本策略可以从以下方面进行优化:

  1. 加入量价确认,例如增加成交量或市场热度等条件作为买入信号的确认
  2. 在买入后采用动态止盈止损,实时调整止损止盈价格
  3. 针对个股设置参数,采用机器学习方法自动优化参数
  4. 增加仓位管理机制,通过调整仓位规避回撤风险

总结

本策略基于收盘价突破来产生买入信号,思路简单,回撤风险较小。通过加入确认指标、动态止盈止损、参数优化等手段,可以进一步提高策略的稳定性和盈利能力。总体来说,本策略适合对开盘突破策略感兴趣的投资者使用和优化,具有很好的实用性。


/*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")


更多内容