ITPub博客

首页 > 区块链 > 区块链 > 合约现货量化交易开发系统源码|量化交易机器人对冲策略

合约现货量化交易开发系统源码|量化交易机器人对冲策略

原创 区块链 作者:搭建猿punk2558 时间:2023-03-16 15:32:47 0 删除 编辑

自动交易系统由几个元素组成。您需要决定要交易的市场,创建特征来识别交易逻辑并制定策略来实施该逻辑来买卖货币。您的系统应该决定何时进入和退出交易,考虑交易成本并通过回测(但不是过度拟合)进行优化。

首先要先确定量化投资组合研发的框架:

一、图表和数据:利用第三方网站或者软件的数据下载后建立组合。

二、策略和回测:利用第三方平台建立组合,量化交易机器人系统13z开4z77发z558,对策略进行优化和调整。

三、智能投资:公司自己购买数据,建立自己的底层平台,拥有自己的核心算法

第二步我们要知道正期望的交易系统需要满足哪些条件?

一个交易系统,假设胜率是P,赢亏比是R=W/L,系统期望值为M。

M=P*W-(1-P)*L

正期望系统一共有三个

一、高盈亏比及高胜率

二、低盈亏比及高胜率

三、高盈亏比及低胜率

正期望值系统:

给大家分享两种常见的盈利系统:

1、操作方式是盈亏比放大,运用趋势跟踪交易,靠放大盈亏比获利。

模型:海龟趋势交易系统

2、盈亏比为1:1的趋势交易,止损适当放大,靠胜率优势来获利。

模型:日内随机交易系统

第三步就是量化投资组合研发:好的组合能让整个账户的资金曲线更好的增长,那怎么设计组合呢?

1.智能组合生成:根据投资者的投资回报率,生成该回报率下性价比最高(风险最低)的投资组合。

2.智能组合筛选:查看投资组合过往表现及预期未来投资结果,筛选投资组合。

3.智能组合购买:一键购买,同步买入组合所有品种。

4、智能组合收藏:方便管理,保存购买组合的详细信息,包括品种名字和品种占比

5、智能组合账户跟踪:通过手机App和微信查询投资组合的净值变动,月度提醒组合的调仓管理。

我们在其中保存市场行情信息。我们希望我们的系统可以处理各种市场行精,所以我们先讲一下通用的方法。但是我们要开发的是一个简单的回测系统,所以在初期版本中,我们尽量将问题简化,等核心功能全部实现之后,我们再添加这些可扩展功能比较合理。

我们先来定义一个金融分析系统的配置类:

class FasConfig(object):

TDT_ASDK='asdk'#A股日K线数据

def __init__(self):

self.name='fas.bktr.FasConfig'

def new_tick_data(self,tick_data_type,symbol,timestamp,**args):

if tick_data_type==FasConfig.TDT_ASDK:

return AsdkTickData(symbol,timestamp,

open_price=args['open_price'],

high_price=args['high_price'],

low_price=args['low_price'],

close_price=args['close_price'],

total_volume=args['total_volume']

)

return None

fas_config=FasConfig()

我们在其中定义了FasConfig类和一个实例,在类中我们定义了TickData类型的常量,目前我们只研究A股K线行情,因此只有一个常量定义,后面随着系统越来越完善,会定义更多的常量。

我们在new_tick_data方法中,生成一个新的TickData子类实例。tick_data_type指定子类类型,symbol是金融标的代码,timestamp是时间点,**args是以字典形式传过来的可变数量参数。由上面的代码可以看到,这个方法最终会生成一个AsdkTickData类实例。

下面我们来看市场数据类:

class MarketData(object):

def __init__(self):

self.name='fas.bktr.MarketData'

self.__tick_datas={}

def add_close_price(self,symbol,timestamp,close_price):

if symbol not in self.__tick_datas:

tick_data=fas_config.new_tick_data(

fas_config.TDT_ASDK,symbol,timestamp,

open_price=1.0,high_price=2.0,low_price=3.0,

close_price=4.0,total_volume=5.0

)

print('tick_data:{0};'.format(tick_data.close_price))

在这个类中,我们定义私有属性__tick_datas来保存行情数据,其是一个字典,键值为标的代码。

在add_close_price方法中,如果标的代码不在行情字典中,则生成一个新的对应的TickData子类实例。请大家注意,前面3个参数分别指定的TickData的子类,标的代码和时间点,后面的参数会形成**args参数表示的字典。这样就可以生成任意的行情数据类了。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70020115/viewspace-2940097/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
软件开发定制:13z开4z77发z558

注册时间:2022-07-18

  • 博文量
    121
  • 访问量
    76365