2008年03月28日

FXDD でマイクロロット取引

MetaTrader4 を採用している海外業者の一つである FXDD の情報です。

1000通貨単位の取引(マイクロロット)ができるMT4業者を探していたのですが、Interbank FXAlpari などWebサイトに明記してある業者とは別に、FXDD で マイクロロット取引ができるとの情報が海外の FXフォーラムに書いてありました。

FXDD は2年前に口座開設していたので、そこで使えるのならてっとり早いと思い、問い合わせてみると、1000通貨単位の取引ができるとのこと。しばらく使わなくて無効になっていた口座を有効にしてもらいました。

FXDD では最近日本人のスタッフがいて、問い合わせも楽になりました。
特にこの3月4月は口座トランスファーキャンペーンをやっていて、別のFX業者から資金を移した場合、500ドル以上で100ドルのボーナス、1000ドル以上で250ドルのボーナスがもらえるようです。

詳しくは、FXDD の日本語のページをご覧ください。ただ、このページの情報は正確かどうかよくわからない箇所もあるので、正確な情報についてはメールなどで問い合わせた方が確実だと思います。

にほんブログ村 為替ブログへ上位ランキングのブログ記事はこちら

2008年03月22日

シグナル指標プログラムを使ってエキスパートプログラムを作る

私はこのブログ、「FXメタトレーダー入門」、先日のODLのセミナーなどで、MT4でのシステム開発の際に、いきなりエキスパートプログラム(EA)を作る前に、カスタム指標プログラムとしてシグナルをチャートに表示させるシグナル指標プログラムを作成することを推奨してきました。

それはシステム設計時に、利用したテクニカル指標とシグナルの位置を視覚的に確認することができ、さらに後でエキスパートプログラムの動作確認を確実に行うこともできるからです。MT4に限らず、何かとバグが付き物のプログラム開発において、できるだけ効率良く、正確なプログラムを作成することは重要な要素です。

今回は、シグナル指標からエキスパートプログラムをさらに効率よく正確に作成するための手法を紹介します。

まず、シグナル指標プログラムが「FXメタトレーダー入門」の214ページのように作られているとします。ファイル名は「MACross_Ind.mq4」です。
このプログラムでは、以下のように4つの指標バッファのうち、2番目に買いシグナル、3番目に売りシグナルが割り当てられています。

SetIndexBuffer(0, BufFastMA);
SetIndexBuffer(1, BufSlowMA);
SetIndexBuffer(2, BufBuy);
SetIndexBuffer(3, BufSell);

また、パラメータとして以下のように移動平均の二つの期間が extern 宣言されていることに注意してください。

extern int FastMA_Period = 10;
extern int SlowMA_Period = 40;

BufBuy、BufSell には、初期値として EMPTY_VALUE という何も表示しないという特別な値が代入されており、シグナルが発生した時に Open[i] という現在のバーの始値の値が代入され、チャート上に矢印の記号が表示されるようになっています。

このシグナルをそのまま利用するためのエキスパートプログラムの書き方を見ていきます。
「FXメタトレーダー入門」の222ページのプログラムを基にして変更する箇所を以下に示します。変更するのは start()関数だけです。

int start()
{
   //バーの始値でトレード可能かチェック
   if(Volume[0]>1 || IsTradeAllowed()==false) return(0);
 
   //シグナルの取得
   double BuySignal = iCustom(NULL,0,"MACross_Ind",FastMA_Period,SlowMA_Period,2,0);
   double SellSignal = iCustom(NULL,0,"MACross_Ind",FastMA_Period,SlowMA_Period,3,0);
 
   //買いシグナル
   if(BuySignal != EMPTY_VALUE)
   {
      ClosePositions();
      OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"",MAGIC,0,Blue);
      return(0);
   }
 
   //売りシグナル
   if(SellSignal != EMPTY_VALUE)
   {
      ClosePositions();
      OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"",MAGIC,0,Red);
      return(0);
   }
   return(0);
}

ここでは移動平均の計算は行わず、BuySignal、SellSignal という変数に、iCustom()という関数を使って既存のシグナル指標プログラムのシグナルだけを取得します。

iCustom()は以下のような複数個のパラメータを取ります。

double iCustom( string symbol, int timeframe, string name, ..., int mode, int shift)

symbol は通貨ペア名、timeframe はタイムフレームで他のテクニカル指標関数と同じです。
次の name のところが、カスタム指標プログラムのファイル名の主部(.mq4を除いた部分)を表します。
"MACross_Ind.mq4" の場合、"MACross_Ind" となります。
その次の ... とある部分には、カスタム指標プログラムのパラメータ(extern 宣言された変数に対応)
に渡す値が入ります。値を渡す必要がなければ省略も可能です。この例では、FastMA_Period, SlowMA_Period を指定しています。
そして mode というのが、カスタム指標プログラム中の何番目のバッファの値を取りだすのかという番号を表します。
カスタム指標中で買いシグナルBufBuyが2番目、売りシグナルBufSellが3番目だったので、それぞれ2と3を代入します。
最後の shift は時間位置のシフトを表します。ここでは同じ位置にシグナルを発生させるのでとしています。

