※このEAは、スキル向上のために作成したEAです。 もし、このEAが原因で、あなたに損害を与えたとしても、一切保証できません。 また、このEAは、作動を保証するものでもありません。
数多くの方々の協力を経て作り上げたEAです。ご協力頂いた方にお礼申し上げます。
①特徴
・移動平均線からの乖離を売買ルールの起点とし、いくつかの指標で制限を加えながら安定的に成績を上げるように開発してきた逆張りスキャルピング系のEAです。
・売買注文と同時に、利食い値、ストップをオーダーしています。
・売買ルールの中にナンピン手法が含まれています。
・常時売買を繰り返すEAではなく、ある一定の条件を満たさないと売買を行いません。
(そのため1週間に一度も売買を行わない場合があります。)
②適用範囲
・通貨ペア USDJPY(デフォルトの場合)
・時間軸
5M(5分足)(デフォルトの場合)
・口座通貨名
USD 若しくは、JPY ・会社名
全てに適応できるはず?【確認は取れていません】
※(ただし、デフォルトの設定は、【point】=0.01で設定されています。詳細はQ&Aで)
③マジックナンバー
このEAは、別のEAとの競合を防止するため、自動的にマジックナンバーを成形するプログラムが装備されています。
【プログラムの内容】
通貨ペア名の文字コードを利用して数字(USDJPYの場合は、30120)を成形し、それに時間軸(5分足なら5)を加え、さらに【MYMAGIC】の数値を取り入れたものがマジックナンバーとなります。 MYMAGIC=12345の場合 マジックナンバーは、【42470】となります。他のEAを使用されている方は、調整してください。
④パラメーターの説明
#define MYMAGIC 12345 //ポジションの固有ID
マジックナンバーが競合する場合に調整します。
extern bool SignalAlert = true;
【true】の場合、取引ごとに、アラームを発生させます。
ただし、MT4での設定が必要です。
※利食い値に達した場合のCLOSEアラームは、発生しません。
extern bool SignalMail =false;
【true】の場合、取引ごとに、メールを送ります。
ただし、MT4でメール設定が必要になります。
※利食い値に達した場合のCLOSEメールは、配信されません。
//+-----------------------------------+
extern bool Lot_Management = true;//固定ロットの場合は,false
【true】の場合、ロットマネージメントを行います。
※ロットマネージメントとは、設定レバと余剰証拠金より自動的にロットサイズを調整するシステムです。
extern double Fixed_Lots = 0.0;//固定ロット数
【Lot_Management=false】の場合のロット数です。
extern double MaxLots = 10.0;
ロットマネージメントを使用して算出されたロット数の上限を指定しておくパラメーターです。
extern double Leverage = 1.0;
ロットマネージメントを使用する場合のレバを設定するパラメーターです。
extern double Slippage = 5.0;
注文を出す際のスリッページです。
//+-----------------------------------+
extern bool UseStopLoss = true;
【true】の場合、ストップロスを設定します。
extern int StopLoss = 100;
ストップロスの数値を設定します。
【100】とは、(point=0.01の場合)1.00を意味します。
100.00 USDJPYで注文を出した際のストップロス値は、101.00 USDJPYとなります。
※注意
最近、100.000と小数点以下が3桁の会社が出てきました。その場合は【1000】としてください。
extern bool UseTakeProfit = true;
【true】の場合、利食い値を設定します。
このEAでは、固定しておいてください。
extern double TakeProfit = 13.0;
利食い値の数値を設定します。
その他は、【StopLoss】を参照してください。
extern double PipStep = 18.0;
ナンピンを行う幅を数値で設定します。
その他は、【StopLoss】を参照してください。
extern int Max_Position = 5;//最大ポジション数
ナンピン回数の最大値を指定します。
extern int Order_Challenge = 10;//オーダーのアタック回数
何らかの原因で、オーダーが受け付けられなかった場合に、何回同じオーダーを繰り返し発信するかを指定します。
※オーダーが通らなかった場合、5秒間停止して、ループするようにしてあります。 //+-----------------------------------+
指標のパラメーター 後日、『Mizutori_EA(カスタムユーザー向け)マニュアル』にて説明
extern int MaPeriod = 10;
extern int AsTime_MaShift = 5;
extern int EuTime_MaShift = 5;
extern int UsTime_MaShift = 5;
extern double Limit_Percent = 0.3;
extern int Samples = 15;
extern int Break_Period = 10;
extern int MaLimtPeriod = 500;
extern int AsTime_MaLimtShift = 0;
extern int EuTime_MaLimtShift = 0;
extern int UsTime_MaLimtShift = 0;
extern int Lt = 2; extern int LimtPeriod = 80;
extern double AsTime_Xox = 0.7;
extern double EuTime_Xox = 0.7;
extern double UsTime_Xox = 0.7;
extern double RSIHiLimt = 70.0;
extern double RSILowLimt = 30.0;
extern bool Stop_DV =false;
extern double Dv_Point = 1.9;
extern int Dv_Period = 25;
extern bool Sort_Order = true;
//+---------------------------------------+
※時間変動設定のある指標のための時間設定です。デフォルト設定なら無力化されています。
extern int ServerTime_GMT = 0;//サーバーの時間
extern int AsTime_S = 20;//Asタイムの開始時間
extern int AsTime_E = 5;//Asタイムの終了時間
extern int EuTime_S = 6;
extern int EuTime_E = 11;
extern int UsTime_S = 12;
extern int UsTime_E = 19;
//+---------------------------------------+
週末制限用パラメーター
extern bool Weekend_Stop = true;//週末Stop用確認
【true】の場合、指定時間になると注文を出さなくなります。
extern bool Weekend_Close = true;//週末強制決済
【true】の場合、指定時間になるとポジションを強制決済します。
extern int Stop_Day_Of_Week = 5;//(0:日曜日 1:月曜日 2:火曜日 3:水曜日 4:木曜日 5:金曜日 6:土曜日)
注文を停止する曜日を指定します。
※注意、あくまでもサーバー時間です。
extern int Close_Day_Of_Week= 5;//(0:日曜日 1:月曜日 2:火曜日 3:水曜日 4:木曜日 5:金曜日 6:土曜日)
ポジションを決済する曜日を指定します。
※注意、あくまでもサーバー時間です。
extern int Stop_Hours = 13;
注文を停止する時間を指定します。
※注意、あくまでもサーバー時間です。
extern int Close_Hours = 20;
ポジションを決済する時間を指定します。
※注意、あくまでもサーバー時間です。
//+---------------------------------------+
一時的にEAを停止するパラメーター
extern bool Trade_Freeze = false;//時間による取引を凍結する場合はtrue
【true】の場合、指定時間内のオーダーを停止します。
※注意 日付してはしていませんので、設定して忘れていると、停止したままになります。
extern int Freeze_SH = 0;//凍結開始(時間)
オーダー停止の開始時間(時)
※注意、あくまでもサーバー時間です。
extern int Freeze_SM = 0;//凍結開始(分)
オーダー停止の開始時間(分)
※注意、あくまでもサーバー時間です。
extern int Freeze_EH = 0;//凍結終了(時間)
オーダー停止の終了時間(時)
※注意、あくまでもサーバー時間です。
extern int Freeze_EM = 0;//凍結終了(分)
オーダー停止の終了時間(分)
※注意、あくまでもサーバー時間です。 //+---------------------------------------+
ナンピン回数によるロット調整用のパラメーター このパラメーターを調整することにより、ロットに倍率を掛けることができます。
extern double Lotpos1 = 1.0;
第1ポジション時のロット倍率
extern double Lotpos2 = 1.0;
第2ポジション時のロット倍率
extern double Lotpos3 = 1.0;
第3ポジション時のロット倍率
extern double Lotpos4 = 1.0;
第4ポジション時のロット倍率
extern double Lotpos5 = 1.0;
第5ポジション時のロット倍率
extern double Lotpos6 = 1.0;
その他(5以上)
//+---------------------------------------+
⑤エラー一覧
※EA作動時に「ターミナル」・「EXpert」・「メッセージ」に記載されるEAが発信するエラー報告です。 【We have no money. Free Margin =●●●】余剰証拠金不足です。
【Close Positions Error OrderTicket =チケットナンバー】このチケットナンバーのオーダーを決済しようとしましたができませんでした。
※アラームによるエラーメッセージ
【 Error opening BUY order :GetLastError()】(GetLastError())の理由で買いポジションを取得できませんでした。
【 Error opening SELL order GetLastError()】(GetLastError())の理由で売りポジションを取得できませんでした。
⑥Q&A
Q)異なるバージョンのMizutoriを使用したいのですが、マジックは競合しますか?
A)競合します。EAをMetaEditorで開き【#define MYMAGIC 12345】を 【#define MYMAGIC 22345】に変更してください。
Q)Alpari UKで作動しません。
A)パラメーターの【StopLoss】・【TakeProfit】・【 PipStep】の数値を10倍してくださ。
※通貨ペアの値が小数点以下3桁になったため(他は、2桁)独自で対応してください。
Q)作動が確認されている業者は?
A)①ODL・FXDD・121証券・Alpari UK(上記対応後) Q)業者(サーバー)ごとに調整しなければならない時間設定は? A)週末STOPにかかわる事項だけです。(デフォルト状態の話です。)
Q)最低資金はいくら?
A)資金管理の内容が多かったので、一応参考までに掲示しておきます。
まずは、初期投資金額の設定方法です。
(最大オーダー数×必要証拠金/最少LOT)+(余剰証拠金(1と2の計算結果の大きい方)×KKD(勘と経験と度胸から求められる倍率 )
最低余剰証拠金1
(デフォルト時) (15×PipStep)+StopLoss=370(口座通貨名がJPYの場合、37,000JPY)
最低余剰証拠金2
バックテストでのMDDの結果 KKD:MDDは更新されるのが原則です。
KKD=2以上は必要です。
※計算を簡単にするために 口座通貨名JPY Lot=0.1
必要証拠金
10,000JPY/0.1Lot
最低余剰証拠金1を採用 KKD=2 と設定すると 最低初期投資金=(5×10,000)+(37,000×2)=124,000JPY となります。
次にその時のレバです。
(ここで注意が必要なことは、このEAで使われるレバは一般なレバとは分母が異なります。)
一般的なレバは、分母に有効証拠金が使われていますが、このEAでは余剰証拠金を使用していますので注意してください。
有効証拠金=124000
JPY Lot=0.1
必要証拠金 10,000JPY/0.1Lot とすると、
レバ=(Lot×100×100,000(取引数量))/(有効証拠金―(Lot数×必要証拠金))より
Lot=0.1(ファーストポジションの場合) (0.1×100×100,000)/(124,000-(1×10,000)=8.77
(このEAでいうレバです。)
これがlot=0.5(MAX)になると (0.5×100×100,000)/(124,000-32000※-(5×10,000))=119.05
※MAXLotに到達するまでに発生する見かけ損失分+Stoplossが発生するまでも損失分
第1ポジションの損失分 -100
第2ポジションの損失分 -82
第3ポジションの損失分 -64
第4ポジションの損失分 -46
第5ポジションの損失分 -28
合計 -320(-32,000JPY) となります。
初期投資金額の設定やレバの設定にお役立てください。
(あくまでも参考です。)
⑦まとめ
まだ、成長の巾があるEAだと思っています。EAの開発にご協力お願いします。
※誤字・誤り・更新内容がありましたら連絡をお願いします。
9 件のコメント :
ブログあるの初めて知りました。
内容非常に興味深く、今後に期待してます!
個人的にはウサギとオオカミの話とてもおもしろかったです(カオス理論は触り程度の理解ですが、好きな話です)。
さしずめ、ウサギの大量発生(=移動平均から乖離後にトレンド発生&持続)がMizuToriの天敵ですね。ウサギの大量発生を避けるには・・・、大量発生原因となる餌(=指標発表)が多いときは避けるか、大量発生の原因となる環境が整っている時は注意する(=オオカミを最近しばらく見かけていない)とかでしょうか。
はじめまして!
とてもわかりやすいです。
助かります!
コメントありがとうございます。
とりあえず、気になる?私が取り組んだ内容をランダムに掲示していきたいと思います。
少しでも、お役に立てればうれしいです。
すごくわかりやすい。
使っていて、いろいろと不明点が
ありましたが、解決しました!
(^-^)/
こちらのページ大変参考になりました^^ありがとうございます。
大変初歩的な質問で恐縮なのですが、
マジックナンバーについてです
異なるバージョン5種のmizutoriを1台で使用して14日間テストを行いたいのですが、マジックナンバーが全て「12345」になっているのを、それぞれ少しずつ微妙に数字を変えていけば動作するのでしょうか?
それとも、マジックナンバーの変更は必要ないのでしょうか?
すいません。よろしくお願いします。
kuro_sukeさんへ
同一通貨・同一時間軸・同一業者の場合マジックの変更が必要です。上記3種類のうち一つでも異なれば変更の必要はありません。もし上記3種類が同一で使用される場合は、PC・回線・サーバーに過度の負荷がかかりますので(5種類が同時に注文を出す可能性があります。)データ取りには決していい方法ではないような気がします。ご参考までに!
迅速な御返事まことにありがとうございます。
助かりました。
はじめまして。
最近になってmizutoriを使用させていただいています。
一つお尋ねしたいのですが業者としてFXCMさんは動作するのでしょうか?
もしお時間がある時にでもお返事頂けたら幸いです。
あと、このような素晴らしいEAを公開していただき、
ありがとうございます。来年もよいお年になることを祈っています。
はじめまして。
基本的には、どの業者でも可能だと思いますが、必ずデモ口座で確認してください。
コメントを投稿