指数移动平均

EMA即指数平均数指标( Exponential Moving Average, EXPMA或EMA),也是一种趋向类指标。其构造原理是:对收盘价进行算术平均,用于判断价格未来走势的变动趋势。与MACD指标、DMA指标相比,EMA指标由于其计算公式中着重考虑了当天价格(当期)行情的权重,决定了其作为一类趋势分析指标,在使用中克服了MACD指标对于价格走势的滞后性缺陷,同时,也在一定程度上消除了DMA指标在某些时候对于价格走势所产生的信号提前性,是一个非常有效的分析指标。

self.AddEMA(period, tag, time, is_fixed)

如何在策略中添加该技术指标

    import math
    import json
    from datetime import datetime
    from datetime import timedelta
    from strategy_features import TQFeataures
    from date_util.datetime_util import DateTimeUtil
    
    
    class TQStrategyEntity(TQFeataures):
        # 策略初始化
        def Initialize(self):
            self.log.info("运行模式:{0}", self.run_mode)
            self.log.info("策略初始化......")
            self.is_startup = False
            
            # 初始化策略参数,参数为JSON格式,以下省略
            #
            #
    
            # 添加技术指标        
            self.AddEMA('20', 'EMA-20')
    

上述代码添加了一个20个周期的指数移动平均指标,20周期的具体时长由用户在启动策略时选择的,比如:用户在启动策略时选择的K线时长为15分钟,那么该周期的含义是表示20个15分钟,就是300分钟。该指标依照过去300分钟的历史数据作为计算依据。除特别说明外,帮助文档中的其他的技术指标使用的数字均表示该含义。

参数说明

#字段名类型说明
1period字符周期数,具体为"1","2","3",具体使用的数字请参考该指标常用的数字。
2tag字符用来识别该指标的标签,在指标回调函数中需要用到。同时又多个指标时,该值必须唯一。
3time字符K线时长,使用数字后带'm', 或'h'标记。表示分钟,表示小时。如:"15m"表示使用15分钟K线,"1h"表示使用1小时K线。
4is_fixed布尔型表示是否固定K线时长,该参数与time配合使用,当使用了time参数,该参数必须设置为True

一般情况下,添加技术指标时省略掉time和is_fixed两个参数。表示该指标的计算依据用户在启动策略时选择的K线时长。某些情况下,用户需要添加多个技术指标且其中的某些技术指标需要固定时长,不跟随用户启动时选择的K线时长。这时需要在代码里指定time和is_fixed两个参数,指定这两个参数后,该指标不受用户选择的影响。

如何在策略中使用该技术指标

技术指标的实时计算的结果通过回调函数返回给用户策略,用户在策略中如果要实时接收添加的相关技术指标的数据,必须在策略代码中定义一个回调函数。示例代码如下:

    import math
    import json
    from datetime import datetime
    from datetime import timedelta
    from strategy_features import TQFeataures
    from date_util.datetime_util import DateTimeUtil
    
    class TQStrategyEntity(TQFeataures):
        # 策略初始化
        def Initialize(self):
            self.log.info("运行模式:{0}", self.run_mode)
            self.log.info("策略初始化......")
    
            # 初始化策略参数,参数为JSON格式,可同时使用多个参数
            # 此处省略
            #
    
            # 添加指数移动平均
            self.AddEMA('20', 'EMA-20')
    
            
        # 技术指标会回调函数
        #  name - 技术指标名称
        #  tag 指标标签,与用户添加指标时使用的标签一致。
        def on_indicator(self, name, tag, data):
            if tag == 'EMA-20':
                self.log.info("EMA:{0}", data)
    

上述代码中的回调函数on_indicator就是用来接收技术指标的计算结果,趣宽的量化交易引擎实时地计算并返回,用户通过data字段可获得技术指标相关的数据,通过tag字段可判定属于哪一个技术指标。data是一个JSON格式的数据对象,具体返回的数据包含以下内容:

指标数据说明

#字段名类型说明
1ema浮点EMA值
2exchange字符交易所代码
3type字符产品类型,如spot/futures等
4symbol字符交易对
5ti_code字符技术指标的ID
6ti_tag字符技术指标的TAG
7open字符开盘价
8high字符最高价
9low字符最低价
10close字符收盘价
11volume字符成交量
12timestamp字符时间戳
13candle_interval整数K线分时,以分钟计。如果K线选择的是1小时,那么该值返回60

用户在代码中通过data['字段名']可获取指定数据。

知识图谱

知识库服务

一站式、全流程的知识图谱构建、应用平台。通过创建、分享、并融合地图和图形数据库,实现知识内容可视化。

数据抽取

构建知识图谱的第一步

通过系统提供在线的知识编辑和导入功能,创建知识条目、构建知识库。并且从异构数据源中获取候选知识单元,知识抽取技术将自动从半结构化和无结构数据中抽取实体、关系以及实体属性等结构化信息。

关系抽取

构建可视化的知识图谱

经过实体抽取, 知识库目前得到的仅是一系列离散的命名实体,为了得到更准确的语义信息, 还需要从文本语料中提取出实体之间的关联关系, 以此形成可视化的网状的知识结构。

与地图融合

在地图上标注知识点

在地图上标注知识点,查看知识内容,并可从内容中定位含有坐标信息的知识点。实现地图标注的聚合、查询。

全文搜索

根据关键词全文搜索

建立全文索引数据库,通过关键词实现快速全文搜索,支持结构化和非结构化的内容搜索。

系统架构及特点

分布式设计和易于扩展的系统架构

支持海量数据存储

满足企业日益增长的数据存储和知识库扩充需求,使用大数据和分布式系统设计,架构上支持海量数据的存储和高并发用户的访问。

移动设备支持

使用最新的基于Web的开放框架,可迅速地运用于PC端及移动端设备的Web页面上。提供跨设备、跨浏览器的支持。

数据安全

采用保护措施来防止数据受到未经批准的访问并保持数据机密性、完整性和可用性。通过数据加密、密钥管理以及特权用户访问控制、审计和监视等。

订阅和获取更新,了解最新的资讯和产品开发进度。

关于趣宽科技

提供软件系统开发维护服务,主要致力于知识图谱、大数据、分布式系统和区块链方面的系统的开发。


版权所有 |
2023 © 趣宽

v0.0.1