: | : | :期货程序化 | :期货程序化研究 | :期货量化学习 | :期货量化 |
返回列表 发帖

【头肩底形态(Head & Shoulders)】

【头肩底形态(Head & Shoulders)】

  1. inputs:
  2.         NeckSwStrength( 2 ),
  3.         HnSSwStrength( 2 ),
  4.         VertProportionLimit( .33 ),                                             
  5.         HiLo( 1 ),                                             
  6.         ConfirmVolume( true ),
  7.         DrawNeckline( true ),                                                        
  8.                                   
  9.         BarsPast( 10 ),                                                                  
  10.                                                                 
  11.         Color1( Yellow ),
  12.         Color2( Cyan ) ;                                                                  
  13.                                                                                         
  14.                                                     

  15. variables:
  16.         var0( 0 ),
  17.         var1( 0 ),
  18.         var2( 0 ),
  19.         var3( NeckSwStrength + 1 ),
  20.         var4( HnSSwStrength + 1 ),
  21.         var5( 0 ),
  22.         var6( 0 ),
  23.         var7( HnSSwStrength * 2 ),
  24.         var8( false ),
  25.         var9( false ),
  26.         var10( false ),
  27.         var11( 0 ),
  28.         var12( 0 ),
  29.         var13( 0 ),
  30.         var14( false ),
  31.         var15( Color2 ),
  32.         var16( -1 ),
  33.         var17( -1 ),
  34.         var18( 0 ),
  35.         var19( "" ),
  36.         var20( 0 ),
  37.         var21( 0 ),
  38.         var22( -1 ) ;

  39. arrays:
  40.         arr0[ 1, 3 ]( 0 ),
  41.         arr1[ 2, 4 ]( 0 ) ;

  42. var0 = CurrentBar ;

  43. if HiLo = 1 then
  44.         begin
  45.         var1 = SwingLowBar( 1, Low, NeckSwStrength, var3 ) ;
  46.         var2 = SwingHighBar( 1, High, HnSSwStrength, var4 ) ;
  47.         var5 = Low ;
  48.         var6 = High ;
  49.         end
  50. else if HiLo = -1 then
  51.         begin
  52.         var1 = SwingHighBar( 1, High, NeckSwStrength, var3 ) ;
  53.         var2 = SwingLowBar( 1, Low, HnSSwStrength, var4 ) ;
  54.         var5 = High ;
  55.         var6 = Low ;
  56.         end ;

  57. if var1 = NeckSwStrength then
  58.                                    
  59.         begin

  60.                                      
  61.         arr0[ 1, 0 ] = arr0[ 0, 0 ] ;
  62.         arr0[ 1, 1 ] = arr0[ 0, 1 ] ;
  63.         arr0[ 1, 2 ] = arr0[ 0, 2 ] ;
  64.         arr0[ 1, 3 ] = arr0[ 0, 3 ] ;

  65.                                                                                   
  66.         arr0[ 0, 0 ] = var0[NeckSwStrength] ;
  67.         arr0[ 0, 1 ] = Date[NeckSwStrength] ;
  68.         arr0[ 0, 2 ] = Time[NeckSwStrength] ;
  69.         arr0[ 0, 3 ] = var5[NeckSwStrength] ;
  70.         end ;

  71. if var2 = HnSSwStrength then
  72.                                  
  73.         begin

  74.                                      
  75.         for Value1 = 1 downto 0
  76.                 begin
  77.                 arr1[ Value1 + 1, 0 ] = arr1[ Value1, 0 ] ;
  78.                 arr1[ Value1 + 1, 1 ] = arr1[ Value1, 1 ] ;
  79.                 arr1[ Value1 + 1, 2 ] = arr1[ Value1, 2 ] ;
  80.                 arr1[ Value1 + 1, 3 ] = arr1[ Value1, 3 ] ;
  81.                 arr1[ Value1 + 1, 4 ] = arr1[ Value1, 4 ] ;
  82.                 end ;

  83.                                                                                  
  84.         arr1[ 0, 0 ] = var0[HnSSwStrength] ;
  85.         arr1[ 0, 1 ] = Date[HnSSwStrength] ;
  86.         arr1[ 0, 2 ] = Time[HnSSwStrength] ;
  87.         arr1[ 0, 3 ] = var6[HnSSwStrength] ;
  88.         if BarType >= 2 and BarType < 5 then                              
  89.                 arr1[ 0, 4 ] = Average( Volume, var7 )
  90.         else                                                                              
  91.                                                                                         
  92.                 arr1[ 0, 4 ] = Average( Ticks, var7 ) ;

  93.                                        
  94.         var8 = arr1[ 0, 0 ] > arr0[ 0, 0 ]
  95.          and arr0[ 0, 0 ] > arr1[ 1, 0 ]
  96.          and arr1[ 1, 0 ] > arr0[ 1, 0 ]
  97.          and arr0[ 1, 0 ] > arr1[ 2, 0 ] ;
  98.         if HiLo = 1 then
  99.                 begin
  100.                 var9 = arr1[ 1, 3 ] > arr1[ 2, 3 ]
  101.                  and arr1[ 1, 3 ] > arr1[ 0, 3 ] ;
  102.                 var10 = arr0[0, 3] < arr1[2, 3]
  103.                  and arr0[ 1, 3 ] < arr1[ 0, 3 ] ;
  104.                 var11 = MinList( arr0[ 0, 3 ],  arr0[ 1, 3 ] ) ;
  105.                 var12 = arr1[ 1, 3 ] - var11 ;
  106.                 end
  107.         else if HiLo = -1 then
  108.                 begin
  109.                 var9 = arr1[ 1, 3 ] < arr1[ 2, 3 ]
  110.                  and arr1[ 1, 3 ] < arr1[ 0, 3 ] ;
  111.                 var10 = arr0[0, 3] > arr1[2, 3]
  112.                  and arr0[ 1, 3 ] > arr1[ 0, 3 ] ;
  113.                 var11 = MaxList( arr0[ 0, 3 ],  arr0[ 1, 3 ] ) ;
  114.                 var12 = var11 - arr1[ 1, 3 ] ;
  115.                 end ;
  116.         var13 = AbsValue( arr0[ 0, 3 ] - arr0[ 1, 3 ] ) ;
  117.         if var12 <> 0 then
  118.                 var14 = var13 / var12 < VertProportionLimit
  119.         else
  120.                 var14 = false ;

  121.         condition1 = var8 and var9 and var10 and var14 ;                 
  122.         if condition1 then
  123.                 begin

  124.                                              
  125.                 if var15 = Color2 then
  126.                         var15 = Color1
  127.                 else
  128.                         var15 = Color2 ;

  129.                                                                                     
  130.                 var16 = Text_New( arr1[ 0, 1 ], arr1[ 0, 2 ], arr1[ 0, 3 ],
  131.                  "Shoulder" ) ;
  132.                 Text_SetColor( var16, var15 ) ;
  133.                 Text_SetStyle( var16, 2, 0 ) ;
  134.                 var16 = Text_New( arr1[ 1, 1 ], arr1[ 1, 2 ], arr1[ 1, 3 ],
  135.                  "Head" ) ;
  136.                 Text_SetColor( var16, var15 ) ;
  137.                 Text_SetStyle( var16, 2, 0 ) ;
  138.                 var16 = Text_New( arr1[ 2, 1 ], arr1[ 2, 2 ], arr1[ 2, 3 ],
  139.                  "Shoulder" ) ;
  140.                 Text_SetColor( var16, var15 ) ;
  141.                 Text_SetStyle( var16, 2, 0 ) ;

  142.                 if ConfirmVolume then
  143.                                                                                                   
  144.                                                
  145.                         begin
  146.                         if BarType >= 2 and BarType < 5 then                              
  147.                                 var18 = Average( Volume, HnSSwStrength )
  148.                         else                                                                     
  149.                                                                                               
  150.                                             
  151.                                 var18 = Average( Ticks, HnSSwStrength ) ;
  152.                         if var18 > arr1[ 0, 4 ] and var18 >  arr1[ 2, 4 ] then
  153.                                                                                                  
  154.                                                                                          
  155.                                 var19 = "Volume confirm"
  156.                         else
  157.                                 var19 = "Vol non-confirm" ;
  158.                         var16 = Text_New( arr0[ 1, 1 ], arr0[ 1, 2 ], var11,
  159.                          var19 ) ;
  160.                         Text_SetColor( var16, var15 ) ;
  161.                         Text_SetStyle( var16, 0, 1 ) ;
  162.                         end ;

  163.                 if DrawNeckline then
  164.                                                                                                   
  165.                                                                     
  166.                         begin
  167.                         var17 = TL_New( arr0[ 1, 1 ], arr0[ 1, 2 ], arr0[ 1, 3 ],
  168.                          arr0[ 0, 1 ], arr0[ 0, 2 ], arr0[ 0, 3 ] ) ;
  169.                         TL_SetExtLeft( var17, false ) ;
  170.                         TL_SetExtRight( var17, false ) ;
  171.                         TL_SetColor( var17, var15 ) ;
  172.                         var20 = var0 ;
  173.                         end ;
  174.                 end ;
  175.         end ;

  176.                                                                                       
  177.                                                                                    
  178. condition1 = var17 >= 0 and var22 <> var17 and var0 - var20 <= BarsPast ;                                          
  179. if condition1 then
  180.         begin
  181.         var21 = TL_GetValue( var17, Date, Time ) ;
  182.         condition1 = ( HiLo = 1 and Close < var21 ) or ( HiLo = -1 and Close > var21 ) ;
  183.         if condition1 then
  184.                 begin
  185.                 Plot1( var5, "H&S", var15 ) ;
  186.                 Alert ;
  187.                 var22 = var17 ;
  188.                 end
  189.         else
  190.                 NoPlot( 1 ) ;                     
  191.         end ;
