• 締切済み

エクセルでこんな処理可能ですか

エクセル初心者です。リアルタイムで変化する株価の分析で利用しようと思っています。 ある銘柄の一分毎の価格データからグラフを作ろうとしたら一分毎の価格情報を全て一つ一つの セル(例 9:00 10000円をA1 9:01 10010円をA2 9:02 10015円をA3・・・)と取り込んで からでないとグラフはできないのでしょうか。それとも 一分毎に変化する価格情報を一つのセル (例 9:00 10000円 9:01 10010円 9:02 10015円・・・・を全てA1セル)で取り込まれるデータを グラフ化処理できるのでしょうか。全て異なるセルに取り込んでデータベース化すれば当然グラフ等の処理は可能でしょうが処理するためにCPUへの負荷等が上がってしまうと思うのですが。 マクロでの処理が可能なのかもご教授していただけたらうれしいです。お願いします。

みんなの回答

  • jcctaira
  • ベストアンサー率58% (119/204)
回答No.6

No.5です。 > 楽天証券や岡三オンライン証券のエクセルのアドインソフトを利用すれば誰でも簡単に… > 問題は遅延をなるべく… アドインソフトはリアルに取得できないので、直接現在の株価情報を表示している画面を 表示して取得するとのことです。 s3thsaidさんも「現在の株価」の画面を見られていると思いますが… それをVBAで1分(以内)で取得しEXCELのセルに書き出すということです。 毎回「アドインソフトで簡単に」と補足説明していますが、皆様の説明はそんなことを教えては いませんよ。 もうちょっと自分自身でしっかりと理解するようにしてくださいね。

全文を見る
すると、全ての回答が全文表示されます。
  • jcctaira
  • ベストアンサー率58% (119/204)
回答No.5

エクセルでネットからのリアルに情報取得は結構容易にできます。 ただし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等の知識が重要であることは間違いがありませんが、ネット上で探せば かなり技術的な紹介もしていますので、頑張り次第である程度はできることも考えられます。

s3thsaid
質問者

お礼

回答ありがとうございました。

s3thsaid
質問者

補足

ご回答ありがとうございます。NO2,3さんのところでも書きましたが、株価の価格情報は 入手できています。楽天証券や岡三オンライン証券のエクセルのアドインソフトを利用すれば誰でも簡単にできます。 問題は遅延をなるべく起こさないようにするにはどうすればよいか?といったところです。 掲示板でも遅延の問題がどうしても出てしまうことが書かれていて、それを克服するためには 各セルに一つ一つの価格データを落とすといった普通の処理以外にVBAなどのプログラミング で処理を速くする方法があるのか、あるとしたらどの程度のプログラム技術が必要か、やはり 普通の処理でするのが一番よいのかといったところをお尋ねしたいのです。 また、1銘柄での価格情報の入手でしたら遅延等は発生しませんがそれではプログラム売買を する意味がないです。最低100銘柄程度での自動発注を考えています。

全文を見る
すると、全ての回答が全文表示されます。
  • masatsan
  • ベストアンサー率15% (179/1159)
回答No.4

excel vbaのオーバーへッドがクリティカルなことに対して、どの程度かわかりませんが。少なくとも一般のプログラムよりオーバーヘッドがあるはずです。 通常そのようなアプリケーションはExcelは使わないですねー。 VBAを学習されるなら、vb.netあたりを学習したほうがよいかと。 まー高速マシンを使えばよいかもしれませんが、東証ですらNYSEより処理が遅いということですからね。どの程度を狙うかにもよると思います。

s3thsaid
質問者

補足

たびたびの回答ありがとうございます。楽天証券や岡三オンライン証券のエクセルのアドインソフト のRSSを利用することを前提にしているのでプログラムを書くとしてもVBA以外を考えてはいません。まあ初心者なので一番敷居が低いのもVBAなのではないかとも考えてのこともあります。 結局は色々試して問題を一つ一つクリアしてくしかないのでしょうが。

