Python 下载 tushare 数据,然后调用 C++ DLL 计算 wMA 存入本地 csv 文件再 python 读取
CMakeLists.txt
- project(wMA)
- add_library(wMA SHARED wMA.cpp)
wMA.h
- #pragma once
- #ifndef WMA_WMA_H
- #define WMA_WMA_H
- #endif
- #ifdef BUILD_WMA_DLL
- #define IO_WMA_DLL __declspec(export)
- #else
- #define IO_WMA_DLL __declspec(import)
- #endif
- extern "C"
- {
- IO_WMA_DLL int wMA(double array[], int arrayLen, int n);
- }
wMA.cpp
- #define BUILD_WMA_DLL
- #include "wMA.h"
- #include <iostream>
- #include <fstream>
- using namespace std;
- IO_WMA_DLL int wMA(double array[], int arrayLen, int n)
- {
- cout << "欢迎光临..." << endl;
- cout << "开始计算..." << endl;
- int m = n;
- double wMA[arrayLen];
- if(arrayLen >= n && n >= 0)
- {
- switch(n)
- {
- case 0:
- {
- cout << "长度为零..." << endl;
- for(int i = 0; i < m; i++)
- {
- wMA[i] = 0;
- }
- break;
- }
- default:
- {
- for(int i = 0; i < m - 1; i++)
- {
- wMA[i] = 0;
- }
- while(arrayLen >= m)
- {
- double temp = 0;
- for(int i = m - n, j = 0; i < m; i++, j++)
- {
- temp += array[i] * j;
- }
- wMA[m - 1] = temp / n;
- m++;
- }
- break;
- }
- }
- }
- else
- {
- cout << "长度错误..." << endl;
- }
- cout << "存入文件..." << endl;
- ofstream fWMA("c:\\wMA.csv");
- if(!fWMA)
- {
- cout << "打开错误..." << endl;
- return -1;
- }
- else
- {
- fWMA << "Index" << "," << "index of sh" << "," << "wMA" << "," << endl;
- for(int i = 0; i < arrayLen; ++i)
- {
- fWMA << i << "," << array[i] << "," << wMA[i] << "," << endl;
- }
- cout << "完成写入..." << endl;
- fWMA.close();
- return 1;
- }
- }
wMA.py
- import tushare
- from ctypes import *
- # 数据预处理
- dataFrame = tushare.get_hist_data('sh')
- open = dataFrame['open'].values
- openLen = len(open)
- # python 的 list 格式转为 c 的 array 格式
- array = (c_double * openLen)(*open)
- arrayLen = openLen
- # 调用 DLL 函数 wMA 算出 wMA 值存入文件
- hDLL = CDLL('C:\\Users\\Perelman\\.CLion2016.1\\system\\cmake\\generated\\wMA-4d5bfe42\\4d5bfe42\\Debug\\libwMA.dll')
- print(hDLL.wMA(array, arrayLen, 5))
![]()
读取 csv,调整后存数据库,python socket 和 mysql 部分见其他随笔,
- import pandas
- dataFrame = pandas.DataFrame(pandas.read_csv("c:\\wMA.csv"))
- print(dataFrame)
- dataFrame = dataFrame.drop(['Unnamed: 3'], axis=1)
- print(dataFrame)
Python 下载 tushare 数据,然后调用 C++ DLL 计算 wMA 存入本地 csv 文件再 python 读取的更多相关文章
- CSV文件在Python中的几种处理方式
Comma Separated Values,简称CSV,它是一种以逗号分隔数值的文件类型.在数据库或电子表格中,它是最常见的导入导出格式,它以一种简单而明了的方式存储和共享数据,CSV文件通常以纯文 ...
- csv文件已经python内置csv模块
csv(Comma Separated Value,即逗号分隔值),文件以纯文本形式存储表格数据(数字和文本).可以用excel打开,并自动将每个逗号隔开的数据作为一列在excel中显示. pytho ...
- 将Excel文件转为csv文件的python脚本
#!/usr/bin/env python __author__ = "lrtao2010" ''' Excel文件转csv文件脚本 需要将该脚本直接放到要转换的Excel文件同级 ...
- C++ 把数组数据存入 CSV 文件,以及读取 CSV 文件的数据
1. CSV-百度百科 2. 代码 #pragma once //Microsoft Visual Studio 2015 Enterprise #include<iostream> #i ...
- Jmeter实现从csv文件中随机读取数据
一.需求 参数放在csv文件中,文件格式如下,需求每次从文件中随机读取一行数据. 二.步骤 1.在csv文件中新增加一列,pl 2.新增一个配置原件-随机数,设置如下: 50是文件数据的行数 3.新增 ...
- ean13码的生成,python读取csv中数据并处理返回并写入到另一个csv文件中
# -*- coding: utf-8 -*- import math import re import csv import repr def ean_checksum(eancode): &quo ...
- Android调用系统自带的文件管理器进行文件选择并读取
先调用: intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("*/*"); //设置类型,我这里是任意类 ...
- python下载youtube视频
谷歌开源了一个新的数据集,BoundingBox,(网址在这里)这个数据集是经过人工标注的视频数据集,自然想将它尽快地运用在实际之中,那么首先需要将其下载下来:可以看到网址上给出的是csv文件,该文件 ...
- 使用Python读写csv文件的三种方法
Python读写csv文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 前言 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是 ...
随机推荐
- NFR
你NFR了吗? NFR,即非功能性需求 (Non -Functional Requirements) ,即系统能够完成所期望的工作的性能与质量.具体包括如下内容: – 效率: 软件实现其功能所需要的计 ...
- tuple放入dict中
tuple放入dict中是否可以正常运行 # 将tuple放入dict中 a = ('AI','Kobe','Yao') b = ('AI',['Kobe','Yao']) dict1 = {'a': ...
- 如何用Github版本控制非Github库
Git的图形化客户端有很多,不同的人可能习惯用不同的客户端.本人更习惯于Github的客户端,因为上Github比较多,同步代码到Github用官方的客户端是最方便的,所以也就更习惯于使用Github ...
- 消费RabbitMQ时的注意事项,如何禁止大量的消息涌到Consumer
按照官网提供的订阅型写法( Retrieving Messages By Subscription ("push API")) 我发现,RabbitMQ服务器会在短时间内发送大量的 ...
- git-入门
一.简介 Git是目前世界上最先进的分布式版本控制系统,Git中绝大部分操作都是访问本地资源,不需要网络,其中有三个概念比较重要:1. 工作目录 2. 暂存区域 3.本地仓库. 简单说明一下,工作目录 ...
- pptpvpn 连接后 无法上外网
VPN拨号后只能连内网,不能上外网的原因和解决方法 因为众所周知的原因,很多个人或者单位需要架设自己的VPN.会遇到一些奇怪的情况,比如说:为什么连上单位的VPN后就只好上公司的内网(局域网),外网( ...
- 如何通过JS调用某段SQL语句
如何通过JS调用某段SQL语句,这样的需求在报表.数据平台开发中很常见.以报表平台FineReport开发为例,例如在点击某个按钮之后,来判断一下数据库条数,再决定下一步操作.那这在后台如何实现呢? ...
- bug描述技巧
进入测试行业已经两年了,我从未认真的考虑过提交一个bug需要注意哪些问题,只是主观的认为我只需要描述清楚就OK了,但是我在工作中发现有个别的开发经常跑来告诉我"这个bug你是不是描述错了&q ...
- java日志组件介绍(common-logging,log4j,slf4j,logback )
转自:http://www.blogjava.net/daiyongzhi/archive/2014/04/13/412364.html common-logging是apache提供的一个通用的日志 ...
- 由Photoshop高反差保留算法原理联想到的一些图像增强算法。
关于高反差保留的用处说明呢,从百度里复制了一段文字,我觉得写得蛮好的: 高反差保留就是保留图像的高反差部分,再说得真白些,就是保留图像上像素与周围反差比较大的部分,其它的部分都变为灰色.拿一个人物照片 ...