欢迎您光临博庭社区!

 找回密码
 立即注册
楼主: ptLibert

金魔方DLL接口   [复制链接]

Rank: 9Rank: 9Rank: 9

发表于 2012-12-6 20:49:05 |显示全部楼层
out-u 发表于 2012-12-6 20:36
#RunMode Run_By_Bar
extern 'FOXFUNC.dll'  void  my_ma(NumericSeries resultArray, NumericSeries array ...

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

使用道具 举报

Rank: 2

发表于 2012-12-6 22:09:02 |显示全部楼层
本帖最后由 out-u 于 2012-12-6 22:19 编辑

//飞狐中
tj:=OPENMINUTES(TIME);
z15:"ZD@Z15"(tj);找最大一段15分钟的涨幅
  1. __declspec(dllexport) int WINAPI ZL15(CALCINFO* pData)
  2. {                  
  3.       float point;
  4.       float temp;
  5.       float zdl;
  6.       const float* pValue;
  7.       int i=0,nFirst,m=0;
  8.       if(pData->m_pfParam1  &&       //参数1有效
  9.          pData->m_nParam1Start>=0 &&                              //参数1为序列数
  10.          pData->m_pfParam2==NULL)                                 //有1个参数
  11.        {
  12.             pValue = pData->m_pfParam1;                                 //参数1
  13.             nFirst = pData->m_nParam1Start;                        //有效值
  14.               for(i=pData->m_nNumData;i>=nFirst;i--)   
  15.                           {
  16.                             if(pValue[i]>239.8)
  17.                             {
  18.        //---------------------------------------------------内循环
  19.                                    temp=0;
  20.                                     point=0;
  21.                                     for(m=47;m>=2;m--)
  22.                                         {
  23.                                           temp= pData->m_pData[i-m+2].m_fHigh-pData->m_pData[i-m].m_fLow; //最大数位置为 if(*point<Array[m-1])
  24.                                                if(point<temp)
  25.                                                      {
  26.                                                          point=temp;
  27.                                           zdl=pData->m_pData[i-m+2].m_fAmount+pData->m_pData[i-m].m_fAmount+pData->m_pData[i-m+1].m_fAmount;
  28.                                                         }        
  29.                                          }
  30.                                         //------------------------------------------------------
  31.                                        pData->m_pResultBuf[i] = zdl;
  32.                               }
  33.                                 else
  34.                             pData->m_pResultBuf[i] =0;
  35.                    }
  36.                     return 0;        
  37.      }
  38.       return -1;
  39. }
复制代码
金魔方没有输出,不知道怎么改才行

点评

ptLibert  DLL按理是不用改的  发表于 2012-12-7 09:22

使用道具 举报

Rank: 2

发表于 2012-12-7 19:14:47 |显示全部楼层
out-u 发表于 2012-12-6 22:09
//飞狐中
tj:=OPENMINUTES(TIME);
z15:"ZD@Z15"(tj);找最大一段15分钟的涨幅金魔方没有输出,不知道怎么改 ...

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

使用道具 举报

Rank: 8Rank: 8

发表于 2012-12-7 21:53:16 |显示全部楼层
本帖最后由 ptLibert 于 2012-12-8 00:20 编辑
out-u 发表于 2012-12-7 19:14
但是你看,这样的方式金魔方是没有输出的。

DLL中函数名是ZL15,但公式中写成了Z15.
其实这种情况画面上有提示的"引用DLL无法找到相应函数"

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


使用道具 举报

Rank: 2

发表于 2012-12-16 09:30:25 |显示全部楼层
ptLibert 发表于 2012-12-7 21:53
DLL中函数名是ZL15,但公式中写成了Z15.
其实这种情况画面上有提示的"引用DLL无法找到相应函数"

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

使用道具 举报

Rank: 2

发表于 2012-12-16 09:32:26 |显示全部楼层
out-u 发表于 2012-12-16 09:30
如果公式中改正为ZL15,金魔方也没有输出。飞狐有输出。

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

使用道具 举报

Rank: 1

发表于 2013-2-5 16:22:06 |显示全部楼层
为什么我把复制TestNumbericRef代码,加一个TestNumbericRef1还是就无法加载, TestNumbericRef就可以用

使用道具 举报

Rank: 8Rank: 8

发表于 2013-2-5 22:35:38 |显示全部楼层
主力趋势 发表于 2013-2-5 16:22
为什么我把复制TestNumbericRef代码,加一个TestNumbericRef1还是就无法加载, TestNumbericRef就可以用 ...

您看看foxfunc.def,然后把testNumericRef1也添加到里面去试试

使用道具 举报

Rank: 6Rank: 6

发表于 2013-4-5 00:57:45 |显示全部楼层
mark ,dll 资料备用

使用道具 举报

Rank: 6Rank: 6

发表于 2013-4-8 18:04:00 |显示全部楼层
ptLibert 发表于 2013-2-5 22:35
您看看foxfunc.def,然后把testNumericRef1也添加到里面去试试
  1. extern "C" __declspec(dllexport) int WINAPI TDBUYSETUP(CALCINFO* pData)
  2. {
  3.         if(pData->m_pfParam1 == NULL && pData->m_nNumData > 0)
  4.         {
  5.                 int i= 0, j=0, z=0;
  6.                 for(i = 5; i < pData->m_nNumData; i++)
  7.                 {
  8.                         //TD Buy Setup
  9.                         if(pData->m_pData[i].m_fClose < pData->m_pData[i-4].m_fClose)
  10.                         j++;
  11.                         else
  12.                         j = 0;
  13.                         if(j == 9  && pData->m_pData[i-9].m_fClose > pData->m_pData[i-13].m_fClose)
  14.                         {
  15.                                 //用最近的一个Setup bar 1 的低点赋值
  16.                                 for(z = i-8; z < pData->m_nNumData; z++)
  17.                                 pData->m_pResultBuf[z] = pData->m_pData[i-8].m_fHigh;
  18.                         }
  19.                 }
  20.                 return 1;
  21.         }
  22.         return -1;
  23. }
复制代码
这段代码获取的数据总是从第九根开始,能否获取从第一根开始的呢?
有点类似未来函数。百思不得其解。
请指教

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

  8. //plot1[8](X);
  9. {
  10. if X <> ref(X, 1) then
  11. InvalidPlot(plot1);
  12. }
  13. StickLine(X > 0, X, X, 6, 0),ColorGreen;
  14. DrawIcon(X <> ref(X, 1), X, 4);
  15. IF X <> ref(X, 1)then
  16.         begin
  17.                 For i=0 to KTCOUNT-1 do
  18.                 begin
  19.                         IF(Date[KTCOUNT-1] > 0) then
  20.                                 begin
  21.                                 Value1 = Text_New(Date[i], Time[i], L[i], NumToStr(KTCOUNT - i, 0));
  22.                                 aa=Text_SetColor(Value1, colorgreen);
  23.                                 end;
  24.                 end;
  25.         end;
复制代码

使用道具 举报

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

bottom

Archiver|http://www.patiosoft.com

GMT+8, 2017-12-11 12:31 , Processed in 0.151196 second(s), 9 queries .

花生网 Copyrigh©2012

和讯信息科技有限公司 ALL Rights Reserved 版权所有 复制必究

回顶部