実際のオーダーを出す条件としては、BuySignal、SellSignal にシグナルとしての値が入っているかどうか、つまり無シグナルの EMPTY_VALUE 以外かどうかの判定だけを行います。

これで、MACross_Ind.mq4 のシグナルをもとにしたエキスパートプログラムが作成できました。
この手法は別のプログラムの内容を連携させながら作成するので、ちょっと初心者には難しいかと思い、「FXメタトレーダー入門」には掲載しませんでした。
しかし、このレベルのエキスパートプログラムが理解できれば、シグナル指標プログラムのファイル名とパラメーターを差し替えるだけで、色々なシステムのエキスパートプログラムが簡単に作れるし、ストラテジーテスターで実行した後にチャートを開いた場合(237ページ参照)エキスパートでの売買ポイントと、シグナル指標のテクニカル指標やシグナルが同時に表示されるため、動作確認が一目でできるというメリットもあります。

システム設計時にまずシグナル指標プログラムを作成することをお薦めするのは、このようにエキスパートプログラムとうまく連携が取れる仕組みがあるからなのです。

にほんブログ村 為替ブログへ上位ランキングのブログ記事はこちら

2008年03月20日

ODLセミナー終わりました

今日はあいにくの天気で参加者も少し減ったような感じでしたが、その分スペース的に余裕があり、こちらもそれほど圧迫感なく話すことができました。
どれくらいのレベルの人が聞きに来ていたのかよくわかりませんでしたが、質問の時間では、これからプログラムを組みたいという人からかなりシステムトレードに精通している人まで様々な質問がありました。
私もこういうセミナーは参加したことも講演したこともなかったので、どうなることかと思いましたが、いい経験になりました。
今日の参加者には、「FXメタトレーダー入門」が無料で配られました。たぶんODLさんのところにまだ多数余っていると思うので、また何かのキャンペーンで放出するのではないかと思います。

にほんブログ村 為替ブログへ上位ランキングのブログ記事はこちら

2008年03月19日

メール設定画面の日本語の修正が反映されました

以前の記事「FXメタトレーダー入門」の278ページでも触れている日本語版の項目名の間違いをMetaQuotes 社に連絡したことを報告しました。

これについては、MetaQuotes 社のニュースでは、以下のように既に2月7日に修正されていたようなのですが、build 番号が上がっていなかったので、ライブアップデートで反映されていませんでした。

07 February 2008

New MetaTrader 4 Mobile build 211 and MetaTrader 4 Mobile SE build 211 with fixed displaying of news in the Japanese language have been released.

今回、build 213 に上がり、ライブアップデートで修正が反映されていました。
メール設定画面については以下のように表示されるようになります。

したがって、「FXメタトレーダー入門」の278ページで注意している

「日本語の項目名が実際の項目とずれている」

ことはなくなりました。日本語の画面のまま使って問題ありません。

にほんブログ村 為替ブログへ上位ランキングのブログ記事はこちら

2008年03月17日

ドル円1ヶ月ボラ20%超え

最近メタトレーダー関連の記事ばかりでしたが、久しぶりにオプション関連の記事を。

今日3月17日にドル円が一気に95円台まで下落するという円高ドル安を記録しました。
それに伴って、1ヶ月もののIVも20%超えという高騰になりました。
以前、ドル円のボラが20%超えしたのがちょうど7か月前の8月17日。

前回の記事「20%超のクロス円のボラ

1年も経たないうちに再びボラがここまで高騰するとは驚きです。
それだけ市場が不安定になっているということでしょう。

にほんブログ村 為替ブログへ上位ランキングのブログ記事はこちら

2008年03月09日

ODL Japan のセミナー

前回訪問した ODL Securities で近いうちにHPをリニューアルするとのことでしたが、ODL Securities のサイトではなく、ODL Japan という別サイトでのリニューアルでした。
ODL Japan という日本法人化で口座開設などの手続きも簡単になったようです。

ところで、3月20日にODL Japan 主催のセミナーが開催されます。無料セミナーなんですが、午後の部に私が登場します!
「MetaTrader4を使ったシステム売買入門」ということで簡単なお話をさせていただきます。
拙作「FXメタトレーダー入門」をテキストとして使う予定なので、参加者には拙作が配布されると聞いています。
まあここでも入門なので、MT4でのバックテストの方法など基本的な話になると思います。
当ブログをご覧の方にはそれほど珍しい話はないかもしれませんが、お暇な方はどうぞ。
間違っても「システムトレードは絶対儲かる」なんて話はありません。勘違いされないように。

にほんブログ村 為替ブログへ上位ランキングのブログ記事はこちら

2008年03月その他のエントリー

  1. 2008年03月22日

    1. シグナル指標プログラムを使ってエキスパートプログラムを作る

  2. 2008年03月20日

    1. ODLセミナー終わりました

  3. 2008年03月19日

    1. メール設定画面の日本語の修正が反映されました

  4. 2008年03月17日

    1. ドル円1ヶ月ボラ20%超え

  5. 2008年03月09日

    1. ODL Japan のセミナー