begin screening 0 baseDate 2007 1 12 nLowHigh 0 200 begin condition 0 and 1 begin customExpSrc 1 0 1 // // 間近の値動をブレークアウトした銘柄を抽出する。 // さらに間近の値動(30日間)が、長期の値動(60日間)の40%以内のものについてのみ抽出。 // // ここ30日に25日以上取引のない銘柄は除外 if( Lib_Bundle.CountValidDays(Close_ts(),30) < 25 ) return false; int sn = 30; // 間近の期間 int ln = 60; // 長期の期間 double limitRatio = 40; // 間近期間の値動が、長期期間の値動の40%以内のものを抽出。 double c0 = Close(0); // 今日の終値 // 今日の終値がNaN、すなわち取引がないときはやめる。 if( Double.IsNaN(c0) ) return false; double minS = Lib_Bundle.Min(Low_ts(),-sn,-1); // 間近期間の最安値 double maxS = Lib_Bundle.Max(High_ts(),-sn,-1); // 間近期間の最高値 // 今日の終値が間近期間の最高値以下ならやめ。すなわちブレークアウトしていなければやめ。 if( c0 <= maxS ) return false; double minL = Lib_Bundle.Min(Low_ts(),-ln,-1); // 長期期間の最安値 double maxL = Lib_Bundle.Max(High_ts(),-ln,-1); // 長期期間の最高値 double rangeS = maxS-minS; // 間近期間の値動 double rangeL = maxL-minL; // 長期期間の値動 double ratio = rangeS/rangeL*100; // 間近値動の長期値動にたいする比率を計算 // 値動比率がlimitRatio%以上ならやめ。すなわちそれほど値動に差がないならやめ。 if( ratio > limitRatio ) return false; return true; // すべてクリアしたのでtrueを返す。(すなわち条件マッチ) end condition end screening