- 締切済み
エクセルでこんな処理可能ですか
エクセル初心者です。リアルタイムで変化する株価の分析で利用しようと思っています。 ある銘柄の一分毎の価格データからグラフを作ろうとしたら一分毎の価格情報を全て一つ一つの セル(例 9:00 10000円をA1 9:01 10010円をA2 9:02 10015円をA3・・・)と取り込んで からでないとグラフはできないのでしょうか。それとも 一分毎に変化する価格情報を一つのセル (例 9:00 10000円 9:01 10010円 9:02 10015円・・・・を全てA1セル)で取り込まれるデータを グラフ化処理できるのでしょうか。全て異なるセルに取り込んでデータベース化すれば当然グラフ等の処理は可能でしょうが処理するためにCPUへの負荷等が上がってしまうと思うのですが。 マクロでの処理が可能なのかもご教授していただけたらうれしいです。お願いします。
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- jcctaira
- ベストアンサー率58% (119/204)
No.5です。 > 楽天証券や岡三オンライン証券のエクセルのアドインソフトを利用すれば誰でも簡単に… > 問題は遅延をなるべく… アドインソフトはリアルに取得できないので、直接現在の株価情報を表示している画面を 表示して取得するとのことです。 s3thsaidさんも「現在の株価」の画面を見られていると思いますが… それをVBAで1分(以内)で取得しEXCELのセルに書き出すということです。 毎回「アドインソフトで簡単に」と補足説明していますが、皆様の説明はそんなことを教えては いませんよ。 もうちょっと自分自身でしっかりと理解するようにしてくださいね。
- jcctaira
- ベストアンサー率58% (119/204)
エクセルでネットからのリアルに情報取得は結構容易にできます。 ただしVBAでの対応となります。 次のことをしっかりと理解した上になるかと思います。 1.ネットからの情報取得 楽天証券等、契約している証券会社ではないとリアルに株価を取得できないと思います。 よってIE等をVBAで制御してログインから始まり、特定の銘柄ページを更新しながら 取得していきます。 →IEを制御して、データを取得する技術(知識)が必要になります。 2.1分間隔での取得 皆さんが説明している、1分ごとに割り込み(1分間待ち状態)にすることも可能です。 その他にVBAではなくWindowsの命令(APIと呼ばれている)でSleep等の命令もあります。 またDoevents(VBAだけがCPUを占めてしまわないように)する命令もあります。 色々と実際に試行錯誤が必要になることもあります。 例えば1分ごとの割り込みの場合、ネットからのリスポンス時間やデータの取得時間も 考慮しないと1分以上、空いてしまうことも考えられます。 →VBAの知識は勿論必要ですが、VBA以外(APIや参照設定等のオブジェクトクラス)の知識も 必要な場合もあります。 【結論】 EXCELのVBAでの対応は十分可能ですし、1銘柄を1分間隔で取得するのは【CPU負荷】 はほとんど影響しません。 またグラフも予め「株取引時間」分のセルを用意して、データを取得してセットするように したらほとんど【CPU負荷】の負荷はかからないはずです。 やはりVBA等の知識が重要であることは間違いがありませんが、ネット上で探せば かなり技術的な紹介もしていますので、頑張り次第である程度はできることも考えられます。
- masatsan
- ベストアンサー率15% (179/1159)
excel vbaのオーバーへッドがクリティカルなことに対して、どの程度かわかりませんが。少なくとも一般のプログラムよりオーバーヘッドがあるはずです。 通常そのようなアプリケーションはExcelは使わないですねー。 VBAを学習されるなら、vb.netあたりを学習したほうがよいかと。 まー高速マシンを使えばよいかもしれませんが、東証ですらNYSEより処理が遅いということですからね。どの程度を狙うかにもよると思います。
補足
たびたびの回答ありがとうございます。楽天証券や岡三オンライン証券のエクセルのアドインソフト のRSSを利用することを前提にしているのでプログラムを書くとしてもVBA以外を考えてはいません。まあ初心者なので一番敷居が低いのもVBAなのではないかとも考えてのこともあります。 結局は色々試して問題を一つ一つクリアしてくしかないのでしょうが。
- MackyNo1
- ベストアンサー率53% (1521/2850)
エクセル初心者です。リアルタイムで変化する株価の分析で利用しようと思っています。 >エクセル初心者がリアルタイムでの株価分析をしたいなら、Web上で提供されている(例:野村ホームトレード)1分足のチャートなどを利用されることをお勧めします。 >ある銘柄の一分毎の価格データからグラフを作ろうとしたら一分毎の価格情報を全て一つ一つのセル(例 9:00 10000円をA1 9:01 10010円をA2 9:02 10015円をA3・・・)と取り込んでからでないとグラフはできないのでしょうか。 基本的にグラフを作成するには、各データが1つ1つのセルに配置されている必要があります。 >それとも 一分毎に変化する価格情報を一つのセル(例 9:00 10000円 9:01 10010円 9:02 10015円・・・・を全てA1セル)で取り込まれるデータをグラフ化処理できるのでしょうか。 複数のデータが1つのセルに入力されている場合は、それらのデータを別々のセルに分割する必要があります。 この処理を行えば、グラフ化することも可能ですが、実際にそのようなデータがリアルタイムで取得できるのでしょうか(データの記入方法に規則性があれば、後からグラフを作成することは可能かもしれません)。 >全て異なるセルに取り込んでデータベース化すれば当然グラフ等の処理は可能でしょうが処理するためにCPUへの負荷等が上がってしまうと思うのですが。 基本的にCPUへの負荷は気にする必要はありませんが、1分ごとにデータを取り込むとなると、マクロを1分ごとに走らせるようにする必要がある(マクロを作動した状態が継続している)ので、そのPCを他の目的に使用する場合は不都合が発生する可能性があります。 >マクロでの処理が可能なのかもご教授していただけたらうれしいです。 もちろんマクロを使えばご希望の処理ができると思いますが、データの取り込み方法を含めて、現在どの部分までできているのかを明示して、わからない部分を絞って質問されたほうが具体的な回答が得られると思います。 例えばWebページからのデータの取得は「外部データの取り込み」の機能を利用されているのでしょうか、また1つのセルにまとめたデータを取得する場合は、実際にどのようなデータが取得できるのかなどを具体的に例示されて、わからない部分をポイントを絞って質問されたほうがよいと思います。
お礼
回答ありがとうございました。
補足
ご回答ありがとうございます。データの取り込みは出来ています。NO2さんのところにも書いたように 楽天証券 岡三オンライン証券のエクセルのアドインであるRSSをインストールして簡単です。 (私は岡三オンライン証券の利用)お聞きしたかったのは遅延をいかに少なくするかです。 一分足(一分毎のデータ)でいかに処理速度を上げて自動売買を行うかを考えていて、そのためには 各セルにデータを落としての普通の処理以外にマクロ等を利用して処理速度を上げる方法があるのか お聞きしたかったのです。プログラミングに関してはズブの素人でしてどのぐらいのハードルがあるの かも専門家の方に確認したかったのです。 またリアルタイムのチャートを描くことが最終的な目的ではないのです。自分で考えた計算式で 自分で決めた売買ポイントに来たときに自動売買できるようにすることが目的です。証券会社で提供しているチャートを見て売買では意味がないです。何かご教授していただけたら幸いです。
- masatsan
- ベストアンサー率15% (179/1159)
できるでしょう。しかしデータの取り込みは多分ネットから自動でおこなうのでしょうからexcel のvba以外の知識、技術が必要なので、失礼ながらご質問者にはできないと思います。 付加に関してはグラフの更新を工夫すれば大したことないでしょう。
お礼
回答ありがとうございました。
補足
ご回答ありがとうございます。データの取り込みは出来ています。岡三オンライン証券や楽天証券の RSS機能があるアドインをエクセルに取り込めば簡単です。問題は取り込んだ後の処理の 遅延の部分です。某掲示板などでも処理の遅延がどうしても出てしまうといった意見が書かれていて, それをいかに防ぐべきかを考えていたのです。五分足より時間が遅いものを利用すれば遅延も 少なくなるのでしょうが、それではリアルタイムの情報を入手して売買を行うメリットがありません。 そこで一つ一つのデータを各セルにおとしてから処理をするという普通の処理以外に何かより処理速度 をあげる方法があるのかエクセルの知識に詳しい方にお聞きしたかったしだいです。
- FEX2053
- ベストアンサー率37% (7991/21371)
やろうと思えば、Excel-VBAは殆どの「数字が絡む処理」を 行うことが出来ます。 今回の場合も、データ取り込み~グラフ描画処理をVBAの サブルーチンにまとめておき、それをタイマーをキックに1分 ごとに実行すればいいだけの話で、出来ることは出来ます。 ただ、一から組むには結構なスキルが必要で、片手間に 組めるほど簡単な話じゃないです(片手間で組める人も いるかもしれませんが・・・そういう人は無条件であたしゃ 尊敬しちゃいます)。 ちなみに、この程度の処理なら、CPUの負荷なんぞは大した 問題にはなりません。
お礼
回答ありがとうございました。
補足
早速の回答ありがとうございます。VBAでのプログラムはかなりハードルが高いのですね。 やはり一つ一つのセルにデータを落としてデータベース化してからの処理の方がよほど単純で 個人のパソコンでも処理が可能なのでしょうか。当方プログラム等に関してはズブの素人でしてどこまでの知識でどこまでできるのか全く見当がつかなくて困ってしまいます。
お礼
回答ありがとうございました。
補足
ご回答ありがとうございます。NO2,3さんのところでも書きましたが、株価の価格情報は 入手できています。楽天証券や岡三オンライン証券のエクセルのアドインソフトを利用すれば誰でも簡単にできます。 問題は遅延をなるべく起こさないようにするにはどうすればよいか?といったところです。 掲示板でも遅延の問題がどうしても出てしまうことが書かれていて、それを克服するためには 各セルに一つ一つの価格データを落とすといった普通の処理以外にVBAなどのプログラミング で処理を速くする方法があるのか、あるとしたらどの程度のプログラム技術が必要か、やはり 普通の処理でするのが一番よいのかといったところをお尋ねしたいのです。 また、1銘柄での価格情報の入手でしたら遅延等は発生しませんがそれではプログラム売買を する意味がないです。最低100銘柄程度での自動発注を考えています。