# MA Cross Reverse Position.pt -- 10/40移動平均交差システム ドテン型
# Copyright 2013 panacoran <panacoran@users.sourceforge.jp>
# This program is licensed under the GPL version 3 or later.
# 
# MA(10)がMA(40)の交差でドテン。
# ただし、終値50円以下、出来高1000万円以下の場合はentryしない。
# 価格は翌日の寄り付きか当日の終値。買い数量は約100万円。

require "TIlib"

def Num(price)
	unit = Unit2(price)
	return (1000000 / (unit * price)) * unit
end

if !$__INIT__
	# TIlibのオブジェクトを生成する。
	$MA_fast = MA_new(10)
	$MA_slow = MA_new(40)
	$Cross = Crossover_new(0, 0.0)
	# グローバル変数を初期化する。
	$position = 0
	$loss_cut = 0
	$__INIT__ = 1
else
	# 指標の計算を一日進める。
	MA_next($MA_fast)
	MA_next($MA_slow)
end

ma_fast = MA_value($MA_fast)
ma_slow = MA_value($MA_slow)
price = {+1}Open
if !price
	price = Close
end

if ma_fast == null || ma_slow == null || !price
	# 指標の計算に必要な日数を経過していない場合は何もしない。
	return
end
cross = Crossover_next($Cross, ma_fast, ma_slow)
order = 0
if !cross
	# 交差していなければ何もしない。
	return
end
# ポジションがあればexitする。
order = -$position
$position = 0

# entryの条件を判定する。
if Close > 50 && Volume * Close > 10000
	$position = Num(price)
	if cross < 0
		$position = -$position # 下抜いてるなら空売り。
	end
end
# 売買は一日一回にまとめる。
if (order + $position > 0)
	Buy(price, order + $position)
elsif (order + $position < 0)
	Sell(price, -(order + $position))
end

# Local Variables:
# tab-width: 4
# End:
