見出し画像

#AI自作 No.8: クリック証券FXヒストリカルデータの一括取得スクリプトの作成

こんばんは。
このところ、Webサイト生成AIを利用した記事が多かったのですが、本日はWebサイトではなくトレード分析のためのヒストリカルデータの取得をPythonスクリプトで自動化する話です。
それだけでは記事になりませんが、以前記事にした複数AI(ChatGPT/Gemini/Claude)への問合せアグリゲーション(↓)を活用できた事例として記事にしたいと思います。


背景

私はCFD金・銀やFXのトレードを資産運用としてやっています。
「リピート売買」「グリッドトレード」とか言われるものです。
価格が一定のレンジを上下する波をうまくとらえて利益に換えるものですね。
完全にシステム運用にしているものもあれば、ルールを決めて手動で運用しているものもあります。
この手動で運用する場合も基本的にはルールを決めて、値幅、決済値幅などを決めそのルールに従って売買を続けていきます。
このルールを決める際の判断材料として、過去の価格データ、ヒストリカルデータを活用してバックテストなどを行うのが望ましいです。

私は金・銀スポットCFDをクリック証券でやっていますが、クリック証券では取り扱っている商品の1分足ヒストリカルデータを提供してくれています。
ただし、クリック証券のWebサイトですと、1商品・1ヶ月ごとにデータをダンウロードする必要があり、非常に面倒です。
そのため、スクリプトで自動化するメリットがあります。
今回はそのスクリプトの作成をAIに相談しながら行いましたが、非常に手間取り、最終的に複数AIに問い合わせて解決することができたので、参考になるものと思い記事にいたしました。

トラブった内容

今回は記事にするまでもない、簡単なスクリプトですくにできるだろと軽く見ていました。
一番よく使っていたBingのCopilotで最初つくり始め、クリック証券サイトへのログインまでは通るようになりました。
が、そのあとダウンロードのステップでどうしてもデータがダウンロードできませんでした。
エラーにはならず、クリック証券のトップページのHTMLそのものがダウンロードされました。
理由が全くわからずCopilotになんどなんどもやり直しをお願いしましたが、全く改善しませんでした。

複数のAIに問合せで解決につながった

ほとんどあきらめていたところで、先日記事にした複数AI問合せサイトを活用して、Bing Copilot以外のAIにも確認してみようと思いつきました。
依頼に利用したプロンプトは、以下の内容と問題のあるプログラムソースそのものを連携しました。

以下のPythonプログラムでクリック証券のヒストリカルデータをダンウロードしようとしていますが、ダウンロードできません。

手動でやるとダウンロードのリンクが表示されて、クリックすると保存先を確認するダイアログが表示されて指定した場所にダウンロードができるようになります。
きちんと動くように直せますか?

すると、ChatGPT/Gemini/Claudeからそれぞれ以下のとおり回答がありました。

それぞれの回答概要とその結果は以下のとおり

ChatGPT
クリック証券のヒストリカルデータをプログラムでダウンロードする際のトラブルシューティングにはいくつか重要な点があります。ここで示されているコードでは、ダウンロードリンクを直接取得するためにはいくつかの考慮が必要です。以下に手直しのポイントを示します。
1. **JavaScriptのレンダリング**:
2. **POST/GETのパラメータの確認**:
3. **ファイルの書き込み部分**:
4. **エラーハンドリング**:
【結果】
状況変わらず

Gemini
**変更点:**
1. **`download` メソッドの変更:**
2. **ダウンロード処理の追加:**
【結果】
状況変わらず

Claude
クリック証券のヒストリカルデータをダウンロードする際の問題は、おそらくJavaScriptの実行やリダイレクトが関係している可能性があります。`requests_html`ライブラリを使用していますが、この場合はSeleniumを使用してブラウザを自動化する方が良いかもしれません。以下に、Seleniumを使用して修正したプログラムの例を示します:
【結果】
改善し、ダウンロードできた。

結果として、最後にトライしたClaudeが解決につながりました。
回答内容もClaudeの説明が一番分かりやすく、納得感があります。
また、今回はSeleniumと言うやり方をゴロッと変えることが解決に繋がりましたが、この提案はClaudeだけでした。

今回はたまたまClaudeがいい結果を出したと考えたほうが良いのかもしれません。どのAIがいい結果につながるかはトラブルの状況、内容にもよるものだと思います。
私のようにそれぞれのAIの強み、弱みの詳細をしっかり理解していない場合には、とりあえずすべてのAIに聞いてトライしてみるのもありかなと考えます。

こちらでクリック証券からのダウンロードができるようになったスクリプトを共有します。


2024/10/15 追記
ダウンロード先がブラウザの既定ダウンロード先になっていましたが、実行スクリプトの保存フォルダ配下の "download_file"フォルダにダウンロードするよう変更いたしました。
こちらのGithubサイトの最新コードを参照ください。https://github.com/masanw/TradeAnalysis/commits/main/DownloadClickFXdata_3.py

2024/10/17 追加
クリック証券CFD商品のヒストリカルデータのダウロードについての続編をこちらで記事にいたしました。
ぜひ、ご覧ください。


最後に

この記事はお気に入りいただけましたでしょうか?
内容お役にたちましたらうれしく思います。
また、サポートなど応援いただけましたら幸いです。


いいなと思ったら応援しよう!

なべなべ
記事の内容を有効に活用できた、記事を気に入っていただけたようでしたらチップでサポートいただけますと嬉しいです。 また、こんなことを知りたい、あんなことができないかなど記事にしたいことがございましたら、サポートの有無にかかわらずお知らせくださいませ。