N-period candlesticks (time compression).afl
上传用户:shiqiang
上传日期:2009-06-12
资源大小:1289k
文件大小:2k
源码类别:

金融证券系统

开发平台:

Others

  1. //------------------------------------------------------------------------------
  2. //
  3. //  Formula Name:    N-period candlesticks (time compression)
  4. //  Author/Uploader: Junya Ho 
  5. //  E-mail:          JUNYAdotHO@nospamUTORONTOdotCA
  6. //  Date/Time Added: 2002-12-24 03:02:05
  7. //  Origin:          
  8. //  Keywords:        weekly monthly candlesticks arbitrary period
  9. //  Level:           basic
  10. //  Flags:           indicator
  11. //  Formula URL:     http://www.amibroker.com/library/formula.php?id=244
  12. //  Details URL:     http://www.amibroker.com/library/detail.php?id=244
  13. //
  14. //------------------------------------------------------------------------------
  15. //
  16. //  Construct n-period candlesticks while viewing any price chart. E.g. n=5 is
  17. //  ~ weekly, n=20 ~monthly.
  18. //
  19. //  This saves you from creating multiple windows or switching between
  20. //  daily/weekly/monthly views.
  21. //
  22. //------------------------------------------------------------------------------
  23. // compress price time series by a given factor
  24. // e.g. 5 into 1 is like weekly view
  25. // by Junya Ho (JUNYAdotHO@nospamUTORONTOdotCA)
  26. barnum = Cum(1);
  27. numbars = LastValue(barnum);
  28. factor = 5; // compress FACTOR bars into 1
  29.  
  30. // number of compressed bars
  31. numcbars = ceil(numbars / factor);
  32. delta = numbars - barnum;
  33. factorbeginidx = - factor * delta - factor + 1 + delta;
  34. factorendidx = - factor * delta + delta;
  35. newo = IIf(barnum < numbars - numcbars, 0, Ref(O, factorbeginidx));
  36. newh = IIf(barnum < numbars - numcbars, 0, Ref(HHV(H, factor), factorendidx));
  37. newl = IIf(barnum < numbars - numcbars, 0, Ref(LLV(L, factor), factorendidx));
  38. newc = IIf(barnum < numbars - numcbars, 0, Ref(C, factorendidx));
  39. Daystart_str = WriteVal(Ref(Year(), factorbeginidx), 1.0) + "-" + WriteVal(Ref(Month(), factorbeginidx), 1.0) + "-" + WriteVal(Ref(Day(), factorbeginidx), 1.0);
  40. Dayend_str = WriteVal(Ref(Year(), factorendidx), 1.0) + "-" + WriteVal(Ref(Month(), factorendidx), 1.0) + "-" + WriteVal(Ref(Day(), factorendidx), 1.0);
  41. PlotOHLC(newo, newh, newl, newc, WriteVal(factor, 1.0) + "-period price", 17, styleCandle);
  42. Title = WriteVal(factor, 1.0) + "-period candlesticks,  O:" + WriteVal(newo) + ",  H:" + WriteVal(newh) + ",  L:" + WriteVal(newl) + ",  C:" + WriteVal(newc) + ",  from: " + Daystart_str + ", to: " + Dayend_str;