ktdev 发表于 2012-12-6 20:49:05

out-u 发表于 2012-12-6 20:36 static/image/common/back.gif
#RunMode Run_By_Bar
extern 'FOXFUNC.dll'  void  my_ma(NumericSeries resultArray, NumericSeries array ...

请把 array 改成 array1 ,array现在是关键字了

out-u 发表于 2012-12-6 22:09:02

本帖最后由 out-u 于 2012-12-6 22:19 编辑

//飞狐中
tj:=OPENMINUTES(TIME);
z15:"ZD@Z15"(tj);找最大一段15分钟的涨幅__declspec(dllexport) int WINAPI ZL15(CALCINFO* pData)
{                  
      float point;
      float temp;
      float zdl;
      const float* pValue;
      int i=0,nFirst,m=0;
      if(pData->m_pfParam1  &&       //参数1有效
         pData->m_nParam1Start>=0 &&                              //参数1为序列数
         pData->m_pfParam2==NULL)                                 //有1个参数
       {
            pValue = pData->m_pfParam1;                                 //参数1
            nFirst = pData->m_nParam1Start;                        //有效值
              for(i=pData->m_nNumData;i>=nFirst;i--)   
                          {
                            if(pValue>239.8)
                            {
       //---------------------------------------------------内循环
                                   temp=0;
                                    point=0;
                                    for(m=47;m>=2;m--)
                                        {
                                          temp= pData->m_pData.m_fHigh-pData->m_pData.m_fLow; //最大数位置为 if(*point<Array)
                                               if(point<temp)
                                                     {
                                                         point=temp;
                                          zdl=pData->m_pData.m_fAmount+pData->m_pData.m_fAmount+pData->m_pData.m_fAmount;
                                                        }        
                                         }
                                        //------------------------------------------------------
                                       pData->m_pResultBuf = zdl;
                              }
                                else
                            pData->m_pResultBuf =0;
                   }
                    return 0;        
     }
      return -1;
}金魔方没有输出,不知道怎么改才行

out-u 发表于 2012-12-7 19:14:47

out-u 发表于 2012-12-6 22:09 static/image/common/back.gif
//飞狐中
tj:=OPENMINUTES(TIME);
z15:"ZD@Z15"(tj);找最大一段15分钟的涨幅金魔方没有输出,不知道怎么改 ...

但是你看,这样的方式金魔方是没有输出的。

ptLibert 发表于 2012-12-7 21:53:16

本帖最后由 ptLibert 于 2012-12-8 00:20 编辑

out-u 发表于 2012-12-7 19:14 static/image/common/back.gif
但是你看,这样的方式金魔方是没有输出的。
DLL中函数名是ZL15,但公式中写成了Z15.
其实这种情况画面上有提示的"引用DLL无法找到相应函数"

另外我不知道dLL中,pValue【i】>239是什么用意。对于大多数品种,pValue都绝不会大于239.只有期指有一小段会大于239.


out-u 发表于 2012-12-16 09:30:25

ptLibert 发表于 2012-12-7 21:53 static/image/common/back.gif
DLL中函数名是ZL15,但公式中写成了Z15.
其实这种情况画面上有提示的"引用DLL无法找到相应函数"



如果公式中改正为ZL15,金魔方也没有输出。飞狐有输出。

out-u 发表于 2012-12-16 09:32:26

out-u 发表于 2012-12-16 09:30 static/image/common/back.gif
如果公式中改正为ZL15,金魔方也没有输出。飞狐有输出。

后经过修改DLL代码,金魔方有输出了。
我发现金魔方应该多些容错能力,像飞狐那样。

主力趋势 发表于 2013-2-5 16:22:06

为什么我把复制TestNumbericRef代码,加一个TestNumbericRef1还是就无法加载, TestNumbericRef就可以用

ptLibert 发表于 2013-2-5 22:35:38

主力趋势 发表于 2013-2-5 16:22 static/image/common/back.gif
为什么我把复制TestNumbericRef代码,加一个TestNumbericRef1还是就无法加载, TestNumbericRef就可以用 ...
您看看foxfunc.def,然后把testNumericRef1也添加到里面去试试

jazzson 发表于 2013-4-5 00:57:45

mark ,dll 资料备用

bluechina 发表于 2013-4-8 18:04:00

ptLibert 发表于 2013-2-5 22:35 static/image/common/back.gif
您看看foxfunc.def,然后把testNumericRef1也添加到里面去试试

extern "C" __declspec(dllexport) int WINAPI TDBUYSETUP(CALCINFO* pData)
{
        if(pData->m_pfParam1 == NULL && pData->m_nNumData > 0)
        {
                int i= 0, j=0, z=0;
                for(i = 5; i < pData->m_nNumData; i++)
                {
                        //TD Buy Setup
                        if(pData->m_pData.m_fClose < pData->m_pData.m_fClose)
                        j++;
                        else
                        j = 0;
                        if(j == 9  && pData->m_pData.m_fClose > pData->m_pData.m_fClose)
                        {
                                //用最近的一个Setup bar 1 的低点赋值
                                for(z = i-8; z < pData->m_nNumData; z++)
                                pData->m_pResultBuf = pData->m_pData.m_fHigh;
                        }
                }
                return 1;
        }
        return -1;
}这段代码获取的数据总是从第九根开始,能否获取从第一根开始的呢?
有点类似未来函数。百思不得其解。
请指教:handshake

dll调用:#Run_By_Bar
#MAINCHART
variable: KTCOUNT(9);
//#NODEFAULTOUTPUT
//extern 'FoxFunc.dll' int TDBUYSETUP();
VAR1:="FoxFunc@TDBUYSETUP"();
X:VAR1,linethick0;

//plot1(X);
{
if X <> ref(X, 1) then
InvalidPlot(plot1);
}
StickLine(X > 0, X, X, 6, 0),ColorGreen;
DrawIcon(X <> ref(X, 1), X, 4);
IF X <> ref(X, 1)then
        begin
                For i=0 to KTCOUNT-1 do
                begin
                        IF(Date > 0) then
                                begin
                                Value1 = Text_New(Date, Time, L, NumToStr(KTCOUNT - i, 0));
                                aa=Text_SetColor(Value1, colorgreen);
                                end;
                end;
        end;
页: 1 2 3 4 5 [6] 7 8 9 10
查看完整版本: 金魔方DLL接口