复制代码

论坛官方微信、群(期货热点、量化探讨、开户与绑定实盘)
 
期货论坛 - 版权/免责声明   1.本站发布源码(包括函数、指标、策略等)均属开放源码,用意在于让使用者学习程序化语法撰写,使用者可以任意修改语法內容并调整参数。仅限用于个人学习使用,请勿转载、滥用,严禁私自连接实盘账户交易
  2.本站发布资讯(包括文章、视频、历史记录、教材、评论、资讯、交易方案等)均系转载自网络主流媒体,内容仅为作者当日个人观点,本网转载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。本网不对该类信息或数据做任何保证。不对您构成任何投资建议,不能依靠信息而取代自身独立判断,不对因使用本篇文章所诉信息或观点等导致的损失承担任何责任。
  3.本站发布资源(包括书籍、杂志、文档、软件等)均从互联网搜索而来,仅供个人免费交流学习,不可用作商业用途,本站不对显示的内容承担任何责任。请在下载后24小时内删除。如果喜欢,请购买正版,谢谢合作!
  4.龙听期货论坛原创文章属本网版权作品,转载须注明来源“龙听期货论坛”,违者本网将保留追究其相关法律责任的权力。本论坛除发布原创文章外,亦致力于优秀财经文章的交流分享,部分文章推送时若未能及时与原作者取得联系并涉及版权问题时,请及时联系删除。联系方式:http://www.qhlt.cn/thread-262-1-1.html
如何访问权限为100/255贴子:/thread-37840-1-1.html;注册后仍无法回复:/thread-23-1-1.html;微信/QQ群:/thread-262-1-1.html;网盘链接失效解决办法:/thread-93307-1-1.html

返回列表