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

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

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

2009-08-31

データセンターのIP を知る。

今日は、MetaTrader4のデータセンターのIP を調べる方法を紹介します。

なぜか昨日の手抜き記事にコメントがいくつか付いていて、もう少し正確に書き直さねば…と反省しているのですが、それ以前に、自分自身の手でMT4 の接続状況を把握できた方が良いかなと思ってます。


ネットワークの接続状況は、コマンドラインから

netstat -n -p tcp (もしくは  netstat -b -p tcp)

で確認できるものの、これではかなり把握しづらいので CurrPorts という便利ツールを使います。

(1)ソフトのダウンロード

http://www.nirsoft.net/utils/cports.html の Download CurrPorts というリンクから cports.zip をダウンロードします。

f:id:fai_fx:20090830124559p:image

続きを読む

2009-08-30

接続状態を示す色の違いについて

いよいよ選挙ですね。

自民党のネガティブキャンペーンは、

http://www.jimin.jp/sen_syu45/seisaku/pdf/koukoku_shinjitsu.pdf

で見ることができますが、そもそもの原因を作ったのは自民党でしょ?と突っ込みたくなる点も多く、逆効果のような気がしてなりません...苦笑。

民主党政権になったところで、数年で何かが良くなるとは思えないのですが、今変わらなければ二度と変われる機会を失うような気もしますし、果てさてどうなることやらって感じです。


さて、今日は、MT4 右下にある接続状態を示すインジケータの色の違いについて説明します。

f:id:fai_fx:20090829220251p:image

続きを読む

2009-08-29

何故、通貨ペアの後ろの文字(接尾辞)は統一されないのか?

プログラミングなネタばかり続くと熱を出しそうな人がいらっしゃるので、今日はどうでもいいお話を。笑


MetaTrader を採用している業者をいろいろ調べてゆくと、通貨ペア6文字の後ろに余分な接尾辞が付いている場合があります。

EURUSD = 標準ロット

EURUSDm = ミニロット

ミニロットは、取引条件が違うので m を付ける…ぐらいの違いは妥当かなと思うのですが、意味不明な文字を付けているところもあって、業者毎に謎の文字列を付けるのは何故?

と以前から疑問に思っていました。

先日、とあるデモサーバにアクセスしたところ…

続きを読む

2009-08-28

MQL5超入門(11)/iRSIをスムージングしたインジケータ

今日は、昨日より一歩進んで、iRSIを使用したインジケータにスムージングを掛けてみます。

サンプルコードからの抜粋なので、動くことは間違いないと思うのですが、100%動作保証はできない点はご了承くださいませ。


