以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  [求助]循环画线的方法  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=172313)

--  作者:tjtgl
--  发布时间:2019/10/8 14:27:19
--  [求助]循环画线的方法
你好

有以下问题,请协助,谢谢

计划通过循环显示10条粉线,但实际仅显示最后一个循环的粉线,其他不显示,不知道什么原因

代码如下:
FX1:= 4000 ;//例:4000
FX0:= 3000 ;//例:3000

FFD := FX1 - FX0;
variable:ratio[10] = 0;
ratio[1] := 0;
ratio[2] := 0.1;
ratio[3] := 0.2;
ratio[4] := 0.3;
ratio[5] := 0.4;
ratio[6] := 0.5;
ratio[7] := 0.6;
ratio[8] := 0.7;
ratio[9] := 0.8;
ratio[10] := 0.9;
variable:ratio[10] = 0;
for i = 1 to 10 do
  begin
    r := ratio[i];
    fx[i] := FX0 + (FFD * r);

    drawsl( islastbar, fx[i], 0, 35, 1, COLORMAGENTA, LINETHICK2);  
  end;

--  作者:FireScript
--  发布时间:2019/10/8 14:39:44
--  
循环无法使得画线函数多次执行画线的。一条画线语句一条线,你这里其实只相当于一语句。
[此贴子已经被作者于2019/10/8 14:39:54编辑过]

--  作者:FireScript
--  发布时间:2019/10/8 14:41:52
--  
 理论上来说需要十条语句才能输出这10条线的。
--  作者:tjtgl
--  发布时间:2019/10/8 14:42:26
--  
明白了,也猜到了,就是想知道,如果画50条线,就是只能重复50行代码,是否有其他办法?谢谢
--  作者:FireScript
--  发布时间:2019/10/8 14:51:52
--  
有个粗略思路,就是让画线函数在历史K上符合条件,避免只在一个K上符合条件,比如限制在倒数10个K上符合条件。只不过最后画出来的效果可能有偏差。具体到代码 就是判断当前K是倒数第几个K,然后和I进行比较,作为画线函数的条件。 你这里画线的一些值都是定值,这个思路应该可以,如果是变量的话,那可能就不符合需求了。


--  作者:tjtgl
--  发布时间:2019/10/8 15:00:03
--  
好主意,需要琢磨和尝试,但估计费劲,因为只要画线就是一组画线代码,无法重复利用画线代码