ブログトップ 記事一覧 ログイン 無料ブログ開設

とあるMetaTraderの備忘秘録 RSSフィード

忙しいです。ネタもないし・・・

2013-01-31

DDEの憂鬱

906 名前:Trader@Live![sage] 投稿日:2013/01/23(水) 09:19:28.31

MT4を起動してから

DDE-Sample.xlsを開いてもリアルタイムレートがエクセルに表示されません。

どうしたらエクセルにレートを表示できますでしょうか?


DDEサーバーを有効にするにチェックをいれてます。

エクセルは2007です。

エクセルの リンクの編集ー値の更新を押してもだめでした・・

この問題は・・・難しいですね。

MT4のDDE経由でExcelに情報を渡せません」でも解決策は無いですし、マイクロソフトの「DDE links crash Excel 2010 on Windows 7 64bits」のいくつかの回避案も万能ではないようです。

私の環境でも、Excelが固まる現象を確認できたのですが、固まるようになると、何をやっても直らず、逆に動くようになると常に動く・・・ようで、原因追求も対策もままらない状況です。


調べて集まった情報をまとめると、、

新しいExcel では、 MT4 を 'MT4' と囲む必要がある。

=MT4|BID!EURUSD

='MT4'|BID!EURUSD


銘柄に # が含まれる場合は、銘柄も囲む。

='MT4'|BID!'#CH3'

Google Chrome や soffice.exe を動かしているとダメ。

アンインストールするか、soffice.exeを管理者権限で実行すると治った。

↑私の環境では、DDEが動作するときは、Chrome動作中でも問題無く動きました。

Excel をアンインストールし、再インストールすると治る。

↑私の環境では、治らなかったこともあります。

以下のVBAマクロをExcel上で動かすと治る(?)。

Sub KillDDE()

Dim i, ChannelNumber As Integer

For i = 1 To 1000

Application.DDETerminate (i) ' Closes all DDE links whose channels might be open

Next i

End Sub

↑※私の環境では、治ったことは無いです。。

MT4の代わりにDDEの送信テスト用に使えるツール。

http://www.codematic.net/excel-development/excel-dev-general/excel-dde-links.htm ただのテストツール

https://www.prorealtime.com/en/help-manual/dde-data-export ProRealTime DDE(有料)

DDESPYは動作のモニタ用。




今のところ、私の環境では下記の手順で2回、復旧に成功していますので、お困りの人は試してみてください。

1.ウィンドウズを再起動します。

2.MT4 を1つだけ起動します。
他のアプリは起動してはいけません。絶対に・・・

3.Excel を起動します。

4. ='MT4'|BID!EURUSD と数式を入れてみます。 MT4 の前後を ' で囲んでください。

2013-01-23

複数のチャートの通貨ペアを一括変更する。

VPS上のEAを不正コピーされる事案が起きたそうです。詳しくは、「ずさんな管理のレンタルVPSサーバー(実話)」をどうぞ。





さて、表題のツールは、例えば、下図のように USDCHF の時間足の異なる複数のチャートを開いている状態から、全てのチャートをGBPUSDに変更したい場合に役立つスクリプトです。ある人のためだけに作ったものですが、欲しい人のためにこちらに置いておきます。

f:id:fai_fx:20130123224234p:image


使い方は、まず、気配値ウィンドウから GBPUSDをドロップして1枚のチャードだけ GBPUSD に変更します。

f:id:fai_fx:20130123224233p:image

その後、GBPUSD のチャートにスクリプトをドロップすると・・・


↓全てのチャートが GBPUSD に変わります。

f:id:fai_fx:20130123224231p:image

仕組みは・・・

1. チャートウィンドウを列挙して、順にアクティブ化

2. キーナビゲーションで、シンボル名をキー入力

3. 稀に失敗するので、何度か繰り返す

みたいなことをしているだけです。

スクリプト内の Sleep(1) を Sleep(5000) などに変えると動作をゆっくり確認できます。

シンボル名に特殊な文字が入っていて動かない場合は、カスタマイズが必要です。(面倒なので、、不完全)

2013-01-20

OANDAのHeatmap を真似てみた。

OANDAのCurrency Strength Heatmap Tableに似せたインジケータ(HeatMapModoki)を作ってみました。

Exoticsや、Commoditiesは無しで8通貨のみを縦に一列に並べるだけのものです。

計算式は、USDを基準として、デフォルトで現在から60分前(BeforeMin = 60)の価格からの変化率%で並べ替えているだけです。

色分けは、白が中央となるイメージです。

f:id:fai_fx:20130120213007p:image

↑それぞれ5,60,1440分前に設定して、横に3つ並べています。

位置調整は、ShiftX,ShiftY で行えます。



f:id:fai_fx:20130120213006p:image

↑文字が黄色の時は、その通貨のデータが足りない可能性があります。

通常は、1分足のデータを元に計算しますが、長期の変化率を見る時は長い時間足のデータを参照しますので、ログ等確認してください。

2012-11-14

MT4のチャート上に画像を表示する(?)

f:id:fai_fx:20121113214246p:image

前回得た知識は、Webdings フォントの g が四角であるというコトでした。

