欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → vbs如何向公式系统传递数组

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有6266人关注过本帖树形打印复制链接

主题:vbs如何向公式系统传递数组

帅哥哟,离线,有人找我吗?
macro
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:36 积分:195 威望:0 精华:0 注册:2012/2/22 10:46:32
vbs如何向公式系统传递数组  发帖心情 Post By:2012/5/4 9:42:16 [只看该作者]

vbs中有如下类型数据,如何向金字塔公式系统传递?

dc := 1000;
VARIABLE:openPrice2[dc]=0;
<%

vOpenPrice2 = ffl.vardata("openPrice2")


'对vOpenPrice2数组中每个元素进行计算处理并赋值

'......

 

ffl.vardata("openPrice2") = vOpenPrice2

%>

 

请问以上写法正确吗?


 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2012/5/4 9:45:06 [只看该作者]

测试一下不就知道了,用MSGBOX打印看看传递过去的数据是否是数组


金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
macro
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:36 积分:195 威望:0 精华:0 注册:2012/2/22 10:46:32
  发帖心情 Post By:2012/5/4 9:52:09 [只看该作者]

openPrice := open;
highPrice := high;
lowPrice := low;
closePrice := close;
dc := 1000;
VARIABLE:openPrice2[dc]=0,highPrice2[dc]=0,lowPrice2[dc]=0,closePrice2[dc]=0;
<%
vOpenPrice = ffl.vardata("openPrice")
vHighPrice = ffl.vardata("highPrice")
vLowPrice = ffl.vardata("lowPrice")
vClosePrice = ffl.vardata("closePrice")
last = ubound(vOpenPrice)
vo = 0
vh = 0
vl = 0
vc = 0
i = 1
j = 0
dim openPriceArray(1000)
dim highPriceArray(1000)
dim lowPriceArray(1000)
dim closePriceArray(1000)
do while(i <= last)
  if ((vOpenPrice(i) > vClosePrice(i)) and (vOpenPrice(i-1) < vClosePrice(i-1))) then '前面一根是阳线,后面连续阴线 
  vo = vOpenPrice(i)
  vh = vHighPrice(i)
  vl = vLowPrice(i)
  vc = vClosePrice(i) 
  i = i + 1 
  do until ((vOpenPrice(i+1) < vClosePrice(i+1)) or (i > 1000)) '连续阴线直到遇到阳线为止
    vc = vClosePrice(i)   
    if (vHighPrice(i) > vh) then
      vh = vHighPrice(i)
    end if   
    if (vLowPrice(i) < vl) then
      vl = vLowPrice(i)
    end if   
    i = i + 1 
  loop 
  openPriceArray(j) = vo
  highPriceArray(j) = vh
  lowPriceArray(j) = vl
  closePriceArray(j) = vc 
  j = j + 1       
  end if
  if ((vOpenPrice(i) < vClosePrice(i)) and (vOpenPrice(i-1) > vClosePrice(i-1))) then '前面一根是阴线,后面连续阳线 
  vo = vOpenPrice(i)
  vh = vHighPrice(i)
  vl = vLowPrice(i)
  vc = vClosePrice(i) 
  i = i + 1 
  do until ((vOpenPrice(i+1) > vClosePrice(i+1)) or (i > 1000)) '连续阳线直到遇到阴线为止
    vc = vClosePrice(i)   
    if (vHighPrice(i) > vh) then
      vh = vHighPrice(i)
    end if   
    if (vLowPrice(i) < vl) then
      vl = vLowPrice(i)
    end if   
    i = i + 1 
  loop 
  openPriceArray(j) = vo
  highPriceArray(j) = vh
  lowPriceArray(j) = vl
  closePriceArray(j) = vc 
  j = j + 1       
  end if 
loop
ffl.vardata("openPrice2") = openPriceArray
ffl.vardata("highPrice2") = highPriceArray
ffl.vardata("lowPrice2") = lowPriceArray
ffl.vardata("closePrice2") = closePriceArray
%>
//KLINE(openPrice,highPrice,lowPrice,closePrice,1);
KLINE(openPrice2,highPrice2,lowPrice2,closePrice2,1);

采用这种方式,编译通不过,提示“未定义的变量:OPENPRICE2”!请问问题出在哪儿了?

 


 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2012/5/4 18:02:35 [只看该作者]

你的数组用法是有问题的,因为定义的数组与序列变量还是有些区别

 

openPrice2:=c;
highPrice2:=c;
lowPrice2:=c;
closePrice2:=c;

 

你这样定义这4个变量为序列变量酒可以解决了



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部