欢迎您光临博庭社区!

 找回密码
 立即注册
查看: 8356|回复: 29

已更新【回馈金魔方论坛2】缠论分笔缺口版 [复制链接]

Rank: 4

发表于 2013-12-9 23:28:19 |显示全部楼层
本帖最后由 benyip 于 2013-12-21 22:09 编辑

参数说明:
1、新笔标准同回馈1;

2、缺口处理            1:处理缺口 0:不处理缺口 (缺口定义:大于前一笔区间才算缺口)

3、限制高低同回馈1前提3       1:要求一笔高低 0:不要求一笔高低

  1. //逐根
  2. #Run_By_Bar
  3. #Run_Every_Bar
  4. #NoDefaultOutput
  5. #MainChart
  6. //自定义
  7. #define 上涨             1
  8. #define 下跌            -1
  9. #define 盘整             0
  10. #Define 顶               1
  11. #Define 底              -1
  12. #Define 上破             2
  13. #Define 下破            -2
  14. #Define 废弃的顶         3
  15. #Define 废弃的底        -3
  16. #Define 分型右侧元素延伸 1
  17. #Define 向上笔分型构造   5
  18. #Define 向上笔延伸       6
  19. #Define 向下笔分型构造  -5
  20. #Define 向下笔延伸      -6
  21. #Define 笔中的顶         7
  22. #Define 笔中的底        -7
  23. #Define 新笔周期         3
  24. #Define 新笔             3
  25. #Define 旧笔             4
  26. #Define 最新完成K线位置  0

  27. Input:
  28.   新笔标准(1,0,1,1),
  29.   缺口处理(1,0,1,1),
  30.   限制高低(1,0,1,1);
  31.   
  32. VARIABLE:
  33.   新高(0),新低(0),笔状态(0),K线方向(0),              //连续
  34.   K线类型(0), 分型区间上沿(0), 分型区间下沿(0), 笔尖(Invalid), //离散
  35.   
  36.   NumericSimple i(0),
  37.   NumericSimple 前笔高点位置(0),//顶位置
  38.   NumericSimple 前笔低点位置(0),//底位置
  39.   NumericSimple 今笔高点位置(0),//顶位置
  40.   NumericSimple 今笔低点位置(0),//底位置
  41.   
  42.   NumericSimple 顶位置(0),//笔中分型顶
  43.   NumericSimple 底位置(0),//笔中分型底
  44.   NumericSimple 分型上沿(0),//分型区间上沿
  45.   NumericSimple 分型下沿(0),//分型区间下沿
  46.   
  47.   NumericSimple 分型右侧元素(1),//分型右侧元素包含
  48.   NumericSimple 新K形成(0),     //非包含
  49.   NumericSimple 找到符合K线(0), //特殊处理时标志
  50.   NumericSimple 成笔条件(0),        //成笔条件
  51.   NumericSimple 缺口(0),        //分型有缺口
  52.   NumericSimple 笔计数(0);      //计算一笔的非包含K线数

  53. //******************************主程序******************************

  54. //1.第一根K线处理
  55. 笔:笔尖,LineDot,ColorYellow;

  56.   
  57. IF BARPOS=最新完成K线位置+1 THEN
  58. BEGIN
  59.   前笔高点位置=最新完成K线位置;
  60.   前笔低点位置=最新完成K线位置;
  61.   今笔高点位置=最新完成K线位置;
  62.   今笔低点位置=最新完成K线位置;
  63.   顶位置=最新完成K线位置;
  64.   底位置=最新完成K线位置;
  65.   分型上沿=High[最新完成K线位置];
  66.   分型下沿=Low[最新完成K线位置];
  67.   新高[最新完成K线位置]=分型上沿;
  68.   新低[最新完成K线位置]=分型下沿;
  69.   K线方向[最新完成K线位置]=盘整;
  70.   笔状态[最新完成K线位置]=盘整;
  71.   Print('第一根K线处理');
  72.   
  73.   Exit;
  74. END;

  75. 前笔高点位置++;
  76. 前笔低点位置++;
  77. 今笔高点位置++;
  78. 今笔低点位置++;
  79. 顶位置++;
  80. 底位置++;

  81. //2.K线处理
  82. 新K形成=True;
  83. //2.1 K线方向
  84.   //2.1.1 上升K线
  85. If High[最新完成K线位置]>新高[最新完成K线位置+1] And
  86.    Low[最新完成K线位置]>新低[最新完成K线位置+1]  Then
  87. Begin
  88.   K线方向[最新完成K线位置]=上涨;
  89.   顶位置=最新完成K线位置;
  90. End Else Begin
  91.   //2.1.2 下降K线
  92.   If High[最新完成K线位置]<新高[最新完成K线位置+1] And
  93.      Low[最新完成K线位置]<新低[最新完成K线位置+1] Then
  94.   Begin
  95.     K线方向[最新完成K线位置]=下跌;
  96.         底位置=最新完成K线位置;
  97.   End Else Begin
  98.   //2.1.3 包含K线,保持原方向
  99.     K线方向[最新完成K线位置]=K线方向[最新完成K线位置+1];
  100.         新K形成=False;
  101.   End;
  102. End;       

  103. //2.2 非包含处理序列K线
  104. If 新K形成=False Then
  105. Begin
  106.   If K线方向[最新完成K线位置]=下跌 Then
  107.   Begin
  108.     新高[最新完成K线位置]=Min(High[最新完成K线位置],新高[最新完成K线位置+1]);
  109.         If Low[最新完成K线位置]<=新低[最新完成K线位置+1] Then
  110.         Begin
  111.           新低[最新完成K线位置]=Low[最新完成K线位置];
  112.           底位置=最新完成K线位置;
  113.           分型下沿=Low[最新完成K线位置];
  114.           If 分型右侧元素=分型右侧元素延伸 Then
  115.             分型区间下沿[顶位置]=Min(分型区间下沿[顶位置],新低[最新完成K线位置]);
  116.         End Else
  117.           新低[最新完成K线位置]=新低[最新完成K线位置+1];       
  118.   End Else Begin
  119.         If High[最新完成K线位置]>=新高[最新完成K线位置+1] Then
  120.         Begin
  121.           新高[最新完成K线位置]=High[最新完成K线位置];
  122.           顶位置=最新完成K线位置;
  123.           分型上沿=High[最新完成K线位置];
  124.           If 分型右侧元素=分型右侧元素延伸 Then
  125.             分型区间上沿[底位置]=Max(分型区间上沿[底位置],新高[最新完成K线位置]);
  126.         End Else
  127.           新高[最新完成K线位置]=新高[最新完成K线位置+1];
  128.         If K线方向[最新完成K线位置]=上涨 Then
  129.       新低[最新完成K线位置]=Max(Low[最新完成K线位置],新低[最新完成K线位置+1]);
  130.         Else Begin
  131.           If Low[最新完成K线位置]<=新低[最新完成K线位置+1] Then
  132.           Begin
  133.             新低[最新完成K线位置]=Low[最新完成K线位置];
  134.             底位置=最新完成K线位置;
  135.             分型下沿=Low[最新完成K线位置];
  136.                 If 分型右侧元素=分型右侧元素延伸 Then
  137.               分型区间下沿[顶位置]=Min(分型区间下沿[顶位置],新低[最新完成K线位置]);
  138.           End Else
  139.             新低[最新完成K线位置]=新低[最新完成K线位置+1];
  140.         End;
  141.   End;
  142. End Else Begin
  143.   新高[最新完成K线位置]=High[最新完成K线位置];
  144.   新低[最新完成K线位置]=Low[最新完成K线位置];

  145.   If K线方向[最新完成K线位置]=下跌 And (K线方向[最新完成K线位置+1]=上涨 Or
  146.      K线方向[最新完成K线位置+1]=盘整) Then
  147.   Begin
  148.     分型区间上沿[顶位置]=分型上沿;
  149.         分型区间下沿[顶位置]=Min(分型下沿,新低[最新完成K线位置]);
  150.     分型下沿=新低[最新完成K线位置];
  151.         K线类型[顶位置]=笔中的顶;
  152.         分型右侧元素=True;          
  153.   End Else Begin
  154.     If K线方向[最新完成K线位置]=上涨 And (K线方向[最新完成K线位置+1]=下跌 Or
  155.      K线方向[最新完成K线位置+1]=盘整) Then
  156.         Begin
  157.           分型区间下沿[底位置]=分型下沿;
  158.           分型区间上沿[底位置]=Max(分型上沿,新高[最新完成K线位置]);
  159.           分型上沿=新高[最新完成K线位置];
  160.           K线类型[底位置]=笔中的底;
  161.           分型右侧元素=True;
  162.         End Else Begin
  163.           分型右侧元素=False;
  164.           If K线方向[最新完成K线位置]=下跌 Then
  165.           Begin
  166.             分型上沿=新高[最新完成K线位置+1];
  167.                 分型下沿=新低[最新完成K线位置];
  168.           End Else Begin
  169.             分型上沿=新高[最新完成K线位置];
  170.                 分型下沿=新低[最新完成K线位置+1];
  171.           End;
  172.         End;
  173.   End;
  174.   
  175.   笔计数++;
  176. End;

  177. //3.笔处理

  178. 笔状态[最新完成K线位置]=笔状态[最新完成K线位置+1];

  179. //3.1 盘整K线
  180. If K线方向[最新完成K线位置+1]=盘整 Then
  181. Begin
  182.   //3.1.1 下跌K线
  183.   If 新K形成 And K线方向[最新完成K线位置]=下跌 Then
  184.   Begin
  185.     K线类型[顶位置]=顶;
  186.         笔状态[最新完成K线位置]=向上笔分型构造;
  187.         笔计数=1;
  188.         笔尖[顶位置]=High[顶位置];
  189.         笔[顶位置]=High[顶位置];
  190.         今笔高点位置=顶位置;       
  191.         今笔低点位置=最新完成K线位置;
  192.         前笔高点位置=顶位置;
  193.         前笔低点位置=底位置;
  194.   End Else Begin
  195.   //3.1.2 上涨K线
  196.     If 新K形成 And K线方向[最新完成K线位置]=上涨 Then
  197.     Begin
  198.           K线类型[底位置]=底;
  199.           笔状态[最新完成K线位置]=向下笔分型构造;  
  200.           笔计数=1;
  201.           笔尖[底位置]=Low[底位置];
  202.           笔[底位置]=Low[底位置];
  203.           今笔低点位置=底位置;       
  204.           今笔高点位置=最新完成K线位置;
  205.           前笔高点位置=顶位置;
  206.       前笔低点位置=底位置;
  207.     End;
  208.   End;
  209. End;

  210. //3.2 下跌K线
  211. If K线方向[最新完成K线位置]=下跌 Then
  212. Begin
  213.   Switch (笔状态[最新完成K线位置+1])
  214.   Begin
  215.     //3.2.1 向下笔延伸
  216.         Case 向上笔分型构造:
  217.           If 新低[最新完成K线位置]<分型区间下沿[前笔高点位置] Then
  218.           Begin
  219.             笔状态[最新完成K线位置]=向下笔延伸;
  220.                 今笔低点位置=最新完成K线位置;
  221.           End Else
  222.             If Low[最新完成K线位置]=分型区间下沿[前笔高点位置] Then
  223.                   今笔低点位置=最新完成K线位置;
  224.           
  225.         //3.2.2 向下笔继续延伸          
  226.         Case 向下笔延伸:
  227.           If Low[最新完成K线位置]<=新低[今笔低点位置] Then
  228.             今笔低点位置=最新完成K线位置;
  229.        
  230.         //3.2.3 向下笔分型构造或向上笔延伸
  231.         Default: Begin
  232.           //3.2.3.1 向上笔完成
  233.           成笔条件=K线方向[最新完成K线位置+1]=上涨 And
  234.              笔状态[最新完成K线位置+1]=向上笔延伸 And
  235.              新高[最新完成K线位置+1]=新高[今笔高点位置]  And
  236.              ((笔计数>新笔 And 新笔标准=True And (今笔低点位置-今笔高点位置)>新笔周期) Or
  237.                  (笔计数>旧笔));
  238.           If 成笔条件 Or (缺口处理 And 缺口) Then
  239.           Begin       
  240.             
  241.                 K线类型[今笔高点位置]=顶;
  242.                 笔状态[最新完成K线位置]=向上笔分型构造;
  243.                 笔计数=1;
  244.                 笔尖[今笔高点位置]=新高[今笔高点位置];
  245.                 笔[今笔高点位置]=新高[今笔高点位置];
  246.                 前笔高点位置=今笔高点位置;
  247.                 今笔低点位置=最新完成K线位置;
  248. //                TL_ID[前笔低点位置]=Tl_New(Date[前笔低点位置],Time[前笔低点位置],新低[前笔低点位置],
  249. //                                           Date[前笔高点位置],Time[前笔高点位置],笔尖[前笔高点位置]);
  250. //                Tl_SetColor(TL_ID[前笔低点位置],ColorYellow);
  251. //                Tl_SetStyle(TL_ID[前笔低点位置],3);               
  252.                 If 缺口处理 Then
  253.                 Begin
  254.                   If 分型区间下沿[今笔高点位置]=笔尖[前笔低点位置] then
  255.                     分型区间下沿[今笔高点位置]=新低[今笔低点位置];
  256.                   If High[今笔低点位置]<新低[前笔低点位置] Then
  257.             缺口=True;
  258.                   Else
  259.                     缺口=False;
  260.         End;
  261.              成笔条件=False;       
  262.           End Else Begin
  263.           //3.2.3.2 向上笔完成前
  264.                 //突破向下笔的低点
  265.                 找到符合K线=False;
  266.             If 新低[最新完成K线位置]<新低[前笔低点位置] Then
  267.                 Begin
  268.                   笔状态[最新完成K线位置]=向下笔延伸;
  269.                   //向上笔区间大于向下笔区间的特殊情况
  270.                   If 新高[今笔高点位置]>新高[前笔高点位置] And 限制高低=True Then
  271.                   Begin
  272.                     K线类型[最新完成K线位置]=下破;
  273.                         K线类型[前笔低点位置]=废弃的底;
  274.                         K线类型[前笔高点位置]=废弃的顶;
  275.                         笔尖[前笔低点位置]=Invalid;
  276.                         笔尖[前笔高点位置]=Invalid;
  277.                         笔[前笔低点位置]=Invalid;
  278.                         笔[前笔高点位置]=Invalid;
  279. //                        If TL_ID[前笔高点位置]<>-1 Then
  280. //                          Tl_Delete(TL_ID[前笔高点位置]);
  281.                         //查找合适的笔尖
  282.                         i=前笔高点位置+1;
  283.                         While i<DataCount Do
  284.                         Begin
  285.                           //查找符合的顶或底
  286.                           If K线类型[i]=顶 Then
  287.                           Begin
  288.                             If 笔尖[i]>=新高[今笔高点位置] Then
  289.                                 Begin
  290.                                   找到符合K线=True;
  291.                                   Break;
  292.                                 End Else Begin
  293.                                   K线类型[i]=废弃的顶;
  294.                                   笔尖[i]=Invalid;
  295.                                   笔[i]=Invalid;
  296. //                                  Tl_Delete(TL_ID[i]);
  297.                                 End;
  298.                           End Else Begin
  299.                             If K线类型[i]=底 Then
  300.                                 Begin
  301.                                   前笔低点位置=i;
  302.                                   If 笔尖[i]<=新低[今笔低点位置] Then
  303.                                   Begin
  304.                                     找到符合K线=True;
  305.                                         Break;
  306.                                   End Else Begin
  307.                                     K线类型[i]=废弃的底;
  308.                                         笔尖[i]=Invalid;
  309.                                         笔[i]=Invalid;
  310. //                                        Tl_Delete(TL_ID[i]);
  311.                                   End;
  312.                                 End;
  313.                           End;
  314.                           i++;
  315.                         End;                       
  316.                         //找到向下笔或找不到符合的笔
  317.                         If (找到符合K线=True And K线类型[i]=底) Or 找到符合K线=False Then
  318.                         Begin                          
  319.                           前笔高点位置=今笔高点位置;
  320.                           K线类型[今笔高点位置]=顶;
  321.                           笔尖[今笔高点位置]=新高[今笔高点位置];
  322.                           笔[今笔高点位置]=新高[今笔高点位置];
  323.                           笔计数=0;
  324. //                          If 找到符合K线=True Then
  325. //                            Tl_SetEnd(TL_ID[i],Date[前笔高点位置],Time[前笔高点位置],笔尖[前笔高点位置]);
  326.                           i=今笔高点位置-1;
  327.                           While i>=最新完成K线位置 Do
  328.                           Begin
  329.                             If (High[i]>新高[i+1] And Low[i]>新低[i+1]) Or
  330.                                    (High[i]<新高[i+1] And Low[i]<新低[i+1]) Then
  331.                                   笔计数++;
  332.                                   i--;
  333.                           End;
  334.                           If 笔计数<2 Or (笔计数>1 And 新低[最新完成K线位置]>=分型区间下沿[今笔高点位置]) Then
  335.                             笔状态[最新完成K线位置]=向上笔分型构造;
  336.                         End Else
  337.                           If 找到符合K线=True And K线类型[i]=顶 Then
  338.                           Begin                            
  339.                         今笔高点位置=i;
  340.                                 前笔高点位置=i;
  341.                                 笔计数=旧笔;
  342. //                                Tl_Delete(TL_ID[前笔高点位置]);
  343.                           End;
  344.                   End Else Begin
  345.                         i=前笔高点位置;
  346.                         找到符合K线=True;
  347.                     K线类型[前笔低点位置]=废弃的底;
  348.                         笔尖[前笔低点位置]=Invalid;
  349.                         笔[前笔低点位置]=Invalid;
  350. //                        If TL_ID[前笔高点位置]<>-1 Then
  351. //                          Tl_Delete(TL_ID[前笔高点位置]);
  352.                         今笔高点位置=前笔高点位置;
  353.                         笔计数=旧笔;
  354.                   End;                  
  355.                   //查找前笔低点
  356.                   If 找到符合K线=True And K线类型[i]=顶 Then
  357.                   Begin
  358.                     i++;
  359.                     While i<DataCount Do
  360.                     Begin
  361.                       If 找到符合K线=True And K线类型[i]=底 Then
  362.                           Begin
  363.                             前笔低点位置=i;
  364.                     Break;
  365.                           End;
  366.                           i++;
  367.                 End;
  368.                   End;
  369.                   今笔低点位置=最新完成K线位置;
  370.                 End;
  371.           End;
  372.     End
  373.   End;
  374. End;

  375. //3.3 上涨K线
  376. If K线方向[最新完成K线位置]=上涨 Then
  377. Begin
  378.   Switch(笔状态[最新完成K线位置+1]) Begin
  379.     Case 向下笔分型构造:
  380.           If 新高[最新完成K线位置]>分型区间上沿[前笔低点位置] Then
  381.           Begin
  382.             笔状态[最新完成K线位置]=向上笔延伸;
  383.                 今笔高点位置=最新完成K线位置;
  384.           End Else
  385.             If High[最新完成K线位置]=分型区间上沿[前笔低点位置] Then
  386.                   今笔高点位置=最新完成K线位置;
  387.           
  388.         Case 向上笔延伸:
  389.           If High[最新完成K线位置]>=新高[今笔高点位置] Then
  390.             今笔高点位置=最新完成K线位置;
  391.                
  392.         Default: Begin
  393.           //向下笔完成
  394.                  
  395.           成笔条件=K线方向[最新完成K线位置+1]=下跌 And
  396.              笔状态[最新完成K线位置+1]=向下笔延伸 And
  397.              新低[最新完成K线位置+1]=新低[今笔低点位置] And
  398.                  ((笔计数>新笔 And 新笔标准=True And (今笔高点位置-今笔低点位置)>新笔周期)
  399.                  Or (笔计数>旧笔));
  400.           If 成笔条件 Or (缺口处理 And 缺口) Then
  401.           Begin
  402.                 K线类型[今笔低点位置]=底;
  403.                 笔状态[最新完成K线位置]=向下笔分型构造;
  404.                 笔计数=1;
  405.                 笔尖[今笔低点位置]=新低[今笔低点位置];
  406.                 笔[今笔低点位置]=新低[今笔低点位置];
  407.                 前笔低点位置=今笔低点位置;
  408.                 今笔高点位置=最新完成K线位置;
  409. //                TL_ID[前笔高点位置]=Tl_New(Date[前笔高点位置],Time[前笔高点位置],新高[前笔高点位置],
  410. //                                           Date[前笔低点位置],Time[前笔低点位置],笔尖[前笔低点位置]);
  411. //            Tl_SetColor(TL_ID[前笔高点位置],COLORYELLOW);
  412. //                Tl_SetStyle(TL_ID[前笔高点位置],3);
  413.                 If 缺口处理 Then
  414.                 Begin
  415.                   If 分型区间上沿[今笔低点位置]=笔尖[前笔高点位置] Then
  416.                         分型区间上沿[今笔低点位置]=新高[今笔高点位置];
  417.                   If Low[今笔高点位置]>新高[前笔高点位置] Then
  418.                     缺口=True;
  419.                   Else
  420.                     缺口=False;
  421.                 End;
  422.             成笔条件=False;
  423.           End Else Begin
  424.             找到符合K线=False;
  425.             If 新高[最新完成K线位置]>新高[前笔高点位置] Then
  426.                 Begin
  427.                   笔状态[最新完成K线位置]=向上笔延伸;
  428.                   //向下笔区间大于向上笔区间的特殊情况
  429.                   If 新低[今笔低点位置]<新低[前笔低点位置]  And 限制高低=True  Then
  430.                   Begin
  431.                     K线类型[最新完成K线位置]=上破;
  432.                         K线类型[前笔低点位置]=废弃的底;
  433.                         K线类型[前笔高点位置]=废弃的顶;
  434.                         笔尖[前笔低点位置]=Invalid;
  435.                         笔尖[前笔高点位置]=Invalid;
  436.                         笔[前笔低点位置]=Invalid;
  437.                         笔[前笔高点位置]=Invalid;
  438. //                        If TL_ID[前笔低点位置]<>-1 Then
  439. //                          Tl_Delete(TL_ID[前笔低点位置]);
  440.                         //查找合适的笔尖
  441.                         i=前笔低点位置+1;
  442.                         While i<DataCount Do
  443.                         Begin
  444.                           //查找符合的顶或底
  445.                           If K线类型[i]=顶 Then
  446.                           Begin
  447.                             前笔高点位置=i;
  448.                             If 笔尖[i]>=新高[今笔高点位置] Then
  449.                                 Begin
  450.                                   找到符合K线=True;
  451.                                   Break;
  452.                                 End Else Begin
  453.                                   K线类型[i]=废弃的顶;
  454.                                   笔尖[i]=Invalid;
  455.                                   笔[i]=Invalid;
  456. //                                  Tl_Delete(TL_ID[i]);
  457.                                 End;
  458.                           End Else Begin
  459.                             If K线类型[i]=底 Then
  460.                                 Begin
  461.                                   If 笔尖[i]<=新低[今笔低点位置] Then
  462.                                   Begin
  463.                                     找到符合K线=True;
  464.                                         Break;
  465.                                   End Else Begin
  466.                                     K线类型[i]=废弃的底;
  467.                                         笔尖[i]=Invalid;
  468.                                         笔[i]=Invalid;
  469. //                                        Tl_Delete(TL_ID[i]);
  470.                                   End;
  471.                                 End;
  472.                           End;
  473.                           i++;
  474.                         End;                       
  475.                         //找到向上笔或找不到符合的笔
  476.                         If (找到符合K线=True And K线类型[i]=顶) Or 找到符合K线=False Then
  477.                         Begin                          
  478.                           前笔低点位置=今笔低点位置;
  479.                           K线类型[今笔低点位置]=底;
  480.                           笔尖[今笔低点位置]=新低[今笔低点位置];
  481.                           笔[今笔低点位置]=新低[今笔低点位置];
  482.                           笔计数=0;
  483. //                          If 找到符合K线=True Then
  484. //                            Tl_SetEnd(TL_ID[i],Date[前笔低点位置],Time[前笔低点位置],笔尖[前笔低点位置]);
  485.                           i=今笔低点位置-1;
  486.                           While i>=最新完成K线位置 Do
  487.                           Begin
  488.                             If (High[i]>新高[i+1] And Low[i]>新低[i+1]) Or
  489.                                    (High[i]<新高[i+1] And Low[i]<新低[i+1]) Then
  490.                                   笔计数++;
  491.                                   i--;
  492.                           End;
  493.                           If 笔计数<2 Or (笔计数>1 And 新高[最新完成K线位置]<=分型区间上沿[今笔低点位置]) Then
  494.                             笔状态[最新完成K线位置]=向下笔分型构造;
  495.                         End Else
  496.                           If 找到符合K线=True And K线类型[i]=底 Then
  497.                           Begin
  498.                         今笔低点位置=i;
  499.                                 前笔低点位置=i;
  500.                                 笔计数=旧笔;
  501. //                                Tl_Delete(TL_ID[前笔低点位置]);
  502.                           End;
  503.                   End Else Begin
  504.                         i=前笔低点位置;
  505.                         找到符合K线=True;
  506.                     K线类型[前笔高点位置]=废弃的顶;
  507.                         笔尖[前笔高点位置]=Invalid;
  508.                         笔[前笔高点位置]=Invalid;
  509. //                        If TL_ID[前笔低点位置]<>-1 Then
  510. //                          Tl_Delete(TL_ID[前笔低点位置]);
  511.                         今笔低点位置=前笔低点位置;
  512.                         笔计数=旧笔;
  513.                   End;                  
  514.                   //查找前笔高点
  515.                   If 找到符合K线=True And K线类型[i]=底 Then
  516.                   Begin
  517.                     i++;
  518.                     While i<DataCount Do
  519.                     Begin
  520.                       If 找到符合K线=True And K线类型[i]=顶 Then
  521.                           Begin
  522.                             前笔高点位置=i;
  523.                     Break;
  524.                           End;
  525.                           i++;
  526.                 End;
  527.                   End;
  528.                   今笔高点位置=最新完成K线位置;
  529.                 End;
  530.           End;
  531.         End
  532.   End;
  533. End;