全文を見る
すると、全ての回答が全文表示されます。
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

エクセル初心者です。リアルタイムで変化する株価の分析で利用しようと思っています。 >エクセル初心者がリアルタイムでの株価分析をしたいなら、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つのセルにまとめたデータを取得する場合は、実際にどのようなデータが取得できるのかなどを具体的に例示されて、わからない部分をポイントを絞って質問されたほうがよいと思います。

s3thsaid
質問者

お礼

回答ありがとうございました。

s3thsaid
質問者

補足

ご回答ありがとうございます。データの取り込みは出来ています。NO2さんのところにも書いたように 楽天証券 岡三オンライン証券のエクセルのアドインであるRSSをインストールして簡単です。 (私は岡三オンライン証券の利用)お聞きしたかったのは遅延をいかに少なくするかです。 一分足(一分毎のデータ)でいかに処理速度を上げて自動売買を行うかを考えていて、そのためには 各セルにデータを落としての普通の処理以外にマクロ等を利用して処理速度を上げる方法があるのか お聞きしたかったのです。プログラミングに関してはズブの素人でしてどのぐらいのハードルがあるの かも専門家の方に確認したかったのです。 またリアルタイムのチャートを描くことが最終的な目的ではないのです。自分で考えた計算式で 自分で決めた売買ポイントに来たときに自動売買できるようにすることが目的です。証券会社で提供しているチャートを見て売買では意味がないです。何かご教授していただけたら幸いです。

全文を見る
すると、全ての回答が全文表示されます。
  • masatsan
  • ベストアンサー率15% (179/1159)
回答No.2

できるでしょう。しかしデータの取り込みは多分ネットから自動でおこなうのでしょうからexcel のvba以外の知識、技術が必要なので、失礼ながらご質問者にはできないと思います。 付加に関してはグラフの更新を工夫すれば大したことないでしょう。

s3thsaid
質問者

お礼

回答ありがとうございました。

s3thsaid
質問者

補足

ご回答ありがとうございます。データの取り込みは出来ています。岡三オンライン証券や楽天証券の RSS機能があるアドインをエクセルに取り込めば簡単です。問題は取り込んだ後の処理の 遅延の部分です。某掲示板などでも処理の遅延がどうしても出てしまうといった意見が書かれていて, それをいかに防ぐべきかを考えていたのです。五分足より時間が遅いものを利用すれば遅延も 少なくなるのでしょうが、それではリアルタイムの情報を入手して売買を行うメリットがありません。 そこで一つ一つのデータを各セルにおとしてから処理をするという普通の処理以外に何かより処理速度 をあげる方法があるのかエクセルの知識に詳しい方にお聞きしたかったしだいです。

全文を見る
すると、全ての回答が全文表示されます。
  • FEX2053
  • ベストアンサー率37% (7987/21355)
回答No.1

やろうと思えば、Excel-VBAは殆どの「数字が絡む処理」を 行うことが出来ます。 今回の場合も、データ取り込み~グラフ描画処理をVBAの サブルーチンにまとめておき、それをタイマーをキックに1分 ごとに実行すればいいだけの話で、出来ることは出来ます。 ただ、一から組むには結構なスキルが必要で、片手間に 組めるほど簡単な話じゃないです(片手間で組める人も いるかもしれませんが・・・そういう人は無条件であたしゃ 尊敬しちゃいます)。 ちなみに、この程度の処理なら、CPUの負荷なんぞは大した 問題にはなりません。

s3thsaid
質問者

お礼

回答ありがとうございました。

s3thsaid
質問者

補足

