NoRM

等距离股票配对量化交易策略-R语言

元气小坏坏 提交于 2020-02-27 15:54:01
为了分散交易中的风险,我们可以在量化交易中选择市场中性策略。 我们选择具有基本面相关性的股票对,价格趋势具有趋同和趋离,买多强势的股票,卖空弱势的股票,同时交易,控制股市风险。 案例是石油公司埃克森美孚(NYSE:XOM)和石油公司雪佛龙(NYSE:CVX) > 公司简介:埃克森美孚公司于1882年在美国新泽西州成立,公司的分部及附属公司在美国和世界上大多数其他国家经营或买卖产品。公司主要业务为能源,涉及勘探、生产、原油和天然气;生产石油产品;运输和销售原油、天然气和石油产品。公司是石油化工商品的制造商和销售商,包括烯烃、芳烃、聚乙烯和聚丙烯塑料和各种特色产品。此外,公司还拥有发电设施的利益。公司也是全球主要的石化产品生产商和营销商,并参与发电。 >公司简介: 雪佛龙股份有限公司于1926年在美国特拉华州注册成立。公司经营范围包括石油和化学工业的各个方面。上游业务主要包括勘探、开发及生产原油及天然气;加工、液化、运输和液化天然气再气化;主要的国际石油出口管道输送原油;运输、储存和销售天然气;一个天然气合成油项目。下游业务主要包括将原油提炼为石油产品;营销原油及其成品;通过管道、海洋船舶、电机设备和轨道车运送原油和成品油;制造和销售在工业用途、燃料和润滑油添加剂上应用的石化产品、塑料。 回测 # 载入量化和绩效分析库 library(quantmod) library

java面向基础之多线程

流过昼夜 提交于 2020-02-27 03:34:59
学习多线程之前要先了解以下概念: 程序 (program) :是 为完成特定任务、用某种语言编写 的一 组指令的集合 。即指 一段静态的代码 ,静态对象。 进程 (process) 是 程序的一次执行过程,或是 正在运行的一个 程序 。动态过程:有 它自身的产生、存在和消亡的过程 。 如:运行中的 QQ 线程 (thread) ,进程可进一步细化为线程,是一个程序内部的一条执行路径。 若一个程序可同一时间执行多个线程,就是支持多线程的 在javaApplication中,至少有一个main线程,但是后台(JVM)中还有一些其他的线程,GC、异常监视线程、类加载.... 总结一下: 线程是进程的其中一条执行路径,有的时候也成为轻量级的进程。 线程是CPU调度的最小单位,进程是操作系统分配资源的最小单位。 同一个进程的多个线程存在共享的内存,比如:堆、方法区是共享的,而栈(虚拟机栈,本地方法栈),程序计数器。 一、java要如何开启main意外的线程? (1)继承Thread类 (2)实现Runnable接口 //继承Thread类 public class TestMyThread(){ public static void main(String[] args){ MyThread my = new MyThread(); my.start(); for(int i=2;i<100

强化学习 ---baselines项目之 Atari游戏的网络结构解析

二次信任 提交于 2020-02-26 03:11:25
这个baselines项目设计的比较灵活,结构有点复杂。由于项目庞大,各个函数之间又是相互调用,有时候从一个函数追溯下去,可以追溯6,7层,每个函数的超参数又特别多,很容易把人搞晕。 接下来只看DQN部分的源码,其他无关的先不看,沿着一条线分解它!接下来进行一个递归游戏,一层一层的深入探索,探索到尽头再返回,当然中途适当剪剪枝,跟网络图无关的部分先不访问! 首先,我们找 递归入口 ,在deepq下有个 experiments ,这下面全是实例,pong就是一个Atari游戏的实验。 以下是trian_pong的代码 1. from baselines import deepq from baselines import bench from baselines import logger from baselines . common . atari_wrappers import make_atari import numpy as np np . seterr ( invalid = 'ignore' ) def main ( ) : logger . configure ( ) env = make_atari ( 'PongNoFrameskip-v4' ) env = bench . Monitor ( env , logger . get_dir ( ) ) env =

[Python数据挖掘]第5章、挖掘建模(下)

