基于K线方向简易的量化交易策略


创建日期: 2023-09-15 11:45:01 最后修改: 2023-09-15 11:45:01
复制: 0 点击次数: 680
avatar of ChaoZhang ChaoZhang
1
关注
1617
关注者

本文将详细介绍一种根据K线方向进行简单量化交易的策略。该策略直接根据价格的收盘关系产生多空信号。

一、策略原理

该策略仅根据K线的收盘价格关系判断方向,具体交易逻辑为:

  1. 当收盘价大于开盘价时,做多;

  2. 当收盘价小于开盘价时,做空;

  3. 可以设置仓位大小;

  4. 可设置回测时间范围。

通过直接判断K线的收阴或收阳,形成最简单的追踪信号。虽然非常原始,但也形成了一套完整的交易系统。

二、策略优势

该策略最大的优势在于非常简单和直观,仅利用K线方向判断,无需计算指标。

另一优势是可以通过调整仓位大小控制风险。

最后,可以设置回测时间范围,针对不同时期进行测试。

三、潜在风险

但该策略也存在以下问题:

首先,仅凭K线方向无法对市场做出准确判断,信号质量较差。

其次,没有设置止损止盈条件,无法控制交易风险。

最后,没有进行参数优化,不够稳定。

四、内容总结

本文详细介绍了一种仅根据K线方向进行简易量化交易的策略。它通过最基本的价格关系判断,形成完整的交易系统。但也存在一些问题有待改进,如优化参数、增加止损止盈等。总体来说,它提供了一种非常简单原始的策略思路。

策略源码
/*backtest
start: 2023-08-15 00:00:00
end: 2023-09-02 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("BarUpDn time limited", overlay=true, pyramiding=1, default_qty_type = strategy.fixed, default_qty_value = 1 )

//input boxes for the limit date
yearLimit = input(2016,title="year") 
monthLimit = input(9, title="month")
dayLimit = input(1, title="day")

//function that checks if the current date is more recent than the limit
dateOk(yl,ml,dl) =>
    ok = timestamp(yl,ml,dl,0,1) < time
    
checkDate = dateOk(yearLimit,monthLimit,dayLimit)
conditionUp = close > open ? true : false
conditionDown = close < open ? true : false
if ( checkDate  )
    strategy.entry("BarUp", strategy.long, when = conditionUp)
    strategy.entry("BarDn", strategy.short, when = conditionDown)