- 2008-05-25 (日) 22:41
- Java | プログラミング | 株式投資 | 自動トレーディングへの道
しばらく多忙にかまけて放置していたけれど、市況がよくなってきたのでムクムクとやる気を出して、と言っても30分ほど作業をしてみた。
方針は以前作ったMonexに対して、出来高の平均の3倍の取引があれば通知をするように変更するもの。結果がどうなるかは試してみてのお楽しみ。
巡回に関するルールの変更
変更点をいくつか。まず出来高チェックなので頻繁に見る必要はなく、サーバに与える負荷を軽くすることにした。まず銘柄数をそう多くしない前提で1分おきにチェックをする。Thread.sleep()はミリ秒を与えるので、interval = 1000 * 60としている。これをchainの要素数で割った時間だけ眠らせることにした。このオブジェクトのインスタンスは自身のstaticなチェインに記録させているので、each()してやれば、あとはどんどんnewするだけで正しく巡回する。
public static void each() throws InterruptedException {
Iterator it = chain.iterator();
// リストの要素数
int size = chain.size();
int wait = interval / size;
while (it.hasNext()) {
StockMonitor m = it.next();
m.update();
Thread.sleep(wait);
}
}
HistoricalPricesList
Priceとあるけど出来高を今回は格納している。
package utilities;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class HistoricalPricesList
{
private List historical;
private int max;
public HistoricalPricesList( int size )
{
this.max = size;
historical = new ArrayList ();
}
public void add( int value )
{
int size = historical.size();
// サイズを超える場合は一番古いものを捨てる
if( size >= max )
historical.remove(0);
historical.add(value);
}
// リストの平均を得る
public int average()
{
int size = historical.size();
int sum = 0;
Iterator it = historical.iterator();
// ゼロによる除算回避
if( size == 0 )
return 0;
while (it.hasNext())
sum += it.next();
return sum / size;
}
}
つまり、ガシガシ値を放り込むと平均を取り出せるというだけ。
update()
定期的に株価や出来高を見て、平均の3倍を超える出来高が発生したら通知する。
public void update()
{
try
{
getPrice();
java.util.Date d = new java.util.Date();
if( volume != previous )
{
previous = volume;
int average = historical.average();
if( volume > 3 * average )
{
// 出来高急増
System.out.println(d);
System.out.println( code );
System.out.println( "Last Trade:" + price );
System.out.println( "Volume:" + volume );
System.out.println( "" );
}
historical.add(volume);
}
}
catch (CodeNotFoundException e)
{
}
}
Comments:0
Trackback+Pingback:0
- TrackBack URL for this entry
- http://blog.neoneet.jp/2008/05/25/%e8%87%aa%e5%8b%95%e3%83%88%e3%83%ac%e3%83%bc%e3%83%87%e3%82%a3%e3%83%b3%e3%82%b0%e3%81%b8%e3%81%ae%e9%81%939/trackback/
- Listed below are links to weblogs that reference
- 自動トレーディングへの道(9) from 週刊(月刊?)プレカリアート














