再初期化でカタチが変わってしまうインジケータへの応急処置。

リペイントするインジケータで有名なものの1つに SOLAR WIND が知られています。
私は使い方を知らないので、何が正しいのかは分かりませんが、、このインジケータを表示させてから、何本か Bar が生成した後に、インジケータのプロパティを開いて閉じる(=再初期化する)と、カタチが変わってしまいます。(上図チャートの上段が初期化前、下段が初期化後)


このようなインジケータを常に再初期化された状態にしておきたい場合、正攻法はロジックを理解して適切な修正を施す事だと思いますが、それが面倒な時は以下のような書き換えで済むことがあります。

int counted_bars = IndicatorCounted();
↓
int counted_bars = 0;

IndicatorCounted() は、前回計算した Bar の本数を返すので、その値をゼロにしてしまえば、全ての Bar を最初から計算することになる訳です。これは、どんなインジケータでも上手く行く…というものではありませんが、知っておいて損は無いテクニックかなと思います。

神速のHistorical Data ダウンロード術。

今日は、MetaTrader で最も素早くブローカーのヒストリカルデータをダウンロードする方法を紹介します。


(1) 1分足チャートを開きます。


(2) HistoryCenter を開き、目的の通貨ペアのデータを選びます。


(3) 一番上のデータをダブルクリックして、時刻を1970に変更します。

↓データの一番下に 1970年のダミーデータが追加されます。


(4) HistoryCenter を閉じて、チャート上で右クリックして更新を選びます。

↓ダウンロード中は、ステータスのダウンロードデータ量の数値の変化を見る以外に確認の手段はありません。

ダウンロード完了の確認は、Homeキーを押してチャート右端のデータの日付を確認するか、Bars の本数を表示させるインジケータをあらかじめチャートに表示させておくと分かりやすいです。

int start(){
   Comment(" Bars = ",Bars);
}


(5) 最後に、HistoryCenter を開いて、ダミーデータを削除します。

スクロールによるダウンロードでは、「表示中のデータより古いデータを少しください」の繰り返しでしたが、この手法では、「1970年から今日までの間の抜けてるデータを全部送れ!!」と言ってるようなものなので、めちゃめちゃ速いです..。そして、一括取得するので途中のデータ抜けも起きにくいと思います。

続きを読む

Artistic Styleでソースコードを整形する。

他人の書いたソースコードを分析する場合、それが掲示板に貼り付けられていたものだったりすると、下図のように非常に読み辛いカタチで提供されることが多々あります。

こんなコードを下図のように綺麗に整形したい場合に役に立つのが、Artistic Styleです。本来は、C, C++, C#, Java の整形ツールですが、MQL4 は C言語に似ているのでそのまま使えるのです。


ダウンロードは、こちらから可能です。AStyle_1.24_windows.zip ファイル内には多数のファイルが含まれていますが、必要なのは bin フォルダ内の AStyle.exe のみです。
最も簡単な使い方は、mq4 ファイルを AStyle.exe にドロップするだけですが、整形される書式にこだわりがある場合は、コマンドラインオプションの説明古い日本語訳)を参考にバッチファイルを作成すればOKです。

"C:\MySoftwarez\AStyle\AStyle.exe" --brackets=stroustrup --indent=spaces=2 %1

↑こんな bat ファイルにドロップすれば、下図のようにちょい詰め気味な整形が出来ます。


ソースコードを綺麗に整形しておくと、
・変なバグに気づきやすくなる。
・将来、コードを読み直す時に理解しやすい。
・他人のコードも読みやすくなる。
というメリットがあります。手作業でちまちま整形しても良いのですが...一括整形した方が楽だと思います。




ちなみに、もっともっとカスタマイズした整形をしたい人には、Uncrustifyというツールもありますが、お勧めはしません。(Artistic Style で十分だし、Notepad++ からは Artistic Style の方が簡単に使えるので..)

ログインしないように起動させる術。

