更多精彩内容,欢迎关注公众号:数量技术宅.想要获取本期分享的完整策略代码,请加技术宅微信:sljsz01 TradingView平台简介 前段时间,有粉丝找到技术宅,表示他有一个常用的交易平台,叫做TradingView,希望技术宅能将分享的策略,用这个平台的语言改写.确实,有部分交易者,他们长时间在某个平台交易,适应了这个平台的操作,而有相当一部分平台,会提供量化交易的接口,或者内置一些简易的可编程语言,帮助大家实现指标计算.甚至是自动交易. 打开TradingView的主页,可以看到Trad…
更多精彩内容,欢迎关注公众号:数量技术宅.想要获取本期分享的完整策略代码,请加技术宅微信:sljsz01 为何使用交易开拓者(TB)作为回测工具 交易开拓者(后文以TB简称)是一个支持国内期货市场K线数据回测.交易的第三方交易平台.TB自带回测框架,投资者在开发量化策略时,只需关注实现策略主逻辑,它的自带编程语言相比较C++.Python也更简单,适合编程零基础的投资者快速上手.TB自带的基于K线的回测框架,在期货市场已经经过许多交易员多年实盘的检验,结果稳定可靠. 尽管TB回测框架完善.语法简…
pybacktest 教程 本教程让你快速了解 pybacktest's 的功能.为此,我们回测精典交易策略移动平均线MA交叉. MA快线上穿慢线时,买进做多 MA快线下穿慢线时,卖出做空 进场规则,也是退场规则,交易策略相反相成 软件包在此下载 https://github.com/ematvey/pybacktest import pybacktest import pandas as pd pybacktest 要求的 k 线数据格式为 pandas.DataFrame ,以时间戳为索引,…
手把手教你用Python搭建自己的量化回测框架[均值回归策略] 引言 大部分量化策略都可以归类为均值回归与动量策略.事实上,只有当股票价格是均值回归或趋势的,交易策略才能盈利.否则,价格是随机游走的,交易将无利可图.均值回归是金融学的一个重要概念,指股票价格无论高于或低于价值中枢都会以很高的概率向价值中枢回归的趋势.中国古语"盛极而衰,否极泰来",就暗含着均值回归的思想.如果说要为均值回归寻找一个比较合理的理论解释,不妨借鉴一下索罗斯的"反身性理论".索罗斯认为.市…
年初学习量化投资,一开始想自己从头写,还是受了C/C++的影响.结果困在了计算回测数据那里,结果老也不对,就暂时放下了.最近试了一下python的各个量化投资框架,发现一个能用的——pyalgotrade,重新开始吧.这是一个事件驱动型量化交易框架. 使用pyalgotrade的一大问题是数据获取,其支持从yahoo,谷歌等途径获得数据,但要获取A股数据比较麻烦.还是用tushare获取数据比较方便.但pyalgotrade并不直接支持tushare数据格式.网上有人介绍了将tushare数据转…
原文连接:https://www.fmz.com/digest-topic/4009 大部分策略在实盘之前都需要回测进行验证,FMZ支持部分品种数字货币现货.期货和永续合约,以及商品期货所有品种.但发明者量化平台的回测机制和常见的onbar回测有所区别,造成了很多新手的困惑.本文将详细说明并解答一些常见的回测问题.   回测系统是如何运作的? 如上图所示,回测开始时间到结束时间可以当作一个时间轴,回测时,回测时间点沿轴从左到右移动开始回测,在这个时间点上,只能获取到此点之前的历史数据,策略根据这…
Determine whether an integer is a palindrome. Do this without extra space. click to show spoilers. Some hints: Could negative integers be palindromes? (ie, -1) If you are thinking of converting the integer to string, note the restriction of using ext…
写一个方法,让"1234"变成回文数字“1234321”,就是顺着读和倒着读都是一样的:注:不让用reverse()方法: function palindrome(str){ var arr = str.split(""); var arr1 = [];  for (var i = arr.length - 1; i >= 0; i--) { arr1.push(arr[i]);}var arr2=arr.concat(arr1);var index=arr2…
用Python编写的第一个回测程序 2016-08-06 def savfig(figureObj, fn_prefix1='backtest8', fn_prefix2='_1_'): import datetime fmt= '%Y_%m_%d_%H_%M_%S' now = datetime.datetime.now() fname_savfig = fn_prefix1 + fn_prefix2 + now.strftime(fmt)+ '.png' figureObj.savefig(…
题意:给定i,输出第i个回文数字. 分析:1,2,3,4,……,9------------------------------------------------------------------------------------------9个 11,12,13,14,……,19-------------------------------------------------------------------------------------9个 101,111,121,131,141…
package cn.magicdu.algorithm; public class CircleNumber { public static void main(String[] args) { for(int i=10;i<10000;i++){ if(isCircleNumber(i)){ System.out.println(i); } } } /** * 判断是否是回文数字 * @param num * @return */ private static boolean isCircl…
程序参数 PARAMS = { "start_time": "2017-02-01 00:00:00", "end_time": "2017-08-01 00:00:00", "slippage": 0.003, # 此处"slippage"包含佣金(千二)+交易滑点(千一) "account_initial": {"huobi_cny_cash"…
作者: 阿布 阿布量化版权所有 未经允许 禁止转载 abu量化系统github地址(欢迎+star) 本节ipython notebook 之前的小节回测示例都是使用美股,本节示例A股市场的回测. 买入因子,卖出因子等依然使用相同的设置,如下所示: # 设置初始资金数 read_cash = 1000000 # 买入因子依然延用向上突破因子 buy_factors = [{'xd': 60, 'class': AbuFactorBuyBreak}, {'xd': 42, 'class': Abu…
转自:http://www.cnblogs.com/dxf813/p/7845398.html 基于zipline的分钟回测改写,其中数据源为自定义,使用bcolz的ctable,该数据格式与pandas的DataFrame很好兼容,并且bcolz文件压缩率很好.以下主要记录此次改写回测整个过程中涉及类和方法,没有附带代码. 一,自定义分钟回测数据源BcolzBacktestMinData类 def zk_get_min_data 取获得多只股票某个时间点前的N个指定字段的值 def zk_ge…
问题描述 观察数字:, 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的.这样的数字叫做:回文数字. 本题要求你找到一些5位或6位的十进制数字.满足如下要求: 该数字的各个数位之和等于输入的整数. 输入格式 一个正整数 n (<n<), 表示要求满足的数位和. 输出格式 若干行,每行包含一个满足要求的5位或6位整数. 数字按从小到大的顺序排列. 如果没有满足条件的,输出:- 样例输入 样例输出 样例输入 样例输出 - 题目描述 代码如下: #include <stdio.h&…
又是好久没更新了,2月这一个月,工作上也忙,正好也是过年.加上前一段时间,一直在爬取某眼查的数据. 对VNPY的使用时间就减少了,不过最近还是完成了vnpy回测结构的思维导图.如下: 值得注意的是,vnpy本身提供两种回测统计功能:1.按日统计结果 2.按笔统计结果 这两种统计都是单利统计,与实盘操作上略有不同. 大家有需要的话,可以自己行改成复利统计,只需要在每笔的净利润上乘以手数,然后加总当前资金,得出新的当前资金,然后使用新的当前资金和仓位计算下笔开开仓手数即可. 最后还是老规矩,附上xm…
题目链接:http://lx.lanqiao.org/problem.page? gpid=T113   历届试题 回文数字   时间限制:1.0s   内存限制:256.0MB      问题描写叙述 观察数字:12321,123321 都有一个共同的特征,不管从左到右读还是从右向左读,都是同样的.这种数字叫做:回文数字. 本题要求你找到一些5位或6位的十进制数字.满足例如以下要求: 该数字的各个数位之和等于输入的整数. 输入格式 一个正整数 n (10<n<100), 表示要求满足的数位和…
Long Time No See !   题目链接https://leetcode.com/problems/palindrome-number/?tab=Description   首先确定该数字的位数.按照已知数字x对10进行多次求余运算,可以得到数字位数. 具体思路: 1.每次取出该数字的最高位和最低位进行比较. 2.如果不相等则直接返回FALSE, 3.如果相等修改x的值(去掉最高位也同时去掉最低位)其中去掉最高位可以通过求模运算,去掉最低位可以采用除以10 4.进行循环直到x的值不大于…
目录 1 问题描述 2 解决方案   1 问题描述 问题描述 观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的.这样的数字叫做:回文数字. 本题要求你找到一些5位或6位的十进制数字.满足如下要求: 该数字的各个数位之和等于输入的整数. 输入格式 一个正整数 n (10<n<100), 表示要求满足的数位和. 输出格式 若干行,每行包含一个满足要求的5位或6位整数. 数字按从小到大的顺序排列. 如果没有满足条件的,输出:-1 样例输入 44 样例输…
量化投资策略:常见的几种Python回测框架(库) 原文地址:http://blog.csdn.net/lawme/article/details/51454237 本文章为转载文章.这段时间在研究量化策略方向,研究了Zipline一段时间,但是后续发现他仅支持美国股票,收集量化策略文章,转载到博客中. 在实盘交易之前,必须对量化交易策略进行回测.在此,我们评价一下常用的Python回测框架(库).评价的尺度包括用途范围(回测.虚盘交易.实盘交易),易用程度(结构良好.文档完整)和扩展性(速度快…
pybacktest 的疑点 第(一)节“教程”原文,是用 ipython notebook 写成,程序代码是一些片段组成. 为了阅读方便,合并在一起. 本文转载于:http://blog.csdn.net/lawme/article/details/51773744 import pybacktest import pandas as pd ohlc = pybacktest.load_from_yahoo('SPY') ohlc.tail() short_ma = 50 long_ma = …
我现在在做一个叫<leetbook>的开源书项目,把解题思路都同步更新到github上了,需要的同学可以去看看 地址:https://github.com/hk029/leetcode 这个是书的地址:https://hk029.gitbooks.io/leetbook/ 009. Palindrome Number[E] 问题: Determine whether an integer is a palindrome. Do this without extra space. 思路 这里说不…
本文主要记录我构建量化回测系统的学习历程. 被遗弃的项目:Chandlercjy/OnePy_Old 新更新中的项目:Chandlercjy/OnePy 目录 1. 那究竟应该学习哪种编程语言比较好呢? 2. 是否也有些python在线教学视频可以加速学习? 3. 那有没有什么现成的回测系统可以直接拿来用,避免重复造轮子? 4. 既然学习别人的框架那么困难,不如自己写一个框架出来? 5. 写出这个回测框架之后,我开始思考,如何接入实盘交易? 6. 再写一个完善的 OnePy 回测框架. 正文:…
题目:一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同. 下面是代码: package test; public class BackNum { public static void main(String [] args){ BackNum demo = new BackNum(); System.out.println(demo.checkNum(123454321)); } public String checkNum(long number){ Str…
Determine whether an integer is a palindrome. Do this without extra space. 题目标签:Math 题目给了我们一个int x, 让我们判断它是不是回文数字. 首先,负数就不是回文数字,因为有个负号. 剩下的都是正数,只要把数字 reverse 一下,和原来的比较,一样就是回文. 当有overflow 的时候,返回一个负数就可以了(因为负数肯定不会和正数相等). Java Solution: Runtime beats 61.…
Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward. Example 1: Input: 121 Output: true Example 2: Input: -121 Output: false Explanation: From left to right, it reads -121. From right to…
量化系统投入实际使用之前,人们会希望提前测试交易的效果.这个期间往往涉及代码的改动和参数的调整.最常见的做法是将历史数据输入量化系统,让量化系统根据既定的交易逻辑进行操作,观察和分析交易结果,找到问题所在,调整量化系统,然后以此循环,直到效果达到预期为止. 该过程在业界被称为回测.回测是量化工作者常见的工作内容之一. Note 很遗憾的是,回测跟实盘交易永远存在差距,再好的系统也无法回避.现在市面上有几个开源的回测引擎框架,虽然减少了回测的开发工作量,但或多或少都存在回测的误差.在此,我们优先介…
description 如果一个字符串从后往前读与从前往后读一致,我们则称之为回文字符串.当一个数字不包含长度大于1的子回文数字时称为非回文数字.例如,16276是非回文数字,但17276不是,因为它包含回文数字727. 你的任务是在一个给定的范围内计算非回文数字的总数. analysis 平生最怂的数位\(DP\),询问自然拆开两段做 设\(f[i][j][k][0/1]\)表示做到第\(i\)位.第\(i\)位数字为\(j\).第\(i-1\)位数字为\(k\).是否刚好顶上界的合法方案数…
一.RQalpha github 地址  https://github.com/ricequant/rqalpha 1.运行test.py文件,显示 No module named 'logbook.base'. 解决先卸载再安装: pip uninstall logbook   pip install logbook 2.出现:RuntimeError: 请设置账户及初始资金. 解决: 二.Zipline github地址  https://github.com/quantopian/zipl…
历届试题 回文数字 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的.这样的数字叫做:回文数字. 本题要求你找到一些5位或6位的十进制数字.满足如下要求: 该数字的各个数位之和等于输入的整数. 输入格式 一个正整数 n (10<n<100), 表示要求满足的数位和. 输出格式 若干行,每行包含一个满足要求的5位或6位整数. 数字按从小到大的顺序排列. 如果没有满足条件的,输出:-1…