楼主: duojinian
1782 0

[股票] O1C均收益回测指数DLL源代码 [推广有奖]

  • 0关注
  • 4粉丝

硕士生

86%

还不是VIP/贵宾

-

威望
0
论坛币
17 个
通用积分
7.4579
学术水平
19 点
热心指数
31 点
信用等级
12 点
经验
7814 点
帖子
328
精华
0
在线时间
45 小时
注册时间
2011-8-11
最后登录
2026-1-4

楼主
duojinian 发表于 2017-12-29 12:13:17 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
// O1C , O2C , 均收益源代码
//【第1/3部分】 TDX 指标文件 A.171229 start
// CNT1: TDXDLL1(1,C,O,1), COLOR00FF00, NODRAW;
// O1C:  TDXDLL1(2,C,O,2), COLORFF0000;
// CNT2: TDXDLL1(3,C,O,1), COLOR0000FF, NODRAW;
// O2C:  TDXDLL1(4,C,O,2), COLORFFCC00;
//【第1/3部分】 TDX 指标文件 A.171229 end



//【第2/3部分】 DLL工程 头文件 A.171229 start
//#ifndef __PUBLICHEAD_H__
//#define __PUBLICHEAD_H__
//#ifndef __TCALC_FUNC_SETS
//#define __TCALC_FUNC_SETS
//// note1: copy from PluginTCalcFunc.h
//#pragma pack(push,1)
//// note2: 函数(数据个数,输出,输入a,输入b,输入c)
//typedef void(*pPluginFUNC)(int,float*,float*,float*,float*);
//typedef struct tagPluginTCalcFuncInfo
//{
//        unsigned short                nFuncMark;//函数编号
//        pPluginFUNC                        pCallFunc;//函数地址
//}PluginTCalcFuncInfo;
//typedef BOOL(*pRegisterPluginFUNC)(PluginTCalcFuncInfo**);  
//#pragma pack(pop)
//// note3: copy from PluginTCalcFunc.h
//#ifdef __cplusplus
//extern "C"
//{
//#endif //__cplusplus
//        __declspec(dllexport) BOOL RegisterTdxFunc(PluginTCalcFuncInfo** pFun);
//#ifdef __cplusplus
//}
//#endif //__cplusplus
//#endif //__TCALC_FUNC_SETS
//#endif //__PUBLICHEAD_H__
//【第2/3部分】 DLL工程 头文件 A.171229 end


//【第3/3部分】 DLL工程 C代码 A.171229
// 输出目录设置: F:\new_tdx\T0002\dlls\
// 使用说明
// 1. 生成的dll及相关依赖dll请拷贝到通达信安装目录的T0002/dlls/下面;
// 2. 再在公式管理器进行绑定
#include "StdAfx.h"
#include "PublicHead.h"
// slf add
#include "math.h"
// 动态数组 备份输入数据 slf add
#include<iostream>
using   namespace   std;
// 开始编辑 函数

//  函数功能:O1C 操作次数
//  调用序号:1
//  K 线类型:1 day
//  函数输入:pfINa = C
//            pfINb = O
//            pfINc = 2
//  函数输出:O1C 操作次数
//  调用函数:
//  被调函数:
//  最先处理;从最久数据开始 [0]
//  编辑日期:171229
//  编译工具:VC6.0
//  实际验证:正确   
//                                              C            O             2
void O1CCount(int DataLen,float* pfOUT,float* pfINa,float* pfINb,float* pfINc)
{
        int i;
        int iDays;        // 持股天数
        float fCntKLine;  // 计数器

        // 清零输出
        for(i = 0; i < DataLen; i++)
        {// for 0 start
                pfOUT = 0;
        }// for 0 end

        // 清零计数
        fCntKLine = 0;
        // 赋值持股天数;
        iDays = 1;

        // 从最远数据 [0] 开始处理
    // 初始值 1
        for(i = iDays; i < DataLen; i=i+iDays+1)
        {// for 1 start
                // 计数器累加
                fCntKLine = fCntKLine + 1;
        }// for 1 end
        pfOUT[DataLen - 1] = fCntKLine;
}

//  函数功能:O1C 均收益
//  调用序号:2
//  K 线类型:1 day
//  函数输入:pfINa = C
//            pfINb = O
//            pfINc = 2
//  函数输出:每次收益 以及 总均收益
//  调用函数:
//  被调函数:
//  最先处理;从最久数据开始 [0]
//  编辑日期:171229
//  编译工具:VC6.0
//  实际验证:正确   
//                                              C            O             2
void O1CReturn(int DataLen,float* pfOUT,float* pfINa,float* pfINb,float* pfINc)
{
        int i;
        int iDays;        // 持股天数
        float fCntKLine;  // 计数器
        float fC1OReturn; // O1C 收益和

        // 清零输出
        for(i = 0; i < DataLen; i++)
        {// for 0 start
                pfOUT = 0;
        }// for 0 end

        // 清零计数
        fCntKLine = 0;
        fC1OReturn = 0;
        // 赋值持股天数;
        iDays = 1;

        // 从最远数据 [0] 开始处理
    // 初始值 1
        for(i = iDays; i < DataLen; i=i+iDays+1)
        {// for 1 start
                // 计数器累加
                fCntKLine = fCntKLine + 1;

                // 计算CO1 收益
                fC1OReturn = fC1OReturn + (pfINa - pfINb[i-iDays])/pfINb[i-iDays];
                //pfOUT = 100*fC1OReturn / fCntKLine;
                pfOUT = 100*(pfINa - pfINb[i-iDays])/pfINb[i-iDays];
        }// for 1 end
        pfOUT[DataLen - 1] = 100*fC1OReturn/fCntKLine;
}
//  函数功能:O2C 操作次数
//  调用序号:3
//  K 线类型:1 day
//  函数输入:pfINa = C
//            pfINb = O
//            pfINc = 2
//  函数输出:O2C 操作次数
//  调用函数:
//  被调函数:
//  最先处理;从最久数据开始 [0]
//  编辑日期:171229
//  编译工具:VC6.0
//  实际验证:正确   
//                                              C            O             2
void O2CCount(int DataLen,float* pfOUT,float* pfINa,float* pfINb,float* pfINc)
{
        int i;
        int iDays;        // 持股天数
        float fCntKLine;  // 计数器

        // 清零输出
        for(i = 0; i < DataLen; i++)
        {// for 0 start
                pfOUT = 0;
        }// for 0 end

        // 清零计数
        fCntKLine = 0;
        // 赋值持股天数;
        iDays = 2;

        // 从最远数据 [0] 开始处理
    // 初始值 2
        for(i = iDays; i < DataLen; i=i+iDays+1)
        {// for 1 start
                // 计数器累加
                fCntKLine = fCntKLine + 1;
        }// for 1 end
        pfOUT[DataLen - 1] = fCntKLine;
}
//  函数功能:O2C 均收益
//  调用序号:4
//  K 线类型:1 day
//  函数输入:pfINa = C
//            pfINb = O
//            pfINc = 2
//  函数输出:每次收益 以及 总均收益
//  调用函数:
//  被调函数:
//  最先处理;从最久数据开始 [0]
//  编辑日期:171229
//  编译工具:VC6.0
//  实际验证:正确   
//                                              C            O             2
void O2CReturn(int DataLen,float* pfOUT,float* pfINa,float* pfINb,float* pfINc)
{
        int i;
        int iDays;        // 持股天数
        float fCntKLine;  // 计数器
        float fC1OReturn; // O2C 收益和

        // 清零输出
        for(i = 0; i < DataLen; i++)
        {// for 0 start
                pfOUT = 0;
        }// for 0 end

        // 清零计数
        fCntKLine = 0;
        fC1OReturn = 0;
        // 赋值持股天数;
        iDays = 2;

        // 从最远数据 [0] 开始处理
    // 初始值 2
        for(i = iDays; i < DataLen; i=i+iDays+1)
        {// for 1 start
                // 计数器累加
                fCntKLine = fCntKLine + 1;

                // 计算O2C 收益
                fC1OReturn = fC1OReturn + (pfINa - pfINb[i-iDays])/pfINb[i-iDays];
                //pfOUT = 100*fC1OReturn / fCntKLine;
                pfOUT = 100*(pfINa - pfINb[i-iDays])/pfINb[i-iDays];
        }// for 1 end
        pfOUT[DataLen - 1] = 100*fC1OReturn/fCntKLine;
}

// ########################
// 注册函数
// ########################
PluginTCalcFuncInfo g_CalcFuncSets[] =
{
        { 1, ( pPluginFUNC ) &O1CCount  },  
    { 2, ( pPluginFUNC ) &O1CReturn },
        { 3, ( pPluginFUNC ) &O2CCount  },
        { 4, ( pPluginFUNC ) &O2CReturn },


        {0,NULL},
};

//@@@@@@@@@@@@@@@@@@@@@@@@@
// 导出给TCalc的注册函数
//#########################
BOOL RegisterTdxFunc(PluginTCalcFuncInfo** pFun)
{
        if(*pFun==NULL)
        {
                (*pFun)=g_CalcFuncSets;
                return TRUE;
        }
        return FALSE;
}//end of dll

1. DLL接口软件,深圳市财富趋势科技股份有限公司提供;
2. 编译软件,Microsoft提供;
3. 以上软件版权归上述公司所有;
4. 本人提供源代码属于开源代码,建议非商业使用;
5. 商业应用涉及软件版权问题,请自行联系上述软件提供商授权(请联系供应商确认是否必要)。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:dll 源代码 Microsoft Register include

DOGOODBERIGHT.

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群
GMT+8, 2026-1-29 21:57