龙空技术网

用Bing来编写金融行情软件上的程序,选择C++来实现DLL调用

活茁 670

前言:

如今大家对“c编写dll文件”大约比较看重,姐妹们都想要学习一些“c编写dll文件”的相关文章。那么小编在网上汇集了一些对于“c编写dll文件””的相关文章,希望姐妹们能喜欢,小伙伴们一起来学习一下吧!

用New Bing来编写一个简单的函数MA,这种函数用于金融行业行情软件上,通过Bing来实现对MA,EXPMA,MACD,KDJ等公式的函数分解,分解后进行编译,封装成DLL文件供公式管理器调用,动态的不能封装到exe文件里加密,静态的可以封装到exe文件里加密,将会大大增加和谐的难度,或者没法和谐。这样写公式是很多销售公式的人经常使用的加密手段。来看看一个初级的MA,这个MA必应会怎么写出来。

我就问一个模糊并且简单的问题,用C++编写一段MA函数,平均移动线。它给我展示的是先从网络上搜索,然后再做回答。过程就是先寻找主谓宾,然后就开始搜索网络,正在搜索: MA函数 C++

正在搜索: MA函数 C++

正在为你生成答案…

正在为你生成答案…

您好,这是Bing。我可以帮您用C++编写一段MA函数,平均移动线。根据搜索结果12,C++中的main函数是程序的入口函数,可以接受命令行参数argc和argv,也可以使用Microsoft特有的wmain或_tmain函数来支持Unicode字符。下面是一个简单的示例代码,使用简单移动平均法计算给定数组的MA值,并打印出来。

#include <iostream>#define N 5 //定义周期为5//定义一个函数模板,计算给定数组的MA值,并返回一个新数组template <typename T>T* MA(T arr[], int size){    //创建一个新数组,用于存储MA值    T* ma = new T[size];    //遍历原数组,计算每个元素对应的MA值    for(int i = 0; i < size; i++){        //如果i小于N-1,则前N个元素不足以计算MA值,用0代替        if(i < N - 1){            ma[i] = 0;        }else{            //否则,计算前N个元素的和,并除以N得到MA值            T sum = 0;            for(int j = i - N + 1; j <= i; j++){                sum += arr[j];            }            ma[i] = sum / N;        }    }    //返回新数组    return ma;}//定义一个函数模板,打印给定数组的内容template <typename T>void printArray(T arr[], int size){    std::cout << "[";    for(int i = 0; i < size; i++){        std::cout << arr[i];         if(i != size - 1){            std::cout << ", ";        }    }    std::cout << "]\n";}int main(){    //定义一个测试数组    double test[] = {35,34,37,36,35,38};    int len = sizeof(test) / sizeof(test[0]); //计算数组长度    //调用MA函数模板,得到结果数组    double* result = MA(test, len);    //打印原数组和结果数组    std::cout << "原数组:\n";    printArray(test, len);        std::cout << "结果数组:\n";    printArray(result, len);}

从公式整个逻辑结构来看,还是很标准了,公式中有很详细的注释,注释都是两斜杠,找到符合主代码段,通过查看软件的接口规范,再编写公式函数dll载入软件中,一般的都有示范程序,如TestPluginTCal。会有DLL函数结构,头文件,包括注册DLL函数基本信息。这样写好封装的就是在公式显示的就是一个调用,类似这样TDXDLL2(1,H,C,C),公式就不是明文了,这样除了加密外,还提高公式的运行效率,公式自由化,也更趋向于自动化交易方向。

标签: #c编写dll文件