自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(221)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 OpenMMLab实训营二期第一节笔记

介绍OpenMMLab基本功能。

2023-06-01 12:28:31 631

原创 Linear Regression in mojo with NDBuffer

The linear regression algorithm in AI language mojo. It shows how to use NDBuffer to develop machine learning program.

2023-05-25 13:02:21 950

原创 NDArray implementation in mojo

【代码】NDArray implementation in mojo。

2023-05-24 14:01:20 154

原创 chatGPT学习---Transformer代码实现2

下面我们来实现Transformer,在正式编写Transformer之前,我们先来看一下实现Transformer的一个小技巧,这个是我们看懂别人写的Transformer代码的一个关键。

2023-03-28 20:10:07 1776

原创 chatGPT学习---Transformer代码实现1

以一个Hello World级代码生成应用,演示最简Transformer实现。

2023-03-26 22:27:25 4838

原创 chatGPT学习---Transformer

xi∈Rnxi∈Rnx1x2x3x4x1x2x3x4WK∈Rdm×dkWK∈Rdm​×dk​,对应于每个输入信号的特征;WV∈Rdm×dvWV∈Rdm​×dv​,对应于每个输入信号的值,我们可以理解为一个输入信号由键、值对表示;

2023-03-25 19:00:03 2261

原创 期权定价Python实现

期权定价实践期权定价公式迭代法期权定价公式期权定价通常使用BSM公式,如下所示:C(St,K,t,T,r,σ)=StN(d1)−e−r(T−t)KN(d2)C(S_{t}, K, t, T, r, \sigma)=S_{t} N(d_{1})-e^{-r(T-t)}KN(d_{2})C(St​,K,t,T,r,σ)=St​N(d1​)−e−r(T−t)KN(d2​)其中N(d)N(d)N(d)为标准正态分布x∼N(0,1)x \sim N(0,1)x∼N(0,1)时x<dx<dx&l

2021-05-12 09:42:41 4548 4

原创 SpringCloud应用骨架开发2

在上一篇博文中,我们开发了一个基本的微服务,在本篇博文中,我们将在加入日志,健康监测方面的内容。在应用中加入日志功能,是一项基本的需求。我们在这里介绍的只是针对单个微服务的日志功能。我们首先在应用配置文件application.yaml中加入日志定义功能:logging: pattern: console: "%d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n" file: "%d{HH:mm:ss.SSS} [%thread] %-5le

2020-09-14 14:46:57 280

原创 SpringCloud应用骨架开发

我们每做一个新项目,通常都是从另一个项目把代码拷贝过来,然后在其上做开发。但是这种模式的一个比较大的问题就是会有很多上个项目的遗留代码。因此,开发一个公共的应用骨架系统,在开始其他新项目时,从这个骨架系统开始开发,是一个很好的选择。我们首先需要创建一个SpringBoot工程,我们可以使用:https://start.spring.io/如下所所:上图中比较关键的是从页面右侧“Add Dependencies”按钮弹出的列表中选择“Spring Web”。网站上的工具会生成一个基本的SpringB

2020-09-12 14:34:33 1401 3

原创 基于强化学习的期权量化交易回测系统5

我们现在已经可以在主循环中获取行情数据,并且传给了Agent类。接下来Agent类会调用策略类,由于决定采取的行动。在策略类做决策时,需要参考用户仓位Position信息,还有就是权利金、保证金、手续费等计算,在本篇博文中将对这些内容进行介绍。交易费用计算在进行期权交易时,多头买入认购和认沽期权时,需要向卖出方支付权利金,而为了保证卖方可以履约,要向卖方收取保证金。同时,券商还会收取手续费和税费,手续费和税费可能单边收取也可能双边收取,情况比较复杂。因此我们采用Commission类来进行管理。我们首

2020-08-28 15:09:04 1839 2

原创 基于强化学习的期权量化交易回测系统4

