読者です 読者をやめる 読者になる 読者になる

プログラミングでアイデアを具現化したい

あらゆるものを具現化するためにプログラミングを始めました。主にC#

2000年以降の時間毎の値幅

SQL

大したことやってないんですけど、無性に表題の件が気になったので
数値がどうなっているのか改めて視覚化したいと思い、
MT4から1時間足をSQLServerにインポートして以下クエリで出力してみました。

case whenの箇所が力技みたいで気持ち悪いですが、
今回の目的はエクセルで編集しやすい為の出力なのでこれで良しとします。

SELECT left(convert(nvarchar,[HH],108),2) HH
      ,AVG(case when left(convert(nvarchar,[YYYY],112),4)='2000'then ([H]-[L])*100 else NULL end) '2000'
   ,AVG(case when left(convert(nvarchar,[YYYY],112),4)='2001'then ([H]-[L])*100 else NULL end) '2001'
   ,AVG(case when left(convert(nvarchar,[YYYY],112),4)='2002'then ([H]-[L])*100 else NULL end) '2002'
    ,AVG(case when left(convert(nvarchar,[YYYY],112),4)='2003'then ([H]-[L])*100 else NULL end) '2003'
    ,AVG(case when left(convert(nvarchar,[YYYY],112),4)='2004'then ([H]-[L])*100 else NULL end) '2004'
    ,AVG(case when left(convert(nvarchar,[YYYY],112),4)='2005'then ([H]-[L])*100 else NULL end) '2005'
    ,AVG(case when left(convert(nvarchar,[YYYY],112),4)='2006'then ([H]-[L])*100 else NULL end) '2006'
    ,AVG(case when left(convert(nvarchar,[YYYY],112),4)='2007'then ([H]-[L])*100 else NULL end) '2007'
    ,AVG(case when left(convert(nvarchar,[YYYY],112),4)='2008'then ([H]-[L])*100 else NULL end) '2008'
    ,AVG(case when left(convert(nvarchar,[YYYY],112),4)='2009'then ([H]-[L])*100 else NULL end) '2009'
    ,AVG(case when left(convert(nvarchar,[YYYY],112),4)='2010'then ([H]-[L])*100 else NULL end) '2010'
    ,AVG(case when left(convert(nvarchar,[YYYY],112),4)='2011'then ([H]-[L])*100 else NULL end) '2011'
    ,AVG(case when left(convert(nvarchar,[YYYY],112),4)='2012'then ([H]-[L])*100 else NULL end) '2012'
    ,AVG(case when left(convert(nvarchar,[YYYY],112),4)='2013'then ([H]-[L])*100 else NULL end) '2013'
    ,AVG(case when left(convert(nvarchar,[YYYY],112),4)='2014'then ([H]-[L])*100 else NULL end) '2014'
    ,AVG(case when left(convert(nvarchar,[YYYY],112),4)='2015'then ([H]-[L])*100 else NULL end) '2015'
    ,AVG(case when left(convert(nvarchar,[YYYY],112),4)='2016'then ([H]-[L])*100 else NULL end) '2016'

  FROM [MT4Candle].[dbo].[USDJPY60$]
  group by left(convert(nvarchar,[HH],108),2)
  order by left(convert(nvarchar,[HH],108),2)

f:id:tos5511:20161223020739p:plain

出力したデータはドル円の時間毎変動幅(高値-安値)。
年で見ればリーマンショックの2008年、異次元緩和の2013、
そして今年は値幅が多く、2012年は・・ 
時間帯別ではやはりというか、東京、ロンドン、NYのコアタイムが高い。

※データ間違ってたらごめんなさいw