以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  如何遍历K线啊?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=53296)

--  作者:BruceX
--  发布时间:2013/6/23 11:50:35
--  如何遍历K线啊?
我想要最近每根K线的开高低收,怎么弄啊?怎么用数组表示啊?如最近的10根K线的数据,谢谢老师!
--  作者:jinzhe
--  发布时间:2013/6/24 9:33:19
--  

直接用HIGH

每根k线就有对应的HIGH值


--  作者:fly
--  发布时间:2013/6/24 13:15:46
--  

runmode:1;//序列模式
fc:=close;//定义一个序列变量,相当于是一个数组
k2:fc[datacount-4];//倒数第5根K线的收盘价
k3:fc[datacount-2];//倒数第3根K线的收盘价
k1:fc[datacount-1];//倒数第2根K线的收盘价
k_end:fc[datacount];//最后1根K线的收盘价

 

可参考该帖http://www.weistock.com/bbs/dispbbs.asp?BoardID=10&ID=30380&replyID=&skin=1


--  作者:fly
--  发布时间:2013/6/24 13:34:05
--  

如果用FOR循环,如下:

 

runmode:1;//序列模式
fc:=close;//定义一个序列变量,相当于是一个数组
for i=datacount downto datacount-(10-1) do k[datacount-i+1]:fc[i];//把最近10根K线的收盘价赋值给数组K

x1:k[1],linethick0;//最近第1根K线的收盘价

x2:k[2],linethick0;//最近第2根K线的收盘价

x9:k[9],linethick0;//最近第9根K线的收盘价


--  作者:王锋
--  发布时间:2013/6/24 17:09:03
--  

在逐K线模式下直接使用内置数组就行了。

 

CLOSE[BARPOS] 就是用的当前的CLOSE,CLOSE[BARPOS-1] 就是用的上一根K线的CLOSE,同理 HIGH[],LOW[],OPEN[],均支持这种模式 


--  作者:BruceX
--  发布时间:2013/6/25 21:09:51
--  

我把for循环中的datacount改为barpos,系统变得非常慢,是什么原因啊?


--  作者:王锋
--  发布时间:2013/6/26 9:34:18
--  
启用单步跟踪看看,是不是你代码里太多的无效循环导致的
--  作者:BruceX
--  发布时间:2013/6/26 19:17:46
--  

只是用For循环,而且只有50个数字,启用单步循环,继续执行又卡住了


--  作者:jinzhe
--  发布时间:2013/6/27 9:26:42
--  
楼主把代码发一下
--  作者:BruceX
--  发布时间:2013/6/27 17:51:52
--  

runmode:1;//序列模式
fc:=close;//定义一个序列变量,相当于是一个数组
for i=barpos downto barpos-(50-1) do k[barpos-i+1]:fc[i];//

x1:k[1],linethick0;//最近第1根K线的收盘价

x2:k[2],linethick0;//最近第2根K线的收盘价

x9:k[9],linethick0;//最近第9根K线的收盘价