橙三吉。 提交于 2020-02-23 01:28:46
四、关联规则 Apriori算法代码(被调函数部分没怎么看懂) from __future__ import print_function import pandas as pd #自定义连接函数,用于实现L_{k-1}到C_k的连接 def connect_string(x, ms): x = list(map(lambda i:sorted(i.split(ms)), x)) l = len(x[0]) r = [] for i in range(len(x)): for j in range(i,len(x)): if x[i][:l-1] == x[j][:l-1] and x[i][l-1] != x[j][l-1]: r.append(x[i][:l-1]+sorted([x[j][l-1],x[i][l-1]])) return r #寻找关联规则的函数 def find_rule(d, support, confidence, ms = u'--'): result = pd.DataFrame(index=['support', 'confidence']) #定义输出结果 support_series = 1.0*d.sum()/len(d) #支持度序列 column = list(support_series[support_series > support

《动手学深度学习》task4_3 Transformer

我的梦境 提交于 2020-02-20 11:28:23
系统学习《动手学深度学习》点击这里: 《动手学深度学习》task1_1 线性回归 《动手学深度学习》task1_2 Softmax与分类模型 《动手学深度学习》task1_3 多层感知机 《动手学深度学习》task2_1 文本预处理 《动手学深度学习》task2_2 语言模型 《动手学深度学习》task2_3 循环神经网络基础 《动手学深度学习》task3_1 过拟合、欠拟合及其解决方案 《动手学深度学习》task3_2 梯度消失、梯度爆炸 《动手学深度学习》task3_3 循环神经网络进阶 《动手学深度学习》task4_1 机器翻译 《动手学深度学习》笔记: 《动手学深度学习》task1——线性回归、softmax与分类模型,多层感知机笔记 《动手学深度学习》task2——文本预处理,语言模型,循环神经网络基础笔记 《动手学深度学习》task3——过拟合、欠拟合及解决方案,梯度消失、梯度爆炸,循环神经网络进阶笔记 本篇目录 Transformer 多头注意力层 基于位置的前馈网络 Add and Norm 位置编码 测试 编码器 解码器 训练 Transformer 在之前的章节中,我们已经介绍了主流的神经网络架构如卷积神经网络(CNNs)和循环神经网络(RNNs)。让我们进行一些回顾: CNNs 易于并行化,却不适合捕捉变长序列内的依赖关系。 RNNs

最优化计算入门基础

久未见 提交于 2020-02-19 07:09:33
最优化计算入门 6个例子学习如何建造公式 EXAMPLE1:MANIFACTURING EXAMPLE2:TOYS EXAMPLE3:BEAMS EXAMPLE4:ANTENNAS EXAMPLE5:RR ROBOT EXAMPLE6:RESOURCES ALLOCATION Matlab代码基础格式 6个例子学习如何建造公式 EXAMPLE1:MANIFACTURING 如何把一个现实应用问题用数学公式表达出来 EXAMPLE2:TOYS 如何把一个繁琐复杂的数据表格重新规划 项目 Train Soldiers Max g(1) 2 1 100 g(2) 1 1 80 g(3) 0 1 40 profit 3 2 ? EXAMPLE3:BEAMS 遇到诸如性能和成本这种矛盾变量时,如何衡量 EXAMPLE4:ANTENNAS 同时满足多个用户的要求,把多目标函数转化成一个目标函数。 EXAMPLE5:RR ROBOT 用等高线分析,不同出发点可能会逼近不同的结果,我们很难寻找到全局极值点。 EXAMPLE6:RESOURCES ALLOCATION 如何把数学问题用符号来表达,尤其是涉及类似棋盘位置的问题。 Matlab代码基础格式 % % start x = - 2 : .2 : 2 ; y = x ; [ x1 , x2 ] = meshgrid ( x , y ) ; Z

module 'matplotlib.mlab' has no attribute 'normpdf'错误解决办法

