『ボヘミアン・ラプソディ』はなぜ人々を魅了したのか >>

4本値のデータがDDEサーバーを使って出力可能なことは知っているのですが
その他のデータたとえばストキャスティクスの現在値やクロスタイミングなどは出力可能でしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (1件)

質問に対する直接の回答になっておらず、ごめんなさい。



MT4の4本値をエクセルに落とせるのならば、そのエクセルシートで、関数を使ってストキャスを組めばよいではないでしょうか。

ストキャスの関数はそれほど難しくないですよ。

http://www.kyoei-bs.co.jp/home2/tech/tec05.html

参考URL:http://www.kyoei-bs.co.jp/home2/tech/tec05.html
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q為替データをエクセルにダウンロード出来るサイト

為替データをリアルタイムで取得して、エクセルに
ダウンロードして処理したいのですが、
そのような事の出来るサイトは無いでしょうか。

Aベストアンサー

システムに関しては全く無知です。

株価のリアルタイムダウンロードの質問は時々あり、次が参考になっているようです。為替も同じじゃないでしょうか?

Excelで株投資
http://www2s.biglobe.ne.jp/~iryo/kabu/index.html
このなかの、右下のほうで、
■ 解析ツール関連VBAの解説
┣[1]-1Webから株価データ取得マクロ(Yahoo)
 ┣[1]-2Webから株価データ取得マクロ(Infoseek)

参考URL:http://www2s.biglobe.ne.jp/~iryo/kabu/index.html

Q他サイトのデータでMT4でチャートを作れますか? 

GMOクリック証券のヒストリカルデータを使ってMT4でチャートを表示させる事はできますか?

GMOクリック証券のヒストリカルデータをMT4がうまく取り入れないようなのですがどうすればいいのでしょうか?

Aベストアンサー

タイムリーに自分と同じこと考えている人がいて、なんだかうれしいです。
私も信用できる1分足ヒストリカルデータをどうすれば入手できるのか頭を悩ませていて、このサイトで質問したことがあります。
そしたらここでも先立って回答しているSaitarさんにいろいろと為になるご回答を頂き、その中にクリック証券のデータがよさそうだといったアドバイスがありましたので早速データをダウンロードしてみました。
私がざっくりと確認したところ、クリック証券はFXDDとかForexieとは違って、実際に過去に提示したレート通りの信頼できるデータのようです。Saitarさん、その節は本当にありがとうございました。

そのときのQ&A↓
http://oshiete.goo.ne.jp/qa/7957569.html

さて、本題のMT4へのインポートの仕方についてですが、クリック証券とMT4ではデータ形式が異なるため、少々のデータの加工作業が必要になります。私の場合はエクセルではなくテキストエディタの秀丸を使いました。やり方は、

1.クリック証券からダウンロードしたcsvファイルを秀丸で開く。
2.一番上の”日時,始値,高値,安値,終値”って行はいらないので削除
3.Ctrl+Rで置換のウィンドウを開いて、検索のとこに”^([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})00”と入力、置換のとこに”\1\.\2\.\3\,\4:\5”と入力して実行。

上記の作業で日時のデータが例えば、2013年11月7日0時01分の場合に”20130111070100”と表現されてたのが”2013.11.07,00:01”となってMT4にインポートできる形式となります。
私の場合はForextesterへのインポートだったのですが、MT4でも取り込めるはず。

ちなみに、クリック証券のデータは一日ごとに一つのファイルなので、一ヶ月とかまとめて一つのファイルにしたいならフリーのファイル結合ソフトを使うと便利です。その場合”日時,始値,高値,安値,終値”の行を同じように置換機能を使って削除すれば楽です。

タイムリーに自分と同じこと考えている人がいて、なんだかうれしいです。
私も信用できる1分足ヒストリカルデータをどうすれば入手できるのか頭を悩ませていて、このサイトで質問したことがあります。
そしたらここでも先立って回答しているSaitarさんにいろいろと為になるご回答を頂き、その中にクリック証券のデータがよさそうだといったアドバイスがありましたので早速データをダウンロードしてみました。
私がざっくりと確認したところ、クリック証券はFXDDとかForexieとは違って、実際に過去に提示したレート...続きを読む

QMT4のDDE経由でExcelに情報を渡せません

メタトレーダー4のDDEサーバー経由でエクセル2007にリアルタイム為替レートの情報を表示させたいのですが上手くいきません。
メタトレーダー4のオプションで「DDEサーバーを有効にする」をチェックし、エクセル2007のオプションで「DDEを使用する他のアプリケーションを無視する」のチェックを外した上で、MT4を起動、エクセル2007で、「='MT4' | BID ! EURUSD」と入力するのですが、フリーズして上手く機能しません。
またopenofficeではエラーになって表示されません。
MT4上ではリアルタイムに為替が表示されています。
何が原因と考えられますでしょうか?

Aベストアンサー

どうもExcel2007はDDEとの相性が悪いようですね。
下記のサイトを見つけました。ご参考まで。

http://support.microsoft.com/kb/930479/ja

Qエクセルで定期的(30分おき)にマクロを実行させる方法は?

エクセルにて刻一刻変る外部データ(株価)を表示させています。それを自動で30分置きにデータ蓄積させる方法はありませんか?

現在は自分で作ったキーボードマクロで 時計を見ながらボタンを押し、データを取り込ん出る始末です。

その簡単マクロに「30分置きに実行させる」と云う記述を付け足す程度で自動実行させる事は可能でしょうか? 
当方キーボードマクロでの自動書き込みしか出来ない素人ですが、少々複雑な物であっても頑張ってみるつもりですので、どなたかご教授下さい。

Aベストアンサー

