郁金香指标开源库的使用--(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就是来源于今天要 ...
随机推荐
- FTP上传(批处理)
将以下内容保存为名为ftp_upload.txt的文件: open 192.168.11.199testw\adadminboc.123binaryput e:\wt.zipbye 在命令提示符下运行 ...
- Python学习---Python数据类型1206
1.1. 字符串格式化 字符格式化输出 占位符 %s s = string %d d = digit 整数 %f f = float 浮点数,约等于小数 #version: python3.2 ...
- 使用普通用户set autotrace on报错SP2-0618: Cannot find the Session Identifier
普通用户使用 autotrace,出现如下报错: SQL> set autotrace on SP2-0618: Cannot find the Session Identifier. Che ...
- UVA 10617 Again Palindrome 区间DP
题目链接: https://cn.vjudge.net/problem/UVA-10617 题目大意: 问有几种删除字符的方法可以使得该字符串为回文. 解题思路: 删除字符得到回文串的方法数 等于 字 ...
- POJ1375 Intervals
嘟嘟嘟 题意简述:给出一个光源\((x_0, y_0)\),和一些圆,求投影区间. 这道题其实就是求经过\((x_0, y_0)\))的圆的切线. 刚开始我想到了一个用向量旋转的方法,但是写起来特别麻 ...
- background-clip 实现字体渐变效果
background-clip 实现字体渐变效果 (一)类似KTV字幕效果 @-webkit-keyframes loop{ 0%{background-position: -800px 0;} 10 ...
- Java java httpclient4.5 进行http,https通过SSL安全验证跳过,封装接口请求 get,post(formdata,json)封装,文件上传下载
package api; import java.util.*; import java.net.URI; import org.apache.http.Consts; import org.apac ...
- 安卓混合开发——原生Java和H5交互,保证你一看就懂!
** 在Android开发中,越来越多的商业项目使用了Android原生控件与WebView进行混合开发,当然不仅仅就是显示一个WebView那么简单,有时候还需要本地Java代码与HTML中的Jav ...
- [转]SQL Server 数据库中的 MD5 和 SHA1
MD5 和 SHA1 是一种单向加密算法,常用于密码的验证等需要加密操作的场合,在一般情况下,开发人员可以通过 Delphi 或 PHP 这类语言自己编写相关函数或者使用自带的函数,然后将加密过的结果 ...
- Selenium & Webdriver 远程测试和多线程并发测试
Selenium & Webdriver 远程测试和多线程并发测试 Selenium Webdriver自动化测试,初学者可以使用selenium ide录制脚本,然后生成java程序导入ec ...