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

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

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


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

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

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

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

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

そんなときは、iCustom()関数でシグナル発生を感知して自動売買をするEAを作成します。でも、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つの場合は、Para1~Para5を入力設定して、Para6~Para20を無視します)

カスタムインジケーターのパラメーターのうち、「false / true」で選択するものは、false=0, true=1で設定してください。

文字列で指定するパラメーターでトレードに影響する場合は、EAのコード内でそのパラメーターが対応する部分の「extern double」を「extern string」にして、「= 0;」を「= "";」に変更してコンパイルしてください。

シグナルの番号とは?

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

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

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

タグ

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

カテゴリー:無料ツール配布(MT4)

コメント (44)

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

この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

カスタムインジケータのパラメータが bool の場合は、どのように指定するのでしょうか?
よろしくお願いします。

投稿者:西川 |2018年2月 9日 20:43

西川さん
こんにちは!
false→0、true→1 の設定でいけると思いますが、
ダメな場合は対応するパラメーター部分を
extern bool para○ = false;
というように変更してコンパイルしてください。

投稿者:keiji Author Profile Page|2018年2月10日 10:09

エントリーと同じシグナルでドテンにする場合は以下のようなソースでよろしいでしょうか?

double sellentrysignal = iCustom(NULL, 0, CustomIndicatorName, Para1, Para2, Para3, Para4, Para5,Para6, SellEntrySignalIndex, SellEntrySignalShift);
if(sellentrysignal != EMPTY_VALUE && sellentrysignal != 0){
entrysign = -1;
exitsign = -1;
}

投稿者:kenji |2018年2月15日 14:05

kenjiさん
こんにちは!
それでもOKだと思います。
コード変更しなくても、パラメーター設定でドテンにできますよ^^;

投稿者:keiji Author Profile Page|2018年2月15日 15:02

こんにちは、はじめまして。

このEAを是非利用させていただきたいのですが、
「ダウンロード」タブをクリックしてもソースのTEXTが表示されるだけなのですが、
ファイル形式ではないのでしょうか?
初歩的な事で大変恐縮ですが、ご教授の程、宜しくお願い致します。

投稿者:HIDE99 |2018年5月14日 18:50

HIDE99さん、こんにちは。
「ダウンロード」を右クリック→「対象を保存」をしてみてください。

投稿者:keiji Author Profile Page|2018年5月16日 10:11

初めまして!
このEAが気になり早速ダウンロードさせていただいたのですが、使い方がわからず苦戦中です。
導入は出来たのですがEAの動かし方がわからないので教えていただけると幸いです。
私は逆張りチェッカーというツールを使っているのですがこのツールのサイン通りに自動売買が出来るように設定したいのですがもし可能であれば教えていただきたいです。
逆張りチェッカーは矢印タイプではなくドットタイプのサインツールです

投稿者:T |2018年7月12日 19:03

Tさん
こんにちは。
EAは、稼働させたい通貨ペア・時間足にドラッグ&ドロップで出るウィンドウの「パラメーターの入力」タブでパラメーター入力してOKボタンをクリックすると動きます。

投稿者:keiji Author Profile Page|2018年7月13日 11:03

回答ありがとうございます!
ドットタイプのサインツールでも使えるということで大丈夫なのでしょうか?
あとこのEAは同じタイミングでサインが出た際は同時のエントリーすることは可能なのでしょう?

投稿者:T |2018年7月15日 15:53

Tさん
ドットのサインでも大丈夫です。
このEAは両建てしませんので、同じタイミングでサインがでるものには使用できない(しない方がよい)と思います。

投稿者:keiji Author Profile Page|2018年7月19日 16:20

サブチャートのシグナルはどのように取得するのでしょうか?
よろしくお願いします。

投稿者:村田 |2018年9月 2日 16:38

村田さん

こんにちは。
メイン・サブ区別なくできます。

投稿者:keiji Author Profile Page|2018年9月 2日 17:12

いつも参考にさせていただいております。
まだまだプログラミングも勉強中ですが少しご教授ください。

インジケーターのインデックスのEA化の方法はおかげさまで出来るようになりました。
アラート機能を利用してのEA化というのは技術的に不可能ですか?

よいインジケーターがあるのですが、こちらは矢印インデックスがでません。なんとかEA化したいのですが、、、、

投稿者:よよよ |2018年10月28日 06:22

よよよさん

こんにちは。
アラートが出るインジケーターは、そのアラートがどのタイミングで出るのかを確認して、それをEAの取引条件にできる場合があります。
例えば、2本のラインがある場合でそのクロスでアラートがなるのでしたら、ラインクロスを取引条件にすることでEA化できます。

投稿者:keiji Author Profile Page|2018年10月29日 09:12

はじめまして。
保有しているサインツールをEA化したいと思って調べていたところ、貴サイトにたどり着きました。

EAが完全初心者なのでわかっていないところが大きいのですが、
公開していただいているソースを元に編集してみたのですが
まったく動作しません。
(「エキスパート設定」や「スタート」などがそもそもクリックできません)

以下の部分が引っかかっていると思うのですが、どこに誤りがありますでしょうか。

extern string _SIGNAL_SETTING = "------Signal Setting";
extern string CustomIndicatorName = サインツール名;
extern int BuyEntrySignalIndex = 1;
extern int BuyEntrySignalShift = 0;
extern int SellEntrySignalIndex = 2;
extern int SellEntrySignalShift = 0;
extern int BuyExitSignalIndex = 3;
extern int BuyExitSignalShift = 0;
extern int SellExitSignalIndex = 4;
extern int SellExitSignalShift = 0;

サインツール名の部分を
extern string CustomIndicatorName = "サインツール名";
にするとクリックはできるのですが、売買自体しません。

数値(それぞれの記述)に誤りがあるのかどうか、
それともそもそも間違えているのかご指導をいただけると幸いです。

また、売買シグナルは色の設定の「#」を確認すると思うのですが、
それぞれ1(買い)と2(売り)が設定されていたので以下のようにしています。

extern string _PARAMETER_SETTING = "------Parameter of Singal Indicator Setting";
extern double Para1 = 1;
extern double Para2 = 2;
(以下はextern double Para× = 0;のまま)

お手すきの際にアドバイスをいただけると幸いです。

よろしくお願いいたします。

投稿者:T |2018年11月23日 22:00

Tさん
こんにちは。

サインツール名の文字列は、ダブルクォーテーションで囲ってください。
extern string _PARAMETER_SETTING = "------Parameter of Singal Indicator Setting";
以降のパラメーターは、サインツールのパラメーターを順に入力してください。

投稿者:keiji Author Profile Page|2018年11月27日 11:48

はじめまして!
簡単な矢印インジケータにつきましては本EAの、設定でエントリーすることが出来るようになりました、ありがとうございます!

質問ですが、矢印を表示するEA(エントリーが手動で決済が自動)がすでにチャート上に入っているところに、本EAにて自動でエントリーをしたいと考えておりますが、どのようにすれば良いか教えて頂けますでしょうか。。既存EAを削除するとエントリーの矢印が消えてしまい困っております…。

投稿者:ごりりん |2019年2月10日 17:05

ごりりんさん

こんにちは。
本EAは、インジケーターの矢印等を認識するものですので、EAで表示されているエントリーの矢印は使用できません。

投稿者:keiji Author Profile Page|2019年2月13日 17:08

サインは単品インジケータで 
複合はありません。

ポンド円で使用しようとしています。

サインは売り買いで 買いは2 売りは3 というシグナルはわかりました。

ですので買いを2 買いクローズを3 

売りを3 売りクローズを2と設定しました 。 

売りと買いをコンスタントにしていくにはこの設定でいいでしょうか? 

取引時間足は開いているチャート時間で作動すると考えていいのでしょうか?

ご教示お願い致します

投稿者:田中 |2019年2月27日 17:34

田中さん

こんにちは。
コメント頂いた設定でOKです。
時間は、チャートに表示される時間です。

投稿者:keiji Author Profile Page|2019年3月 6日 09:17

はじめまして
バックテストしたのですが、売買しません
操作履歴を見ると
not enough memory for EX4 file
global initialization failed
というのが繰り返し表示されています
どうしたらいいかご教授ください

投稿者:td |2019年5月29日 06:01

tdさん

こんにちは。
他のインジケーターで試してみてください。

投稿者:keiji Author Profile Page|2019年6月 4日 14:50

はじめまして。
当ブログはとても解りやすく、いつも勉強させて頂いております。
有難うございます。

当ブログで紹介されておりました「AlmightyEAforSignalIndicators」の設定に
ついて教えて頂きたいのですが、私が使用しておりますインジケータは
シグナルは表示されるのですが、インジケータの【色の設定】タブには各シグナル
の色の設定が表示されません。
(CustomChecker_EAでも確認したのですが、全て 0 表示になっております)

必要であれば、インジケータの情報もお伝えさせて頂きますので、よろしければ
【色の設定】タブ以外で同様の情報を確認出来る方法をご教授頂けないでしょう
か?

投稿者:syn |2019年6月23日 02:31

synさん

こんにちは。
色の設定タブに表示されないものは、通常の方法では情報を確認することができません。
シグナルのオブジェクト名のパターン等を確認して、専用のEAを作成する必要があるかと思います。

投稿者:keiji Author Profile Page|2019年6月24日 09:44


はじめまして。
長い間インジケーターをEA化したいと考えており、当ブログに出会え、感激しております。
また、コードを公開していただいているなんて、本当に感謝しかありません。

質問です。

私の使用しているインジケーターは、同じ売りもしくは買いのサインの矢印でも、数種類ずつあります。
コードに沿って、2種類(売りの矢印1種類と買いの矢印1種類)は自動化できたのですが、さらに判断する矢印を増やしたい場合、どのように書き足せばよろしいでしょうか。

また、Exitサインを矢印ではなく、エントリーの1分後にする場合は、どのように書き足せばよろしいでしょうか。

もしよろしければご教唆いただけると大変うれしく思います。
よろしくお願いします。

投稿者:かなえ |2019年9月27日 18:55

かなえさん

コメントありがとうございます。

EAのカスタマイズにつきましては、MQLピンポイントアドバイスで行っております。
https://www.dr-ea.com/meta-blog/auto-trade/mql-pinpoint-advice.html

是非ご活用のご検討宜しくお願い申し上げます。

投稿者:keiji Author Profile Page|2019年9月28日 06:49

はじめまして!どうしてもEA化したいインジケーターがありましてここのサイトにたどり着きました!
矢印の出るタイプのものです。

なかなか苦戦しております泣

カスタムインジケータのパラメータ(para1~20)という部分は、
インジケータのどこをみて確認し入力すればいいのでしょうか?

宜しくお願いいたします。

投稿者:hiroki |2019年10月13日 13:53

hirokiさん

コメントありがとうございます。
カスタムインジケーターのパラメーターとは、そのインジケーターをチャートに表示させようとした際に最初に出る設定画面の「パラメーターの入力」タブで表示される項目で、一番上の項目をpara1として、項目数分だけ入力していってください。

投稿者:keiji Author Profile Page|2019年10月13日 18:53

ご回答ありがとうございます!

パラメータの入力タブには「SoundON」という項目があり、「true」か「false」を選択できるようになっています!

この場合はtrueかfalseによって1か0を入力するということで問題ないでしょうか?

また、バックテストをする際には使うインジケーターも表示させる必要がありますか?

宜しくお願いします。

投稿者:hiroki |2019年10月13日 22:01

hirokiさん

こんにちは。
false=0, true=1 で入力してください。
EAをバックテストする際のインジケーターの表示は必要ではないです。
最初はビジュアルモードでインジケーターを表示させて動作チェックするとよいかもです。

投稿者:keiji Author Profile Page|2019年10月14日 07:02

コメントを投稿する

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






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

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