メタトレーダープログラミングの記事一覧

横綱FX 運用報告4

4XP => メタトレーダー対応、固定スプレッド、最小1000通貨
50種類以上の通貨ペア、各種CFD(金、株など)対応

横綱FXってやつを買いました。


その後の報告です。

$1 030.02運用の結果です。
11月5日
AUDCAD:+15.16
EURJPY:+0.74
USDCHF:+19.41
USDJPY:-11.25
計:+24.06

$1 054.08となりました。

本家と比べると2つポジションが持てていません。
エラーを調べると、
6:トレードサーバと接続できない 「ERR_NO_CONNECTION」
138:再見積り 「ERR_REQUOTE」
の2つが発生していました。

6は、単純につながらなかった。
ログを見ると再接続を結構行っているので、タイミングが良くなかったのかもしれません。

138は、オーダーのタイミングで、移動量が多いときに発生します。
タイミング的には 本家と同じタイミングでエラーが出ているので動きとしては合っています。

メタトレーダーの数に影響があるかわからないので、来週は4つ起動してみます。

一応、今日の取引を載せておきます。

Open Time Type Size Item Price S / L T / P Close Time Price Swap Profit
2010.11.04 22:13 sell 0.19 audcad 1.0195 1.0445 1.0187 2010.11.04 22:32 1.0187 0.00 15.16
2010.11.05 01:32 sell 0.06 eurjpy 114.86 117.88 0.00 2010.11.05 04:37 114.85 0.00 0.74
2010.11.05 01:33 buy 0.31 usdchf 0.9575 0.9323 0.9581 2010.11.05 01:46 0.9581 0.00 19.41
2010.11.05 01:54 sell 0.13 usdjpy 80.79 83.30 80.72 2010.11.05 04:37 80.86 0.00 -11.25

タグ

FXメタトレーダー実践プログラミング

4XP => メタトレーダー対応、固定スプレッド、最小1000通貨
50種類以上の通貨ペア、各種CFD(金、株など)対応

お久しぶりです。

年末からやたら忙しい状態がつづいていて、部署が変わったから楽になるかと思ったら、もっとひどくなってしまいました。

そんな訳で、更新もままならない状況です。

楽しみにしている方には、申し訳ないと思います。

出来る範囲で、ゆっくりとやっていきたいので期待せずにまっていてください。

ちょっと前に見つけて、今日買った本について

FXメタトレーダー実践プログラミング」という本です。

FXメタトレーダー実践プログラミング

FXメタトレーダー実践プログラミング

価格:2,940円(税込、送料別)

前作の「FXメタトレーダー入門」の続編に当たるものです。

FXメタトレーダー入門

FXメタトレーダー入門

価格:2,940円(税込、送料別)

FXメタトレーダー実践プログラミングは、結構いいですよ。

前作は、メタトレーダーの使い方とプログラムの触りでしたが、今回のはやりたい事をだいたい実現できるだけの情報が載っています。

目次はこんな感じ。

  • 第1章 メタトレーダーの構成を知る(メタトレーダーを使いこなす前に/メタトレーダーとMQL4プログラミング)
  • 第2章 カスタム指標プログラムで独自のテクニカル分析(カスタム指標プログラムの基本/組み込みテクニカル指標関数の使い方/オブジェクトを利用したカスタム指標/テクニカル指標のデータをファイルに出力)
  • 第3章 トレード関数で柔軟な注文を実現(トレード関数を使いこなす/トレード時のエラーチェック/トレード関数のライブラリー化/エキスパートプログラムによる注文)
  • 第4章 エキスパートプログラムでシステムトレード自由自在(売買システムの基本構成/仕掛けのパターン/手仕舞いのパターン/そのほかのシステムのパターン/ストラテジーテスターでの検証)
  • 第5章 MQL4をさらに使いこなしたい人のために(データの型/プリプロセッサ命令/変数の種類/配列の種類/数学関数/オブジェクトの表示/ファイルの入出力/文字列に関する関数/日時に関する関数/マーケット情報/口座情報/関数のライブラリー化)
  • 付録A MQL4関数一覧
  • 付録B 参考図書

