郁金香指标开源库的使用--(tulipindicators-0.8.4)
瞎逛发现最新出了这么一个指标库,有100多种指标的函数库,文档写的比较好,重要的是作者一直在维护。
把它编成库,然后测试一下,可用于自动交易,策略交易等开发。
1.下载地址
https://github.com/TulipCharts/tulipindicators
2.编译成DLL,和lib
打开VS2015,文件->新建->项目...
然后,选择“win32 控制台程序” ,导向最后一步,选择“空项目”,反选“预编译头文件”
3.导入文件
右键工程属性 -> "在文件资源管理器中打开文件夹" -》把“indicators.h” 文件,以及“utils”,“indicators”2个目录拷贝到工程下 -》“显示所有文件”
4.修改所有文件为在项目中包含
选中文件右键-》在项目中包含
右键-》工程属性->改为DLL类型
5.生成导出DLL
要生成DLL和lib导出库,需要有导出标记“__declspec(dllexport)”,在函数声明和实现文件的头部都需要加上这个字串。
在函数中发现一个共性,函数名称都已“ti_”开头 ,返回类型为“int”,于是打开工程替换(CTRL + H),选中“整个解决方案” ,“__declspec(dllexport) int ti ” 替换掉 “ int ti_” ,选择全部替换,最后爆出工替换“369”处。
6.编译
indoicatorLib.vcxproj -> E:\work\tulipindicators-master\indoicatorLib\x64\Release\indoicatorLib.dll
提示成功。
7.加入测试代码
就在本工程程添加项目:右键工程 -》 新建项目 。。 。 添加一个工程“”TestIndicator"(一个控制台空项目,应用程序工程).
添加测试cpp,文件main.cpp:
文件main.cpp:
#include "test_sma.hpp"
#include "test_crossover.hpp"
#include "test_boll.hpp" int main()
{
test_crossover();
test_sma();
test_boll(); return ;
}
列出一个上穿指标测试代码:
void test_crossover()
{
TI_REAL input1[] = { , , , , , , , , , , };
TI_REAL input2[] = { , , , , , , , , , , };
/* Example usage of Crossover */
/* Assuming that 'input1' and 'input2' are pre-loaded arrays of size 'in_size'. */
TI_REAL *inputs[] = { input1, input2 };
TI_REAL options[]; /* No options */
TI_REAL *outputs[]; /* crossover */ int in_size = ;
/* Determine how large the output size is for our options. */
const int out_size = in_size - ti_crossover_start(options); /* Allocate memory for output. */
outputs[] = reinterpret_cast<double *>( malloc(sizeof(TI_REAL) * out_size) );
assert(outputs[] != ); /* crossover */ /* Run the actual calculation. */
const int ret = ti_crossover(in_size, inputs, options, outputs);
assert(ret == TI_OKAY); printf("The output data is: ");
print_array(outputs[], out_size); } 输入序列:
index:0~N
序列1:{4, 4, 6, 6, 6, 4, 4, 6, 5, 5, 5}
序列2:{5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5}
输出序列:
index:1 ~ N
{0, 1, 0, 0, 0, 0, 1, 0, 0, 0}
序列1和序列2,数据长度相同,crossover输出从index1开始,检测由下往上的上穿,1表示true;