MQL4 と、これまでのMQL5 の知識があれば、だいたい理解できると思うので、いきなりコード紹介です。(手抜き...

続きを読む

2009-08-27

MQL5超入門(10)/iMAを利用したインジケータ

今日は、MQL5 の iMA を利用したインジケータを作成します。

作成しても動かせる環境が無いので、ホントに正しく作れているのか怪しすぎるのですが、超入門の目的は、MQL5 の記法に事前に慣れておくコトですので、あまり気にせず、適当に説明を続けます。


MQL4 での iMA は、移動平均値を求める関数でしたので、for 文の中で1個ずつ、移動平均を求めていました。

for(int i=0; i< limit; i++)
   ind_buffer1[i]=iMA(NULL,0,10,0,MODE_EMA,PRICE_CLOSE,i);

こんな感じですね。

ところが、MQL5 での iMA は、MetaTrader5 に対して、特定の移動平均値配列を準備、自動更新させておく命令に変わりました。

インジケータの中で、1度だけ iMA を呼び出せば、その後はMT5 が内部でMT4 時代の for ループを回して移動平均値配列をアップデートしてくれるというイメージです。

続きを読む

2009-08-26

MQL5超入門(9)/#property と IndexBuffer の種類

昨日に引き続き、MQL5超入門の第九回です。

これまでは、他のプログラミング言語にも共通する文法的なお話が主体でしたが、これからはMQL5に特化した内容になります。


MQL5 でも、インジケータの先頭には、

#property XXXXXXX YYYY

という表記をそのまま使います。

続きを読む

2009-08-25

MQL5超入門(8)/時系列配列とは

今日は、名古屋の知り合いに連れられて、あんかけスパゲティを食べてきました。

3回食べるとやみつきになる(らしい?)B級グルメですが、1度目でもそれなりに美味しかったです。

(名古屋でパスタというと...マウンテンの恐怖を思い出すのですが、今回はまともで良かった....謎)


さて、今日の超入門は、時系列配列 ( TimeSeries Array もしくは、Series Array ) について説明します。

時系列配列は、MQL4 でも当たり前のように使われているのですが、逆に常識すぎて誰も解説していない.....

解説されていないから、初心者には正しく理解されていない......気がしています。

時系列配列と、そうでない配列の違いをご存知の人は読み飛ばしてよいお話です...orz。

続きを読む

2009-08-24

バックテスト時のTickの動きをグラフ化する。

週末は相場のことを忘れて、のんびり出かける人がいる一方で、週末にこそ落ち着いてトレードの研究に勤しむタイプの人も多数いるのではと想像しています・・・。


そんな方々の為に、今日はバックテスト時のTickの動きを見る方法を紹介します。

単にTick の動いているところが確認できれば良いのでしたら、Visual mode にチェックを入れてバックテストするだけで済みます。

しかし、相当記憶力が無いと、あの動きから特徴をつかむのは困難なので、別の手段で見ることにします。

続きを読む

2009-08-23

商用EAとMT4ブローカーの評価サイト

先週、とある通販サイトで頼んだモノが1週間たっても届かなくて、いろいろ問い合わせてみたら、あて先住所不明で発送元に戻っていたことが分かり落ち込んでいます...。イギリスや、イスラエルから通販で買ってもちゃんと届くのに、なんで日本国内の通販でそんなことが起きるの?って感じです。やはり、通販業者の信頼性とかも調べないといけないのでせうかねぇ...。


そんな訳で、今日は、商用EAとブローカーの評価ができそうなサイトの紹介をしておきます。

世界的に有名なのは、

http://www.forexpeacearmy.com/

SCAM (詐欺) かどうかの最低限のフィルタリングになります。


個人的に気に入ってるのは

http://forex-systems-reviews.com/

Ryan さんの熱いメッセージはいつも笑いのツボを刺激してくれます。(笑

(ネタとして笑えるだけで、本気で信じては駄目です...)


日本国内では、

http://eur1.net/fx/

EA緊急対策本部というフォーラムが秀逸です。

日本国内の商用EAの使用感や、日本人から見た海外ブローカーの感想が多数報告されています。

商用EA は使わないけどMT4 対応ブローカー情報だけは欲しいという私も重宝しています。


EA 使う人は、EA緊急対策本部だけは見ておいた方が良いです。

・・・というか、全員参加しなさいっ!!><

2009-08-22

MQL5超入門(7)/三項演算子とは

昨日に引き続いて、MQL5 超入門です。

MQL4 を知っていて、C 等の他の言語を知らない人が MQL5 で他人のコードを読む時に戸惑う表現のひとつに、三項演算子があります。


具体例は、

double true_range = (High==Low) ? 0 : (Close-Open)/(High-Low);

で、この式は 変数 true_range に値を代入することが目的だと想像がつきますが、おそらく右辺が意味不明でしょう。

続きを読む

2009-08-21

MQL5超入門(6)/const 修飾子

indicator からObjectCreate ができない問題は…1つのチャートで複数のEAを動かせる仕様になりそうな話が本家フォーラムで出てきました。いつ実現するのかは分かりませんが、妥当な解決策なのではと思っています..。


それよりも・・・ここ何日か、本家でのHelpファイルの更新が止まっているので、もしかして8月中のベータテスト開始も無理なの???

なんて悪い予感を感じつつ…MQL5超入門の第六回です。(ーー;

続きを読む

2009-08-20

MQL5超入門(5)/関数のオーバーロードとは

某所で、MT4の初心者さん相手にサポートをしていると、ときどき面白いことをしてくれる人に出会えます。

その人は、カスタムインジケータをドロップしたのに何も表示されなくて困っているとのことで、私は症状を伺いつつ、どういう使い方や環境のもとで表示されなくなるのか推理してゆくのですが、その人の事例では、さっぱり原因が分かりませんでした。


例えば、コンパイルできないレベルの超・初心者なら、インジケータのサブウィンドウも表示できないはず…なのに、サブウィンドウは表示されている。

ラインの色を黒にしていたら、背景の黒と混ざって見えないとか?…そこで、ラインの色を変えないでドロップさせても改善しない。

0〜-100 の範囲で表示するインジケータを 0〜100で表示させようとするから見えない…という訳でもない。

start() が呼ばれないと描画されないインジで、start() が呼ばれない環境に陥っている?

そもそも、計算に必要なヒストリカルデータが無い?

…だとしたら、標準機能のインジケータも表示できないはず…ところが、標準のMACDは問題ない。


という感じで、これは私の手には負えないかもと、半分あきらめモードだったのですが、翌日、その人の操作手順を聞いてみると、

続きを読む

2009-08-19

MQL5超入門(4)/データ型/クラス(class)

今日は、MQL5超入門の続きです。

クラスは、オブジェクト指向言語を習得する上では避けられない話なのですが・・・・。


結論から申し上げますと、MQL4 からMQL5 への移植だけを目的としている人は、

現時点ではクラスについて知る必要はありません

断言は出来ませんが、おそらくクラスを使わずに移植できるので、今回は読み飛ばしてもOKです。

続きを読む

2009-08-18

オフラインチャートにAskラインを引く。

これまでに、何回かに渡ってオフラインチャートの活用方法を説明していますが、このオフラインチャートには、Askラインが表示できません。そこで、今日はオフラインチャートにAskラインを引くインジケータを紹介したいと思います。


ただ・・・その前に、オフラインチャート自体について説明しておきます。

ファイルメニューのオフラインチャートから開いたチャートだけがオフラインチャート になると思っている人が大半だと思うのですが、実は違います..。

続きを読む

2009-08-17

Bidラインの色だけを変える。

f:id:fai_fx:20090816205354g:image

MT4 では、Bidラインだけの色を変えることは出来ません。F8キーを押して、プロパティでグリッドの色を変えれば、Bidラインの色も一緒に変えられるのですが、

グリッドはグレーのままにしておきたい人にはちょっと不便ですよね。

そんな時に役立つのが、Bid_Line.mq4 で、コードとそのポイントは以下の通りです。

続きを読む

2009-08-16

MQL5超入門(3)/データ型/構造体(struct)

私以外にもロシア語のヘルプと格闘している人がこちらに居ました。やはり、プログラマの習性というか、こういう人にどうしても親近感を覚えます。(苦笑)

EAラボラトリーさんは、開発中の優秀なEAを無料で配布するなどアクティブに活動していらっしゃるので、興味のある人は研究員になってみるとよいでしょう。



さて、本題に戻って、MQL5超入門の続きです。

これから説明する構造体とは、いくつかの関連の深いデータを1つにまとめたカタチで扱いたい時に役立つモノです。

続きを読む

2009-08-15

MQL5超入門(2)/データ型/列挙型(enum)

ロシアのforumでは、草稿中のヘルプの第10稿が出ました。まだ白紙のページも残っていて、時間が掛かりそうな予感がしています。

indicator からトレンドラインやテキスト等のオブジェクトが作れない仕様 ( =EA かscript でしか作れない & どっちもチャートに1個しか乗せられない..orz) には、オブジェクト指向なのにオブジェクトが自由に作れないのはおかしい!!担当者でてこいー(超・意訳) …とクレームがついています。

MetaQuotes社の説明は、indicator の性能を極限まで最適化したら、そうなったんや!!。の一点張りですが、最終仕様は未確定なので、EA やscript を1枚のチャートに複数乗せられるか検討するよ〜...という流れになっています。


果てさて、どうなることやら...。

続きを読む

2009-08-14

MQL5超入門(1)/データ型/整数と実数

MT5 のリリースまで、まだまだ時間が掛かる気がする...のですが、来たるべき日に備えて、MQL4 とMQL5 の違いを解説(妄想?)して行きます。(早すぎ…?笑 

プログラミング言語は「慣れ」が大切なので、毎日少しずつ、知識を増やしていけば、移行しやすいと思うのですよ..。

一応、MQL4を知っていて、C,C++は知らない人が、自作EA を少しの手間でMQL5 に移植できることを目標にします。


どんな言語でも、データの型の種類だけは知っておかないと、サンプルソースを読み解けないので、まずは型を説明します。

MQL4 での整数型は、char, bool, int, color, datetime だけでしたが11種類に増えています。実数型は2種類です。

整数型

サイズ(byte)最小値最大値C++での表現
char 1 -128 127 char
uchar 1 0 255 unsigned char, BYTE
bool 1 0(false) 1(true) bool
short 2 -32 768 32 767 short, wchar_t
ushort 2 0 65 535 unsigned short, WORD
int 4 - 2 147 483 648 2 147 483 647 int
uint 4 0 4 294 967 295 unsigned int, DWORD
color 4 -1 16 777 215 int, COLORREF
long 8 -9 223 372 036 854 775 808 9 223 372 036 854 775 807 __int64
ulong 8 0 18 446 744 073 709 551 615 unsigned __int64
datetime 8 0 (1970.01.01 0:00:00) 32 535 244 799 (3000.12.31 23:59:59) __time64_t

実数型

サイズ(byte)最小値最大値精度C++での表現
float 4 1.175494351e-38 3.402823466e+38 7桁 float
double 8 2.2250738585072014e-308 1.7976931348623158e+308 15桁 double

この表で留意すべきは、最小値〜最大値です。整数型の中には、負の数を表現できない型があることにも注意です。

int 型では40億という数値は扱えませんが、正の数だけでよければ、uint 型を使うことで表現できます。

さらに、大きな整数を扱いたければ、long, ulong を使うことになりますが、その分だけサイズ(=消費メモリ)が増えてしまいます。

ただ、移植する上では、特に整数と実数の新しいデータ型を使う必要はないと思います。









余談ですが…

for(char ch=-128;ch<128;ch++)
{
   Print("ch=",ch);
}

型によって表現できる範囲があることを忘れると、このコードのバグに気づきません。

どこにもバグがあるとは思えない人は、MT5 で動かしてみてください。多分、泣きたくなります..orz

2009-08-13

MT4でTickチャートのテクニカル分析をする。

MT4を使っていて違和感を覚えるのは、やはり、ティックチャートが貧弱なところだと思います。

気配値表示ウィンドウと発注処理ウィンドウにティックチャートが付属していますが、これでは、何のテクニカル分析も出来ません...。海外の某会員制フォーラム内では、Tick表示用のインジケータを改造して、TickのMACDやStocastic を表示させるモノがありますが、じゃぁ CCIは? ボリンジャーは?…といった感じで好みのテクニカル分析ができる訳ではありません。


そこで、今日は、MT4でTickチャートのテクニカル分析を行なう手法を紹介します。


  1. TickChartMaker.mq4 をindicator フォルダにインストールする。
  2. TickChartMaker をEURUSD のチャートに貼り付ける。
  3. ファイル->オフラインチャートから、 EURUSD_T, M1 を開く。
  4. EURUSD_T のチャートをライン表示にする。
  5. Tickデータが貯まるのを待ってから、お好みのインジケータを貼り付けて完成。

下図は、TickチャートにボリンジャーバンドとMACDを表示させてみた例です。

f:id:fai_fx:20090812135551p:image


Tickチャートは、1Tick 更新ごとに増えていくので、時間軸が1970年から始まるのは仕様です。*1

TickChartMaker.mq4は、デフォルトでは、MaxTicks = 5000; なので、5000本のTickが貯まると古い2500本のTickが消えます

チャートの桁数を減らしたかったら、OmitDigit = 1; を指定してください。




Tickチャートは、専ら裁量トレーダー向けのツールと思われがちですが、Tickチャートでのインジケータによる分析状況をGlobal Variablesに書き込み、別のタイムフレームで動かしているEAでそれを読み取り、売買戦略に利用している人も居るそうです。

1分足では捕らえきれないぎりぎりの動きを判定できるので良いのかも知れません。

*1:MT4のヒストリカルデータは、最小で1秒単位でしかデータが入れられません。Tickの更新は1秒に2度以上起こることもある為、全てのTick更新を記録するには、時間軸を無視するしか無いのです..。1秒以下の更新を無視すれば、時間軸を現在にすることは可能です。

2009-08-12

MQL5とMQL4との違い

MQL4ユーザ向けに、MQL5の気になる仕様をメモしておきます。

イベント処理

MQL4では、 init(), start(), deinit() の3つで全て処理されてきましたが、MQL5からは、indicator,EA,Scriptで対応するイベント処理関数が変わります。

イベントindicatorEAScript
初期化(Init)OnInit OnInit -
終了(Deinit)OnDeinitOnDeinit-
実行(Start) OnStart
価格更新(Calculate)OnCalculate
Tick更新(NewTick) OnTick
タイマー(Timer) OnTimer
売買成立(Trade) OnTrade
板更新(BookEvent) OnBookEvent
チャートイベント(ChartEvent) OnChartEvent

・Scriptには、OnInit, OnDeinit がありません。

・indicator は、start() の代わりにOnCalculate が呼ばれます。

・EA は、start() の代わりにOnTick が呼ばれます。

・EA には、その他のイベントもてんこ盛り。

・チャートイベントは、キーダウン、クリック、ドラッグ、オブジェクト設定終了、カスタムイベント等。

・indicator からは、オブジェクト操作関数(ObjectCreate 他)、チャート操作関数(ChartOpen 他)は呼べない。


え?・・・ええええ?????

indicator からオブジェクトが作れないってどうするの?@@という感じです。

scriptでどうにかして...ということらしい。。




定義済み変数

定義済み変数は、_(アンダーバー)から始まります。MQL4では関数だったものが変数でも得られます。

MQL4MQL5
Digits_Digits
Point_Point
BarsBars()
GetLastError()_LastError
Period()_Period
Symbos()_Symbol
_StopFlag
_UninitReason

・Open[ ], High[ ], Low[ ], Close[ ], Volume[ ] , Time[ ]は廃止。

・自前で配列を用意⇒CopyOpen() で配列にコピー⇒その配列をOpen[ ]の代わりに使います。

・CopyOpen() 以外には、CopyRates, CopyHigh, CopyLow, CopyClose, CopyTickVolume, CopyReadVolume, CopySpread等があります。



その他

・インジケータのバッファ数は8から無制限に増えました。

・インジケータの描画タイプは6種類から18種類に増えました。

・インジケータのバッファにはdouble型以外のデータも入れられます。

・DLL のロードは、EAのロード直後に行われます。(従来は、関数呼出し時でした。)

・計算優先順位はC++ 準拠です。

・暗黙の型キャストに注意です。

・ローカル変数は、自動的に初期化されません。(従来は、自動でゼロが入っていました)

・ローカル配列は、自動的に破棄されます。(従来は、値が残っていました。)

・ボリュームは、Tickボリュームとリアルボリュームに区別されました。

・スプレッドは、ヒストリカルデータとして記録されます。

・列挙型、構造体、クラスが使えます。

・変数の型は、大幅に増えました。

・従来1つの関数名だったものが、データの型によって3つの関数名に分かれました。

  例えばObjectSet ⇒ ObjectSetString, ObjectSetInteger, ObjectSetDouble 

・チャート自体を操作する関数が用意されました。



とりあえず、このくらいかな・・・。

2009-08-11

MT4のスクロールキーを楽に押したままにする法

MQL5のヘルプは一通り読み終えました。MQL4からMQL5への移植自体は難しくなさそうですが、MQL5の能力をフルに生かすにはインジケータもEAも再設計が必要…というのが今の印象です。ベータ版が出たら、追々テストしてゆこうと思っていますが、今はまだMT4に専念しなくてはなりません。><


さて、MetaTrader4を1年以上お使いの人なら、お分かり頂けると思うのですが、MT4を使っていると、どうしてもスクロールキー ( 左矢印キーか、Home キー) を押しっぱなしにしたくなる時があります。


世間には、押し続けたい気持ちが高じて、洗濯ばさみで押しっぱなしにする人まで出てくるほど....。

続きを読む

2009-08-10

MQL5のヘルプ(α版)読み始め…

のんきにオフラインチャートの活用を考えてばかりいたら、いつのまにかMQL5の推敲中のヘルプが出回っているので読み始めています。気分は、MAGIの裏コードを見つけたマヤさん状態です。笑

f:id:fai_fx:20090810112405p:image

f:id:fai_fx:20090810112404p:image

マヤ:な、何ですか、これ。

リツコ:開発者の悪戯書きだわ。

マヤ:すごい、裏コードだ!MQL5の裏コードですよ、これ!

ミサト:さながら、MQL5の裏技大特集、ってわけね。

マヤ:わぁ〜、こんなの見ちゃっていいのかしら…わぁ!びっくり!これなんて、intのCよぉ!

マヤ:これなら、意外と早くプログラムできますね、先輩!

リツコ:うん…ありがとう、Roshさん…確実に間に合うわ。

ODLのドル円チャートを3桁から2桁表示にする/offlineチャートの活用編(4)

今日は、MT4のオフラインチャートの活用方法で、あまり知られていない裏技を紹介します...。


って、毎日同じ書き出しで始まっている気がするのは、きっと気のせい。


ODLがProActive仕様になって、いろいろややこしいことになっています。私自身はこの手の移行期はいろいろと怖いのでEAは止めて、ずっと様子見を決めているのですが、どうなることやらって感じですね。

ところで、FXの業界では確実に、チャートの桁数増加 ( 世界的には 5 Digits 化 ) が進んでいて、その流れでODLのドル円も小数点以下が3桁に変わっています。2桁時代に比べると、スプレッドが 1.8〜2.8pips といった感じで従来より小さくなるのはありがたいのですが、チャートの横軸が3桁になるのは本当に見づらい><。

でも、オフラインチャートを使えば、簡単に2桁表記に戻すことができます。それが以下の図。

チャートの右側の桁数が、上のチャートでは3桁なのに、下のオフラインチャートでは2桁になっています。

f:id:fai_fx:20090809033548p:image

続きを読む

2009-08-09

チャートの時間軸を日本時間表示にする/offlineチャートの活用編(3)

今日は、MT4のオフラインチャートの活用方法で、あまり知られていない裏技を紹介します。


MT4のチャート軸に日本時間を表示させたかったら、JPN_Time_Sub mq4 または CIDP_JPY_Time.mq4 が有名で、それ以外では121証券に口座を開くという手もあります。121証券のサーバはタイムゾーンが GMT + 9 =日本時間なので、チャートの時間軸がそのまま日本時間になるわけです。


121証券ではアレがナニなので、他のブローカーでチャートの時間軸を日本時間にしたい! という人には、以下のオフラインチャートによる表示が使えます。

f:id:fai_fx:20090808031428p:image

続きを読む

2009-08-08

4時間足の時間区切りを変える/offlineチャートの活用編(2)

今日は、MT4のオフラインチャートの活用方法で、あまり知られていない裏技を紹介します。


MT4の4時間足は、サーバ時刻を基準として0時, 4時, 8時, 12時…で区切られています。

これは、サーバ時刻が GMT+0 (UTC)採用なら、日本時間で、9時, 13時, 17時, 21時…に区切られる訳ですが、サーバ時刻が GMT+2 の業者に乗換えた途端、日本時間11時, 15時, 19時, 23時に変わってしまい、伝統的な4時間足スイングトレーダーなら発狂してしまいそうです。


よく知られた対応策としては、業者を変える…というのがあるのですが、そもそもライブ口座であったり、銘柄や値動き等の事情によっては業者を変えられない場合もあります。

そんな時に役立つのがオフラインチャートによる4時間足の時間区切り変更です。

以下の図では、左上が本来の4時間足チャートで、他の3枚が1時間ずつずらしたものです。

赤ラインが、4時間足のそのバーが出来る時刻を示しています。

f:id:fai_fx:20090807001748p:image

このチャートは、1時間足Period_Converter_OptMOD.mq4 を張り付ける際にPeriodMultiplier を4倍にして、 ShiftTiming に1〜3を指定すると、それぞれEURUSD_s1〜EURUSD_s3というデータが作成されるので、これをオフラインチャートとして開けばOKです。

Period_Converter_Opt 自体を使ったことのない人は、「メタトレーダー4に10分足や2時間足を表示させにるには?」を参考にしてください。


4時間足のようなスパンになると、時間区切りのタイミングが変わることでローソク足のパターンもかなり変わります。ひげを基準に裁量トレードされている人は、本当に適切な時間で区切られているかどうか検証してみるのもよいかも知れません。


さて、勘の鋭い人はお気づきと思いますが、この方法を使えば1時間足の生成タイミングを5分前にずらす..なんてことも可能です。5分足チャートに、PeriodMultiplier = 12 ; ShiftTiming = -1 ; を指定すれば、毎時55分を区切りとした1時間足のオフラインチャートが出来上がります。

世界中の1時間足トレーダーが、毎時0分に仕掛けて来るのに、自分だけが5分前に仕掛けることが出来たら、かなり有利に戦えると思いません?(笑)

f:id:fai_fx:20090807150414p:image


週6本の日足を5本に変更する方法

例えば、1時間足で月曜朝に2時間分はみ出るサーバでは、1時間足Period_Converter_OptMOD.mq4 を張り付ける際にPeriodMultiplier を24倍にして、 ShiftTiming に-2を指定すると、EURUSD_s-2というデータが作成されるので、これをオフラインチャートとして開けばOKです。

f:id:fai_fx:20090811060757p:image

2009-08-07

反転チャート(ミラーチャート)でテクニカル分析?/offlineチャートの活用編(1)

鏡は悟りの具ならず。迷いの具なり。」とは、斎藤緑雨の言葉ですが、いつの時代にも相場のチャートを鏡に映したように上下反転させて見たい人がいらっしゃるようです…。*1



MT4で反転表示させるインジケータとしては、オーバーレイチャートスクリプト Ver.1.10が有名ですが、これでは、反転したチャートへのインジケータによる分析が出来ません..。やっぱり反転したチャートにも一目均衡表を表示させたいよね?と思うわけで、その場合の実現手段としては、「メタトレーダー4に10分足や2時間足を表示させにるには?」を応用するのが簡単かなと思います。10分足を作る代わりに反転足を作るイメージですね。こちらの人も多分同じ手法でしょう。

…で、出来上がったのが下図の下側のチャート

f:id:fai_fx:20090806011951g:image

チャートの作り方は、

  1. Period_Converter_OptMirror.mq4をインジケータとしてチャートに添付します。(MirrorPriceは適当に設定)
  2. ファイル->オフラインチャート で、通貨名の後ろにXの付いたデータ(USDJPYならUSDJPYX)を開きます。

以上でOKです。MirrorPrice=200に設定すると、ドル円95円に対して、200-95=105円となる反転チャートが描かれます。

反転チャートでは、AskやBidのデータを必要とするインジケータは改造しないと動きませんが、それ以外のものは普通に動きます。


Period_Converter_OptMirror.mq4の改造部分について疑問などがあればコメントにて質問ください。

*1:とあるフォーラムでの依頼で作成しています。私自身は、通貨毎の強弱のバランス次第で、上昇局面と下降局面が非対称な構造になると信じているので、反転させて眺めてみることは、裁量トレーダーには多少の意義があるとは思います....。何かを感じることが出来るかどうかはわかりませんが^^;

2009-08-06

VPS上で動く商用EAのAlert をGrowlで他のPCに送る

f:id:fai_fx:20090806002837p:image:right

pontaさんが、VPS上で動くMT4の接続/切断状況をGrowlでローカルのPCに送るのを試して頂いたので、今日は、商用EAのカスタマイズ出来ないAlert をGrowlで他のPCに送る手順を考えました。

原理は接続/切断状況を伝送するのとほぼ同じで、Alert発生時に音を鳴らす代わりにスクリプトを実行し、警告ダイアログ内のメッセージを読み取ってGrowlに送ります。

トレード用のPCから、作業用のノートPCに送るとちょっといい感じです。

以下は導入手順。

続きを読む

2009-08-05

MT4に指標カレンダ表示をさせるFFCal が動かなくて困ったら・・・

f:id:fai_fx:20090804181609p:image

FFCal は、Forex Factory製の指標カレンダーインジケータです。EAに指標イベントを避ける為のコードを書くのに重宝します。それが8/4から「FFCal Error - Web page download was not complete!」といったエラーが出て動かないのでいろいろ調べたら、カレンダーデータを置いてあるhttp://www.forexfactory.com/ff_calendar_thisweek.xmlに対してサービス拒否攻撃(Denial of Service)が行われているので、XMLのおき場所を変更したとのこと。*1


以下は今後の対応方法です。

  1. http://www.forexfactory.com/rss.php の一番下のWeekly Output のURLを調べる。
  2. FFCal.mq4 内のstring sUrl = "http://www.forexfactory.com/ff_calendar_thisweek.xml";という行のURLを書き換える。


ちなみにMT4でカレンダー表示させるのには、ForexTSD謹製のForexTSD_Calendar_v1.5や、IN10TION NewsReaderがあります。どれも一長一短があるので、使ってみると良いかもです。

*1:実際にDos攻撃されたって訳ではないのですが、実質サービスが止まったのでDoSかなぁと思うのです。詳細は、こちら。

2009-08-04

古いBuild のMetaTraderが必要な時は…

EAやインジケータのex4ファイルは、それをコンパイルした時のバージョンと、実際に使用するMetaTraderのバージョンが異なると動作が不安定になる場合が時々あります。リコンパイルすれば直ぐに解決するのですが、どうしても不可能な場合は、古いBuildのMetaTraderで動かすしかありません..。

私が所有しているBuildは、200,201,206,208,210,211,215,216,217,218,219,220,221,222,223,224,225で、こちらからダウンロードできます。

ちなみに、あんまり古いBuildのMT4でサーバに繋ぐと旧バージョンと怒られてログイン出来ませんのであしからず。

f:id:fai_fx:20090804152100p:image

2009-08-03

MT4のアラート(Growl)を他のパソコンで受け付ける設定。

受信側のパソコンの設定

  1. GrowlのSecurity で、Allow network notifications にチェックを入れる。
  2. Password Manager にパスワードを設定する。
  3. Windows ファイアーウォールで、ポート番号23053 を登録する。

送信側のパソコンの設定

  1. GrowlのNetworkで、Forward notifications to other computersにチェックを入れる。
  2. プラスボタンを押して受信用パソコンの追加をし、IPアドレス/PASSWORD等を設定する。
  3. 追加されたパソコンにチェックを入れる。
  4. Windows ファイアーウォールで、Growl を通信アプリとして登録する。

これが他パソコンに送りつける最低限の設定だと思います。

送信側は、ApplicationsのForwarding の設定で、Don't Forward を選べば送らなくなり、Chooseを選べば、送り先のパソコンを個別に選ぶことが出来ます。

2009-08-02

MT4にGrowlで、MSNメッセンジャー風のアラートを付ける。

MetaTrader4で自作EAや自作indicatorからのAlert()は、複数業者で複数通貨ペアを取引し始めると、どこか不便に感じてしまいます。


(1)バックグラウンドで動いているMT4のAlertが最前面に来ない。

(2)アラート画面が邪魔で一旦閉じると、再度開く方法が無い。

(3)どの業者のアラート画面なのか分かり難い。

(4)重要なアラートとそうでないアラートが混ざる。

(5)些細なアラートでもOKボタンを押さないと閉じない。


等でしょうか…。それぞれの不具合に個別に対応することは可能なのですが、どれも一長一短で、いろいろ考えた結果、MSNメッセンジャー風のポップアップアラートが好ましいのではとの結論に至りました。

・アラートは常に最前面に出てくる。

・些細なアラートは、数秒後に自動消滅

・重要なアラートは、付箋のようにデスクトップに残り個別に閉じることが出来る。

・アイコン付であれば業者の区別もしやすい。

・個別のインジケータのアラート設定を変えることなく表示の一括ON/OFFが出来る。

・(他のPCやiPhone,Twitterにアラートを伝送できる。)


というのが私の理想です。…で、それを実現できるのがGrowl for Windowsというソフトになります。

以下の画面は、実際にMetaTrader4からGrowl経由で右下にアラートを出してみたものです。

f:id:fai_fx:20090801180839p:image

続きを読む

2009-08-01

MT4の指値注文の有効期限は最短で何秒後を指定できるのか?

MT4の指値注文の有効期限は最短で何秒後を指定できるのか?確認するEAを作ってみました。

実行タイミングで多少のばらつきはあるものの、とある業者では、およそ660秒=11分後が最小期限のようです。

int start()
  {
   int ticket = -1;
   datetime Exp = TimeCurrent();
   int x = 0;
   while(ticket<1){
      ticket=OrderSend(Symbol(),OP_BUYSTOP,1,Ask+100*Point,3,Ask-25*Point,Ask+125*Point,"My order ",16384, Exp,Green);
      PlaySound("tick");
      Sleep(500);
      Exp = TimeCurrent() +30*x;
      x = x+1;
   }
   Comment(Exp-TimeCurrent());
   return(0);
  }