Home > Java | プログラミング | 株式投資 | 自動トレーディングへの道 > 自動トレーディングへの道(9)

自動トレーディングへの道(9)

しばらく多忙にかまけて放置していたけれど、市況がよくなってきたのでムクムクとやる気を出して、と言っても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

Comment Form
Remember personal info

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 週刊(月刊?)プレカリアート

Home > Java | プログラミング | 株式投資 | 自動トレーディングへの道 > 自動トレーディングへの道(9)

Search
Feeds
Meta

Page Top