早速の回答ありがとうございます。VBAでのプログラムはかなりハードルが高いのですね。 やはり一つ一つのセルにデータを落としてデータベース化してからの処理の方がよほど単純で 個人のパソコンでも処理が可能なのでしょうか。当方プログラム等に関してはズブの素人でしてどこまでの知識でどこまでできるのか全く見当がつかなくて困ってしまいます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 最大値と最小値を自動記録したい

    DDE通信によりリアルタイムの株価データを取得し、 エクセルに株価を表示できる状態になっています。 (株価が変動すると自動的にセルの値が変わる) これを使い2銘柄間の差をあるセルに表示しているのですが、 1日の中における差の最大値と最小値を他のセルに記録し、 値が更新されるのに伴い随時置き換えたいと思っています。 例) 日立280円 東芝260円 の場合は2銘柄間の差は20円。 この値が変化して最大値(最小値)を更新したら置き換え。 それ以外はそれまでの最大値(最小値)の値をセルに保持する、 という感じで記録していきたいのですが実現可能でしょうか? (イメージ) (A1セル=2銘柄間の差) (B1セル=最大値) (C1セル=最小値) A1セルの値の変化 20(B1セルもC1セルも20) 23(B1セルを23に更新) 25(B1セルを25に更新) 22 21 15(C1セルを15に更新) 18 24 26(B1セルを26に更新) 20 当方の環境は エクセル2000 OSはwinXP DDE通信は楽天証券のリアルタイムスプレッドシート を使用しています。 これがエクセルで可能なのかどうかもわからないのですが、 もし方法をおわかりの方がいましたらよろしくお願い致します。

  • エクセルのグラフについて

    日経平均株価と個別銘柄の株価の推移を線グラフで表したく、具体的には、過去一年分の個別銘柄株価と日経平均株価を両方とも主軸で線グラフを作成したいのですが、双方の数字の桁が違うのでうまくいきません。縦軸目盛は個別銘柄の金額で表示させ、日経平均がどのように推移しているかということなんですが、、、。元データは、A列に日付、B列に個別銘柄株価、C列に日経平均株価としてます。説明がうまく出来ないのですが、よろしくご教授願います。

  • コピーしたものをエクセルに貼り付けたいのですが

    こんばんわ。 学校の課題で平均株価の動きをグラフで表すといったようなものがでました。 そこで株価の時系列データをコピーしてエクセルに貼り付けたいのですが、コピーして貼り付けてみると、すべて同じセルに入れられるのです。 たとえば2008年11月12日 3,200 3,280 3,180 3,240 18,868,500 3,240 というのを貼り付けてみると、A1セルに全て入ってしまうのです。 これを2008年11月12日がA1セル 3,200がB1セル 3280がC1セルといったように分けて貼る方法はありますか? またそれがなくても、貼った後に効率よく分ける方法はありますか? お願いします。

  • リアルタイムで株価をExcelにダウンロードしたい

    ある時点での国内全銘柄の株価をリアルタイムでExcelにダウンロードしたいのですが、それが可能な証券会社等のサービスはありますか? 例えば10:00と11:00の全銘柄(4000以上あると思いますが)の個々の株価の変化を分析してみたいのです。

  • エクセル97で10銘柄くらいの株価の毎日の平均値をグラフにしたい

    ・10銘柄くらいの会社の当日の株価をセルに書く ↓ ・当日の10銘柄くらいの株価の平均値をだす ↓ ・それを毎日続けて、グラフを作る ことをしたいのですが、どうすればよいでしょうか? ちなみに、特に ・当日の10銘柄くらいの株価の平均値をだす のやり方のあたりがわかりません。 ご教示いただきたくお願いいたします。

  • エクセル

    エクセルでリアルタイムで表示する株価グラフを作りたいと思っています。 1分間隔で、前日比を入力すればその株価の値とグラフが表示されるようにしたいのですが、どうすれば作れますか? 最初から教えてくださる方、よろしくお願いします。

  • EXCEL 条件到達で音楽再生、メール送信させたい

    EXCEL 2010を使用 岡三証券の岡三RSS(EXCELシートにリアルタイムで株価情報が入力されるツール)を使用しています。 株価を監視する際に、現在価格がある価格になったら音を鳴らしたいです。 例えば、上昇中の銘柄を監視している際に、指定した価格を入力したセルと自動取得される当日高値を比較するように数式を入力したセルを作成していて、その価格を突破したらセルに★マークが表示されるようにしてあります。 この★マークが表示されたら、指定の音楽ファイルを再生できるようにしたいです。 監視用のシートは4枚あります。それぞれに★マークが表示されるのですが、その時に表示しているシートだけではなくて、表示しているシート以外でも★マークが表示されたら音楽ファイルが再生されるようにしたいです。 ★マークは一旦表示されたら、その日はずっと表示され続けるのですが、その後も他の銘柄が条件に到達すれば、次から次へとV列には★マークが増え続けるので、★マークが増えるその都度、音楽ファイルを再生させたいです。 あと、★マークが表示されたら指定したアドレスにメールが送信されると非常に便利なのですが、そのような事は可能なのでしょうか。 もしも可能なら、例えばセルのV4に★マークが出たら、4行目の指定した列に入力されたデータを記載したメールを送りたいです。 例えば、C4は銘柄名でE4は指定した価格のセルなので、この情報を使ってメールには以下のように 以下の銘柄がターゲット価格に到達しました。 銘柄名:ソフトバンク 価格:8500円 というようなメール内容を送信させたいです。 よろしくお願いします。

  • Excelのグラフ作成

    セルA1に自動で更新される値(データ)があり、 この値が更新される度にA2、A3へとシフトされ値(データ)が溜まっていきます。 (新しいデータが常にA1に表示されます) このリアルタイムで更新される値のグラフを作成したいのですが上手くいきません。 セルが挿入されデータが溜まっていきますので、A1からA10までデータが溜まった時点で グラフを作成してもグラフの範囲も一緒にシフトされ新しいデータが取り込まれません。 いい方法はないでしょうか? 宜しくお願いします。

  • エクセルグラフ縦軸の値を変更時、直線を崩さない方法

    たびたびお世話になります。 エクセルで株価のチャートのグラフを作成しています。 株価の元になるセルに1日ごとの始値高値安値終値を入力して、 グラフに反映させています。 縦軸は株価で100円から400円、横軸は日にちです。ローソク足で表示しています。 株価が400円を超える場合には、(450円とか500円に)手作業で縦軸の範囲を変更しています が、その時トレンドラインとして引いている直線や、株価を表示しているテキストボックスなどの位置は変更にならないので位置がずれてしまいます。 最初に、1日目を入力する前に、入力の元になっている銘柄の株価の高値安値を取得し、 グラフにセットしてみたのですが、株価が1000円とか上がりすぎた場合、 ローソク足が小さすぎで、しかも普段は、ほとんど波のない状態で表示になり使えません。 そこで縦軸の変化分だけ、他のオブジェクトも移動させるマクロができないか考えてみましたが、 何をどうしたらいいかわからず、ネットで調べてみても手がかりなしです。 アドバイスをお願いいたします。 excel2010 windows7

  • エクセルでグラフをマクロ化することはできますか?

    エクセルで、ごく簡単な表をグラフ化するのですが、マクロ化することはできますか? 例をあげます。 A1、B1、C1、D1、E1にそれぞれ数値(整数)が入っています。セルがたった5つだけの簡単な表です。これと同じ形式の表が10あります。これを円グラフに表し、割合として表示します。一つの表をグラフウィザードで円グラフにするのは、いたって簡単です。しかし、5つあるデータエリアの色をすべて変え、引込み線をつけない、凡例のフォントの大きさ、種類を変えるなど、設定をいろいろ変えました。この操作を10ある表すべてに繰り返しやりたくないのですが、マクロでできますか?あるいは、ほかによい方法がありますか?

専門家に質問してみよう