EAのタグを付けられた記事一覧

クリスマスから年末のトレード

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

わかっている人は、わかっていると思いますけど、

もうすぐ、クリスマス休暇のシーズンです。

 

世界中の皆さんは、トレードしなくなる期間です。

この期間は、トレード量が激減して普通と違う動きをします。

基本的に動かない。。。

 

昨年は、ちょっと派手に動いたときもありますが、ふだんの指標が使えなくなる可能性が大きい期間です。

 

EAなどで自動売買を行っている人は、そろそろ店じまいの準備をしたほうがいいでしょう。

 

一応、そんな感じの期間なので、トレードは控えて分析とかプログラミングなどの期間と考えてやって見ましょう。

気になる人は、過去のデータを見直してみてくださいね。

タグ

インジケータから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でも狙えます。

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

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

タグ

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

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

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

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

 

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

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

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

 

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

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

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

 

MetaEditorを開いてください。

メニューの

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

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

jp1

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

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

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

 

これで、全部終了です。

むちゃくちゃ簡単です。

 

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

 

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

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

jp2

こんな感じですね。

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

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

 

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

jp3

こんな感じです。

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

 

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

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

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

タグ

FX自動売買ロボット作成マニュアル

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

ちょっと本屋に寄ったら、FX自動売買ロボット作成マニュアルというのが売っていました。

やっとメタトレーダーの本が増えてきましたね。

 

今までのこれは全般的なことが載っていました。

 

FX自動売買ロボット作成マニュアルは、本屋の立ち読みレベルだとEAが重視されています。

自動売買といっているので当たり前ですが。。。

といってもものすごく細かいことが書いてあるわけではないので、初心者向けです。

 

設定関係が、写真つきで説明してあるのでまだ始めたばかりという人は、いい感じの本かもしれません。

本屋で見かけたら、立ち読みしてみてください。

 

一応次の予告です。

次は、重要指標を表示するインジケータを作ります。

作ってあるのですが、だいぶ難易度が高いのでどう説明するか悩んでいます。

説明が短かったら、あきらめたと思ってください。。。

タグ

週末にまとめてクローズするEA

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

サンプルプログラムばかりであまり役に立っていないと思うので、ほしい人はほしいもの。

 

週末持ち越しは、いやだけどEAがポジション持ちっぱなしなんだよね!

という人のために、週末に強制的にクローズするEAです。

 

121証券のようにサーバが日本時間であることを前提に話します。

別の時間帯を採用しているFX会社と契約している方は、時間を調整してください。

 

EAを作ってみるを参考にEAを作ってください。

名前は、WeekendCloseとします。

 

パラメータは、ウィザードで設定してもらっても構いませんし、コードに以下のように指定してもらっても構いません。

extern int CloseWeek=6;

extern int CloseTime=5;

CloseWeekの6は、土曜日。

CloseTimeの5は、5時です。

 

曜日は、日曜日が0で、月曜日が1。

順番になっています。

 

まず、曜日と時刻をチェックする関数を追加します。

int ChkCloseTime()

{

    int ChkWeek=DayOfWeek();

    int ChkHour=Hour();

 

    if((ChkWeek==CloseWeek && ChkHour>=CloseTime))

    {

        return(1);

    }

    return(0);

}

 

曜日と時間を取得して、指定した曜日と時間以上なら、1を返します。

 

次に、チケット番号をクローズする関数を追加します。

 

void ClosingTicket(int CloseTicket)

{

    if(OrderSelect(CloseTicket, SELECT_BY_TICKET)==true)

    {

        if(OrderType() == OP_SELL || OrderType() == OP_SELLLIMIT || OrderType() == OP_SELLSTOP)

        {

            // Closing

            if(OrderClose(OrderTicket(),OrderLots(),Ask,3,Green) == false)

            {

                OrderDelete(OrderTicket());

            }

        }

        else

        {

            // Closing

            if(OrderClose(OrderTicket(),OrderLots(),Bid,3,Green) == false)

            {

                OrderDelete(OrderTicket());

            }

        }

    }

}

 

指定された、チケットのオーダーをコントロールできるようにしてからクローズします。

クローズに失敗したときは、未確定の注文として注文の取り消しを行っています。

 

次に、実装部分を作ります。

 

int start()

  {

    if(ChkCloseTime() == 0) return(0);

 

    int total=OrdersTotal();

    int i;

    for(i=0;i < total;i++){

        if(OrderSelect(i, SELECT_BY_POS)==true)

        {

           ClosingTicket(OrderTicket());

        }

    }

 

   return(0);

  }

 

まず、終了時間かチェックします。

まだなら、そのまま関数を抜けます。

 

終了時間の場合は、現在もっているポジションを調べ、すべてのポジションをクローズしていきます。

 

サンプルを参考に改造して使ってみてください。

 

 

今回のプログラムは、以下からダウンロードできます。

ここから、ダウンロード

 

EA(自動売買)は、

インストールパス\MetaTrader\experts

に入れてください。

タグ

コメントについて

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

たくさんのコメントありがとうございます。

コメントにはすべて目を通していますが、基本的に回答は深夜になることが多くなります。

 

また、確認のタイミングによっては、1日以上かかってしまう場合もあるかもしれません。

 

なるべく早く回答を行いたいと思いますが、ご了承ください。

 

また、スパムや中傷など不適切と判断したコメントは、削除させていただく場合があります。

 

質問やリクエストは、歓迎ですのでどんどん書き込んでください。

答えられる範囲で、回答したり、記事として取り上げたりしていきたいと思います。

 

できれば、ランキングに参加しているのでポチッとクリックしていただけると助かります。

お買いもししていただけるともっとうれしいですが。。。

 

それでは、よろしくお願いします。

タグ

フォワードテストをしてみる

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

前回、前々回とバックテストをやってみました。

では、今回はフォワードテストです。

 

バックテストは、過去の履歴データを元にテストを行いました。

フォワードテストは、未来です。

 

未来は、わからないじゃないか!!

って、いう人もいると思いますがその通りです。

 

分からないので、実際に走らせてみるのがフォワードテストです。

でも、テストというだけあって、実弾口座では行いません。

 

デモ口座でのテストということになります。

 

簡単に言うと、デモ口座でEAを走らせることをフォワードテストといいます。

 

なぜ、こんなことをやるかというと、

過去のデータは、ある程度は信用おけますが、通信の問題やPCの負荷など色々問題がありそうな気がしませんか?

それに、ちゃんと思ったように動くかやってみないと分かりませんよね。

 

ということで、実際のEAの動きのチェック。

パラメータ調整は、大丈夫だったか。

といったことを確かめることがフォワードテストの意味するところです。

 

資金に余裕がある人で、自分の作ったEAに自信があれば、このフェーズは飛ばしてもかまいませんが、

少なくても2週間ぐらいはやった方がいいでしょう。

 

このフェーズで、もしダメでもデモですから懐は痛みません。

納得がいくまで、バックテスト、フォワードテストを繰り返してください。

 

ここで焦るとしっぺ返しが大きいので。。。

 

ということで、バックテスト、フォワードテストはしっかりと!

という話でした。

タグ

バックテストをしてみる2

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

前回、EAを作ってみるでつくったEA(自動売買)、MA_EAをバックテストしてみました。

結果は、あまりよくありませんでしたね。

 

でも、EAを作ったときにパラメータをいくつか外出しにしたと思います。

覚えていますか?

 

もしかしたら、このパラメータをいじるといい感じの結果が出そうな予感がしませんか?

思わなくてもしたことにしてください。

話が進まないので。。。

 

で、パラメータのパターンをテストしていけばいいだけです。

たとえば、1つのパラメータで5パターンするとします。

 

1つで5パターン。

  楽勝!!

2つで25パターン。

  ちょっといやになってきますね。

3つで、125パターン。

  やる気でないですね。

4つで、625パターン。

  もう無理です。

 

やっぱり無理でした。。。

っていうことになりそうですが、メタトレーダーには、便利な機能があります。

 

スタート、ステップ、ストップの値をパターン分析したいパラメータにセットすると、すべての組み合わせを行ってくれる機能があるんです。

テスターに「Optimization」というチェックがあったのに気がつきませんでしたか?

このチェックが、パターン分析を行うチェックなんです。

 

では、チェックを入れてスタート!

と行く前に、

先ほどの説明のスタート、ステップ、ストップを設定して、どのパラメータを変更して解析させるかを指定する必要があります。

 

では、「Expert properties」ボタンを押して、プロパティウィンドウを開いてください。

次に、「パラメータの入力」タブを押してください。

では、設定していきます。

 

BuyLots:変更しません。

LossEntry:変更しません。

残りは、すべてチェックします。

MaPerirod:スタート(7)、ステップ(7)、ストップ(35)

TakeMa:スタート(5)、ステップ(5)、ストップ(25)

LossMa:スタート(5)、ステップ(5)、ストップ(20)

TakeEntry:スタート(25)、ステップ(5)、ストップ(50)

 

では、早速スタートを押してみましょう!

 

以下のタグに利益が出ているものだけ表示されます。

Optimization Results:損益やトレード回数、ドローダウンと利用したパラメータ

Optimization Graph:損益のグラフ

 

すべての解析が終了するまで、待ってください。

 

Optimization Resultsの損益をクリックしたください。

利益の多い順や少ない順にソートされます。

他の項目も同様です。

 

利益の多い順に並べます。

 

では、一番利益の多い行をダブルクリックしてください。

セッティングタブに戻ると思います。

「Optimization」のチェックが外れていることを確認してください。

 

先ほどのダブルクリックで、「Expert properties」のパラメータに選択行のパラメータが自動的にセットされました。

 

では、このパラメータでバックテストをとしてみましょう。

スタートボタンを押してください。

 

今度は、利益が出ましたね。

100pipsぐらいは増えたと思います。

 

サンプル用に適当に作ったEAとしては、まずますですかね。

 

バックテストは、こんな感じで行います。

 

ちなみに、一番利益が上がっているからいいパラメータではありません。

ドローダウンが大きく損失も大きいかもしれません。

 

たまたまその月はよかったと思いますが、未来もよいとは限りません。

また、テストの期間などもどのぐらいがいいのか?というのもEAの特性で変わってくるでしょう。

 

この辺はやってみないと分かりませんね。

 

とりあえず、これというパラメータが決まったあとは、フォワードテストというのを行います。

次回は、フォワードテストについて書きたいと思います。

タグ

バックテストしてみる

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

今回は、バックテストのやり方を説明します。

前回のEAを作ってみるで作ったMA_EAを利用して、バックテストしてみたいと思います。

 

バックテストは、デモ環境でしか行えません。

もしかしたら、本番環境でも行えるかもしれませんが、121証券ではレートの履歴データをデモ環境でしか取得できないためです。

まず、本番環境の人はデモ環境に切り替えてください。

ナビゲーターの口座に、本番とデモ用の口座があるはずです。

デモ口座をダブルクリックして、切り替えてください。

デモ口座がない場合や期限切れの場合は、メニューのファイル-デモ口座の申請で申し込んでください。

 

デモ口座は、有効期限(121証券は2週間)がありますが、何度でも申請できるので期限が切れたら申請しましょう。

121証券の場合

申請するとき、口座タイプを選択できます。

forex-jpyを選択してください。

日本のサーバになるので、実際の口座に近くなります。

121証券の場合、時間が日本時間になっているので、時間による操作を考えるとこちらの口座を選択しておいた方がいいでしょう。

 

では、バックテストに必要な履歴データを取得します。

メニューのツール-History CenterかF2キーを押してください。

 

ヒストリー・センター

ヒストリー・センター

今回のテストは、USDJPYで行おうと思うので、通貨ペアのタブを開き、USDJPYを選択してください。

次にDownloadボタンを押して、出てきたウィンドウはOKを押してください。

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

ダウンロードには、時間がかかるので気長に待ちましょう。

また、テストするときは最新の情報が必要なので、毎回ダウンロードするようにしてください。

 

ダウンロードが終了したら、閉じるボタンを押してください。

 

次にテスターを開きます。

メニューの表示-Strategy Testerを選択してください。

 

テスター

テスター

 Expert Advisor:MA_EA

通貨ペア:USDJPY

モデル:Every tick

期間:M5

期間を全期間で行うと時間がかかるので、4月にしたいと思います。

「日時と時間を使用」にチェックを入れます。

送信者:2009.04.01

宛先:2009.04.30

を指定します。

これで、5分足の4月1日から30日までの試験を行えます。

 

次に、いくらでテストをするか設定します。

Expert propertiesをクリックしてください。

ma_ea_param

日本円では、テストができないのでUSD、500ドルを指定します。

121証券の最低入金額が5万円なので近いところで500ドルとします。

 

パラメータの入力タブでは、EAのパラメータを設定できますが、今回はそのまま利用します。

では、試験をやってみましょう。

スタートボタンを押してください。

tester2

こんな感じで終了です。

ちなみに、「Visual mode」にチェックを入れてスタートすると描画しながらトレードの様子を見ることができます。

描画スピードは、バーを操作することで変更できます。

 

Graphタブを押すと以下のようなグラフになっていると思います。

testergraph

ダメでしたね。

減っています。

 

ちなみに、結果タブではトレードの詳細、レポートタブでは売買レポートが表示されます。

 

こんな感じで、バックテストを実行します。

 

次回は、パラメータを変更しながらバックテストを行い、最適なパラメータを見つける方法を説明します。

タグ