id:ohguma:20061013#p1であげられているのと同様手法の検証。
確かに勝率は良いようだ。

SELECT k1.hi AS "基準日", k1.code AS "コード", k1.owari AS "基準日終値",
       k1.ave25 AS "基準日25日移動平均", k1.ave05 AS "基準日5日移動平均",
       k3.hajime as "翌日初値",
       max(k2.hajime) as "翌々日以降初値MAX",
       cast(max(k2.hajime) as float)/cast(k3.hajime as float) AS "翌日初値比",
       min(k2.hajime) as "翌々日以降初値MIN",
       cast(min(k2.hajime) as float)/cast(k3.hajime as float) AS "翌日初値比"
  FROM kabuka k1      --基準日
 INNER JOIN kabuka k2 --翌々日から30日間の初値の上限・加減
    ON k1.code=k2.code AND (k2.hi between k1.hi + '+2 days'::interval and '+30 days'::interval)
 INNER JOIN kabuka k3 --翌日の初値
    ON k1.code=k3.code AND (k3.hi = k1.hi + '+1 days'::interval) 
 WHERE k1.hi >= '2006-09-01'
   AND k1.ave25*0.85 >= k1.owari --終値が25日移動平均の85%以下
   AND k1.ave05*0.9 >= k1.owari --終値が5日移動平均の10%以下
   AND k1.dekidaka  > 10000000 / ((k1.takai + k1.yasui + k1.owari) /3) --平均売買代金が1千万以上
 GROUP BY k1.hi, k1.code, k1.owari, k1.ave25, k1.ave05, k3.hajime
 ORDER BY  k1.hi DESC, k1.code