TOYOTA 関連のニュースは、興味深いですね..。
トヨタの電子制御問題に隠れた事実! アメリカ人特有のアクセルの踏み方
トヨタを百回提訴した辣腕弁護士が警告 「これは理不尽なバッシングに非ず! 米国人はトヨタに狼少年を見た」
トヨタ“推定有罪”の世論を作った 謎の人物とLAタイムズの偏向報道 〜『ザ・トヨタウェイ』著者の米大物学者が語る衝撃の分析!
私には真偽は分かりませんが、ABCニュースの報道はインチキだったとか、ブレーキを踏んだら急加速したと訴えた人は高齢者ばかりで単にブレーキとアクセルを踏み間違えただけだったとか、なんだか混沌としてきています..。
自動車業界で世界一の企業になったから、叩かれるのかな…とか思ったりすると、微妙に厭な感じですね..。
(相場師の世界は、須らく目立たないように行動するのが常道だと思うです...。謎。






さて、本題の「ログインしないように起動させる術」ですが、以下のような内容のテキストファイルを作成し、それを MetaTrader 本体(もしくは、ショートカット)にドロップするのが便利そうです。

; proxy settings
ProxyEnable=true
ProxyServer=1.1.1.1
ProxyType=HTTP
ProxyLogin=123
ProxyPassword=xxx

一時的に、繋がらないプロキシ設定を使うことでログインできないようにするわけです。これは、確かになるほど!な手法です。笑。


上記ファイルドロップで接続しないようにした場合、プロキシ設定が有効のままになるので、それを解除する場合は、オプションの設定画面で再設定するか、以下のようなテキストファイルをドロップして起動してもOKです。

; proxy settings
ProxyEnable=false

続きを読む

MetaTrader4のDDE機能拡張の初心者向け解説。

fai > パパロッテイ 2010/02/22 17:50
DDE経由で複雑な情報を送るのは無理がありそうな気がします。^^;
せいぜい、残高、評価残高、保有総ロット数ぐらいが限界なのではと思います。

そして、その程度でよければ、近いうちに解説します。

基本的に、http://d.hatena.ne.jp/fai_fx/20091009/1255014941 に書いた通りなので、それで使いこなせている人は問題ありません。^^;
今日は、初心者向けに簡単に出来るように説明し直します。

目的

「複数のMT4 業者の残高と、評価残高を1つのエクセルファイル上に表示する。」


↑この目的以外のことは考えないでください。
ややこしい事に挑戦する前に、まずは簡単なところから動作するのを確かめてゆくことが重要です。

続きを読む

日本語ヘルプをMetaEditor に組み込む?

先日の日記で、MetaSys-Seeker さんの日本語訳が凄い!と紹介しましたが、MetaEditor のヘルプ画面から参照できるようにされている人がいらっしゃいました。


メタエディタで和訳MQL言語リファレンスを参照できるようにする方法
(…って慶次さんのサイトです。笑。


MetaEditor から F1 キーで呼び出せるヘルプの内容は、metaeditor.xml というファイルに書かれているので、この中身を一部書き換えることで可能となるワザです。頻繁に日本語訳を参照したい人は、組み込むと便利かもしれません。(もしかしたら、MT4 のアップデートで上書きされる可能性があるので、アップデート時は要注意です。Build 225 が久しく安定しているので心配無用かもですが...



明日こそはがんばって、saru999 さんの質問に答えたいと思います。
ではでは。

メタトレーダー4 MQL言語リファレンス日本語翻訳マニュアル ver1.1

今まで、MQL4 日本語リファレンスと言えば、mt4 (MetaTrader)使い倒シストレさんか、Toyolabさんの書籍ぐらいかと思っていましたが、最近、「MetaSys-Seeker.net」さんを見つけましたので紹介しておきます。
MQL4 を勉強中の人は、理解できるかどうかはさておき、このサイトでリファレンスの全文を最初に通読しておくことをお勧めします。




↓本当に日本語訳しか無いサイトですが…



↓目次の見やすさが秀逸すぎます。><



↓日本語と英語が対訳形式に載っています@@;

これなら、中級者が日本語訳を意味不明に感じた時に、すぐに原文を確認できるので便利です。





このサイトの管理者さんには、現行のver1.1がかなり良いので、それのVer2 よりも、http://book.mql4.com/ の日本語訳をお願いしたいなぁとか思います。そちらの方が MQL4 初心者プログラマの役に立つかもです。
(...って、文量が多すぎるか...^^;;