いい感じで知りたい情報が分かります。

多少なり、プログラムの経験があればそれなりのプログラムが組めるようになります。

興味のある方は、本屋で立ち読みしてみてください。

タグ

いろんな通貨ペアを一緒に表示したい

4XP => メタトレーダー対応、固定スプレッド、最小1000通貨
50種類以上の通貨ペア、各種CFD(金、株など)対応

最近、「いろんな通貨を一緒に表示したい」という質問をよく受けます。

たぶん、為替鬼さんの

<a href=”http://hb.afl.rakuten.co.jp/hgc/09f4ab6a.89c21c1d.09f4ab6b.318ea709/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fbook%2f6104387%2f&m=http%3a%2f%2fm.rakuten.co.jp%2fbook%2fi%2f13214593%2f” target=”_blank”>為替鬼のFXスキャルピング入門</a>
の影響かなって思っています。

実は、月刊 FX (エフエックス) 攻略.com (ドットコム) に連載し始めた頃、気になって作ってみようと思ったことがあります。

思ったことがあるってところが味噌で、実は挫折しました。

※最後まで作りきる気力がなかった。

単純に、複数通貨をプロットしたりするのはある程度考えればできるんです。

ですが、通貨ペアによって情報が更新されない時間があって、それがまちまちなんです。

インジケーターを作るときに、過去にさかのぼればさかのぼるほど、ズレが大きくなって意味がなくなっちゃうんです。

対処方法もあることにはあります。

足ごとの時間を取得して、合わせてあげればいいんです。

でも、ここで挫折しました。

面倒なんだもん!!

ということで、誰かクリアしたらください。

いや、作らないといけないのかな。

気持ち的にやる気が出たら作ってみます。

タグ

メタトレーダをインストールしてみる

4XP => メタトレーダー対応、固定スプレッド、最小1000通貨
50種類以上の通貨ペア、各種CFD(金、株など)対応

今回は、初心に戻ってメタトレーダのインストールを説明します。

フォレックスプレース(Forex Place)を利用してみようと思います。

広告を貼っているので利用している方もいるかと思います。

 

4XPは、スイスに本社を置く会社で、メタトレーダでFXなどの各種通過ペアの他にCFDも取り扱っているのが特徴です。

使えるCFDは、

★CFD一覧
○金属
金:Gold
銀:Silver

○株式
ダウ・ジョーンズ30:DOW
ナスダック100:NASDAQ
S&P 500:SP500
日経:NK
FTSE 100:FTSI
CAC 40:CAC
DAX 30:DAX

○穀物
とうもろこし:CORN
大豆:SOYBEAN
麦:WHEAT

○燃料
原油:WTI
ガス:NGAS
ガソリン:GSO

とかなりの種類を扱っています。

単純にCFDのトレードを楽しむことも、FXの指標データとしても利用可能です。

データが増えるのはかなり好ましいですよね。

 

ただし、残念なことにデモ版では、Gold(金)だけしか扱えません。

ちょっと残念ですね。

でも、100ドルから開設できるので本契約してしまうのもありでしょう。

 

もう一ついいことがあります。

通常、10000通貨単位でトレードします。

MT4では、0.1ロット。

4XPでは、1000通貨単位、0.01ロットでトレードできます。

100ドルで開設しても1000ドル投資した気分で、トレードできます。

もちろん、収支も1/10になってしまいますが。。。

 

サイトの説明は、日本のサイトみたいに丁寧ではないので何ができるのかわかりにくいですが、メタトレーダを利用するには関係ないですからね。

ちなみに、入出金はカード決済が便利だと思います。

ドル建てでカード決済するには、円高も気になりますよね。

そんなときは、イーバンクのデビット決済できるクレジットカードを用意しておくといいかもしれません。

即決済できるので、円高の今、入金するときは便利でしょう。

 

では前説が長くなりましたが、インストールしてみましょう。

1.下のタグをクリックして、フォレックスプレース(Forex Place)のページを開いてみます。

 

2.下のようなページが表示されるので、赤枠のダウンロードをクリックしてください。

01

 

3.ダウンロードをクリックしてください。

02

 

4.このままでは、ダウンロードできませんのでデモアカウントを作ります。

 「デモアカウントの開設」をクリックしてください。

03

 

5.必要事項を入力してください。

名前などは、ローマ字で記入するのを間違えないようにしてください。

電話番号は、国際電話なので03-111-2222の場合は、81-3-1112222となります。

市外局番の0を取り除くのを忘れないでください。

「条件と規約に同意する。」にチェックを入れ、「送信」をクリックしてください。

04

 

6.メールが届くので「ここをクリックしてアカウントを起動させてください。」をクリックしてください。

05

 

7.以下のようなページが開き、アカウントが確定されます。

赤枠に登録したメールアドレスとパスワードを入力し、「ログイン」をクリックしてください。

06

 

8.右上にユーザ名が表示され、ログインできました。

赤枠の「ダウンロード」をクリックしてください。

07

 

9.赤枠の「ダウンロード」をクリックしてください。

08

 

10.「保存」をクリックして、適当な場所にファイルを保存してください。

09

 

11.保存した場所に以下のようなアイコンがあるので、ダブルクリックしてインストーラーを起動します。

10

 

12.「次へ」をクリックしてください。

11

 

13.「次へ」をクリックしてください。

12

 

14.「はい。全てのライセンス条項に同意します。」にチェックを入れ、「次へ」をクリックしてください。

13

 

15.XPで新規登録の場合は、このまま「次へ」をクリックしてください。

2個目の場合は、フォルダ名がダブらないようにしてください。

Vistaの場合は、このままではセキュリティの関係でうまくいきません。

C:\Users\あなたのPCユーザ名\Program Files\MetaTrader- Forex Place

のように「C:\Users\あなたのPCユーザ名\」にインストールしてください。

WIndows7でのインストール経験はありませんが、Vistaと同じようにインストールしたほうがいいでしょう。

14

ちなみに、インストールするフォルダ名を変えれば、いくつでもMT4をインストールできます。

ただし、ショートカットが上書きされる可能性があるので、リネームしておいてください。

ちなみに、インストールしたフォルダにある「terminal」のショートカットをデスクトップにでも作成してください。

これで、各フォルダーのメタトレーダーを起動できます。

 

16.「次へ」をクリックしてください。

15

 

17.「次へ」をクリックしてください。

16

 

18.インストールが始まります。

17

 

19.インストールが完了しました。

「終了」をクリックしてください。

18

 

20.こんなアイコンがデスクトップにできているはずです。

そのまましばらく待つとメタトレーダーが起動します。

19

 

21.起動されたメタトレーダーには、接続する口座がありません。

必要事項を入力し、デモ口座を作成します。

必要事項を入力し、「次へ」をクリックしてください。

20

 

22.「次へ」をクリックしてください。

21

 

23.デモ口座が開設されました。

「完了」をクリックしてください。

22

 

24.これで全ての作業が完了しました。

メタトレーダーライフを楽しんでください。

ちなみに、以下のようにGold(金)を表示できます。

何かのアイデアに利用できるといいですね。

23

 

 

他のCFDも利用してみたい方は、リアル口座を開設してみてください。

100ドルから開設できますので、試してみるのにもそんなにハードルは高くないはずです。

デモでは気合が入らないけど予算がない方も0.01ロットでトレードすれば、100ドルでもかなり楽しめると思います。

 

ちなみにリアル口座を開設すると今ならボーナスがもらえます。

初回入金ボーナスのご案内:
·         $100-$400のご入金額に対して、$50ボーナスを差し上げます。(お引き出し条件‐10ロット取引後)
·         $500-$700のご入金額に対して、$100ボーナスを差し上げます。(お引き出し条件‐20ロット取引後)
·         $750-$900のご入金額に対して、$250ボーナスを差し上げます。(お引き出し条件‐50ロット取引後)
·         $1000-$4000のご入金額に対して、$250+10%ボーナスを差し上げます。(お引き出し条件‐ボーナス額/5のロット取引後)
·         $5000-$9000のご入金額に応じて、$500+10%ボーナスを差し上げます。(お引き出し条件‐ボーナス額/5のロット取引後)
·         $10,000以上のご入金額に対しましては、$750+10%ボーナスを差し上げます。(お引き出し条件‐ボーナス額/5のロット取引後)
(最高ボーナス額は、$10000までとなります旨、ご了承下さい。)

 

100ドルでも50ドルもらえるのでかなりお徳でしょう。

他にもこんなメリットもあります。

4XPのメリット:
1.        マイクロ・ロット(0.01Lots)対応。
2.        固定スプレッド‐例: EURGBP = 3pip、シーズンごとの変動無し。
3.        スキャルピングEA可能。
4.        両建て可能。5.        強制ロスカット無し、担当ディーラーより「マージンコール」サービス有

タグ

インジケータからEAを作ってみるときに

4XP => メタトレーダー対応、固定スプレッド、最小1000通貨
50種類以上の通貨ペア、各種CFD(金、株など)対応

かなりご無沙汰しています。

仕事が忙しくてなかなか更新できなかったり、プライベートでも子供が生まれたりと、どこにいても忙しい毎日をおくっているため、なかなか更新できないでいます。

ちょっと質問を受けたので、その回答を

 

質問:

インジケータのソースが手に入ったので、それをベースにEAを作ろうと思っていますがどこをどうしていいかわかりません。

 

まあ、こんな感じの質問です。

簡単に回答してしまうとインジケータからEAを作るのは、かなりプログラムがわかっていないと難しいです。

理由は簡単で、足単位で計算しているプログラムを必要な足の情報だけを取得するように変更する必要があるからです。

だいたい、ソースが提供されているインジケータは、サンプルみたいなものでかなり適当に作られていることが多いです。

いい感じに関数化してあり、部品として流用可能ならあまりわからなくてもEA化ができるかもしれませんが、再利用など考えていないことが多いので整理しなおす必要があります。

 

この辺は、経験がものを言うのでチャレンジしてもらうことはものすごくいいことです。

でも、難しいじゃないですか。

 

ということで、なるべく簡単にインジケータのデータをEAで利用するには、「iCustom」を利用してインジケータをそのまま利用してしまうことです。

インジケータの情報を取得する2で説明しているので、そっちの方向でまずがんばってみてください。

タグ

オーダーやオーダー変更時に失敗する場合

4XP => メタトレーダー対応、固定スプレッド、最小1000通貨
50種類以上の通貨ペア、各種CFD(金、株など)対応

EAでのトレイルストップがうまくいかない質問を受けたので、たぶんこれかな?ってのを回答しておきます。

わたしも初期はこれで悩んだので。。。

OrderSendOrderModifyを行うとエラーになることがあると思います。

こんなとき何が悪いかちょっと確認してほしいことがあります。

1.注文の方向でAskとBidが間違っていないか。

2.StoplossとTakeprofitの幅

の2点です。

1番は、結構よくやります。

2番は、ストップレベルポイントというのがあって、現在のポイントからいくつか離さないといけないというルールがあります。

だいたい、20pipsぐらいだと思います。

この値は、会社などで違ってきます。

調べる方法は、

MarketInfo(Symbol(),MODE_STOPLEVEL);

を使います。

インジケーターでもEAでもいいので、適当なのを作って以下のソースを書いてみてください。

Comment(”ストップレベル:”,MarketInfo(Symbol(),MODE_STOPLEVEL));

これで、最低離さなければいけない値が表示されます。

もう一つ気をつけなければいけないのは、スリップです。

注文するときにスリップページをいくつにするか指定していますよね。

3pipsを指定していたら、20+3で23離す必要があります。

何でもいいけど、20pipsは大きいですよね。

だから、私がEAを作るときは、LossとTakeは保険(通信障害などの)でかける程度にして、実際のクローズはEAにやらせるようにしています。

これだと、1pipsでも狙えます。

あまり細かいとスリップが大きいとダメですがね。

参考にしてみてください。

タグ

iADXって?

4XP => メタトレーダー対応、固定スプレッド、最小1000通貨
50種類以上の通貨ペア、各種CFD(金、株など)対応

質問にあったので、iADXについて。

まず、どこの資料を参考にするか。

私の場合は、

mt4 (MetaTrader4)使い倒シストレ

を愛用しています。

無料で利用できるMQL4の日本語リファレンスマニュアルとしては、一番便利だと思います。

MT4関係で調べ物をするときに一番利用しているサイトと言っても過言ではありません。

すべての関数を隅々までのぞいてみると、気がつかなかったことが見えてくると思いますよ。

分からない単語が出てきたら、検索してみてください。

きっとわかりやすい説明のサイトがあると思います。

で、本題のiADX



double iADX( string symbol, int timeframe, int period, int applied_price, int mode, int shift)



symbol – 計算したい通貨名。NULLを指定すると現在の通貨。

timeframe – 時間枠。時間枠列挙型のどれか。0は現在の時間枠。

period – 計算で使用する足の数

applied_price – 適用価格。これは価格定数のどれかをとる。

mode – インジケータの線指定。これはインジケータラインの値をとる。

shift – 現在の足から何本前の値を出したいか



適用価格

PRICE_CLOSE 終値

PRICE_OPEN 始値

PRICE_HIGH 高値

PRICE_LOW 安値

PRICE_MEDIAN 中央値、(high + low)/2

PRICE_TYPICAL 代表値、(high + low + close)/3

PRICE_WEIGHTED 重み付け値、(high + low + close + close)/4



インジケータの線指定

MODE_MAIN インジケータの基本線

MODE_PLUSDI +DIインジケータ線

MODE_MINUSDI -DIインジケータ線

こんな感じの関数仕様です。



質問をくださった方は、MODEの意味が分からないといっていました。

実はこの関数、ADXといいながら、DMIも表示できてしまいます。

ここが分かりにくかったところなんだと思います。

でも、普通は一緒に使うので利用しやすいようにとの配慮でしょう。



ADX(Average Directional Movement Index):トレンドの強さを測定する指標

DMI(Directional Movement Index):一般的に方向性指数といわれる



ADXは、MODE_MAIN。

DMIは、MODE_PLUSDI、MODE_MINUSDI

で表します。



簡単に説明すると、ADXでトレンドの向きを確かめて、DMIで強さを見ます。

いろいろな方法があるので、詳しくは書きませんが一度動きを確かめてみるとおもしろいかもしれませんね。

タグ

メタトレーダーに日本語を表示してみる

4XP => メタトレーダー対応、固定スプレッド、最小1000通貨
50種類以上の通貨ペア、各種CFD(金、株など)対応

今回は、メタトレーダーのプログラムで日本語を利用できるようにしてみます。

実は、日本語表示はできないと思っていました。。。

 

あまり困らなかったので、調べようとも思わなかったのが原因です。

やっぱり、こうしたことは興味がないとやりませんね。

 重要指標を表示するインジケータを作ってみるにコメントを下さった犬養さんに感謝です。

 

本題の日本語を表示してみる方法です。

メニューとかの表示は、できていますよね。

今回のは、プログラムのコードの中に日本語を利用できるようにして、チャート上にも日本語を表示します。

 

MetaEditorを開いてください。

メニューの

「Tool」-「Options…」を押してください。

「Font」タブを選択すると以下のような画面が表示されます。

jp1

ここで、日本語のフォントを選択し、Scriptの日本語を選択してください。

2箇所あるので間違えないでください。

「OK」ボタンを押してください。

 

これで、全部終了です。

むちゃくちゃ簡単です。

 

これで、ソース内のコメントを日本語化したり、チャートに表示させたりすることができます。

 

サンプルで、インジケータを作って見ました。

単純にコメントを表示するだけのものです。

jp2

こんな感じですね。

Comment(”日本語を表示してみる”);

今まで、日本語が化けていたのが表示できることが確認できると思います。

 

これをコンパイルして、チャートに貼り付けてみます。

jp3

こんな感じです。

赤丸のところに「日本語を表示してみる」が表示されていることが確認できると思います。

 

やっぱり、日本語が表示できると見やすいですね。

プログラムを組むのにも日本語コメントを入れられるだけで作業効率がアップすると思います。

がんばってみてください。

タグ

Excel用にデータを出力してみる2

4XP => メタトレーダー対応、固定スプレッド、最小1000通貨
50種類以上の通貨ペア、各種CFD(金、株など)対応

前回に引き続き、エクセルを使っていろいろやってみたいと思います。

今回は、DDEというアプリケーション間通信の機能を利用します。

 

DDEというのは、かなり古い規格で今はほとんど利用されません。

最近の.NETではサポートされていないほどの企画です。

ですが、なぜかMT4ではDDEのサーバー機能を持っていて、ExcelはDDEのクライアント機能を実装しています。

 

ということで、通信できてしまいます。

やり方も簡単です。

 

まず、メタトレーダーの設定です。

メニューの「ツール」-「オプション」でオプションを開きます。

dde1

「DDEサーバーを有効にする」にチェックを入れて、「OK」を押します。

これだけです。

 

Excel側は、サンプルがあるのでそれを使ってみましょう。

インストールフォルダ\MetaTrader

DDE-Sample.xls

があるので、開いて見ましょう。

開くと

dde2

こんな感じのメッセージが表示されるので、「更新する」を押します。

dde3

こんな感じで、最新の状況がリアルタイムに表示されます。

売値は、MT4|BID!USDCHF

買値は、MT4|ASK!USDCHF

高値は、MT4|HIGH!USDCHF

安値は、MT4|LOW!USDCHF

時間は、MT4|TIME!USDCHF

時間・売値・買値は、MT4|QUOTE!USDCHF

を表示したいセルに「=MT4|QUOTE!USDCHF」と書けば、利用できます。

 

通貨ペアを変更したいときは、USDCHFの部分を変更するだけです。

これで、いろいろできると思います。

タグ

Excel用にデータを出力してみる

4XP => メタトレーダー対応、固定スプレッド、最小1000通貨
50種類以上の通貨ペア、各種CFD(金、株など)対応

どうも、エクセルを使っていろいろやっている方が多いみたいなので、ちょっとしたテクニックを。

 

MT4では、EA用に過去の履歴データを取得できます。

そのデータを使って、バックテストをしたりします。

 

でも、その履歴データをExcelで利用できたら便利だと思いませんか?

今回は、そんな方法です。

 

まず、履歴データを取得する方法です。

メニューの「ツール」-「History Center」でHistory Centerを呼び出すか、F2を押してください。

こんな感じの画面が表示されます。

his1まず、利用したい通貨を選択します。

次に、「Download」ボタンを押します。

こんな画面が表示されるので、「OK」を押します。 

his2

 

ダウンロードが始まります。

his3

しばらくすると終了するので、通貨をダブルクリックすると時間が展開されます。

ダウンロードしたい時間を選択して、「エクスポート」ボタンを押します。

his4

保存先を聞かれるので、保存したいところを選択して保存します。

 

エクセルで表示すると

his5

こんな感じですね。

 

あとは、グラフにしても計算にしても好きなことができます。

一応、項目の順番は、

日付、時間、始値、高値、安値、終値、出来高

の順番です。

 

次は、DDEというのを使ってみたいと思います。

タグ