この四角を最小化して隙間なく埋めることができれば、、、チャート上に画像を表示することが出来るかも知れません。

・・・という訳で早速試してみました。


下準備として、JPEG画像をPPM (ASCII P3)形式に変換しておきます。

画像がRGB値のテキストデータになるので、MQL4のスクリプトでも簡単に扱えます。

変換ソフトには、IrfanView32を使います。







f:id:fai_fx:20121114213312p:image

↑画像を文字で再現するのは負荷が高いので、縮小しておきます。


f:id:fai_fx:20121114212906p:image

↑PCのスペックによりますが、100x100 以下が無難です。

f:id:fai_fx:20121114212905p:image

↑リサイズ後にSaveを選び・・・


f:id:fai_fx:20121114212904p:image

↑PPM形式を指定し、オプションで Ascii encoding を選択します。


f:id:fai_fx:20121114212903p:image

↑保存したファイルをテキストエディタで開くと、テキストとして読めることがわかります。

保存したPPMファイルは、experts\files 以下に置きます。


こちらから、画像表示テスト用のスクリプト( MADPainter.mq4 ) を入手し、experts\scripts 以下に置きます。



f:id:fai_fx:20121114212902p:image

↑スクリプトをチャートにドロップし、PPMファイル名を設定します。

フォントサイズは、3以下を指定しても、チャート上では 4に切り上がります。

スケールは 1〜6 辺りを指定してください。



f:id:fai_fx:20121114212901p:image

↑画像の読み取りに成功すると、ファイル名と画像サイズとピクセル数が表示されます。





そして・・・





f:id:fai_fx:20121114212900p:image

↑チャート上に画像が表示されました(!)




f:id:fai_fx:20121114212858p:image

↑くみん先輩だけでは寂しいので、六花ちゃんもこのとおり♪




f:id:fai_fx:20121114213447p:image

↑とある有名な人物の写真で試すとこんな感じです。笑。


f:id:fai_fx:20121114213446p:image

↑Scale = 7 にすると1ドット=1文字ずつ見ることができます。

四角いテキストによるドット打ちでここまで自然な画像ができるとは意外でした。



・・・と同時に、数十万オブジェクトの表示で操作不能になるという、、MT4の限界を痛感しました。

念のため書いておきますが、トレード中の MT4 でコレを試したらダメですよ。^^;

画素数が多いと、貧弱なPCでは MT4 が長時間固まります。

スペック的に耐えられないと思ったら、すぐにチャートを閉じましょう。



そんじゃーね。☆彡

2012-11-08

ZigZag指標に相場の周期性を夢見る・・

時系列データに周期性があるのかどうか?を調べる方法としては、コレログラム、フーリエ変換、ARモデル・・・等を使うのが一般的のようです。ただ、投機市場に見られる周期性は、私の想像では、連続する2〜3つの山が近い周期になるだけ(3〜4つ目の山で周期が崩れる)なので、長期のデータから固定長の周期性を見つけ出すのは困難なのでは?と思ってたりします。

(一時的に周期性が存在しても、投機筋が他者を出し抜く過程で周期性が失われてしまう・・・



なので、相場に周期性は存在しないという前提でいろいろ考えているのですが、せっかく、ヒストグラム表示インジケータを作ったので、今日はZigZagインジケータの周期分布を調べてみます。

ZigZag.mq4 を改造し、山の頂点間の期間データ(top.csv)、谷底間の期間データ(btm.csv)、一辺の期間データ(full.csv)を保存するようにしたものが、ZigZag_output.mq4 です。

csvデータをそのまま表示させるのが、CSVView.mq4 です。(一行に一個しか数字が入っていないので、CSVとは言えないのはさておき...

Hist-NF-Meter.mq4 は、top.csv ファイルを読み込んでヒストグラム表示します。

f:id:fai_fx:20121107230721g:image

↑山頂と山頂の期間(Top to Top) のデータを生で見るとランダムに見えますが(2段目)、ヒストグラムでは20〜25期間にピークがあることが分かります。



ZigZagインジケータを眺めていると、そこに周期性らしきものを感じるのは、錯覚ではなく、実際に特定の周期付近での頻度が多いからだったのですね。。。











しかし、この知見が、実際に役に立つものであるかどうか?は、ランダム・ウォークのチャートに適用して比較する必要があります。

以前に作成したランダムウォークチャート作成スクリプトで作成したチャートに当てはめてみたのが下図です。

f:id:fai_fx:20121107230720g:image

f:id:fai_fx:20121107230719g:image

2回試しましたが、見事に周期の偏よったピークが見つかります。元データには周期性が存在しないのにも関わらず(!)。


これが、「ユール・スルツキー効果」と呼ばれるもので、

元の時系列データ → ほにゃらら変換 → 加工済みデータ

ほにゃらら変換の変換式に周期性を作り出す要素が含まれていると、変換後の加工済みデータにはその周期性が現れてしまうそうです。

この事実をもって、ZigZagや、同様にみせかけの周期性を生み出す移動平均が全く役に立たないと考えるのは早計ですが、加工済データの解釈には注意すべきでしょう。