AFL Timing functions.afl
上传用户:shiqiang
上传日期:2009-06-12
资源大小:1289k
文件大小:2k
源码类别:

金融证券系统

开发平台:

Others

  1. //------------------------------------------------------------------------------
  2. //
  3. //  Formula Name:    AFL Timing functions
  4. //  Author/Uploader: Herman van den bergen 
  5. //  E-mail:          
  6. //  Date/Time Added: 2005-02-19 11:48:19
  7. //  Origin:          
  8. //  Keywords:        
  9. //  Level:           semi-advanced
  10. //  Flags:           function
  11. //  Formula URL:     http://www.amibroker.com/library/formula.php?id=431
  12. //  Details URL:     http://www.amibroker.com/library/detail.php?id=431
  13. //
  14. //------------------------------------------------------------------------------
  15. //
  16. //  Tested with AmiBroker 4.69.0 beta. A few Second-timing functions for
  17. //  general use: GetSecondNum(), GetElapesedSeconds and GetBarsSecsLeft. Copy
  18. //  to indicator, Insert, and open the Param window to test the elapsed time
  19. //  function.
  20. //
  21. //------------------------------------------------------------------------------
  22. Reset = ParamTrigger("Static Variables","Click to Reset");
  23. function GetSecondNum()
  24. {
  25. Time  = Now(4);
  26. Seconds  = int(Time%100);
  27. Minutes  = int(Time/100%100);
  28. Hours  = int(Time/10000%100);
  29. SecondNum= int(Hours*60*60+Minutes*60+Seconds);
  30. return SecondNum;
  31. }
  32. function GetElapsedSeconds( reset ) 
  33. {
  34. NowSecs  = GetSecondNum();
  35. if( Reset ) StaticVarSet("SecondTimer", NowSecs );
  36. PrevSecs = StaticVarGet("SecondTimer");
  37. ESecs = NowSecs - PrevSecs;
  38. return eSecs;
  39. }
  40. function GetBarSecsLeft() 
  41. {
  42. BarInterval = Interval();
  43. NowSecs  = GetSecondNum();
  44. PrevSecs  = StaticVarGet("SecondTimer");
  45. ESecs  = BarInterval - (NowSecs - PrevSecs);
  46. if( eSecs < 0 ) eSecs = 0;
  47. else if ( eSecs > 60 ) eSecs = 60;
  48. return eSecs;
  49. }
  50. if( IsEmpty(StaticVarGet("IsInitialized")) OR Reset)
  51. {
  52. StaticVarSet("PrevBarNum", BarCount-1);
  53. StaticVarSet("IsInitialized",1);
  54. }
  55. Plot(C,"C",1,128);
  56. Title =
  57. "nUse Param() to reset elapsed seconds..."+
  58. "nSecond Count:     "+NumToStr(GetSecondNum(),1.0,False)+
  59. "n20-Second Count:  "+NumToStr(int(GetSecondNum()/20),1.0,False)+
  60. "nElapsed Seconds:  "+NumToStr(GetElapsedSeconds(Reset),1.0,False)+
  61. "nBar Seconds left: "+NumToStr(GetBarSecsLeft(),1.0,False);