现货期权合约交易所开发需求丨现货期权合约交易所系统开发(实现技术及代码)

简介:  Quantitative trading refers to an investment method that uses modern statistics and mathematical methods to trade through computer technology.Quantitative trading selects a variety of"high probability"events that can achieve excess returns from massive historical data to formulate strategies,uses q

  Want to know clearly what is a quantitative trading robot?First of all,we should clarify the basic concept of quantitative trading:

  Quantitative trading refers to an investment method that uses modern statistics and mathematical methods to trade through computer technology.Quantitative trading selects a variety of"high probability"events that can achieve excess returns from massive historical data to formulate strategies,uses quantitative models to verify and solidify these laws and strategies,and then strictly implements the solidified strategies to guide investment,in order to obtain sustained,stable and higher than average returns.

  入口代码为vnpy.app.cta_backtester.ui.widget.BacktesterManager.start_backtesting()方法.获取界面配置的合约相关参数,弹窗vnpy.app.cta_backtester.ui.widget.BacktestingSettingEditor对话框,用户确认后,调用vnpy.app.cta_backtester.engine.BacktesterEngine.start_backtesting()开始回测,该方法开启新线程调用run_backtesting().此方法调用逻辑如下:

  1.获取vnpy.app.cta_strategy.backtesting.BacktestingEngine类对象,传入界面参数.

  2.调用vnpy.app.cta_strategy.backtesting.BacktestingEngine.load_data()方法加载数据.根据是bar模式还是tick模式,调用load_bar_data()和load_tick_data()加载数据到self.history_data的list中。默认bar模式,进入vnpy.app.cta_strategy.backtesting.load_bar_data(),调用vnpy.trader.database.database_sql.SqlManager.load_bar_data(),它通过peewee的orm库读取数据库.

  3.调用vnpy.app.cta_strategy.backtesting.BacktestingEngine.run_backtesting()开始回测.

  (1).根据bar还是tick模式,确认进入BacktestingEngine.new_bar()还是BacktestingEngine.new_tick()方法.

  (2).进入vnpy.app.cta_strategy.strategies.double_ma_strategy.DoubleMaStrategy.on_init()初始化策略.进入vnpy.app.cta_strategy.template.CtaTemplate.load_bar()初始化加载.

  (3).遍历历史K线数据,统计总天数.如果是一个月的分钟线,针对前10根K线(这块没看懂?),每一根K线都进入double_ma_strategy.DoubleMaStrategy.on_bar()方法处理。首先调用vnpy.trader.utility.ArrayManager.update_bar()更新当前K线信息.然后计算短期和长期均线价格,如果短期上穿长期均线,且当前仓位为0,则调用template.CtaTemplate.buy()方法下单买入.下单进入vnpy.app.cta_strategy.template.CtaTemplate.send_order()方法,回测期间该方法返回空.如果短期下穿长期均线,且当前仓位为0,调用vnpy.app.cta_strategy.template.CtaTemplate.short()做空.

  (4).调用double_ma_strategy.DoubleMaStrategy.on_start()触发start事件.

  (5).调用BacktestingEngine.new_bar()从第10根K线开始回放历史数据.该方法处理逻辑如下:

  (5.1)调用BacktestingEngine.cross_limit_order()撮合本地限价单委托,将最新的行情K线或者TICK和策略之前下达的所有委托进行检查,如果能够撮合成交,则返回并记录数据。

  (5.2)撮合本地停止单(条件单)委托.

  K线图表

  入口代码为BacktesterManager.show_candle_chart().获取之前加载的数据库里面的bar数据。

  1.调用CandleChartDialog.update_history(),调用vnpy.chart.manager.BarManager.update_history(),调用vnpy.chart.item.ChartItem.update_history()遍历所有K线,调用vnpy.chart.item.CandleItem._draw_bar_picture()通过QT画K线图.

  2.获取所有交易记录,调用widget.CandleChartDialog.update_trades()在K线图上标记买卖记录.

相关文章
|
7月前
|
存储 安全 分布式数据库
现货期权交易/秒合约/量化交易系统开发模式案例
区块链技术是一种分布式数据库技术,它通过去中心化的方式记录数据
现货期权期货/合约量化/量化合约/秒合约/永续合约/交易所系统开发成熟技术及源码
现货期权期货/合约量化/量化合约/秒合约/永续合约/交易所系统开发成熟技术及源码
|
供应链 物联网 分布式数据库
秒合约跟单系统开发|现货合约交易所系统开发案例
区块链技术可以通过分布式网络、共识机制和智能合约的相互配合,实现去中心化的应用,包括数字货币、智能合约、供应链管理、物联网、融等多个领域
|
NoSQL 关系型数据库 MySQL
数字货币永续合约/币币交易所系统开发(开发案例),币币交易所/永续合约交易所开发源码及体验版
Market analysis:Exchanges can also provide market charts and analysis tools for digital currencies,helping users understand market dynamics,trends,and price change
|
7月前
|
人工智能 供应链 安全
现货期权交易|秒合约系统开发技术方案
使用智能合约还可以保护和安全地与区块链和传统的业务主体的数据链接
|
7月前
|
人工智能 搜索推荐 大数据
秒合约跟单系统开发源码|现货期权交易系统案例
Web 3.0的时代,我们将看到一个完全去中心化的互联网环境,这将彻底改变互联网的面貌。
|
存储 安全 大数据
合约现货跟单交易所系统开发|量化交易|秒合约系统案例
区块链,是比特币的底层技术架构,它在本质上是一种去中心化的分布式账本
量化合约/合约量化/秒合约/永续合约/现货期权期货/交易所系统开发案例及源码
量化合约/合约量化/秒合约/永续合约/现货期权期货/交易所系统开发案例及源码
量化合约交易所系统开发|现货合约|秒合约系统开发
从互联网发展的层面来看,去中心化是互联网发展过程中构成的社会化关系形状和内容发生形状
|
存储 安全 区块链
现货期权合约系统开发(成熟案例)|现货期权合约系统开发方案
在Web3.0中,区块链将发挥其去中心化、不变性等优点,成为互联网上所有数据的底层架构