新しいBookファイルにコードやチャート、関数を転記したことによりサンプルコードは噂通り軽快な動作を取り戻した。ファイルサイズは3MBから600KBとなったのでこれが今後の目安になる。

 

今作っているオリジナルの株式自動売買ロボにはファンダメンタル分析も実装したいので、Subボリュームレシオ()に続いて、Subスコア()を書いていった。SelectCase文の練習ができたと思う。記法のクセをつかむまでトライアル&エラーを繰り返したが、最終的に正常な動作を確認できた。

 

今日はバフェットコードさんのデータを参照したが、運用時はどこかから自動的に取得したい。どうせトレードまで自動化するのだからシンプルに楽天RSSから引っ張れないか。仕様書にはPERやPBRがあった。しめしめ。

 

明日はいよいよ楽天RSSを紐解いていこう。

 

 

 

今日はまずVBA制作環境の改善から着手しよう。

 

 

現在作業しているエクセルファイルの容量は当初1MBくらいだったはずだが、動作が重くなってから確認すると3MBに増えていた。ソースコードを書き加えただけでそんなに容量が増えることはないから、VBAを起動するたびに容量が増えていることになる。これって、これから自動売買ロボットとして実務に耐えられる仕様なんだろうか。

 

少し調べると、どうもエラーを起こすとそれがきっかけで容量が増えるということがわかった。確かにこれまでエラーの山を築いてきた。ならばエラーを起こさなければ良いわけだ。プログラムがすべて完成して安定運用するようになればエラーは出ないはずだから、開発中だけ対処すればいいんじゃないかと前向きにとらえる。

 

ならば新しいエクセルBookにコードをすべてコピーして、エラーに関する記録をなかったことにしよう。転居は1時間もあればできるだろうから、軽快な動作に回復すれば取り戻せるはずだ。

書籍の付録であるVBAサンプルコードをベースに書き加えて動かしては調整する作業が続いている。

 

このサンプルには『最適化ボタン』なるものがついていて、パラメータを最適に調整してくれるという説明がされている。ちょっと試そうと押してみると、ファンが全力で回りながらPCが固まってしまった。プログラムの応答なしとはなっているが、CPUはi5だし処理に時間がかかることもあるだろうと10分ほど放置すると突然また動き出した。おぉ勇者よ生きていたか。

 

きっととんでもない量の計算をバックでやっていたのだろう。しかし、これがきっかけでEXCELの動作が重くなってしまった。アイドリング中も常に20%ほど稼働しているファンも高速回転だ。しまったな。ググっても特に解決策は見い出せないまま作業を続行した。

 

いよいよキーボードの反応が遅くなった。コードが書けない。すると突如静寂が訪れた。ファンがぴったり止まったのだ。何時間もかけて何らかの事後処理をやるなんてことあるのか?

 

キーボードがめちゃ熱い。全体的に赤外線を放射してる感がすごい。ファンが回ってないっぽい。

 

画面がパパパと明滅する。あぁこれが熱暴走というやつか。慌ててエクセルファイルを閉じてPCを再起動したがファンは回らない。ファン沈黙。モーターが焼き付いたか。

 

まだ1年落ちとはいえヤフオクで中古購入したFMVだ。保証はない。くそぅ。富士通のサポートに電話をかけるも混雑中だった。マザーボード交換なら6万円くらいはかかりそうだ。費用も去ることながら、時間ロスには耐えられそうもない。やっとリズムに乗ってきたところなんだぞ。

 

ひょっとしてハード的なトラブルでなく、ソフト的なものかもしれないと閃いた。そうだ、VBAを学ぶ前に復元ポイントをつくておいたんだ。ソフトウェア的なものならばファンが動いていた時のシステム構成に戻すことでまた動くかもしれないと考えた。

 

無事に再起動。。

 

ファンが回っているゥゥゥゥゥゥ!!!

 

しかし原因がわからん。。

 

【教訓】自作のVBAコードを動かす前には復元ポイントを作っておくべし

 

 

 

いよいよVBAで3つの指標が計算できるようになった。これらは移動平均やRSI、VRなど基礎的なものだが、計算が合っているか証券会社のスクリーニング機能で確認したいのでこれで良い。

 

株価などの時系列データについては、自動売買ロボットマニュアルで紹介されていたパンローリング社が販売するチャートギャラリープロをえいやと買ってみたが、動作が安定している。プロが作っただけのことはある。

 

