用NewBing来编写一个简单的函数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值,并打印出来。 includeiostreamdefineN5定义周期为5定义一个函数模板,计算给定数组的MA值,并返回一个新数组templatetypenameTTMA(Tarr〔〕,intsize){创建一个新数组,用于存储MA值TmanewT〔size〕;遍历原数组,计算每个元素对应的MA值for(inti0;isize;i){如果i小于N1,则前N个元素不足以计算MA值,用0代替if(iN1){ma〔i〕0;}else{否则,计算前N个元素的和,并除以N得到MA值Tsum0;for(intjiN1;ji;j){sumarr〔j〕;}ma〔i〕sumN;}}返回新数组returnma;}定义一个函数模板,打印给定数组的内容templatetypenameTvoidprintArray(Tarr〔〕,intsize){std::cout〔;for(inti0;isize;i){std::coutarr〔i〕;if(i!size1){std::cout,;}}std::cout〕;}intmain(){定义一个测试数组doubletest〔〕{35,34,37,36,35,38};intlensizeof(test)sizeof(test〔0〕);计算数组长度调用MA函数模板,得到结果数组doubleresultMA(test,len);打印原数组和结果数组std::cout原数组:;printArray(test,len);std::cout结果数组:;printArray(result,len);} 从公式整个逻辑结构来看,还是很标准了,公式中有很详细的注释,注释都是两斜杠,找到符合主代码段,通过查看软件的接口规范,再编写公式函数dll载入软件中,一般的都有示范程序,如TestPluginTCal。会有DLL函数结构,头文件,包括注册DLL函数基本信息。这样写好封装的就是在公式显示的就是一个调用,类似这样TDXDLL2(1,H,C,C),公式就不是明文了,这样除了加密外,还提高公式的运行效率,公式自由化,也更趋向于自动化交易方向。