日本の証券会社を利用してCME日経先物の売買を行う際の証拠金が、大証の証拠金と大きく違うのですがなぜなんでしょう?
どれぐらい違うのかというと松井証券利用の場合
・大証の日経225先物(ラージ1枚) 429,000円
・CME日経先物円建て(ミニ5枚分) 625,000円(日経ラージ1枚に換算すると1,430,000円)
なんと3倍以上の差がありますね
取引所が要求している証拠金ですが、大証はSPANで計算していて現在のプライススキャンレンジは390,000円
CMEですが、CME日経先物円建て(ミニ5枚分)のイニシャル証拠金は625,000円(維持は500,000円)のようです
http://www.cmegroup.com/wrappedpages/clearing/pbrates/performancebond.html?group=CME INDEX FUTURES&type=OutrightRates&h=2&reporttype=marginrate
で、わかったこと
CME日経先物を日本の証券会社で取引する場合に、異様に証拠金が高いのは、証券会社がぼったくりなわけではなくて、取引所が要求している証拠金がそうなっているということです。
わからないこと
CMEはSPANを開発した本家本元ですが、そのCMEはSPANを使っていないのでしょうか?それとも大証とCMEでは運用が異なるんでしょうか?
※大証の運用(プライススキャンレンジの決定方法):4週間の最大の価格変動 と 24週間で2番目の価格変動 の大きい方より計算
何が言いたいかというと…
最近、いくつかの証券会社で上限枚数を厳しくしたり証拠金を引き上げている会社があります。また、FXのレバレッジ規制がCFDや先物に波及するんじゃないかという不安もあります。大証の証拠金決定の仕組みは合理的だと思っていたのですが、さらに合理的だと思っていたCMEと大きな差があることがわかりました。近い将来、大証の証拠金が引き上げられる可能性は思ったより高いかもしれません。
どれぐらい違うのかというと松井証券利用の場合
・大証の日経225先物(ラージ1枚) 429,000円
・CME日経先物円建て(ミニ5枚分) 625,000円(日経ラージ1枚に換算すると1,430,000円)
なんと3倍以上の差がありますね
取引所が要求している証拠金ですが、大証はSPANで計算していて現在のプライススキャンレンジは390,000円
CMEですが、CME日経先物円建て(ミニ5枚分)のイニシャル証拠金は625,000円(維持は500,000円)のようです
http://www.cmegroup.com/wrappedpages/clearing/pbrates/performancebond.html?group=CME INDEX FUTURES&type=OutrightRates&h=2&reporttype=marginrate
で、わかったこと
CME日経先物を日本の証券会社で取引する場合に、異様に証拠金が高いのは、証券会社がぼったくりなわけではなくて、取引所が要求している証拠金がそうなっているということです。
わからないこと
CMEはSPANを開発した本家本元ですが、そのCMEはSPANを使っていないのでしょうか?それとも大証とCMEでは運用が異なるんでしょうか?
※大証の運用(プライススキャンレンジの決定方法):4週間の最大の価格変動 と 24週間で2番目の価格変動 の大きい方より計算
何が言いたいかというと…
最近、いくつかの証券会社で上限枚数を厳しくしたり証拠金を引き上げている会社があります。また、FXのレバレッジ規制がCFDや先物に波及するんじゃないかという不安もあります。大証の証拠金決定の仕組みは合理的だと思っていたのですが、さらに合理的だと思っていたCMEと大きな差があることがわかりました。近い将来、大証の証拠金が引き上げられる可能性は思ったより高いかもしれません。
先週末にIVの時間推移のグラフの記事の中で、データ記録の自動化の対応中のようなことを書きましたがこれが思いのほか時間がかかりました。で、やっと骨格ができたので嬉しさもあり記事をアップします。
これまでの私のマクロに関する知識はといえば、「マクロの記録」で操作を記録し、記録したソースを少し修正する程度のスキルでした。そのスキルをベースにして、データ自動記録のマクロをつくるのは少々荷が重かったようです。
最初は、いつものように「マクロの記録」を使って処理を作ったのですが、この処理をベースに自動化をすると、不具合だらけになりました。
例えば次のような不具合がありました。
・シートを切り替えると動かない
・ならばシート名を指定して実行しても動かない
(メンテナンス性向上のため、セルに名前をつけてそれを使用するようにしてたんですが、それがうまくない)
・で、セルの名前でなく直接指定すると動くようになったものの、記録処理が走るとシートが切り替わってしまう
などなどの不具合でした。
ネットを検索すると、サンプルがいくつか出てくるのですが、難しくて理解できず、理解できないから使うことも出来ず…
そんなわけで、一念発起してVBAをある程度ちゃんと勉強してみました。
特に役に立ったのは次のサイトでした。
http://www.happy2-island.com/excelsmile/
↑概略をつかむのにとっても良いサイトでした
http://excelvba.pc-users.net/index.html
↑体系的に書かれています。リファレンスとしても良さそうです。
そして、その知識をもとにしてやっと動くところまでこぎつけました。
とっても嬉しいです(そういうわけで、ブログアップです)
処理のポイント
・ログ記録シートとグラフを分離(別々のシートにわけ、メンテナンス性を向上させた(つもり))
・処理の定期的な実行は、 Application.OnTime を使って実現した
・Application.CutCopyMode = False を使って、クリップボードのデータをクリアする処理を入れた
(入れてないと変なコピペがされたり処理が動かなかったりします)
・Application.ScreenUpdating で、画面更新を行わずに処理をするようにした
(これを入れると処理中に変なシート切り替わりがなくなります)
欠点なんですが
・手動のコピペなどの処理を実施中に、この処理が流れると、クリップボードがクリアされてコピペできなくなる
※他にもあるかもしれませんが、現在のところ顕在化していません
参考:今回作ったソースの骨格は以下の通り
※なにせ初心者が作ったソースですので、不具合あっても責任持てませんが… <(_ _)>
Option Explicit
Public mytime As Date
Sub LOG_取得時刻セット()
mytime = Now + TimeValue("00:05:00")
Application.OnTime mytime, "LOG_取得処理_親"
End Sub
Sub LOG_取得終了()
Application.OnTime mytime, "LOG_取得処理_親", , False
End Sub
Sub LOG_取得処理_親()
Application.Run "LOG_取得処理実施"
Call LOG_取得時刻セット
End Sub
Sub LOG_取得処理実施()
'
' LOG_取得処理実施 Macro
'
Application.ScreenUpdating = False
Application.CutCopyMode = False
Worksheets("ログ").Range("G:G").Insert
Worksheets("ログ").Range("F:F").Copy
Worksheets("ログ").Range("G:G").PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
これまでの私のマクロに関する知識はといえば、「マクロの記録」で操作を記録し、記録したソースを少し修正する程度のスキルでした。そのスキルをベースにして、データ自動記録のマクロをつくるのは少々荷が重かったようです。
最初は、いつものように「マクロの記録」を使って処理を作ったのですが、この処理をベースに自動化をすると、不具合だらけになりました。
例えば次のような不具合がありました。
・シートを切り替えると動かない
・ならばシート名を指定して実行しても動かない
(メンテナンス性向上のため、セルに名前をつけてそれを使用するようにしてたんですが、それがうまくない)
・で、セルの名前でなく直接指定すると動くようになったものの、記録処理が走るとシートが切り替わってしまう
などなどの不具合でした。
ネットを検索すると、サンプルがいくつか出てくるのですが、難しくて理解できず、理解できないから使うことも出来ず…
そんなわけで、一念発起してVBAをある程度ちゃんと勉強してみました。
特に役に立ったのは次のサイトでした。
http://www.happy2-island.com/excelsmile/
↑概略をつかむのにとっても良いサイトでした
http://excelvba.pc-users.net/index.html
↑体系的に書かれています。リファレンスとしても良さそうです。
そして、その知識をもとにしてやっと動くところまでこぎつけました。
とっても嬉しいです(そういうわけで、ブログアップです)
処理のポイント
・ログ記録シートとグラフを分離(別々のシートにわけ、メンテナンス性を向上させた(つもり))
・処理の定期的な実行は、 Application.OnTime を使って実現した
・Application.CutCopyMode = False を使って、クリップボードのデータをクリアする処理を入れた
(入れてないと変なコピペがされたり処理が動かなかったりします)
・Application.ScreenUpdating で、画面更新を行わずに処理をするようにした
(これを入れると処理中に変なシート切り替わりがなくなります)
欠点なんですが
・手動のコピペなどの処理を実施中に、この処理が流れると、クリップボードがクリアされてコピペできなくなる
※他にもあるかもしれませんが、現在のところ顕在化していません
参考:今回作ったソースの骨格は以下の通り
※なにせ初心者が作ったソースですので、不具合あっても責任持てませんが… <(_ _)>
Option Explicit
Public mytime As Date
Sub LOG_取得時刻セット()
mytime = Now + TimeValue("00:05:00")
Application.OnTime mytime, "LOG_取得処理_親"
End Sub
Sub LOG_取得終了()
Application.OnTime mytime, "LOG_取得処理_親", , False
End Sub
Sub LOG_取得処理_親()
Application.Run "LOG_取得処理実施"
Call LOG_取得時刻セット
End Sub
Sub LOG_取得処理実施()
'
' LOG_取得処理実施 Macro
'
Application.ScreenUpdating = False
Application.CutCopyMode = False
Worksheets("ログ").Range("G:G").Insert
Worksheets("ログ").Range("F:F").Copy
Worksheets("ログ").Range("G:G").PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub