使飞狐指标公式可以调用通达信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"();