橙三吉。 提交于 2020-02-01 14:25:05
module 'matplotlib.mlab' has no attribute 'normpdf'错误解决办法 #加入以下代码段 from scipy.stats import norm #更改代码 y=norm.pdf(bins,mu,sigma) '''直方图''' import numpy as np import matplotlib.mlab as mlab import matplotlib.pyplot as plt from mpmath import norm from scipy.stats import norm mu=100 sigma=15 x=mu+sigma*np.random.rand(10000) print("X:",x.shape) num_bins=50 n,bins,patches=plt.hist(x,num_bins,normed=1,facecolor='green',alpha=0.5) '''#原先的写法''' # y=mlab.normpdf(bins,mu,sigma) y=norm.pdf(bins,mu,sigma) plt.plot(bins,y,'r--') plt.xlabel('Smarts') plt.ylabel('Probability') plt.title('Histogram of IQ:$\mu

Matplotlib _ 03 条形图与散点图

雨燕双飞 提交于 2020-01-31 04:15:24
# 电影评分 import pandas as pd import matplotlib.pyplot as plt reviews = pd.read_csv("C:/Users/Amber/Documents/唐宇迪-机器学习课程资料/Python库代码(4个)/3-可视化库matpltlib/fandango_scores.csv") cols = ['FILM','RT_user_norm','Metacritic_user_nom','IMDB_norm','Fandango_Ratingvalue','Fandango_Stars'] norm_reviews = reviews[cols] print(norm_reviews[:1]) FILM ... Fandango_Stars 0 Avengers: Age of Ultron (2015) ... 5.0 import pandas as pd import matplotlib.pyplot as plt from numpy import arange reviews = pd.read_csv("C:/Users/Amber/Documents/唐宇迪-机器学习课程资料/Python库代码(4个)/3-可视化库matpltlib/fandango_scores.csv") num_cols = ['RT

踩坑记----keras,训练准确率远高于验证准确率,keras底层代码解剖

吃可爱长大的小学妹 提交于 2020-01-28 04:16:50
前几天,帮朋友处理一个深度学习网络问题,具体场景是这样的,总共有12张,分为3个类别,同时作为训练集跟验证集,训练集跟验证集的预处理一样,使用的模型为ResNet50,最后的激活函数为softmax。使用keras框架,总共10个epoch,每个epoch都是只有1个batch(因为数据集就12张图片,所以一个batch也就12张图片)。 在训练前几个epoch时,训练准确率便达到100%,因为模型较为复杂,而且数据集也有12张,所以很好拟合,但验证准确率只有33%,也即出现训练准确率远高于验证准确率的问题, 在验证了 https://blog.csdn.net/qq_16564093/article/details/103563517 中提到可能出现的情况后,仍然未能解决问题。于是我花了三天时间去寻找答案。 接下来是我的问题解决思路: (1).模型是否出现过拟合现象 猜测,模型可能过于复杂,出现过拟合现象,导致模型过度拟合训练数据,而不适用于验证数据集。 于是,为了验证这个猜想,我将训练数据集与验证数据集统一使用同一份,即数据迭代器都是同一份数据,但结果,训练准确率依然远高于验证准确率,可推测,并非模型过度拟合训练数据集。于是,我用同一份数据,对模型进行测试,得出结果是,准确率只有33%,即可以说明一个问题,模型是完全未拟合,那么,问题,为什么模型的训练准确率能达到100%呢

tensorflow 2.0 深度学习(第四部分 循环神经网络)

落爺英雄遲暮 提交于 2020-01-26 19:46:23
基础知识 梯度传播相关原理 梯度传播原理 梯度弥散、梯度爆炸 >>> import tensorflow as tf >>> W = tf.ones([2,2]) # 任意创建某矩阵 >>> W <tf.Tensor: id=2, shape=(2, 2), dtype=float32, numpy= array([[1., 1.], [1., 1.]], dtype=float32)> >>> tf.linalg.eigh(W) (<tf.Tensor: id=3, shape=(2,), dtype=float32, numpy=array([0., 2.], dtype=float32)>, <tf.Tensor: id=4, shape=(2, 2), dtype=float32, numpy= array([[-0.70710677, 0.70710677], [ 0.70710677, 0.70710677]], dtype=float32)>) >>> tf.linalg.eigh(W)[0] # 计算特征值:此时的W矩阵的最大特征值为2,那么下面演示的是最大特征值大于1时的矩阵相乘 <tf.Tensor: id=5, shape=(2,), dtype=float32, numpy=array([0., 2.], dtype=float32)> >>> tf