从本质上说,交易机器人是一种软件程序,它直接与金融交易所进行交互(通常使用API获取和解释相关信息),并根据市场数据的解释发出买卖订单。这些机器人通过监测市场价格走势,并根据一套预先设定和编程的规则做出反应,从而做出这些决定。通常,一个交易机器人会分析市场行为,例如交易量、订单、价格和时间,它们通常可以根据您自己的喜好进行编程。
交易所量化机器人软件开发介绍与意义
量化交易,有时候也称自动化交易。是指以先进的数学模型替代人为的主观判断,极大地减少投资者情绪波动的影响,避免在市场极度狂热或悲观的情况下做出非理性的投资决策,量化交易有很多种,包括跨平台搬砖、趋势、对冲、三角、跨期等。
量化交易软件不需要对接交易平台,交易策略不需要考虑平台的接口,策略针对选择的标的运行,使用通用的下单函数就可以下单,查看信息、不成交撤单重发、意外情况造成持仓和策略不匹配等,全部由软件搞定。
交易策略专用语言
为了方便投资者使用,我们专门开发了专用的策略脚本语言,极大的降低了量化交易的难度。
专注核心问题
量化交易系统,用户不需要考虑各种技术细节,只需要专注于交易逻辑,找出能盈利的方法并写成交易策略,就可以完全由软件24小时来运行。
策略代码
#coding=utf-8 from __future__ import print_function,absolute_import,unicode_literals import numpy as np import pandas as pd from gm.api import*'''以短期为例:20日线一步:获取历史数据,计算唐奇安通道和ATR第二步:当突破唐奇安通道时,开仓。第三步:计算加仓和止损信号。'''def init(context):#设置计算唐奇安通道的参数context.n=20#设置合约标的context.symbol='DCE.i2012'#设置交易z大资金比率context.ratio=0.8#订阅数据subscribe(symbols=context.symbol,frequency='60s',count=2)#获取当前时间time=context.now.strftime('%H:%M:%S')#如果策略执行时间点是交易时间段,则直接执行algo定义atr等参数,以防直接进入on_bar()导致atr等未定义if'09:00:00'<time<'15:00:00'or'21:00:00'<time<'23:00:00':algo(context)#如果是交易时间段,等到开盘时间确保进入algo()schedule(schedule_func=algo,date_rule='1d',time_rule='09:00:00')schedule(schedule_func=algo,date_rule='1d',time_rule='21:00:00')def algo(context):#计算通道的数据:当日z低、z高、上一交易日收盘#注:由于talib库计算ATR的结果与公式求得的结果不符,所以这里利用公式计算ATR#如果是回测模式,当天的数据直接用history取到if context.mode==2:data=history_n(symbol=context.symbol,frequency='1d',count=context.n 1,end_time=context.now,fields='close,high,low,bob',df=True)#计算ATR tr_list=[]for i in range(0,len(data)-1):tr=max((data['high'].iloc<i>-data['low'].iloc<i>),data['close'].shift(-1).iloc<i>-data['high'].iloc<i>,data['close'].shift(-1).iloc<i>-data['low'].iloc<i>)tr_list.append(tr)context.atr=int(np.floor(np.mean(tr_list)))context.atr_half=int(np.floor(0.5*context.atr))#计算唐奇安通道context.don_open=np.max(data['high'].values[-context.n:])context.don_close=np.min(data['low'].values[-context.n:])#如果是实时模式,当天的数据需要用current取到if