シグナル系カスタムインジケーターで自動売買するEA

シグナル系カスタムインジケーターで自動売買するEA


すごいシグナルインジケータがあるんです!


Aさん:
す、すごいシグナルがあるんです!矢印で売買タイミングを知らせてくれるカスタムインジケータでトレードしているんですが、最近の利益がハンパないんです!
トレーリング機能と時間指定機能つきでバックテスト可能なEAの作成を頼んだ場合、いくらになりますか??

慶次:
新規EA作成と各機能、合計●万円になります。

Aさん:
えええぇぇぇ・・・orz

こんにちわ!
上記のようなやりとり、たまにあります^^;

矢印やドットなどのマークで売買タイミングをお知らせしてくれるカスタムインジケータで、バックテストやフォワードテストをしてみたいと思うときってありますよね?

そんなときは、iCustom()関数でシグナル発生を感知して自動売買をするEAを作成します。でも、EAの作り方がわからない場合は、できる人やEA作成代行業者に頼むことになります。
そこで・・・

シグナルインジケータ用のEAを作成しました!

パラメータで、カスタムインジケータ名を指定して各設定をするだけで、そのシグナルインジケータでのバックテスト・フォワードテストが可能なEAを作成しました。

→ダウンロードはこちら
※2013.07.25 トレーリング部分修正でファイル更新済み

使用できるインジケータの条件として、矢印やドットなどのマークで描画されるシグナル系のインジケータということが大前提です。その他、オブジェクトでの描画ではないことや、リペイントしないこと(リペイントについて理解されている方はOK)などの条件があります。

パラメータ説明

------Main Setting------
Lotsロット数
TakeProfitリミットのPIPS数 0の場合リミットなし
StopLossストップロスのPIPS数 0の場合ストップロスなし
TrailingStopトレーリングのPIPS数 0の場合トレーリングなし
Slippage許容スリッページ
MagicNumberマジックナンバー
------Entry Time Setting------
UseTradeTime時間指定機能使用スイッチ
Trade_StartHourトレード許可開始時間
Trade_StartMinuteトレード許可開始分
Trade_EndHourトレード許可終了時間
Trade_EndMinuteトレード許可終了分
------Signal Setting------
CustomIndicatorName使用するカスタムインジケータ名
BuyEntrySignalIndex買いエントリシグナルの番号
BuyEntrySignalShift買いエントリシグナルのシフト数
SellEntrySignalIndex売りエントリシグナルの番号
SellEntrySignalShift売りエントリシグナルのシフト数
BuyExitSignalIndex買いポジション決済シグナルの番号
BuyExitSignalShift買いポジション決済シグナルのシフト数
SellExitSignalIndex売りポジション決済シグナルの番号
SellExitSignalShift売りポジション決済シグナルのシフト数
------Parameter of Singal Indicator Setting------
Para1カスタムインジケータのパラメータ1つ目
Para2カスタムインジケータのパラメータ2つ目
Para3カスタムインジケータのパラメータ3つ目
:
Para20カスタムインジケータのパラメータ20個目

TakeProfit・StopLoss・TrailingStopで、使用しない機能は0以下の数値を指定します。

BuyEntrySignalIndex・SellEntrySignalIndex・BuyExitSignalIndex・SellExitSignalIndexで使用しないシグナルはマイナスの数値を指定します。

シフト数とは、何本前のローソク足の位置に表示されていたらシグナルとみなすという本数を指定します。0を指定した場合は、現在変動中のローソク足の位置に表示された場合にシグナル発生とみなします。

カスタムインジケータのパラメータは、1つ目から順番に指定していきます。カスタムインジケータのパラメータ数が20個未満の場合、指定するパラメータが余りますが、余った分は無視してください。
(例えば、カスタムインジケータのパラメータ数が5つの場合は、Para6~Para20を無視します)

カスタムインジケータのパラメータのうち、文字列で指定する場合で、トレードに影響するパラメータの場合は、その部分の「extern double」を「extern string」にして、「= 0;」を「= "";」としてコンパイルしてください。

シグナルの番号とは?

カスタムインジケータのシグナルには、0から始まる番号が割り振ってあります。
その番号を調べるには、チャートにそのインジケータをアタッチしたときに出るダイアログの【色の設定】タブをクリックして対応するシグナルの色の#の番号を見ます。色だけでは識別できない場合は、幅を変更してチャートに表示させ、大きさが変わったものを見て識別します。

いろいろと試してみてくださいね^^
でわでわ^^

カスタムインジケータをEAにする方法の関連記事

タグ

2013年6月 8日|コメント (14)

カテゴリー:MetaTrader EA

コメント (14)

いつもブログ拝見させて頂いてます。

このEAを是非DLさせて頂き、活用したいと思うのですが、

質問が2点あります。

①トレーリングストップは トレール注文と同じ事との認識でよかったでしょうか?

なお、その場合 TPを7Pips SLを10Pipsと設定したとします

トレール注文(5Pipsずつ TPとSLを繰上げて注文を続けたい場合)はトレーリングストップには 数値はいくつを入力すればいいですか??

②当方が利用する元のインジはリペイントしませんが、例えば15分足で10分経過以降に点灯する、遅いシグナル表示でも シグナルをひろえますか?? また、仮に1日間に10個シグナルが点灯した場合 そのうち、数個シグナルを拾わない可能性などはありますか??

ご回答宜しくお願いします

投稿者:kawai |2013年8月 8日 13:55

kawaiさん>

こんにちわ!

>トレーリングストップは トレール注文と同じ事との認識でよかったでしょうか?

はい。MT4のトレーリングと同じ仕様のトレーリングストップ注文です。

>トレール注文(5Pipsずつ TPとSLを繰上げて注文を続けたい場合)はトレーリングストップには 数値はいくつを入力すればいいですか??

TPは動かしません^^;

>15分足で10分経過以降に点灯する、遅いシグナル表示でも シグナルをひろえますか??

はい。大丈夫です。

>仮に1日間に10個シグナルが点灯した場合 そのうち、数個シグナルを拾わない可能性などはありますか??

インジケータによると思いますので、テスターなどで検証してみてください。

投稿者:keiji Author Profile Page|2013年8月11日 10:27

いつもブログを拝見し、大変、参考になります。EA作成の初心者ですが、EA作成に興味を持ち、
iCustomで変幻自在のメタトレーダー及びFX自動売買システム作成の教科書を購入いたしました。

今回、シグナル系カスタムインジケータ用EAもダウンロードしてみたのですが、どうしても
HMAColor のEAを作成する事が出来ません。いろいろと考えてみたのですが、今の私の力では
エントリー、エグジットの条件式を完成させる事が出来ません。

上記のEAはアップインデックス 1、ダウンインデックス 2、エグジット 0では動作しないでしょうか?

お忙しい所、大変、恐縮ですがアドバイスを戴けましたら幸いです。
宜しくお願い申し上げます。
 トシ

投稿者:トシ |2014年1月14日 15:41

トシさん

こんにちは。
>上記のEAはアップインデックス 1、ダウンインデックス 2、エグジット 0では動作しないでしょうか?

はい。。DRAW_ARROWで表示されるシグナル系のインジケータのみ対応です。
HMAColorは、3色のラインですよね?

エントリータイミングで、HMAColorのインデックス0~2は、現在の足、1本前の足、2本前の足でそれぞれどんな値になっているか出力して、確認してみるとよいかと思います。

追記
カスタムインジケータの値を出力するEA
http://www.dr-ea.com/meta-blog/metatrader-ea/customchecker-ea.html

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

投稿者:keiji Author Profile Page|2014年1月14日 16:17

はじめまして
シグナルインジゲーターのシグナルを拾ってくれるEAを探していたらこちらにたどり着きました。
大変恐縮ですが、教えていただきたくメールしました。
早速セットしてテストしていたのですが売買してくれません。
持っているインジゲーターのパラメーターには数値ではなく、smoothとある欄があります。
こちらでダウンロードさせていただけるEAのパラメーターには数値しか入らないので
smoothの箇所には0のままにしていますが、これが動かない原因でしょうか?
(パラメーターはこれ以外はシグナルを出すタイミングを早くするかの数値を入れる箇所と
アラート・メールのセットをする箇所のみです。)
教えていただけると助かります。
お忙しい所申し訳ありませんがよろしくお願いいたします。

投稿者:inaba |2014年11月 1日 04:57

こんにちは。

inabaさん>

インジケータのパラメータでsmoothは、パラメータ名でしょうか?
それとも、パラメータ名は別にあり、その値が文字列「smooth」ということでしょうか?

前者の場合は、インジケータのsmoothの値と同じ値を入れてください。
後者の場合は、コード内の該当箇所をextern double からextern stringに変更してから、smoothと入力してみてください。(記事後半も参照してください)

投稿者:keiji Author Profile Page|2014年11月 5日 14:28

keiji様

ご回答有難うございます。
smoothはパラメーター名でfalseかtrueを選択するようになっています。
(購入したインジゲーターでプログラムの中身を見ることができません。)
この場合は提供していただいているEAのパラメーターには何か入力するのでしょうか。
説明不足で申し訳ありません。
よろしくお願いいたします。

投稿者:inaba |2014年11月 5日 20:17

inabaさん>

falseの場合は0、trueの場合は1を入力します。

0を入力されているということですので、原因は別の部分かと思います。

投稿者:keiji Author Profile Page|2014年11月 5日 20:25

AlmightyEAforSignalIndicatorsありがとうございます。
素晴らしいEAですね。
しかもソースもそっくり公開しているなんて、なんて太っ腹なんでしょう!!
本当に感謝です。

このスクリプトを少し編集して、シグナルが点灯したら(エントリーポイントを数値で知らせるインジケータなのですが、ですのでシグナル点灯=エントリーではないので・・・)、
発注できるようにしたいのですが・・・。
このインジケーターはシグナル点灯時の値≠エントリーポイント≠シグナルの値で、
エントリーポイント=シグナルの値+xpips(逆指値注文)
たとえばドル円で118.6でBUYのサインが出た場合、ダマシの可能性もあるので、
エントリーポイントをチャート周期によってずらしたいのですが・・・
15分足の場合は10ポイント上で、1時間足の場合は30ポイント上でエントリーしたいのですが・・・。

何処をどう変えれば良いのでしょうか?

投稿者:Lilimarleen |2014年12月18日 19:04

Lilimarleenさん

こんにちは。

変更する要素がたくさんあるのですが、まず

逆指値注文の有無・保有ポジの有無

を確認して、それぞれのケースで実行内容を変える必要があると思います。

そして、ほかの時間足の値を取得するには、iCustom()関数の()内の2番目の値を指定して取得した値を使用します。

逆指値注文の場合、たとえば買い注文では

OrderSend(Symbol(), OP_BUYSTOP, ロット数, 注文プライス, ・・・

という感じです。

投稿者:keiji Author Profile Page|2015年1月 4日 09:36

はじめまして、keitaと申します。

MT4やEA等を勉強したくて色々と調べていた所、こちらにたどり着きました。

インジケーターの自動売買化に凄く興味がありまして拝見させて頂きました。

とても解りやすく、今後も勉強させて頂きたく思います。


早速、貴所にて紹介されています『BBands_Stops_mtf』を上記EAで試してみたところ、テスターで全く反応しないので、設定方法等を聞かせ下さい。

Paraの所はdoubleからstringに変更しました。


以下の設定でやってみましたが動作しませんでした。

メインの設定及び時間の辺りはデフォルトのままです。

CustomIndicatorName:BBands_Stops_mtf
BuyEntrySignalIndex:2
BuyEntrySignalShift:1
SellEntrySignalIndex:3
SellEntrySignalShift:1
BuyExitSignalIndex:3
BuyExitSignalShift:0
SellExitSignalIndex:2
SellExitSignalShift:0
------Parameter of Singal Indicator Setting------
Para1 :Goldenrod
Para2 :DeepPink
Para3 :Yellow
    ・
    ・
    ・
で動かず、

Para1 :UpTrend Stop
Para2 :DownTrend Stop
Para3 :UpTrend Signal
    ・
    ・
    ・
としても動作しませんでした。

また、BBands_Stops_mtfの方の線の太さ等も変えてみましたが、うまく行かず・・・

おそらくパラメータの辺りだとは思いますが・・・

誠にこちらの勝手ながら、大変お手数をおかけいたしますが、何卒ご教授の程、お願い申しあげます。

投稿者:keita |2015年5月11日 01:52

keitaさん

こんにちは。
Para8・Para9をstringに変更して、

シグナル感知のif()内の
buyentrysignal != 0
sellentrysignal != 0
buyexitsignal != 0
sellexitsignal != 0

の0の部分を-1にしてください。

カスタムインジケータのシグナル等の非表示の際にどんな値になっているかを

http://www.dr-ea.com/meta-blog/metatrader-ea/customchecker-ea.html

のCustomChecker_EAなどを使って調べてみてください^^

投稿者:keiji Author Profile Page|2015年6月11日 14:51

サブウィンドウのシグナルに反応するように変更するにはどこを変更すれば出来ますか?

投稿者:岩本 |2015年6月18日 11:54

岩本さん

こんにちは。
サブウィンドウのシグナルでも変更なしでOKです。

投稿者:keiji Author Profile Page|2015年6月24日 19:51

コメントを投稿する

(初めてのコメントの時は、コメントが表示されるためにこのブログのオーナーの承認が必要になることがあります。承認されるまでコメントは表示されませんのでしばらくお待ちください)






画像の中に見える文字を入力してください。

Captchaの認証で入力ミスがありますと、コメントが消えてしまいますのでご注意ください。
コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。