现货期权交易所开发源码,现货期权交易所系统开发详细方案及逻辑
量化合约指的是目标或任务具体明确,可以清晰度量。根据不同情况,表现为数量多少,具体的统计数字,范围衡量,时间长度等等。所谓量化就是把经过抽样得到的瞬时值将其幅度离散,即用一组规定的电平,把瞬时抽样值用最接近的电平值来表示。经过抽样的图像,只是在空间上被离散成为像素(样本)的阵列。而每个样本灰度值还是一个由无穷多个取值的连续变化量,必须将其转化为有限个离散值,赋予不同码字才能真正成为数字图像。这种转化称为量化。 交易策略可以分为三个部分:指标、信号和规则。 1.指标用于产生交易信号。指标的计算方法有很多,可以是经济数据或估值指标(如PE和EBITDA)、技术指标(如MACD、RSI、MA)或时间序列模型(ARIMA、GARCH)。技术指标在外汇交易中被广泛使用。它们是价格或成交量的函数,主要用于检测趋势方向,衡量超买超卖状态,判断趋势反转。 2.价格和指数之间的相互作用形成了一个信号。开发方案I35技术7O98详细O7I8 以均线穿越为例,5日均线穿越10日均线时买入,5日均线穿越10日均线时卖出。信号不限于买卖,还包括筛子,筛子的主要功能是消除噪音。在均线穿越中,交易者可以加入一个趋势筛:只有当价格高于200日均线(上升趋势)且5日均线穿越10日均线时,如果价格低于200日均线,则黄金穿越被视为虚假信号。著名的筛子包括趋势筛子、时间筛子、周转筛子和波动筛子,它们是信号的重要组成部分。 CTA回测 (一).准备阶段: 以分析DoubleMA Strategy的IF数据为例. 修改vnpy.trader.setting.py文件的米筐的用户名和密码. 选择时间段,点击下载数据。等待数据下载完,然后点击开始回测。看回测结果. (二).回测页面初始化,开发需求:MrsFu123 由vnpy.app.cta_backtester.CtaBacktesterApp类来处理,对应的界面代码为vnpy.app.cta_backtester.ui.widget.BacktesterManager类.在该类的构造函数中依次执行 1.调用init_strategy_settings()获取各种交易策略,设置交易策略的默认参数. 2.调用init_ui()初始化界面,添加各个界面上的控件.比如合约符号,时间间隔,开始和结束时间,滑点,开始回测,下载数据,参数优化,委托记录,成交记录,每日盈亏,K线图表等按钮.如果是下载数据,进入BacktesterManager.start_downloading()方法.如果是开始回测,进入start_backtesting()方法.继续添加回测成交记录,回测委托记录,回测每日盈亏等结果的对话框.添加K线图的处理类cta_backtester.ui.widget.CandleChartDialog. 3.调用register_event()注册日志信号,回测完成信号,优化完成信号的处理函数。如果是回测完成,进入BacktesterManager.process_backtesting_finished_event()函数处理. 4.调用init_engine()方法初始化引擎,打印"初始化CTA回测引擎"的日志.日志也是作为事件来处理.创建vnpy.app.cta_strategy.backtesting.BacktestingEngine回测引擎类.调用init_rqdata()方法初始化rqdata米筐的sdk. (三).下载数据 由vnpy.app.cta_backtester.ui.widget.BacktesterManager.start_downloading()方法处理.首先获取界面上输入的合约种类,合约周期,开始和结束时间.然后进入vnpy.app.cta_backtester.engine.BacktesterEngine.start_downloading()方法中,开启新线程下载.具体下载方法为vnpy.app.cta_backtester.engine.BacktesterEngine.run_downloading().主要逻辑是调用vnpy.trader.rqdata.RqdataClient.query_history()根据合约信息下载对应的K线数据.请求的接口是米筐的rqdatac.services.get_price.get_price()的sdk方法.下载完成后,调用vnpy.trader.database.database_sql.SqlManager.save_bar_data()保存K线数据.默认K线数据保存在SQLite数据库中.数据库的配置信息在vnpy/trader/setting.py中.默认路