以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 我一直在用你们的金子塔软件,目前想自己编程,遇到以下的问题: (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=68514) |
-- 作者:大灰狼 -- 发布时间:2014/8/8 11:27:47 -- 我一直在用你们的金子塔软件,目前想自己编程,遇到以下的问题: 由于我目前的策略是调用历史数据,用历史数据进行分析趋势,所以会用到for循环处理,当我用for循环时,想把满足条件的K线连起来,我怎样编程? 比如:我想把第1、10、14...K线连起来,并在主图上输出来。 请老师赐教!多谢! |
-- 作者:王锋 -- 发布时间:2014/8/8 11:28:50 -- 为了我们更好的为你服务,请回帖详细描述 我想把第1、10、14...K线连起来 这句话该怎么理解? |
-- 作者:lionel_fu -- 发布时间:2014/8/8 11:49:54 -- 老师,我的意思是把满足条件的K线连起来(满足条件每根K线High值连接起来),并且在主图上输出来 请老师指教!
|
-- 作者:jinzhe -- 发布时间:2014/8/8 13:26:25 -- 把满足的条件连成一个线段: 参考画折线的函数polyline |
-- 作者:lionel_fu -- 发布时间:2014/8/8 14:33:35 -- 谢谢老师,我试试,另外在for循环中是否可以用画线函数? |
-- 作者:jinzhe -- 发布时间:2014/8/8 14:39:06 -- 可以,但是没有效果的,画线只会画循环的最后一个数字 |
-- 作者:lionel_fu -- 发布时间:2014/8/9 10:17:47 -- 首先非常感谢老师的回答,我试了下,还是没有达到我想要的,请老师再次指教: 我的策略思路是这样的: 第一步: 从历史数据中找到满足条件的K线,然后把这些k线对应的数据分别存储到几个数组中(具体存放k线的HIGH,LOW,TIME) 第二步: 利用上一步的数组数据,在for循环中再次判断符合条件的K线数据,让后把相邻两个符合条件的K线HIGH用线连接起来 这个就是我想要实现的,目前存在的问题如下: 1. 在第二步中找到的K线如果用线连起来的话,怎样跟具体的K线时间对应起来,因为画线函数中没有体现K线的时间 如果上述方式是不对的,是否还有别的方法来实现我策略,请老师赐教! 再次感谢! |
-- 作者:fly -- 发布时间:2014/8/11 9:21:44 -- lionel_fu,您以上的描述过于抽象,请再具体些,给出个具体的实例,工作人员好本地调试您的问题. |
-- 作者:lionel_fu -- 发布时间:2014/8/11 18:23:50 -- 老师,以下是我写的范例,具体不用太关注这个公式的意义,只是我的策略中打算这样来实现画线(把满条件的K线依次连接起来) 请老师看一下,是否可以这样来实现 用1分钟的k线图 {定义数组全局变量} variable:gHighBuffer[10000]=0.0; variable:gLowBuffer[10000]=0.0; variable:gTimeBuffer[10000]=0; MyHigh:=HIGH; MyLow:=LOW; MyTime:=TIME; i:=0; j:=1; tempcount:=datacount; {存储历史数据到对应的数组中} for i=tempcount downto 1 do begin if((mod(i,2)=1) begin gHighBuffer[j]:=MyHigh[i]; {存贮K线最高值} gLowBuffer[j]:=MyLow[i]; {存贮K线最低值} gTimeBuffer[j]:=MyTime[i]; {存贮K线时间} j:=j+1; end; end; {在上述生成的数组中,按照规则将相邻的2跟K线高低依次相连,然后再主图上输出} {我的目的是把上面新的数组里面的相邻2个K线的high值、low值依次连接起来;也就是第j跟k线的High值和第二根k线的low值相连,第j-1根k线的low值和第三根k线的high值相连,依次类推,直到第一根} j:=j-1; bFlag:=0; fTemp:=gHighBuffer[j]; for i=j downto 2 do begin if(bFlag=0) begin drawline(1,fTemp,1,gLowBuffer[i-1],0,colorred,1,VTDASH); {这样是否正确?我不知怎样写这些条件?怎样跟主图上的K线时间对应?} bFlag:=1; fTemp:=gLowBuffer[i-1]; end; else begin drawline(1,fTemp,1,gHighBuffer[i-1],0,colorwhite,1,VTDASH); {这样是否正确?我不知怎样写这些条件?怎样跟主图上的K线时间对应?} bFlag:=0; fTemp:=gHighBuffer[i-1]; end; end; |
-- 作者:fly -- 发布时间:2014/8/14 9:35:35 -- 在看,请您耐心等待回复 |