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 の前後を ' で囲んでください。

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

923 名前:Trader@Live![sage] 投稿日:2013/01/24(木) 10:02:46.52
バックテストした時に新規と決済のところを結ぶTrendLineが表示されます。
この色を全部変更するにはどうしたらいいでしょう。


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

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

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


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




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

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

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

FxProの先物CFDは、銘柄名が定期的に変わります。
http://www.fxpro.com/trading/cfd/mt4/futures/13

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


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

限月が代わり、Bidが提供されなくなった銘柄は、Waiting for update のままになります。
FutureUpdateスクリプトを適当なチャートにドロップすると・・・


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

変更ルールは

1. チャートを列挙し、銘柄名を取得する。
2. その銘柄の Bid がゼロならば、変更対象とする。
3. その銘柄の末尾2文字を削除して、先頭部分が一致する銘柄を探す。
4. 一致した銘柄が見つかれば、その銘柄に変更する。

といった感じです。


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

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

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





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


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

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


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

仕組みは・・・

1. チャートウィンドウを列挙して、順にアクティブ化
2. キーナビゲーションで、シンボル名をキー入力
3. 稀に失敗するので、何度か繰り返す

みたいなことをしているだけです。
スクリプト内の Sleep(1) を Sleep(5000) などに変えると動作をゆっくり確認できます。
シンボル名に特殊な文字が入っていて動かない場合は、カスタマイズが必要です。(面倒なので、、不完全)

OANDAのHeatmap を真似てみた。

OANDAのCurrency Strength Heatmap Tableに似せたインジケータ(HeatMapModoki)を作ってみました。
Exoticsや、Commoditiesは無しで8通貨のみを縦に一列に並べるだけのものです。
計算式は、USDを基準として、デフォルトで現在から60分前(BeforeMin = 60)の価格からの変化率%で並べ替えているだけです。
色分けは、白が中央となるイメージです。

↑それぞれ5,60,1440分前に設定して、横に3つ並べています。
位置調整は、ShiftX,ShiftY で行えます。




↑文字が黄色の時は、その通貨のデータが足りない可能性があります。
通常は、1分足のデータを元に計算しますが、長期の変化率を見る時は長い時間足のデータを参照しますので、ログ等確認してください。

ステータスバーの価格を拡大表示する。

謹みて 新年を賀し 申し上げます。<(_ _)>


735 :Trader@Live!:2013/01/12(土) 17:54:40.57 id:YhLpHkcT
チャートの各ローソク足マウスポインタ当てると
始値終値高値安値
が表示されると思うんですけど
この数値をチャートの四隅あたりに表示できるインジってありませんか?
何かシンプルなインジ程全然見つからなくて

・・・という訳で、早速作ってみました。

http://ux.getuploader.com/fai_fx/download/338/MT4StatusView.zip
AutoHotkeyによるGUIアプリで、ステータスバーの内容を200ミリ秒間隔で読み取って表示させているだけです。



ウィンドウ枠も邪魔かなと、消してみたモノが下記です。

http://ux.getuploader.com/fai_fx/download/339/MT4StatusView1.1.zip
タイトルバー用のウィンドウと、枠なしの表示ウィンドウを2つ並べています。

拡大したローソクを描く。

fesbix 2012/11/30 16:10
直近何本かを指定してローソク足の幅を広くすることは可能でしょうか。


幅を小さくして広い範囲での趨勢を見、直近は幅を大きくして
タイミングを計る、というふうに使いたいのですが。


う〜ん、こんな感じ?