tos5511.hatenablog.com
tos5511.hatenablog.com

シリーズ3作目です笑

今度はクリック証券、3月のドル円の時間帯別の平均SPを出してみました。
シリーズ2での検証結果が正しいことが証明できるか・・

書いたコードは以下、ドル円とドル円EXモードの時間帯毎の平均SPを算出してます。

declare @日時 varchar(20)
set @日時 = 201603
select SPTable.通貨名,SPTable.時間,AVG(SPTable.SP)
from
(
	select
		通貨名
		,([終値(ASK)]-[終値(BID)]) as SP
		,case
			when convert(varchar(8),[日時],108) >= 06:00:00 and convert(varchar(8),[日時],108) < 07:00:00 then 06
			when convert(varchar(8),[日時],108) >= 07:00:00 and convert(varchar(8),[日時],108) < 08:00:00 then 07
			when convert(varchar(8),[日時],108) >= 08:00:00 and convert(varchar(8),[日時],108) < 09:00:00 then 08
			when convert(varchar(8),[日時],108) >= 09:00:00 and convert(varchar(8),[日時],108) < 10:00:00 then 09
			when convert(varchar(8),[日時],108) >= 10:00:00 and convert(varchar(8),[日時],108) < 11:00:00 then 10
			when convert(varchar(8),[日時],108) >= 11:00:00 and convert(varchar(8),[日時],108) < 12:00:00 then 11
			when convert(varchar(8),[日時],108) >= 12:00:00 and convert(varchar(8),[日時],108) < 13:00:00 then 12
			when convert(varchar(8),[日時],108) >= 13:00:00 and convert(varchar(8),[日時],108) < 14:00:00 then 13
			when convert(varchar(8),[日時],108) >= 14:00:00 and convert(varchar(8),[日時],108) < 15:00:00 then 14
			when convert(varchar(8),[日時],108) >= 15:00:00 and convert(varchar(8),[日時],108) < 16:00:00 then 15
			when convert(varchar(8),[日時],108) >= 16:00:00 and convert(varchar(8),[日時],108) < 17:00:00 then 16
			when convert(varchar(8),[日時],108) >= 17:00:00 and convert(varchar(8),[日時],108) < 18:00:00 then 17
			when convert(varchar(8),[日時],108) >= 18:00:00 and convert(varchar(8),[日時],108) < 19:00:00 then 18
			when convert(varchar(8),[日時],108) >= 19:00:00 and convert(varchar(8),[日時],108) < 20:00:00 then 19
			when convert(varchar(8),[日時],108) >= 20:00:00 and convert(varchar(8),[日時],108) < 21:00:00 then 20
			when convert(varchar(8),[日時],108) >= 21:00:00 and convert(varchar(8),[日時],108) < 22:00:00 then 21
			when convert(varchar(8),[日時],108) >= 22:00:00 and convert(varchar(8),[日時],108) < 23:00:00 then 22
			when convert(varchar(8),[日時],108) >= 23:00:00 and convert(varchar(8),[日時],108) <= 23:59:59 then 23
			when convert(varchar(8),[日時],108) >= 00:00:00 and convert(varchar(8),[日時],108) < 01:00:00 then 00
			when convert(varchar(8),[日時],108) >= 01:00:00 and convert(varchar(8),[日時],108) < 02:00:00 then 01
			when convert(varchar(8),[日時],108) >= 02:00:00 and convert(varchar(8),[日時],108) < 03:00:00 then 02
			when convert(varchar(8),[日時],108) >= 03:00:00 and convert(varchar(8),[日時],108) < 04:00:00 then 03
			when convert(varchar(8),[日時],108) >= 04:00:00 and convert(varchar(8),[日時],108) < 05:00:00 then 04
			when convert(varchar(8),[日時],108) >= 05:00:00 and convert(varchar(8),[日時],108) < 06:00:00 then 05
		end as 時間
	FROM [ClickNeoPrice].[dbo].[ClickPrice$]
	where LEFT(convert(varchar(20),[日時],112),len(@日時))=@日時
	and 通貨名 in (USDJPY,USDJPYEX)
)SPTable
group by SPTable.通貨名,SPTable.時間

若干、冗長ですね。読者の方でこうしてみたら?
というような指摘や簡素化コード教えてくれる方大募集です。

出力結果
f:id:tos5511:20160321020659p:plain

1時間毎というのは少し大雑把過ぎたか。
全ての時間において、EXモードが普通にワイドな結果となった。
また、スプレッド拡大の時間帯も、オープンクローズ付近が多い事が明らかとなった。
※これは毎日マーケットみてる人ならデータにしなくてもわかることでしょうけど。


追記

時間毎の最小値(通常SP)と最大値を追加してみました。

select A.通貨名,A.時間,AVG(A.SP)平均SP,min(A.SP)最小SP,max(A.SP)最大SP

f:id:tos5511:20160321023057p:plain
結果、通常のドル円がEXモードよりも最大値の大きい時間帯が
3つほどありました。(黄色い箇所)