Skip to content

飞狐指标函数插件桥接通达信指标函数插件

License

Notifications You must be signed in to change notification settings

ashghost/tdx2fox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

飞狐指标公式插件 <-桥接-> 通达信指标公式插件

功能

使飞狐指标公式可以调用通达信DLL插件

文件目录

│  .gitignore
│  Cppfile.json (cpp-builder配置)
│  dlls.ini (通达信库加载配置)
│  README.md (本文件)
|
├─dist (输出目录)
│
├─include
│  ├─fox
│  │      FoxFunc.h (飞狐插件头文件)
│  │
│  └─tdx
│         PluginTCalcFunc.h (通达信插件头文件)
│
├─msvs (VS项目文件)
│  │  tdx2fox.sln
│  │  tdx2fox.vcxproj
│  │  tdx2fox.vcxproj.filters
│
└─src
   |  export.def (dll导出函数)
   |  ext_functions.cpp (拓展函数)
   |  main.cpp (主函数)

编译依赖

  • Windows平台

  • 支持c++11的编译器

    • static_assert
    • std::array
    • std::shared_ptr

编译

  • Cpp-Builder

    • cppb
  • Visual Stdio

    • msvs\tdx2fox.sln

使用

请确保飞狐CALCINFO, CALCPARAM结构二进制兼容

配置文件dlls.ini

  • BAND.band[N] 参考通达信

  • TDX2FOX.DLL_THREAD_SAFE 通达信DLL库线程安全,默认是0

    当通达信的插件库不是线程安全,而且指标运行宿主是多线程调用则需要将值设置为1

    此时库将对加载的插件库拷贝至TMP目录下并加载,每个调用线程加载一个独立库

部署

1.假设库名为TDX2FOX.dll

2.将库放入飞狐插件指定目录,如C:\Fox\FmlDLL\TDX2FOX.dll

3.在库所在的目录下放入dlls.ini,此文件与通达信配置一致,参考通达信

调用

假设挂载通达信的库在DLL3上,dlls.ini如下

[BAND]
band1=
band2=
band3=C:\new_tdx\T0002\dlls\tdxdll.dll
band4=
band5=
band6=
band7=
band8=
band9=
band10=

[TDX2FOX]
DLL_THREAD_SAFE=0
  • 通达信代码
A:TDXDLL3(1, H, L, C);
  • 飞狐代码
A:"TDX2FOX@TDXDLL3"(1, H, L, C);

拓展函数

  • PERIOD

    取得周期类型.

    结果从0到13,依次分别是1/5/15/30/60分钟,日/周/月,多分钟,多日/季/年,5秒线/多秒线,13以上为自定义周期

    注: 不支持 5秒线/季/年/自定义周期 , 参考PERIOD

    通达信

    A:PERIOD;
    

    飞狐

    A:"TDX2FOX@PERIOD"();
    

About

飞狐指标函数插件桥接通达信指标函数插件

Resources

License

Stars

Watchers

Forks

Packages

No packages published