获取50ETF指数行情数据50ETF期权的标的物是50ETF指数,我们可以使用akshare来获取该指数的日行情数据,如下所示:class Sh50etfIndexDataSource(object): ...... def get_daily_data(self, start_date, end_date): df = ak.stock_zh_index_daily(symbol="sh510050") df1 = df.loc[start_date: end

2020-08-26 11:44:11 709

原创 基于强化学习的期权量化交易回测系统3

在本篇博文中,我们将获取50EFT期权的日行情数据和50ETF的日行情数据,作为环境的状态数据,可以在强化学习环境SopEnv中逐日显示出来。数据集对象定义我们定义50ETF日行情数据集类D50etfDataset,在其中统一管理50ETF行情和50ETF期权行情数据以及Greeks信息、VIX恐慌指数等信息。D50etfDataset是PyTorch中Dataset的子类,该类中有两个我们必须提供实现代码的方法,分别为__len__获取数据集中样本数量,__getitem__获取指定索引的样本数据,大

2020-08-25 15:24:40 1710 3

原创 基于强化学习的期权量化交易回测系统2

在本篇博文中,我们将介绍强化学习环境类SopEnv的具体实现。SopEnv类的基类为gym.Env类,这样做的目的是为了与当前主流的强化学习系统兼容,我们需要重写该类的四个方法:reset:重置系统为初始状态;_next_observation:获取并返回环境状态;_take_action:执行Agent所选择的行动;step:最重要的方法,在该方法中执行如下操作:执行Agent选择的行动;获取当前状态;生成当前奖励信号;除了上述方法之外,该类还有一个重要的方法startup,在

2020-08-20 18:05:40 817

原创 基于强化学习的期权量化交易回测系统1

概述量化交易平台很重要的一个环节就是回测系统,可以通过对历史行情的回放,验证量化交易策略的性能表现。量化交易强化学习环境,则是向Agent提供一个交互的环境,Agent(即量化策略)根据市场环境(强化学习环境)的状态,选择最合适的操作,强化学习环境会根据操作结果,反馈给Agent,供Agent改进其策略网络。通常这两者是单独的系统,我们用强化学习环境来训练Agent即量化交易策略,然后再回测系统中验证策略的性能表现。但是这样做一个明显的缺点就是历史行情和交易过程的模拟需要做两份,所以将二者融合起来,具有很

2020-08-20 16:58:19 1534

原创 期权基础知识

期权允许做非常复杂的策略,有策略之王的称号。同时我国已经引入期权交易5、6年之久,其中的50ETF期权交易非常活跃。由于期权可以在任意市场上环境下操作,具有高杠杆比的特点,是量化交易领域非常重要的一块。然而要进行期权的量化交易,我们必须先搞清期权的基本概念。下面我们就以50ETF为例,向大家介绍期权的基本概念。认购(看涨)期权认购期权也称为看涨期权,如果认为50ETF会大涨,则可以考虑买入认购期权。初始状态我们假设张三持有12月到期的50ETF认购期权:期权类型:认购期权;行权价格:2.40

2020-08-18 20:28:32 1301

原创 利用akshare读取50EFF期权2

我们接下来将研究获取期权历史行情数据的方法。获取当天分钟级数据我们可以获取指定合约编号,当天的分钟级数据: def demo(self): option_sina_sse_minute_df = ak.option_sina_sse_minute(code="10002513") ticks = option_sina_sse_minute_df['时间'] prices = option_sina_sse_minute_df['价格']

2020-08-18 17:10:14 670

原创 利用akshare读取50EFF期权1

目前国内期权市场比较活跃的期权产品,当属上证的50ETF期权,下面我们将通过akshare库,来获取50ETF期权数据。获取合约到期月份列表 def demo(self): # 获取合约到期月份列表 option_sina_sse_list_df = ak.option_sina_sse_list( symbol="50ETF", exchange="null") print(option_sina_sse_l

2020-08-17 16:56:56 1658

原创 易经量化交易系统之回测系统2

订单类当回测系统运行时,我们所开发的策略,会根据市场行情数据,生成相应的买入、卖出操作,这时就会产生订单。订单包括时间戳、交易标的代码、买卖操作、数量、价格、头寸等信息,产生订单后,会将订单提交给broker来进行处理,会进一步添加执行时间、交易价格、交易数量信息。我们这里先只处理市场价订单,其他类型订单,如限制、终止订单等,可以在这个基本系统上进行扩展。class Order(object): # 订单类型定义 OT_MARKET_ORDER = 1001 # 市价类型订单 #

2020-08-11 22:00:21 691

原创 易经量化交易系统之回测系统1

我们在这里向大家介绍如何从零开始,实现一个适合于A股市场的回测系统。在这里我们以A股日K线数据为例,实际上可以比较方便的扩展为分级的数据源。Tick数据类我们首先定义一个Tick数据的基类,这个类维护所有金融市场标的的Tick数据具有共性的内容:class TickData(object): def __init__(self, symbol, timestamp): ''' symbol 股票代码 timestamp 时间点 '

2020-08-11 11:49:02 781

原创 易经量化交易系统2

在本篇博文中,我们要向回测系统中加入佣金、印花税、过户费等交易成本项目,使我们的回测系统更加真实。根据当前A股市场税费的规定,主要有以下三项:佣金:交易额的0.3%,起征点5元,双向收取;过户费:交易额的0.02%,双向收取;印花税:交易额的0.1%,卖出方收取;在原始的BackTrader中,只允许收取固定比例佣金,所以我们需要扩展其功能。我们首先扩展CommInfoBase类:# A股手续类,主要包括三项:# 1. 佣金:交易额的0.3%,起征点5元,双向收取;# 2. 过户费:交易

2020-08-04 18:29:30 491

原创 易经量化交易系统1

易经量化交易系统是一个完整的量化交易平台,提供基于深度元强化学习的交易策略,并且具有一整套回测平台,可以用于策略研发和实盘操作。量化交易平台中,回测系统是一个关键的功能,易经量化交易系统的回测系统是基于BackTrader的回测系统,为量化交易研发中的性能评估,提供了一个易用回测系统,做量化交易研发,首先需要选择一个好的回测系统,所以我们先来向大家介绍这个回测系统。环境配置首先下载易经量化系统源码:git clone https://github.com/yt7589/iching.git在易经

2020-08-04 15:45:21 1059

原创 时间序列预测的Meta N-BEATS方法1

在时间序列预测中,目前占统治地位的方法仍然是传统的时间序列分析统计方法,虽然有个别方法中融入了深度学习模型,也基本上仅限于利用深度学习来学习这些时间序列统计模型的超参数。Bengio团队最新的Paper,将纯深度学习技术应用于时间序列预测,并在测试数据集上取得了比传统时间充列分析还要好的效果,他们分别发表了两篇文章,第一篇发表于19年5月,讲述了N-BEATS算法,第二篇发表于20年2月,将N-BEATS算法与元学习方法相融合,并且取得了SOTA效果。本系列博文除了介绍这两篇文章基本概念之外,还会讲解采用

2020-07-29 12:26:32 4000 2

原创 区块链供应链金融实战3

在本篇博文中,我们将以一个虚拟的供应链为例,讲解供应链金融的商业逻辑。为我们后续实现区块链供应链金融打下基础。我们假设存如下的自行车供应链,供应链的核心企业是自行车厂:我们假设银行年化收益率为3%,供应链的核心企业为自行车厂,信用在一级供应商和分销商之间为100%,以后每级递减20%。这个供应链金融系统的参与者如下所示:假设2020年自行车厂想生成价值2亿元的自行车,供应链运作如下:...

2020-01-02 15:28:02 2503 2

原创 区块链供应链金融实战2

在本篇博文中,我们将讲解在金链盟下,编写一个最简单的用户间转账的智能合约,并通过Java应用程序调用这个智能合约,为我们实现复杂的区块链供应链金融应用打下基础。...

2020-01-02 11:58:03 1267

原创 区块链供应链金融实战1

在本篇博文中,我们将安装和部署金链盟区块链系统。金链盟区块链是我国自主知识产权的开源区块链系统,主要应用于金融领域,在联盟链领域,在性能和功能方面都处于领先地位。安装为项目创建一个文件夹,进入该文件夹,下载安装文件:wget https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.2.0/build_chain.shchm...

2019-12-29 18:15:10 1603 1

原创 Hyperledger Fabric区块链供应链金融实战1

我们在这里将利用Hyperledger Fabric最新版本v2.0.0 Beta,创建一个区块链供应链金融项目,实现应收账款、承兑汇票、合同融资功能。出于学习目的,我们将Hyperledger Fabric安装在Virtualbox虚拟机中,操作系统为ubuntu 18.04。在本篇博文中,我们将介绍Hyperledger Fabric的安装。开发环境准备首先安装Git:sudo apt-...

2019-12-29 12:37:58 1447

原创 uni-app中应用vuex示例

uni-app是当前前端开端多端应用的一个强大的工具,可以同时七端发布。由于之前前端的功能较简单,所以前端一般不重视程序架构设计,通常所说的MVVM等架构,一般也就止步于VUE就是基于MVVM,使用VUE就是采用MVVM架构,而实际上采用架构的作用,就是要使应用代码职责分离,增加可维护性。在本篇博文中,我将向大家展示,怎样通过使用VUEX,将业务逻辑代码由.vue文件中抽取出来,形成一个职责清晰的...

2019-12-09 16:15:03 1461

原创 PyTorch学习笔记2-自动微分

记得深度学习三巨头之一Yann LeCun曾经说过:“深度学习已死,可微编程永生”,就是说深度学习只是一种计算范式,而背后的可微分编程,具有更广阔的应用前景。在这里我们将探索PyTorch中的自动微分技术。Tensor函数PyTorch中的自动微分是基于Tensor的,以Tensor作为参数的函数,实际上是将Tensor中的每个元素应用该函数。只讲概念比较抽象,我们来看一个具体的例子。我们定...

2019-12-03 14:40:56 442

原创 PyTorch学习笔记1---张量

PyTorch中数据集用Tensor来表示,Tensor与Python中的List类似,但是其内部存储时以连续内存单元存储,可以通过下标计算出内存地址,然后直接读出数值,因此存取效率很高,同时由于与Numpy的内存存储基本相同,所以numpy的ndarray与Tensor之间转换,不论有多少元素,其转换只需数毫秒,非常高效。同时,Tensor可以在GPU上运行,因此比numpy的效率要高。Ten...

2019-12-02 22:31:08 433

原创 央行数字货币技术架构---HashGraph共识算法1

最近央行动作在数字货币领域动作频频,在2019年下半年,大有加快数字货币研发的趋势,有可能正式推出央行数字货币CBDC。虽然目前还不确定央行数字货币的具体技术架构,但是从央行数字货币研究所前所长姚前,以及谢平等人的观点来看,央行数字货币投放将采用两层结构,即央行将数字货币配发给商业银行或运营机构,由商业银行或运营机构负责公众服务,商业银行和运营机构各自维护自己的账本,央行维护统一的账本。对于商业银...

2019-08-16 15:49:23 4650 1

原创 深度强化元学习教程---优化器元学习2/2

优化器元网络推导在梯度下降算法中,我们通过下面的公式来调整参数:θt=θt−1−αt∇θt−1Lt\boldsymbol{\theta}_{t} = \boldsymbol{\theta}_{t-1} - \alpha_{t} \nabla_{\boldsymbol{\theta}_{t-1}} \mathcal{L}_{t}θt​=θt−1​−αt​∇θt−1​​Lt​根据上一节长短时...

2019-07-31 15:43:03 720 3

原创 深度强化元学习教程---优化器元学习1/2

为了解决深度学习需要大量标注数据集的问题,优化器元学习方法通过利用元网络来学习最佳优化器,从而帮助实现我们当前功能的基础网络具有更好的性能。这种方法有一个比较长名字:通过梯度下降来学习怎样学习梯度下降算法。这样说比较抽像,我们以一个具体的例子业说明这一过程。在传统的深度学习中,我们首先会根据训练样本计算出代价函数,然后求出代价函数对连接权值和偏置值的微分,再在优化器的帮助下,根据梯度下降算法,调...

2019-07-30 16:01:23 1143

原创 深度强化元学习教程---元学习概述

深度强化元学习是近期深度学习技术的一个另人瞩目的新兴领域,其利用元学习,解决了深度学习需要大数据集的问题,以及强化学习收敛慢的问题。同时元学习还可以适用于环境不断改变的应用场景,具有巨大的应用前景。元学习概述元学习简介提到元学习,我们通常想到Few-Shot Learning、One-Shot Learning、Zero-Shot Learning,其实这些都是K-Shot Learning...

2019-07-29 16:16:30 1908

原创 Libra币核心代码研读1---找到程序入口点

在接下来的博文中,我们将一起来研究Libra Core的核心源码,由于Libra Core是一门叫Rust的小众语言编写的,因此在阅读源码之前,可以粗略的看一下《The Rutst Programming Language》,在官网上就有HTML版本可以在线看,可惜是英文版的,不清楚是否有中文版本。这本书有600多页,个人建议只需要花两三天时间大概浏览一下,知道有如ownership、borrow...

2019-06-26 11:23:35 1163 2

原创 Facebook最新Libra币私有链模式运行

在缺省模式下,我们通过下面的命令启动:./scripts/cli/start_cli_testnet.sh这们会连接到Libra Core的测试网络。其实我们可以在本地启动测试网络,并且直接连接到本地的测试网络,在libra目录下运行如下命令:cargo run -p libra_swarm -- -s这时会在本地启动测试网络,同时启动libra_cli客户端,界面如下所示:如上图...

2019-06-26 10:51:25 626 1

原创 Facebook最新Libra币开发指南---接口服务器开发2

在上一篇博文中,我们已经使用Rust语言开发了一款简单的Web服务器,虽然以单线程方式工作,但是可以正确解析Libra Core的常见命令,完成了程序的基本框架,在这一篇文件中,我们将带领大家逐个实现这些命令,最后形成一个基本完整的程序,最后集成Libra Core的client工具中。这样我们就有一个Libra Core的Web接口,大家就可以将自己的应用系统第一时间移植到Libra Core,...

2019-06-24 16:23:16 1722 5

原创 Facebook最新Libra币开发指南---接口服务器开发

在Libra Core中,官方提供了一个命令行工具,可以实现创建账户、挖矿和转账等基本操作,但是没有提供Restful接口,使我们想要开发的应用系统,将区块链逻辑移植到Libra Testnet上去。在本篇博文中,我们将利用Rust语言,将官方的命令行接口,改造成RESTful接口。由于我们只是临时改造,相信官方的RESTful接口很快就会出现,因此我们在这里仅使用最简实现,实现一个单线程的Web...

2019-06-23 11:48:35 2933 7

原创 Facebook Libra币开发指南---Move语言开发代币智能合约

由于Libra Core基本还处于试验阶段,还没有API和SDK,因此除了命令行之外,没有其他接口。虽然文档中有Move语言介绍,但是在目前的testnet上,还不支持部署基于Move语言的智能合约,因此使我们这种特别喜欢动手尝试的人,非常抓狂。不过还是有牛人,发现可以使用Libra的功能测试框架,来编写和运行Move语言编写的智能合约,所以我们也可以基于这种方法来尝试一把。代币智能合约我们可...

2019-06-22 17:50:47 1848

原创 Facebook最新Libra币开发语言Rust入门1

Facebook最新发币的Libra币项目,目前只提供了一个Libra Core客户端命令行工具,没有RESTful API,也没有其他语言的API接口,想要基于这个系统开发应用可能还需要等上一段时间。Libra Core系统是用一种高比格的小众语言Rust来编写的,相信绝大多数人都是只听说过Rust是试图在性能上与C相当,在开发难易程度和速度方面与Python相当的神秘语言。但是如果想要深入研究...

2019-06-22 16:05:28 2006 2

原创 Facebook的libra币开发指南

近期Facebook拟发行的Libra币,可以说是加密货币界和传统金融行业的一件大事,很多人都认为这次数字货币真的可能改变世界。作为程序员而言,怎样搭上这班车,相信是大家都非常关心的。我觉得我们可以从开发Libra币的智能合约入手,将现实世界中的支付场景,尤其是跨境支付场景,在Libra币的环境来实现,也许可以找到好的方向。本文就是根据libra.org中的文档,在本地运行Libra的测试网络,创...

2019-06-21 21:49:44 2568 3

Lwuit developer guide

The developer guide for j2me lwuit

2010-04-25

Symbian系统平台相关程序编制技术

介绍如何通过系统的宏定义、PlatformID及MachineID来获取手机的symbian操作系统版本,手机型号等信息。可以根据这些信息对不同的平台使用不同的代码,包含不同的库文件及头文件,可以编制同时适用于3.0/3.1/3.2/5.0系统的软件。

2009-08-25

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除