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

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

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

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-28

バックテスト結果チャートのラインの色を一括変更する。

923 名前:Trader@Live![sage] 投稿日:2013/01/24(木) 10:02:46.52

バックテストした時に新規と決済のところを結ぶTrendLineが表示されます。

この色を全部変更するにはどうしたらいいでしょう。


buyの時の線が背景にまぎれてみずらいので、もっと明るい色に変えたいのですが

こちらに作ってみました。(大昔にも作った記憶があるような無いような・・・

f:id:fai_fx:20130127172832p:image

↑バックテスト後に、Visual Mode や Open chart で見るチャートは、確かに、青の点線は見づらいです。


↓LineColorChanger[sc].mq4をチャートにドロップして色を変えてみると・・・

f:id:fai_fx:20130127172831p:image




↓たぶん、ローソク足の色も変えたほうが良いと思います・・。

f:id:fai_fx:20130127172829p:image

ローソク足の配色は、detault.tpl や、tester.tpl、offline.tpl という名称でテンプレートとして保存しておくのが便利です。

2013-01-27

FxProの限月変更を簡単にする(?)

FxProの先物CFDは、銘柄名が定期的に変わります。

http://www.fxpro.com/trading/cfd/mt4/futures/13

f:id:fai_fx:20130123232501p:image

銘柄が1つだけであれば、チャートの変更も大した手間ではないのですが、複数あるとちょっと面倒です。。


そこで、前回の一括変更ツールを元に限月変更ツールを作ってみました。

f:id:fai_fx:20130123232459p:image

↑限月が代わり、Bidが提供されなくなった銘柄は、Waiting for update のままになります。

FutureUpdateスクリプトを適当なチャートにドロップすると・・・


↓それっぽい銘柄に自動的に変わります。

f:id:fai_fx:20130123232457p:image

変更ルールは

1. チャートを列挙し、銘柄名を取得する。

2. その銘柄の Bid がゼロならば、変更対象とする。

3. その銘柄の末尾2文字を削除して、先頭部分が一致する銘柄を探す。

4. 一致した銘柄が見つかれば、その銘柄に変更する。

といった感じです。


次の銘柄をどのように探すか、一括で変えるべきか、指定したチャートのみ変えるべきか、悩みどころはありますが、不都合を感じたらその都度改良すれば良いかなと思ってます。

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分足のデータを元に計算しますが、長期の変化率を見る時は長い時間足のデータを参照しますので、ログ等確認してください。