ホームだと有利、アウェイは不利って本当?統計学的に分析してみよう

いや、分析できないですけどね。
だって、十分なデータを持ってないもん。

完全に名前倒れのタイトルですが、私の知ってる限りの知識で考えてみましょう。

よく、こんなセリフを耳にします。

「今度の試合はホームだから期待できるぞ」
「アウェイでの試合が続き、厳しそうだ」

スポーツの試合、特にサッカーでありがちですね。
ちなみにあと3.5時間でギリシャ戦です。起きれるかな…

流れだのツキといった、オカルトめいたものを一切信じてこないで生きてきた私には、先ほどのセリフは色々と疑問が生じます。

もちろん、パチンコやパチスロじゃないのはわかってますよ?
人間のやることだもん。数値化できない理由がなんかあるんでしょう。

ホームが有利な理由を30秒考えてみました。
アウェイが不利な理由はこの逆ですね。

1.慣れ親しんだグランドだからプレーがしやすい
2.応援がすごいから頑張れちゃう!
3.審判もちょっとくらいは有利なジャッジをしちゃう

3つしか思い浮かばねえよOrz
しかも、最後の審判はないだろ。

2も微妙ですね。
応援が逆にプレッシャーになる場合もある。

そうすると1はまだ、信ぴょう性がありそうな気がする。
球場のクセ?とかさ、ほら色々あるもんね。

でも、野球でドームランがずるいとか言ってるのは、アンチ巨人の俺でもわかんないなあ。

巨人が守備のときだけ、ドームが広くなったり、飛ばないボール使ってるんだったらズルいけど、両チームとも同じ条件なワケでしょ。
だったら変わんないじゃん?って思ってしまうけど。

中日がナゴヤドームで異常に強かったのはなんででしょうねえ。
統計学的にも、有意水準がなんちゃらで帰無仮説がうんちゃらだったはず。

というか、統計学なんてすっかり忘れちゃったよ。
先日見たニュースだと、40歳ではすでに認知症が進行し始めて、45歳では自覚症状も出るんだって。

