"WEISTOCK@MYFUN"(1,100,100,100,100,ncount)请问,DLL中,像上面那样要输入4个以上参数,应该如何编写
CALCINFO 结构中
const int
m_nNumParam;
// 调用参数数量
const CALCPARAM*
m_pCalcParam;
// 调用参数数组
使用这个新结构
范例部分代码参考
//计算多个序列的均值,5个参数,参数1-4为待求多个序列,参数5用于举例说明数值参数的用法,实际在此例中无需该参数
/*
调用方法:
MA1:=MA(CLOSE,3);
MA2:=MA(CLOSE,6);
MA3:=MA(CLOSE,12);
MA4:=MA(CLOSE,24);
MYBBI: "STOCKFUNC@MYBBI"(MA1, MA2, MA3, MA4, 4);
*/
上述代码都可以在范例上看到
我现在说的是常量,假设7个常量,如何入DLL?
以下方法是不行的:
p1:=n1;p2:=n2;p3:=n3:p4:=n4;p5:=n5;p6:=n6;p7:=n7;
MYBBI: "STOCKFUNC@MYBBI"(n1,n2,n3,n4,n5,n6,n7);
我这边已经找到方法测试通过,有需要看看吧。1、金字塔中:
data[barpos]:=1;data[barpos-1]:=2;data[barpos-2]:=3;data[barpos-3]:=4;data[barpos-4]:=5;data[barpos-5]:=6;data[barpos-6]:=7;
MYBBI: "STOCKFUNC@MYBBI"(data);
2、DLL中:
int n1 = int(pData->m_pfParam1[pData->m_nNumData - 1]);
int n2 = int(pData->m_pfParam1[pData->m_nNumData - 2);
int n3 = int(pData->m_pfParam1[pData->m_nNumData - 3]);
int n4 = int(pData->m_pfParam1[pData->m_nNumData - 4]);
int n5 = int(pData->m_pfParam1[pData->m_nNumData - 5]);
int n6 = int(pData->m_pfParam1[pData->m_nNumData - 6]);
int n7 = int(pData->m_pfParam1[pData->m_nNumData - 7]);
[此贴子已经被作者于2021/5/10 21:36:41编辑过]