具体代码代码见:(下载)
郁金香指标开源库的使用--(tulipindicators-0.8.4)的更多相关文章
- Android6.0运行时权限(基于RxPermission开源库)
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 在6.0以前的系统,都是权限一刀切的处理方式,只要用户安装,Manifest申请的权限都会被赋予,并且安装后权限也撤销不了. And ...
- 17 win7 sp1 x64/VS2015下配置creo4.0二次开发环境——调用了众多开源库(ceres-solver,PCL1.8.0,office 2016COM接口,MySql数据库等)
0 引言 本次开发环境的配置是在综合考虑了开源库的版本.VS版本以及CREO4.0的版本,同时针对甲方需求选择了win7 sp1 x64系统. 配置的过程中遇到了形形色色的问题,但是一一解决了.通过这 ...
- 使用的一些支持swift3.0的开源库
#解决键盘弹起遮挡工具 pod 'IQKeyboardManagerSwift', '~>4.0.6' #多种类型弹出框 pod 'SCLAlertView', :git => 'http ...
- 【踩坑速记】开源日历控件,顺便全面解析开源库打包发布到Bintray/Jcenter全过程(新),让开源更简单~
一.写在前面 自使用android studio开始,就被它独特的依赖方式:compile 'com.android.support:appcompat-v7:25.0.1'所深深吸引,自从有了它,麻 ...
- Java下好用的开源库推荐
作者:Jack47 转载请保留作者和原文出处 欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 本文想介绍下自己在Java下做开发使用到的一些开源的优秀编程库,会不定 ...
- 【转】用JitPack发布开源库时附加文档和源码
来自:http://www.gcssloop.com/course/jitpack-sources-javadoc 用JitPack发布开源库时附加文档和源码 很早之前写过一篇用JitPack发布An ...
- libCURL开源库在VS2010环境下编译安装,配置详解
libCURL开源库在VS2010环境下编译安装,配置详解 转自:http://my.oschina.net/u/1420791/blog/198247 http://blog.csdn.net/su ...
- GitHub上那些值得一试的JAVA开源库--转
原文地址:http://www.jianshu.com/p/ad40e6dd3789 作为一名程序员,你几乎每天都会使用到GitHub上的那些著名Java第三方库,比如Apache Commons,S ...
- .NET蓝牙开源库:32feet.NET
在用C#调用蓝牙编程一文中我留个小悬念就是:InTheHand.Net.Personal.dll是怎么来的?这篇文章来解答这个问题,InTheHand.Net.Personal.dll就是来源于今天要 ...
随机推荐
- ZT 蓝牙的AVDTP协议笔记
我的电子杂烩饭 http://blog.sina.com.cn/wuchuchu2012 [订阅][手机订阅] 首页 博文目录 图片 关于我 个人资料 Tifnan Qing 微博 加好友 发纸条 写 ...
- [BZOJ 1592] Making The Grade路面修整
1592: [Usaco2008 Feb]Making the Grade 路面修整 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 704 Solv ...
- 简单说说Spring Security 使用(附加验证码登录,自定义认证)
先看官方文档:http://docs.spring.io/spring-security/site/docs/4.0.x/reference/htmlsingle/ spring security4已 ...
- BZOJ2780:[SPOJ8093]Sevenk Love Oimaster(广义SAM)
Description Oimaster and sevenk love each other. But recently,sevenk heard that a girl named ChuYuXu ...
- DP入门——01背包 & 完全背包
01背包: 采药: https://www.luogu.org/problemnew/show/P1048 #include <iostream> #include <algorit ...
- 35、springboot-运行状态监控使用Actuator
Spring Boot Actuator 提供了运行状态监控的功能 Actuator 监控数据可以通过阻REST远程 shell 和JMX方式获得.我 首先来介绍通过 REST 方式查看 Actuat ...
- leetcode64. Minimum Path Sum
这个题是从左上角到右下角的路径和最小,实际就是一道dp题. 第一种写法是只初始化(0,0)位置,第二种写法则是把第一行.第一列都初始化了.个人更喜欢第二种写法,简单一点. dp的右下角的值就为最终的值 ...
- Java Calendar and SimpleDateFormat 时间模块
package UtilTest; import java.util.Calendar; import java.text.SimpleDateFormat; import org.apache.co ...
- Kmalloc和Vmalloc的区别
kmalloc()和vmalloc()介绍kmalloc()用于申请较小的.连续的物理内存1. 以字节为单位进行分配,在<linux/slab.h>中2. void *kmalloc(si ...
- Linux环境下部署SpringBoot项目
1.在pom文件中添加maven插件 <build> <plugins> <plugin> <groupid>org.springframework.b ...