えーー。。実際に使うなら、zap35 さんのように、OnTime で実行したマクロ
の中で再度 OnTime を登録する方が良いと思います。

この方式だと、OnTime で登録されるのは常に一つだから管理し易いです。
これに未実行の予約を破棄できる仕組みを組み込めばベストだと思います。

今更こんな事言うのは、#6 の大げさなコードを見て、「また、やっちまった...」
と反省しているからです。が、#6 をアップしてしまった以上、それなりに
まとめておきました。こちらは、一括登録方式です。

コードのままだと、午前10時~午後6時まで30分間隔で Macro1 を実行します。
変更点は、

 ・ブッククローズをトラップした
 ・進捗状況をステータスバーに表示するようにした
 ・その他しょうもないこと

です。

このままコピペで使えると思いますが、試される場合は、MACRO1 はご自分の
用途に合わせて適切に修正して下さい。


Option Explicit

Dim mcolTask As Collection

Sub 実行予約()

  Dim i      As Date
  Dim strProcName As String
  Dim datBigin  As Date
  Dim datEnd   As Date
  Dim datInterval As Date
  Dim datTimeout As Date
  Dim blnJustTime As Boolean

  ' Setting-------------------------------------------------------

  datBigin = TimeValue("10:00:00")  ' 開始時刻
  datEnd = TimeValue("18:00:00")   ' 終了時刻
  datInterval = TimeValue("00:30:00") ' 実行間隔(少なくとも数秒以上で)
  datTimeout = TimeValue("00:02:00") ' 実行待機タイムアウト
  blnJustTime = True         ' datInterval で丸めるか
  strProcName = "MACRO1"       ' 実行するマクロ名

  '---------------------------------------------------------------

  ' 既に実行予約されているか確認
  If mcolTask Is Nothing Then

    ' 日付シリアル値を加算
    datBigin = datBigin + Date
    datEnd = datEnd + Date
    ' 終了時刻が開始時刻より小さければ日をまたぐので補正
    If datEnd < datBigin Then datEnd = datEnd + 1
    ' 現在時刻が既に終了時刻を過ぎている場合
    If datEnd < Now() Then
      MsgBox "終了時刻を過ぎているため予約できません。", vbCritical, "終了"
      Exit Sub
    End If
    ' 現在時刻が開始時刻を過ぎていれば補正
    If datBigin < Now() Then
      ' 開始時刻を datInterval で指定された値で丸めるか
      If blnJustTime Then
        datBigin = Application.Floor(Now() + datInterval, datInterval)
      Else
        datBigin = Now() + datInterval
      End If
    End If

    ' 初期化
    Set mcolTask = New Collection

    ' メイン部分
    For i = datBigin To datEnd Step datInterval
      ' 後から取り消せるようにコレクションに退避
      mcolTask.Add CStr(i) & "," & strProcName
      ' Application.Ontime で実行予約を行う
      Application.OnTime EarliestTime:=i, _
                Procedure:=strProcName, _
                LatestTime:=i + datTimeout, _
                Schedule:=True
    Next i
  Else
    MsgBox "既に実行中です", vbInformation
  End If

End Sub

Sub 未実行予約強制解除()
 
  Dim i  As Long
  Dim vntS As Variant
 
  On Error Resume Next
  Application.StatusBar = "タスク破棄中... "
  For i = 1 To mcolTask.Count
    vntS = Split(mcolTask.Item(i), ",")
    Application.OnTime CDate(vntS(0)), CStr(vntS(1)), Schedule:=False
  Next i
  Application.StatusBar = ""
  Set mcolTask = Nothing

End Sub

' タスク管理用
Private Sub RemoveTask()
  
  On Error Resume Next
  mcolTask.Remove (1)
  Application.StatusBar = "待機中のタスク... " & mcolTask.Count
  DoEvents
  Beep
  If mcolTask.Count = 0 Then
    Application.StatusBar = ""
    Set mcolTask = Nothing
  End If

End Sub

Sub Auto_Close()

  Dim intRes As Integer
  If Not mcolTask Is Nothing Then
    intRes = MsgBox( _
        Prompt:="待機中のタスクが " & mcolTask.Count & " 件あります。" & vbLf _
           & "破棄して終了しますか?", _
        Buttons:=vbOKCancel + vbDefaultButton2 + vbExclamation, _
        Title:="問い合わせ")
    If intRes = vbOK Then
      Call 未実行予約強制解除
    Else
      ' ブッククローズをキャンセル
      Application.ExecuteExcel4Macro ("Halt(True)")
    End If
  End If

End Sub

' 呼び出すマクロ--> Application.Ontime のマクロ名と一致させて下さい
Sub MACRO1()

  Dim lngRow As Long
  With ThisWorkbook.Sheets("Sheet1")
    lngRow = .Range("V65536").End(xlUp).Offset(1).Row
    .Cells(lngRow, "V").Resize(1, 3).Value = .Range("Q12:S12").Value
    .Cells(lngRow, "Y").Value = Now()
  End With

  ' ご自分のマクロの最後に次の一行を追加しておいて下さい
  Call RemoveTask

End Sub

えーー。。実際に使うなら、zap35 さんのように、OnTime で実行したマクロ
の中で再度 OnTime を登録する方が良いと思います。

この方式だと、OnTime で登録されるのは常に一つだから管理し易いです。
これに未実行の予約を破棄できる仕組みを組み込めばベストだと思います。

今更こんな事言うのは、#6 の大げさなコードを見て、「また、やっちまった...」
と反省しているからです。が、#6 をアップしてしまった以上、それなりに
まとめておきました。こちらは、一括登録方式です。

コードのままだと...続きを読む


人気Q&Aランキング