以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  逐K线模式,如何在最后一根K线的前面2根K线上画线  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=167703)

--  作者:JJG
--  发布时间:2019/1/15 2:27:16
--  逐K线模式,如何在最后一根K线的前面2根K线上画线

//向上分形

//定义序列数组

VARIABLE: FX_UP_KX[] = 0 ;//向上分形算法中每根K线对应的最高值的序列数组
FX_UP_KX_TMP :HIGH ;//用于将序列变量转换为数组的临时变量。向上分形算法中每根K线对应的最高值的序列数组的临时变量
FX_UP_KX := FX_UP_KX_TMP;//将序列数组HIGH通过临时变量FX_UP_KX_TMP赋值到数组 FX_UP_KX[]中并自动扩充数组的大小。
VARIABLE: FX_UP_ZT[] = 0;//向上分形状态,空数组初始化为0
VARIABLE: FX_UP_SZ[] = 0 ;//向上分形数值,空数组初始化为0
VARIABLE: FX_UP_WZ[] = 0 ;//向上分形位置,空数组初始化为0



//定义变量

FX_UP_LSWZ := 2 ;// 向上分形临时位置,初始化为序列数组的倒数2根K线(即倒数第3根K,第1根是倒数0根,即datacount)
FX_UP_KX_LONG :UBOUND(FX_UP_KX);//FX_UP_KX数组长度
FX_UP_LSWZ_HIGH := FX_UP_KX [FX_UP_KX_LONG - FX_UP_LSWZ] ;//向上分形临时位置的最高值


//判断向上分性临时位置>后2根and后1根K线,ELSE 不成立goto向下分形。成立判断临时位置>前2根线and前1根线。
//成立,这是向上分形,输出分形状态、数值、位置,显示分形位置,退出。不成立判断临时位置<前2根或前1根,成立退出;不成立进入循环。
  //循环条件前2根或前1根K线=临时位置。
  //临时位置<前2根或前1根,成立退出;不成立判断临时位置=前2根。
  //成立临时位置移到前2根;不成立临时位置移到前1位。

//drawicon(1,FX_UP_LSWZ_HIGH,4,2);    
IF FX_UP_LSWZ_HIGH > FX_UP_KX [FX_UP_KX_LONG-(FX_UP_LSWZ-1)] AND FX_UP_LSWZ_HIGH > FX_UP_KX [FX_UP_KX_LONG-(FX_UP_LSWZ-2)] THEN  
    BEGIN
   
    IF FX_UP_LSWZ_HIGH > FX_UP_KX [FX_UP_KX_LONG-FX_UP_LSWZ+2] OR FX_UP_LSWZ_HIGH > FX_UP_KX [FX_UP_KX_LONG-FX_UP_LSWZ+1] THEN 
       BEGIN   
         FX_UP_ZT := 1; 
         FX_UP_SZ := FX_UP_LSWZ_HIGH ;

         FX_UP_WZ :=  BARPOS ;//如何定位并前移2根K线?
         drawicon(FX_UP_ZT = 1,FX_UP_LSWZ_HIGH,4,2);//如何在最后的K线的前面的第2根K线上做标记.
//drawicon(1,FX_UP_LSWZ_HIGH,4,2);
         EXIT;
       END;
    IF FX_UP_LSWZ_HIGH < FX_UP_KX [datacount-FX_UP_LSWZ+2] OR FX_UP_LSWZ_HIGH < FX_UP_KX [datacount-FX_UP_LSWZ+1] THEN EXIT;  
    WHILE FX_UP_LSWZ_HIGH =  FX_UP_KX [datacount-FX_UP_LSWZ+2] OR FX_UP_LSWZ_HIGH = FX_UP_KX [datacount-FX_UP_LSWZ+1] DO   
       BEGIN
        IF FX_UP_LSWZ_HIGH < FX_UP_KX [datacount-FX_UP_LSWZ+2] OR FX_UP_LSWZ_HIGH < FX_UP_KX [datacount-FX_UP_LSWZ+1] THEN EXIT;    
        IF FX_UP_LSWZ_HIGH =  FX_UP_KX [datacount-FX_UP_LSWZ+2] THEN FX_UP_LSWZ = FX_UP_LSWZ+2;  //如何把K线的位置前移2位
        FX_UP_LSWZ = FX_UP_LSWZ+1; //如何把K线的位置前移1位
         END;
     END;
ELSE GOTO 向下分形;   


--  作者:wenarm
--  发布时间:2019/1/15 8:29:32
--  
实现不了,