さて、これら指標を組み合わせてチャートギャラリーから抜き出した過去30年分の株価で検証してみたいのだが、サンプルコードをちょっといじったくらいでは動かなかった。まだ理解が及ばずにパラメータを把握・設定しきれていないようだ。残念。

 

それでも惜しいところまではいっていると思う。思いたい。先に進んでいる実感はある。

そろそろ晩酌の時間だな。続きはまた明日。

 

おつかれちゃん。

 

追記

 

【型が一致しません】赤字っぽい企業をスクリーニングするとエラーしている気がする。楽天RSSの銘柄情報で赤字企業においては、PERやPBRが0の表記となるようだ。 

 

ROEの計算は以下としている。

 

ROE = PBR/PER = 0÷0

 

この値はIntegerでは扱えないのでエラー ということではないかと推測する。

 

IF (セルの値) = O Then

 

(セルの値) = -1

 

とすることでひとまずエラーしなくなったような。。様子を見ましょうね。

 

 

 

 

 

エクセルVBAを書籍片手に独習しはじめて今日で2週間ほど経ったと思う。これまでのところ、サンプルコードを眺めて書き写して動作を確認していても、身についている実感はあまりなかった。

 

Sub何たらと書いてあると、それは新たなコマンドを仕込むんだなというのは分かる。Rangeとくればセルの範囲というのもイメージできた。

 

株式を売買するにあたっては指標が必要だ。設定した条件を満たしたところで機械的に売買するのだ。エクセルに読み込んだ株価などの情報から分析してみたい。

 

いくつか組み合わせて使いたい指標のなかに、VR(ボリュームレシオ)というのがあった。出来高がベースとなる指標なのだが、SBI証券や楽天証券、岡三証券のスクリーニング機能にも実装されていない。なぜだ。松井証券にはこの機能があるがCSVデータをダウンロードできない。なぜなんだ。

 

ググってみてもVBAのサンプルコードが見当たらなかったが、エクセル関数を組み込んであるファイルは入手できた。これをVBAで書き直すしかない。そもそもSUMIF関数なんて見たこともないんだけどな・・

 

それでも3時間ほど格闘した末、Sub VR() は完成した。ちゃんと動作してピッタリ数値も合っているのが分かった時には立ち上がって声をあげてしまった。初のオリジナルだ。

 

これにてモチベーションが急騰した。どんどん進もう。

9月限オプションから新しいトレード手法のテスト売買をしていた。プットコールともに売りポジションなので、日経平均が噴けば収益はマイナスに触れる。が大丈夫、そんなこともあろうかとリスクヘッジを仕掛けてあってね。

 

念のために仕掛けが効いているかスマホで確認。

 

あれ・・・滅多打ちに遭ってますやん。えっなんで?どこからこの損失が出たんや。

 

ヘッジの先物の枚数を間違えるミスが発覚。8枚のはずのところが2枚て。。。

建玉をスパッと切ってトータル30万の損失。ああきついw

 

完全に慣れるまで売買単位を減らして元の手法と2パターンで建てよう。

モーニングルーティンを終わらせた。起き抜けに水を一杯飲むのは大事だったらしく実践してから気分が良い。

 

株式トレードの管理のためにエクセルを使おうと思い立ち、『自動売買ロボット作成マニュアル』という本をAmazonで購入し、サンプルコードをダウンロードして解説を読みながら作業を進めている。

 

どうやらエクセルVBAというのはプログラミングの真似事をやっているということが分かってきた。

 

つまり、僕はプログラマーになれるのかもしれない。恰好いいかも。

 

今日のテーマはグラフ。ちゃんと動いてくださいよ。


2021年8月中旬
楽天証券にエクセルを使って自動売買できるRSSというサービスがあると知る

中古PCとExcel2019アプリ、書籍を購入『自動売買ロボット作成マニュアル』

Youtube動画でエクセルVBAの基礎的な概念を知る

過去の株価データ取得のため『チャートギャラリープロ』を購入(書籍で推奨)

書籍の掲載のコードを打込み、版元からDLしたサンプルファイルと動作比較する

書籍のコードをカスタマイズ開始

オリジナル売買シグナルPDFをメール添付で自動送信(トレードは手動)

トレードの全自動化のため仮想デスクトップに環境移行

全銘柄&長期でトレードルールの検証と改善

最適なパラメータを見つけるためデイトレードの特訓←←← イマココ

マクロをほったらかし対応に改修(システムトレードの完成)

ほったらかしで1年後に口座残高が2割増しになっていることを確認