Archive

Archive for the ‘算法研究’ Category

RQAlpha BUG Issue#219

November 12th, 2018 No comments

Pingback https://github.com/ricequant/rqalpha/issues/219

Hello, RQAlpha Team

RQAlpha is really a effective tool for price back-testing.

I found something wrong when using command `# rqalpha plot someresult.pkl` to plot my back-testing result. It came out a blank window. I tried to solve this problem and found something interesting.

in `rqalpha/rqalpha/mod/rqalpha_mod_sys_analyser/plot.py`, line 52-53

 portfolio = result_dict["portfolio"]
 benchmark_portfolio = result_dict.get("benchmark_portfolio")

 print portfolio.index
 print benchmark_portfolio.index

by printing portfolio.index and benchmark_portfolio.index , I found an unreasonable difference.

![image](https://user-images.githubusercontent.com/4476941/33165321-59a13c02-d071-11e7-80e1-b41a5fbdd6db.png)

According to https://github.com/pandas-dev/pandas/issues/8614 says, matplotlib can not plotting when DatetimeIndex is created by pandas > 0.15 .

I found a temporary way to solve this problem. and finally plotting was working functionally.

Use `index.to_pydatetime()` to explicitly convert `DatetimeIndex` type index to Python `Datetime` type.

For example: modify `rqalpha/rqalpha/mod/rqalpha_mod_sys_analyser/plot.py`, line 152
`ax.plot(portfolio[“unit_net_value”] – 1.0, label=_(u”strategy”), alpha=1, linewidth=2, color=red)`
to
`ax.plot(index.to_pydatetime(),portfolio[“unit_net_value”] – 1.0, label=_(u”strategy”), alpha=1, linewidth=2, color=red)`

Although it is not the best way to solve this problem, I know you can find the best one finally.
And I hope these information may help you.

Thanks.

Categories: 算法研究, 系统管理 Tags:

iOS开发之Objective-c几种不同的随机数算法(arc4random,random,srandom)

June 18th, 2012 No comments

Objective-c并没有直接提供随机数据生成的函数或方法,不过我们可以直接利用c的各种随机算法
以下是几种常见的随机数算法的使用,可以参照以下头文件
stdlib.h

arc4random
不需要随机种子,在调用时自动生成随机种子
返回[0,X)的集合
int value = arc4random() % x;
返回[1,X]的集合
int value = (arc4random() % x) + 1;

Read more…

iOS开发之Objective-C中BASE64编码加密解密的使用

June 18th, 2012 No comments

BASE64使用常用的URL密文编码方式,用于在HTTP环境下传递较长的标识信息。采用Base64编码不仅比较简短,同时也具有不可读性。

以下地址是加密的迅雷专用下载地址,采用的是该编码。
如thunder://QUFodHRwOi8vd3d3LmJhaWR1LmNvbS9pbWcvc3NsbTFfbG9nby5naWZaWg==

ios中使用BASE64进行加密和解密的方法也很简单,可以直接用google-toolbox-for-mac的GTMBase64.h来实现.

google-toolbox-for-mac的对应地址如下:
http://code.google.com/p/google-toolbox-for-mac/

当中可以找到很多你需要的帮助对象,但是这里我们只使用以下3个文件
GTMDefines.h
GTMBase64.h
GTMBase64.m

Read more…

使用递归位运算实现对字节的中心转置反转

June 14th, 2012 No comments

字节的中心转置反转,这是一道的IBM技术面试题,供参考
原题如下:
给定一个任意字节长度的数据(以一个Byte为例),要求实现数据的位中心翻转,
也就是数据的对称位数据交换,比如:
1010 1100 -> 0011 0101
1111 1111 -> 1111 1111
0000 0000 -> 0000 0000
1111 0000 -> 0000 1111
解题思路也很简单,只要使用位运算实现以下的位变化即可,但是需要考虑到其他
位的情况,注意运算符的使用即可,IBM不愧是IBM
11 – > 11
00 – > 00
10 – > 01
01 – > 10

Read more…

Categories: 算法研究 Tags: ,

求二维数组的全排列组合,二位数组的自乘积问题

June 14th, 2012 3 comments

CG在ETP基地的培训也有一段时间了,这期间也有几次考试,下面将要分享的是最近一次笔试的考试题目,该题算是JAVA考试的附加题,要求也很简单,下面是原题

二维数组的长度和初始值均由输入确定,如何求出此数组的全排列组合,
即:int a[X][X] = {{X,X,X},…}如下
int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}}
或者是 int a[4][4] = {{1,2,3,4},{4,5,6,7},{7,8,9,10}}
计算a[3][3]的结果如下:
147,148,149
157,158,159
167,168,169
247,248,249
…………

Read more…

Categories: 算法研究 Tags: ,

[算法]操作系统进程通信(预防死锁)算法 Dijkstra银行家算法 C语言实现

January 5th, 2009 9 comments

今天完成昨天的算法,银行家算法,这个大家如果知道操作系统这门课程的话应该会明白,昨天一直忙于复习,今天也是,不过下午还是完成了基本调试,调试环境GCC和TC,现在我把代码奉献给大家

银行家算法说明:最早由算法大师 迪杰克斯拉 (Edsger Dijkstra) 提出,银行家算法,顾名思义,它的原理来源于银行系统的存贷款发放管理,即银行(系统)要将一定的款项(资源)贷款(分配)给N个人(进程),当然不需要考虑信用问题< '_'>,在已经发放了一定的金额后,要使得银行的每一次放款(分配资源)都能使得银行(系统)的运行安全(预防死锁)(可以这么理解吧),因此银行家要对现有的资金进行合理分配发放,基本要求要银行必须保留一定的存款不能低于一定的限度(临界资源),同时又不能不放贷款不然会让客户“饿死”(进程饥饿),客户在使用完贷款后要返还(释放)这笔贷款,当然是没有利息的,然后银行要再分配给客户,直到满足客户的多有贷款请求

Read more…

Categories: 算法研究 Tags: , ,

[算法]简单的背包问题递归解法,C语言实现

January 4th, 2009 8 comments

今天讲点简单的算法,最简单的背包0算法,使用了递归的方法,相信看完代码的朋友会发现这段代码很熟悉,不过CG提供这些代码的目的只是让全部背包算法的完整提供地给大家,代码很简单,相信高手一看就懂,这里的背包算法只是考虑了物品的重量,没有考虑物品的价值,是初学递归算法的朋友必看的代码,高手的话全当复习一下吧。
因为CG最近要考试了,一口气要考6门,所以博客更新没有这么快了,请大家见谅不过我还是会保持每天提供至少一篇的速度写博文,希望大家能支持,谢谢
预告下明天的算法博文,《银行家算法》,今天复习了下操作系统,晚上重新安装了系统,浪费了两个小时,代码明天调试后奉上,希望大家继续关注。

Read more…

Categories: 算法研究 Tags: ,