复制代码














使用道具 举报

Rank: 4

发表于 2013-12-9 23:31:24 |显示全部楼层
本帖最后由 benyip 于 2013-12-9 23:49 编辑

不要求一笔高低:



要求一笔高低:


处理缺口要求高低:


不处理缺口要求高低:


不处理缺口不要求高低:



附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

使用道具 举报

Rank: 4

发表于 2013-12-9 23:39:01 |显示全部楼层
各取所需。。。。

使用道具 举报

Rank: 4

发表于 2013-12-9 23:41:40 |显示全部楼层
源码缺口比较语句那里,大家可以自定义多大距离才为缺口

使用道具 举报

Rank: 9Rank: 9Rank: 9

发表于 2013-12-10 08:46:32 |显示全部楼层
改变需要勇气,尝试难免挫折,我们渴望聆听您的声音!

使用道具 举报

Rank: 4

发表于 2013-12-10 12:05:20 |显示全部楼层
谢谢提供分享                        

使用道具 举报

Rank: 4

勇士奖

发表于 2013-12-10 15:43:28 |显示全部楼层
benyip 发表于 2013-12-9 23:41
源码缺口比较语句那里,大家可以自定义多大距离才为缺口

严重支持,感谢~

使用道具 举报

Rank: 6Rank: 6

发表于 2013-12-10 18:01:22 |显示全部楼层
膜拜高手,顶帖。

使用道具 举报

Rank: 6Rank: 6

发表于 2013-12-14 21:40:12 |显示全部楼层
优秀的指标贴,要顶

使用道具 举报

Rank: 3Rank: 3

发表于 2013-12-14 23:40:43 |显示全部楼层
谢谢提供分享                        

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

bottom

Archiver|http://www.patiosoft.com

GMT+8, 2017-12-11 12:12 , Processed in 0.195712 second(s), 11 queries .

花生网 Copyrigh©2012

和讯信息科技有限公司 ALL Rights Reserved 版权所有 复制必究

回顶部