恐ろしすぎ…
今日もなんかやったんだよなあ、でもそのなんかが思い出せないんだよなあ(涙

思いっきり脱線したけど、ホームが有利、アウェイが不利って都市伝説でしょ。

ちゃんとデータを分析したら、ほとんど優位性がないはず。
だと思う、調べてないから勘だけど。

ある統計学者?だったかな、スポーツで流れに乗るという現象はあるのか、という検証をした人がいたんですよ。

バスケットボールで、10連続シュートを決めている状態。
いわゆる、流れに乗っている状態の選手。

この選手の次のシュートの成功率を求めたら、アベレージでしたとさ。

まあだから、ホームだから有利とかアウェイだから不利っていうのは、関係ないと思う。
あっても、ほとんど影響ないレベル。

だけど、なんとなくそういうイメージがこびりついてるから、そう感じてしまうんじゃないかな。

行動経済学でいうところのあれだ。
そう、あれだよ。

忘れちゃったよ…

追記

上の記事を書き終えたあと、ググってみました。

ちゃんとデータを分析してくれてる人いました。
するとやっぱり、統計学的にはホームもアウェイも関係ないじゃん、って結論に。

何でもかんでも数学的に解決できるとは思わないが、数学的な要素を無視して、経験則や感覚だけで判断するのは如何なものかと思いますね。

【松井証券 自動発注】IE制御でログインから一日信用の画面まで

SMBC日興証券にやる気をそがれたので、亀より遅い歩みでのそのそと。

松井証券の自動発注スクリプトでも作ってみようかな、と。
でも、売り建て可能の銘柄をちゃんと見てないけど厳しいのかな?

とりあえず、一日信用の画面まで行くコード載せますね。

Sub MATUI_Login()

‘変数の宣言
Dim objIE As Object
Dim objTag As Object

‘お約束
Set objIE = CreateObject(“InternetExplorer.application”)
objIE.Visible = True

‘ログイン画面
objIE.navigate “https://www.deal.matsui.co.jp/ITS/login/MemberLogin.jsp”
IE_Complete objIE

‘ID、パスワード
objIE.Document.all.clientCD.Value = “ID”
objIE.Document.all.passwd.Value = “パスワード”

‘ログインボタン
For Each objTag In objIE.Document.getElementsByTagName(“input”)
If objTag.src = “https://www.deal.matsui.co.jp/parts/image/btn_login.gif” Then
objTag.Click
Exit For
End If
Next
IE_Complete objIE

‘一日信用の画面へ
Dim objFRAME As Object
Set objFRAME = objIE.Document.frames

Dim objLink As Object

For Each objLink In objFRAME(“GM”).Document.getElementsByTagName(“A”)
If objLink.innerText = “一日信用” Then
objIE.navigate objLink.href
Exit For
End If
Next

End Sub

‘表示待ち
Public Sub IE_Complete(ByVal objIE As Object)

Do While objIE.Busy = True
DoEvents
Loop

Do While objIE.Document.readyState <> “complete”
DoEvents
Loop

End Sub

28行~39行が最大の鬼門ですかね。
僕も以前、これが原因で立花証券の発注ができなくて、親切なお兄さんに教えていただきました。

For Each objLink In objFRAME("GM").Document.getElementsByTagName("A")

詳しい解説はしませんけど、マルチ(多重)フレーム構造、っていうんですかね?
オブジェクトにフレーム名を指定しなければならない。フレーム名ソースを見ればわかります。

自信はないので、もっといい方法あったら教えてください♪
まあ、たぶん立花さんでやると思うけど…

日興さんからお手紙ついた

読まずに食べちゃいたい!

先日お申込みいただきましたイージートレード信用取引の口座開設につきましては、大変恐縮ではございますが、総合的に判断し今回はお受けできないこととなりました。
また、審査結果のお問合せにつきましては、お応えできませんのでご了承ください。

SMBC日興証券

ちょwww
信用口座の開設落ちたの、DLJ(旧楽天証券)以来なんですけど。
実に、10年ぶりなんですけど。

っていうか、信用取引歴10年弱あるのに審査落ちるって…

間違いなく、どっかに記入ミスがあったんだろうなあ。
pdfとかイチイチちゃんと読まないから、項目を確認しないでチェックしちゃってるけど、そこかなあ?

はい、いいえで答える箇所もあったと思う。
そこも、全部はいで答えたけど…引っかけあった?

それとも、私の個人情報に何か不備が!?

年収が低いのは認めますよ。
でも、それ以外の部分は特に問題ないと思うんだけどなあ。

んー、担当と電話で直接お話ししたいけど、ダメって書いてあるし。
でも、明日してみよう。そっちの方が話が早い。

っていうか、一度落ちたら半年間は審査受けれない、とかないよね?

いやいや、まさか落ちると思ってなかったからビックリです。
これで、復帰が遠のいたよ…

あとは、松井証券が日計りは無料なんだっけ?
でも、持越しとかもしたいから、できればSMBC日興証券がよかったんだよなあ。

うーん、一気にやる気そがれた。
信用口座が開設されたら、バックテストも始めようと思ってたのになあ。

■追記
ゴネたけど、無理だった。
意味わからん、担当者と話したいわ…

【ExcleVBA】IE制御でSMBC日興証券で買い注文を出すマクロ

SMBC日興証券で、現物買いの新規注文を出すマクロです。

ログインまでは前回の記事、VBAでIE操作を行い、SMBC日興証券にログインをするマクロを参考にしてください。

IE制御で買い注文

 icon-check-square-o テストマクロ

みずほ(8411)を1000株、指値222円で買い注文を出すマクロです。
ご自分のユーザー情報を入力して、マクロMainを実行してください。

あっ、場中以外で試してくださいね。
損失が出ても責任は取れませんのであしからず。

‘変数の宣言
Dim objIE As Object
Dim objTag As Object

‘メイン
Sub Main()

Call SMBC_Login
Call SMBC_Buy

End Sub

‘ログイン
Sub SMBC_Login()

‘お約束
Set objIE = CreateObject(“InternetExplorer.application”)
objIE.Visible = True

‘ログイン画面
objIE.navigate “https://trade.smbcnikko.co.jp/Login/0/login/ipan_web/hyoji/”
IE_Complete objIE

‘ユーザー情報
objIE.document.all.koza1.Value = “支店コード”
objIE.document.all.koza2.Value = “口座番号”
objIE.document.all.passwd.Value = “パスワード”

‘ログインボタン
For Each objTag In objIE.document.getElementsByTagName(“input”)
If objTag.src = “https://trade.smbcnikko.co.jp/img/login_help_btn_001.gif” Then
objTag.Click
Exit For
End If
Next
IE_Complete objIE

End Sub

‘買い注文
Sub SMBC_Buy()

‘銘柄コード
objIE.document.all.meigNM.Value = “8411”

‘検索ボタン
For Each objTag In objIE.document.getElementsByTagName(“input”)
If objTag.src = “https://trade.smbcnikko.co.jp/rsc/image/header/btn_serch.gif” Then
objTag.Click
Exit For
End If
Next
IE_Complete objIE

‘買い注文ボタン
objIE.document.all.btn02.Click
IE_Complete objIE

‘市場
objIE.document.all.sijo.Value = 1

‘注文数量
objIE.document.all.suryo.Value = “1000”

‘注文単価
objIE.document.all.kakaku.Value = “222”

‘執行条件
objIE.document.all.syori.Click

‘期間指定
objIE.document.all.tojit.Click

‘口座区分
objIE.document.all.toku.Value = 1

‘チェック
objIE.document.all.kofuChk.Click

‘注文内容を確認する
objIE.document.all.execUrl.Click

End Sub

‘表示完了まで待つ
Sub IE_Complete(ByVal objIE As Object)

Do While objIE.Busy = True
DoEvents
Loop
Do While objIE.document.readyState <> “complete”
DoEvents
Loop

End Sub


 icon-check-square-o コードの解説

ログイン後の画面です。
ああ、こういうの懐かしい…

SMBC10
※画像をクリックすると拡大します

注文するには、いくつか方法がありそうです。
ここでは、銘柄コードを検索窓に打ち込んでみます。

SMBC11

前回と同じように、デベロッパーツールを使って要素の検証をします。

SMBC12

こんなふうにnameがついてると、ラクちんですねえ。

‘銘柄コード
objIE.document.all.meigNM.Value = “8411”

これで検索窓に8411と入力されるので、検索ボタンを押します。
要素の検証をしてみると…

SMBC13

まあ、やっぱりnameはついてないよね。
ということで、前回と同じようにgifのURLを探っていきます。

SMBC14

‘検索ボタン
For Each objTag In objIE.document.getElementsByTagName(“input”)
If objTag.src = “https://trade.smbcnikko.co.jp/rsc/image/header/btn_serch.gif” Then
objTag.Click
Exit For
End If
Next

これで検索ボタンは押せます。
やり方が正しい自信はありませんけど…

SMBC15
※画像をクリックすると拡大します

するとみずほ(8411)の銘柄詳細画面に行きます。
ああ、こういうの懐かしい…

矢印↓の買い注文ボタンをクリックします。
どうせnameはないんでしょ?と思ったらありました。笑

SMBC16

‘買い注文ボタン
objIE.document.all.btn02.Click

nameがあれば、簡単にクリックできます。
ほんと、すべてのボタンにちゃんとnameをつけてほしい。


 icon-check-square-o 注文画面

やば、懐かしすぎ。
ほんと胸キュンしちゃうわ。

SMBC17
※画像をクリックすると拡大します

なんだか、色々と入力するところがありますね。
わかりにくいとこだけ解説します。

まずは、市場の選択です。

SMBC18

要素を検証してソースをみると、優先市場がY、東証が1、名証が3になってます。
最初から東証になってるので、必要はないですが念のため。

‘市場
objIE.document.all.sijo.Value = 1

SMBC19

次に指値価格と、執行条件にチェックをつけます。
nameがついてるので、説明は省きますね。ここでは条件は寄指にしました。

‘注文単価
objIE.document.all.kakaku.Value = “222”

‘執行条件
objIE.document.all.syori.Click

SMBC20

ラジオボタンにIDがあるので、クリックしてチェックを入れるだけ。
こんな感じで、すべての項目にチェックを入れ、注文内容を確認するとクリック!!

SMBC21

入金してないので、当然こうなります。笑
まあ、この後は注文確定ボタンを押すだけっぽいから、なんとかなるでしょう。

信用口座の開設が済んだら、そちらのマクロも載せる予定です。

VBAでIE操作を行い、SMBC日興証券にログインをするマクロ

リクエストがあったので、ちょっと頑張ってみます。
途中で投げ出す可能性大ですけど(笑)

VBAでIE制御

 icon-check-square-o ログイン画面

まずはSMBC日興証券のログイン画面に行きます。
お馴染みのコードだと思うので、説明は簡単にしますね。

というか、詳しく解説できるほどの知識はないし(笑)
以下がログイン画面を開くまでのコードです。

Sub SMBC_Login()

‘変数の宣言
Dim objIE As Object
Dim objTag As Object

‘お約束
Set objIE = CreateObject(“InternetExplorer.application”)
objIE.Visible = True

‘ログイン画面
objIE.navigate “https://trade.smbcnikko.co.jp/Login/0/login/ipan_web/hyoji/”
IE_Complete objIE

End Sub

‘表示完了まで待つ
Sub IE_Complete(ByVal objIE As Object)

Do While objIE.Busy = True
DoEvents
Loop
Do While objIE.Document.readyState <> “complete”
DoEvents
Loop

End Sub

オブジェクト型の変数をセットしたあと、8~9行はIE制御のお約束。
私も未だに、よく意味はわかってません。

8行目は、変数ObjIEに、インターネットエクスプローラーというアプリケーションのオブジェクトを代入する。

9行目は、可視化する(見えるようにする)。
って、感じだと思います、たぶん。

そしたら次は、12行目のnavigateで目的のURLに飛びます。
この場合は、SMBC日興証券のお客様ログイン画面ですね。

SMBC1

URLを指定したら、画面が表示されるまで待ちます。
待たないで次の操作に進むとErrorが出てしまいます。

IE_Completeが表示待ちのプロシージャです。
至る所で見かけると思います。ええ、私もパクってきましたから。

コードは解説できないけど、インターネットエクスプローラーが忙しい間は待ってろよ、完了するまで待ってろよ、ってな意味だと思います。


 icon-check-square-o ユーザー情報を入力

支店コード、口座番号、パスワードという項目があるので、そこを入力したあと、ログインボタンをクリックしたいと思います。

以下にコードを示します。

‘ユーザー情報
objIE.Document.all.koza1.Value = “〇〇〇”
objIE.Document.all.koza2.Value = “△△△”
objIE.Document.all.passwd.Value = “◇◇◇”

‘ログインボタン
For Each objTag In objIE.Document.getElementsByTagName(“input”)
If objTag.src = “https://trade.smbcnikko.co.jp/img/login_help_btn_001.gif” Then
objTag.Click
Exit For
End If
Next

これはちょっと解説が必要だと思うので、頑張ってみますね。

マクロの作成には、GoogleChromeのデベロッパーツールを使います。
パソコンにない方は、ダウンロードしてください。きっと便利です。


■デベロッパーツールを起動

GoogleChromeを開いたら、右上の設定 ⇒ ツール ⇒ デベロッパーツールで起動します。

SMBC2
※クリックすると画像は拡大します

デベロッパーツールを起動すると、下の方にウィンドウが表示されると思います。
とりあえず意味がわからなくても、上のアドレスバーにSMBC日興証券のログイン画面のURLを入力してください。

SMBC3
※画像をクリックすると拡大します

するとログイン画面が表示され、下の方のウィンドウにソース(HTML)が記述されていると思います。

デベロッパーツールでHTMLを弄っても、サイトの内容は変更されませんが、数値を変えたりすることで、実際にサイトがどのように変化するかが目に見えてわかります。

そして今回は、デベロッパーツールの非常に便利な機能「要素の検証」を使います。


■要素の検証

支店コードのフォームにカーソルを合わせ、右クリック ⇒ 要素の検証

SMBC4

すると画面下のウィンドウに、支店コードのフォーム部分に該当するHTMLが表示されます。

SMBC5
※画像をクリックすると拡大します

該当する部分がハイライトで表示されます。
見てみるとname=”koza1″となっています。

<input type="text" name="koza1" maxlength="3" size="10" value="" style="ime-mode:disabled; width:100px; vertical-align:top;" tabindex="1" onfocus="change_focus('0')" id="padInput0" class="padInput">

nameがついてるとラクなんですよねえ。
私もサイトを作る際には、タグに必ずネームをつけよう。

objIE.Document.all.koza1.Value = “〇〇〇”
とすることで、支店コードのフォームに入力します。正確には、引き渡すとでも言うのかな?

口座番号とパスワードも同様に、要素を検証してnameを探します。
もう一度、その部分のコードを載せます。

‘ユーザー情報
objIE.Document.all.koza1.Value = “〇〇〇”
objIE.Document.all.koza2.Value = “△△△”
objIE.Document.all.passwd.Value = “◇◇◇”

すると、以下のようにフォームに入力されます。
実際には△△△とかじゃなくて、ご自分の口座番号やパスワードを指定します。

SMBC6

そしたら、ログインボタンをクリックしてログイン完了。
となるはずでしたが、思いっきり手こずりました…


■ログインボタンをクリック

SMBC7

こいつをちょちょいのちょいと押すつもりだったのに、押せなくて苦労しましたよ。
ログインボタンの要素の検証をすると、以下のソース部分が該当します。

<input border="0" type="IMAGE" name="" alt="ログイン" src="/img/login_help_btn_001.gif" tabindex="4">

ふむふむ、name=””か。ちゃんと名前つけてよね!
でも、alt=”ログイン”ってなってるな。これはFor Eachを使えば押せそう。

For Each ObjTag In ObjIE.document.all
If ObjTag.innerText = “ログイン” Then
ObjTag.Click
Exit For
End If
Next

ってことで、こんなコードを書いてみたんだけど、これだと押せませんでした。
なんで押せないのか、優しい人コメント欄で教えて!

document.allをgetElementsByTagName(“INPUT”)
にしてもダメ、インナーテキストをアウターテキストにしてもダメ。

うーん、今まではこのコードを弄ってれば、ほとんどのボタンは押せたんですけどね。
やっぱり基礎ができていないのが、ここにきて如実にあらわれてしまった。

いちおうこんな感じで、Submitを使えばできるんだけど。
ObjIE.document.forms(1).Submit

でも、これだとなんか嫌だよ。
そもそもSubmitの意味、イマイチわかってないし。  

ということで、試行錯誤数時間の末。
src=”/img/login_help_btn_001.gif”

gif(画像拡張子)のリンク先のURLを直接、探ってみることにしました。 
デベロッパーツールのウィンドウのメニュー?のResourcesとかいうのを押してみると、こんなんが出てきた!                          

SMBC8

ログインボタンを押した先のURLっぽいのが出てきました。
なので、人様のコードを参考に以下を作成。

‘ログインボタン
For Each objTag In objIE.Document.getElementsByTagName(“input”)
If objTag.src = “https://trade.smbcnikko.co.jp/img/login_help_btn_001.gif” Then
objTag.Click
Exit For
End If
Next

なんだかよくわかんないけど、これでログインボタンを押せました。
ふう、疲れたよ…最後に完成したログインまでのコードを載せます。


 icon-check-square-o ログイン用マクロ
Sub SMBC_Login()

‘変数の宣言
Dim objIE As Object
Dim objTag As Object

‘お約束
Set objIE = CreateObject(“InternetExplorer.application”)
objIE.Visible = True

‘ログイン画面
objIE.navigate “https://trade.smbcnikko.co.jp/Login/0/login/ipan_web/hyoji/”
IE_Complete objIE

‘ユーザー情報
objIE.Document.all.koza1.Value = “支店コード”
objIE.Document.all.koza2.Value = “口座番号”
objIE.Document.all.passwd.Value = “パスワード”

‘ログインボタン
For Each objTag In objIE.Document.getElementsByTagName(“input”)
If objTag.src = “https://trade.smbcnikko.co.jp/img/login_help_btn_001.gif” Then
objTag.Click
Exit For
End If
Next

End Sub

‘表示完了まで待つ
Sub IE_Complete(ByVal objIE As Object)

Do While objIE.Busy = True
DoEvents
Loop
Do While objIE.Document.readyState <> “complete”
DoEvents
Loop

End Sub