主页 > tp钱包和imtoken钱包通用吗 > 使用 Python 进行价格动量分析的量化交易策略

使用 Python 进行价格动量分析的量化交易策略

tp钱包和imtoken钱包通用吗 2023-10-15 05:10:14

价格动量交易策略简介

动量交易策略通过一定时间内开盘价、最高价、最低价之间的关系分析多空力量的对比,可以间接了解多空双方的力量分布在目前的市场上。 分析价格波动,以达到追踪未来价格走势的目的。

价格动量分析广泛应用于传统的人工炒作,尤其是对一天内的单边走势的判断。 什么是顺势,这是一个老生常谈的话题,而趋势最好的量化就是多空双方的实力。 对于对比的量化,价格动量分析是最好的指标之一。 本文将使用该策略开发一个火币网数字货币现货自动化交易程序。

价格动量计算公式

AR = [N天所有(High-Open)的和/ N天所有(Open—Low)的和] * 100

一些:

如何使用价格动量

价格动量反映的是一段时间内开盘价在最高价和最低价之间的位置。 这一立场是我们判断双方拉锯战的依据。 我们假设这个值在100左右,如果超过100,多头的力量就会开始增强。 如果低于100,熊族的力量就会开始聚集。

当AR值上升时,表示市场活跃,人气旺盛,多头一路推进比特币买卖量化,但如果过高,则表示价格进入超买区域,应选择平仓的时间。 AR值的高低没有具体的标准。 一般当AR值上升到120左右时,价格很可能回调下跌。

当AR值下降时,意味着市场在下跌,空头如火如荼,这需要多头的努力。 如果太低,说明价格可能已经跌入超卖区域,可以考虑伺机做多。 一般当AR值跌破50时,价格会随时止跌转涨。 注:以上数字均为默认值,并非真实公式。 在实盘交易的过程中,我们需要随着市场的变化,调整这个区间以适应当前的市场状态。

使用 Python 的价格动量量化交易策略

老规矩,我们打开,FMZ.COM,登录账号,点击控制中心,部署主机和机器人。 接下来,我们点击左侧栏中的策略库,点击新建策略。 在写攻略页面右上角,记得选择编程语言为Python,如图:

比特币买卖哪个平台_量化交易 比特币 软件_比特币买卖量化

接下来,我们将Python代码写入代码编辑页面。 下面的代码有非常详细的逐行注释。 读者可以慢慢理解和欣赏。 更重要的是,虽然这个策略是基于现货交易编写的,但是在下面代码的可扩展性中也考虑了期货交易。 有兴趣的读者可以尝试将以下代码改写成期货交易。 策略本身的逻辑是通用的。

在Inventor量化平台上,我们已经为大家记下了各大现货、期货交易所的API接口,改写工作会非常轻松方便。 我们以火币网的比特币现货作为交易标的,开始实施该策略:

import types # 导入Types模块库,这是为了应对代码中将要用到的各种数据类型def main(): # 主函数,策略逻辑从这里开始    IDLE = 0 # 用来标记持仓状态,可以理解为0即为空闲状态,也就是空仓状态    LONG = 1 # 多头持仓    SHORT = 2 # 空头持仓,注意,此策略应用于现货市场,所以不存在空头开仓或者持仓情况,这里这样写,是为了方便理解策略和以后的扩展(如扩展到期货市场)    state = IDLE # 标记持仓状态的变量    while True: # 进入循环        r = exchange.GetRecords() #GetRecords是发明者量化平台的官方API,详细用法请参见:https://www.fmz.com/api        if len(r) <= 1: # 判断K线是否大于一根,也就是当前是否为开盘状态,否则可能会进入死循环,这里也方便读者进行扩展,大一些的K线周期趋势状态更稳定。           Log("bar的数量不足, 等待下一根bar...") # 输出日志           continue # Python循环控制语句,继续下边的循环内容
# 开始进行价格动量的量化分析 ar = sum(r.High - r.Open) / sum(r.Open - r.Low) * 100 # 计算公式
account = _C(exchange.GetAccount) # 获取账户信息,_C同样为发明者量化平台的官方API,用法请参见:https://www.fmz.com/api
if ar < 95 and (state == IDLE or state == SHORT) : # AR值小于超卖线且账户拥有资金,则全仓买入 if account["Balance"] > 50: exchange.Buy(-1, account["Balance"] * 0.9) # 市价单全仓买入 state = LONG # 改变持仓状态为LONG elif ar > 80 and (state == IDLE or state == LONG): # AR值大于超买线且账户有持仓,则全仓卖出 if account["Stocks"] > 0.01: exchange.Sell(-1, account["Stocks"] * 0.9) # 市价单全仓卖出 state = SHORT # 改变持仓状态为SHORT LogStatus(_D(), exchange.GetAccount() , state) # 更新日志信息


