用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),公式就不是明文了,这样除了加密外,还提高公式的运行效率,公式自由化,也更趋向于自动化交易方向。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved