The manual page on Trading Strategies
http://zorro-trader.com/manual/en/strategy.htm says
"Another effect - a real inefficiency that can be exploited in strategies - is visible in the following spectral analysis chart:" and goes on to say "Cycles arise from synchronized trading behavior and are not necessarily aligned to days or weeks. Those cycles are not found in random data."

The spectral analysis chart presented in that section is compelling at first glance. There are several well-defined peaks implying some inefficiency at certain cycles. But Spectral analysis of a random-walk timeseries also results in a set of well-formed peaks. This one, for example, has a nice juicy peak to draw your attention to a cycle of ~= 80 hours. The AVG amplitude (39) is nearly as high as the one discussed in the manual (41 @24hrs), and higher than all the others mentioned. An even more significant peak (42) sits at 146 hrs. Of course, this is all meaningless since the series behind it was generated by the Random.c script.
Code:
function run() {
  BarPeriod = 60;
  StartDate = 20080101;
  EndDate = 20150101;
  LookBack = 500; // 2 x highest Cycle

  vars Random = series(0);
  if(Bar == 1) {
    Random[0] = price();
  } else {
    Random[0] = Random[1] + 0.01 * random();
  }

  plot("Random",Random[0],0,BLUE);
  int Cycle;
  for (Cycle = 5; Cycle < 250; Cycle += 1) {
    plotBar(
    	  "Spectrum", Cycle, Cycle, Spectrum(Random,Cycle), BARS+AVG+LBL2, RED);
  }
}

Can you identify anything different about the attached graph compared to the one in the manual? In general, what supports the assertion that the cycles on display in the chart do not appear in random data?

Attached Files
randspec_EURUSD_s.png (22 downloads)