策略回测

写好策略后,我们首先要做的是回测,看看它在历史数据中的表现如何,但请读者注意,回测的结果不等于对未来的预测,回测只能作为参考信息来考虑我们的策略有效性。

一旦行情发生变化,策略开始出现较大的亏损,我们应该及时发现问题,然后改变策略以适应新的市场环境,比如上面提到的阈值,如果策略出现较大的亏损超过10%,我们应该立即停止策略运行,然后发现问题,我们可以从调整阈值入手。

在策略编辑页面点击模拟回测。 回测页面可根据不同需求调整参数,调试方便快捷。 尤其是逻辑复杂、参数多的策略,更不用回到源码一一修改。

回测时间我们选择上个月,点击添加火币现货交易所,BTC交易标的。

比特币买卖哪个平台_量化交易 比特币 软件_比特币买卖量化

查看回测结果

比特币买卖哪个平台_量化交易 比特币 软件_比特币买卖量化

可以看出,该策略在本月的回测中表现良好。

价格动量策略的优缺点

好处

与其他一些传统技术指标相比,价格动量的优势在于它不使用单一的开盘价或收盘价,而是结合了高点和低点。 它们之间进行动态比较,通过日内价格波动,市场信息更全面,反应更快,更宏观。

缺点

独立使用价格动量值判断价格是过高还是过低,判断多头/空头,极有可能在一波大趋势中过早下车,或者在一波大跌行情中过早抄底. 总的来说,该策略仍然是震荡的有效策略。

策略的阈值设置也需要根据交易标的的特点来确定。 数字货币市场价格波动大,交易量巨大,尤其是比特币等主流货币,且无涨跌幅限制,门槛高于传统股票市场,80超跌线通常很难触及,发现产生的买入信号较少; 虽然 170 的超买线经常低于阈值,但经常触发卖出信号。

这会导致策略在运行时大部分时间处于空头状态,资金利用率会变得很低。 比如今年1月份以来,比特币牛市期间,价格从3500涨到近13000。 关口很早就冲破了170一线,此后一直处于高位。 如果按照传统的170超买线卖出,到5000左右就出车,此后一直没有建仓信号,一波大牛市只做了小幅部分。

因此,这个市场上从来就没有什么圣杯交易策略,一种不用回测、不用调试就可以永远赚钱的策略。 我们的量化交易者和主观交易者一样,最后大家的目标都是一样的。 我们要适应市场变化,因地制宜比特币买卖量化,适应一切变化。 当策略无效时,我们需要及时调整。

有问题的朋友可以留言,无论是策略还是平台技术,量化平台的发明者都有专业的人员随时为您解答。

量化

在线的

关于我们

量化交易 比特币 软件_比特币买卖量化_比特币买卖哪个平台

策略源码运行平台是发明人的量化交易平台,专为高频交易而设计,对性能和安全性有严格要求。 在线平台集成了策略开发、测试、优化、模拟、实盘交易的完整流程。

支持高频交易策略,多种套利策略,多数据、多品种、多周期混合策略。 支持国内期货和全球40多种数字货币交易。 支持多种开发语言,包括:C++、Python、JavaScript、可视化语言、Mac语言。

您的转发将是支持我们继续创作更多干货的动力! 如果您觉得本文对您有帮助,请转发并支持我们!