トレーリングストップの種類を設定します。1:pips単位の利益が大きくなったらトレール開始/TrailingStopと同じ。2:利益確定後、すぐにトレーリングを開始します。(提案されれば他のタイプのトレーリングストップを追加します。最新の提案はSafeZone trailing stop post #99https://www.mql5.com/en/forum/general)
TrailingStop (デフォルト40)
トレーリングストップを設定します。トレーリングストップを使用しない場合は、0を指定します。
移動平均の設定
------------------------
FastMAPeriod(デフォルト10)
高速移動平均の周期を設定します。
FastMAType(デフォルトはEMA / 1)
Fast Moving Average Type 0:SMA 1:EMA 2:SMMA 3:LWMA
こんにちは、どなたかこのEaにブレークイーブンコードを追加していただけませんか?
価格はx pips移動し、ストップはブレイクイーブンにプラスx pipsです。私は試したが、複数のエラーが発生し続ける。https://www.mql5.com/en/forum。
どのようなヘルプのために事前にありがとうございます。
は、あなたが探しているものですか?
こんにちは誰かこのEaにブレイクイーブンコードを追加してください。
価格はx pips移動し、ストップはブレイクイーブンにプラスx pipsです。試してみましたが、何度もエラーが出ます。https://www.mql5.com/en/forum。
どのようなヘルプのために事前に感謝します。というのも、あなたの言いたいことがよく分からないからです...でも、これで始めてみて、私に教えてください...。
Sn
5桁のブローカー・ボスに効かないのですが?
どのような移動平均線クロス戦略にも対応できるようなEAを作ろうと思っています。このEAに何か追加すべき点があれば教えてください。
共通設定
-----------------
ストップロス(デフォルト100)
ストップロスを設定します。ストップロスを使いたくない場合は0を指定します(推奨しません)。
テイクプロフィット(デフォルト:200)
Take Profit(利食い)を設定します。オープンターゲットを使いたい場合は0を指定します。
トレーリングストップ設定
----------------------
ver.6 TrailingStopType(デフォルト:1)
トレーリングストップの種類を設定します。1:pips単位の利益が大きくなったらトレール開始/TrailingStopと同じ。2:利益確定後、すぐにトレーリングを開始します。(提案されれば他のタイプのトレーリングストップを追加します。最新の提案はSafeZone trailing stop post #99https://www.mql5.com/en/forum/general)
TrailingStop (デフォルト40)
トレーリングストップを設定します。トレーリングストップを使用しない場合は、0を指定します。
移動平均の設定
------------------------
FastMAPeriod(デフォルト10)
高速移動平均の周期を設定します。
FastMAType(デフォルトはEMA / 1)
Fast Moving Average Type 0:SMA 1:EMA 2:SMMA 3:LWMA
FastMAPrice (デフォルト Close / 0)
高速移動平均の適用価格 0:Close 1:Open 2:High 3:Low 4:Median 5:Typical 6:Weighted
ver.7.2 FastMAshift(デフォルト0)
高速移動平均の移動量
SlowMAPeriod (デフォルト80)
Slow Moving Averageの周期。
SlowMAType (デフォルト EMA / 1)
Slow Moving Average Type 0:SMA 1:EMA 2:SMMA 3:LWMA
SlowMAPrice (デフォルト Close / 0)
Slow Moving Average 適用価格 0:Close 1:Open 2:High 3:Low 4:Median 5:Typical 6:Weighted
ver.7.2 FastMAshift(デフォルト0)
低速移動平均の移動量
最小クロス距離 :
------------------------
ver.2 MinCrossDistance (デフォルト0)
FastMAとSlowMAのクロスとして成立するピップディスタンスを設定します。0を指定すると、このフィルタが無効になります。
ver.7 MaxLookUp (デフォルト1)
クロスした後、FastMAとSlowMAの最小距離を基準に、何本目までエントリー条件をチェックし続けるかを設定します。この機能を有効にするにはMinCrosDistance > 0が必要です。0を指定すると無効になります。
終了設定 :
-------------
StopAndReverse (デフォルトtrue)
TRUEに設定すると、シグナルが変化したときに、すべての取引を終了し、ポジションを反転させます。
PureSAR (デフォルトfalse)
TRUEに設定すると、ストップロス、テイクプロフィット、トレーリングストップを使用しない。これは常にプレイ中の設定です。
ExitOnCross (デフォルトfalse)
TRUEに設定すると、反対方向のクロスがあった場合、追加のフィルターを考慮することなく取引を終了します。つまり、純粋に移動平均のクロスを基準に終了します。
第3のMA設定
------------------
ver.5 UseThirdMA (デフォルトfalse)
UseCounterTrend = FALSE) に設定すると、ThirdMAの方向性(買いは上、売りは下)に従ってのみ取引を行うようになります。
ver.5 UseCounterTrend (デフォルトfalse)
TRUEに設定すると、ThirdMAの方向が逆であっても取引を継続しますが、StopLossとTakeProfitは異なります。この機能を有効にするにはUseThirdMA = TRUEとする必要があります。
ver.7 OnlyCounterTrend (デフォルトfalse)
TRUEに設定すると、EAはカウンタートレンドトレードのみを行うようになり、ThirdMAより下にクロスしたら買い、ThirdMAより上にクロスしたら売りを意味します。この機能を有効にするにはUseCounterTrend = TRUEが必要です。
ver.5 ThirdMAPeriod (初期値100)
第3移動平均の期間。
ver.5 ThirdMAType (デフォルト EMA / 1)
第3移動平均のタイプ 0:SMA 1:EMA 2:SMMA 3:LWMA
ver.5 ThirdMAPrice (デフォルトClose / 0)
第3移動平均の適用価格 0:Close 1:Open 2:High 3:Low 4:Median 5:Typical 6:Weighted
ver.7.2 ThridMAshift(デフォルト0)
第3移動平均の移動量
ver.5 CTStopLoss (デフォルト0)
カウンタートレンドのトレードのストップロスを設定します。ストップロスを使いたくない場合は0を指定してください(推奨しません)。
ver.5 CTTakeProfit (デフォルト0)
カウンタートレンド(逆張り)取引の利食い額を設定します。オープンターゲットを使用する場合は、0を指定してください。
Pivot Filter 設定 :
-------------------
ver.8.0 Use.Pivot.Filter(デフォルトfalse)
S1-S2間でSlow MAとFast MAがクロスした場合のみ買い、R1-R2間でSlow MAとFast MAがクロスした場合のみ売り、というように取引をフィルタリングしたい場合はtrueを指定します。
注文設定
--------------
ReverseCondition (デフォルトfalse)
エントリー条件を反転させる場合はTRUEを指定します。
ver.3 ConfirmedOnEntry (デフォルトtrue)
TRUE に設定すると、クロスが確認された次のバーで売買を開始します。FALSEに設定すると、クロスが確認されると同時に取引を開始/終了します。
ver.4 OneEntryPerBar (デフォルトtrue)
TRUEに設定すると、1つのバーで1回だけ取引を行う。FALSEに設定すると、一度に一回だけですが、エントリー条件が有効な場合、一回のバーで複数回取引します。
NumberOfTries (デフォルト5)
注文がシステムによって拒否された場合に試行する回数。
スリッページ (初期値 5)
スリッページの設定値。
MagicNumber (デフォルト 1234)
マジック・ナンバーを生成するために使用。同じペア、同じ時間帯で異なる設定でEAを動作させたい場合のみ、この数値を変更してください。
複数オープントレード設定 :
-----------------------------
ver.5 MaxOpenTrade (デフォルト2)
一度に開くことのできる最大取引数です。この設定はStopAndReverse / PureSAR = FALSEのときに使用され、反対方向のシグナルがあったときにEAが建玉を決済せず、新しい取引を開始するようにします。オープントレードの許容数を設定します。StopAndReverse / PureSAR = TRUE の場合、この設定は常に1、つまり一度に1つの取引を行うことを意味します。
ver.6 MinPriceDistance (デフォルト5)
MaxOpenOrder>1かつOneEntryPerBar=FALSEで複数回取引可能な場合、この数値は同一方向の各取引間の最小距離を決定します。
時間フィルタ設定:
-------------------
UseHourTrade (デフォルトfalse)
TRUEに設定すると、EAは特定の時間帯にのみアクティブになります。
StartHour (デフォルト10)
EAがアクティブになる時間(UseHourTrade = TRUEと併用)。
EndHour (デフォルト11)
EAが停止する時間(UseHourTrade = TRUEと併用)。
ロットと資金管理の設定 :
------------------------------------
Lots (デフォルト1)
1トレードあたりのロット数。
MM (デフォルトfalse)
TRUEに設定すると、ビルドイン・マネー・マネージメントを使用します。
AccountIsMicro (デフォルトfalse)
マイクロ口座を使用する場合、これをTRUEに設定する。
Risk (デフォルト10)
MM = TRUE と共に使用し、取引ごとのリスクを設定します。
クロスアラート設定 :
--------------------
ver.5 EnableAlert (初期値: true)
移動平均のクロス、クロスUP、クロスDOWNがあったときにアラートを鳴らします。
ver.5 SoundFilename (デフォルト "alert.wav")
アラートのファイル名。
BackTest Setting(バックテスト設定):
------------------
PrintControl (デフォルトtrue)
バックテストに関するコメントを表示します。
Show_Settings (デフォルトtrue)
チャート上に設定を表示する。
もし、この設定に問題があるようなら、教えてください。コードの一部を提供してくれたcodersguruとpengieに感謝します。お役に立てれば幸いです。![](https://c.mql5.com/forextsd/smiles/smile.png)
ジャーナル
-----------
バージョン6.0
- ConfirmedOnEntryのバグを修正。
- イミディエイト・トレーリングストップを追加
- 複数のオープントレードのためのMinPriceDistanceを追加。
バージョン7:
- MaxLookUp機能を追加、MinCrossDistanceに関するクロスからあるバー以降のエントリーをチェックし続ける。
- ThirdMAフィルターを使用する場合、OnlyCounterTrend機能を追加。
バージョン7.1:
- MinCrossDistanceのバグを修正。
バージョン7.2:
- ConfirmedOnEntry = FALSEの場合のMinCrossDistanceのバグを修正。
- MAシフトパラメーターを追加
- ExitOnCross機能を追加
バージョン7.3:
- COMMENTの画面表示を修正
バージョン8.0:
- Pivot Filterを追加。
バージョン8.1:
- Build 206のバグのため、コードを一部修正しました。無効なストップロス/テイクプロフィット
こんにちは、Serpentsnoirです。
このバージョンを5桁でテストしてみました。
ストップロス=30
テイクプロフィット=40
でテストしたところ、以下のようなエラーが発生しました。
2011.04.27 22:47:44 universalMACrossEA[5 Dig]-V4 EURGBP,M5: sn Debug on sell:Bid,Slippage,aStopLoss,aTakeProfit 0.88554/30.00000/0.88466/0.89066
2011.04.27 22:47:44 universalMACrossEA[5 Dig]-V4 EURGBP,M5: sn Debug on sell: ticket,err,count -1/130/5
130は無効なストップ(TP、SL)であることを解決する方法を教えていただけませんか?
乾杯
テイキングピップ![](https://c.mql5.com/forextsd/smiles/teeth_smile.png)
無効なストップロス、エラー 130
StopLoss と TakeProfit のレベルは、マーケットに近すぎてはいけません。ポイント単位でのストップ レベルの最小距離は、MODE_STOPLEVEL パラメータを持つ MarketInfo() 関数を使用して取得することができます。誤った、または正規化されていないストップレベルの場合、エラー 130 (ERR_INVALID_STOPS) が発生します。
上記はMetaquotesのドキュメントから引用しています。
エラー130は、ストップロスをBid/Ask価格に近づけすぎて設定した場合に発生します。これは一般的に、問題を修正するためにストップロスを増やすか、場合によっては、ストップロスを設定するために注文を修正するのではなく、注文の現在のストップロスに非常に近いので、注文を閉じるべきであることを意味します。
Mode_Stoplevelを持つMarketInfoはゼロを返すかもしれないことに注意してください、少なくとも私のブローカーFXCMではそうでしたので、手動で設定する必要があるかもしれません。
無効なストップロス、エラー130
Tzumanの説明ありがとうございます。
例えば、私が設定したものでさえ
SL = 200
TP = 150
私のブローカーはストップロスやテイクプロフィットに 最低10pipを要求しています。
私はMTのプログラミングは初めてで、まだ勉強中です。MODE_STOPLEVEL モニタリングパラメータをコードのどこに挿入すればよいか教えてください。
よろしくお願いします。
というのは、あなたの言っていることがよく分からないからです...。
こんにちは、BE機能付きのバージョンをダウンロードしたのですが、コンパイル時に以下のエラーが発生しました。"'UseBreakEven' - 比較式が期待されます。
どうか、それをチェック アップすることができますか?
ありがとうございました。
こんにちは、BE機能付きのバージョンをダウンロードしたのですが、コンパイル時にこのようなエラーが発生しました。"'UseBreakEven' - 比較式が期待されます。
どうか、チェックしていただけませんか?
ありがとうございます。フラグはbooleanよりintegerの方が好きです。 EAの動作に影響を与えるものではありません。 エラーを消したいなら型をbooleanに変更すればいいだけです。
Sn
フラグはbooleanよりintegerの方が好きです。 EAの動作に影響はありません。 エラーをなくしたいのであれば型をbooleanに変更すればいいだけです。
次のような行を追加するということでしょうか。"bool UseBreakEven = false;" とします。
(質問ばかりで申し訳ないのですが、メタトレーダーのコードがよくわかりません)
そのように作ってみたところ、エラーは出ませんでした。
EAに日次利益制限を追加する。
皆さん、こんにちは。
どなたか、添付のUMAクロスEAに下記の機能を追加していただけないでしょうか。
extern string DayProfitHelp = "--DayProfitLimit を USD で、または DayProfitLimitPct を最終日残高のパーセントで入力します。どちらも0にすると無効になります。
extern double DayProfitLimit = 0.0;
extern double DayProfitLimitPct = 0.0; extern double DayProfitLimitPct = 0.0;
extern int DayProfitResetHour = 0;
extern bool DayProfitGlobal = FALSE;
この関数は 他のEAで非常に便利なもので、基本的にはStop timeの前に "x%"がヒットした場合にEAのオープニングオーダーを停止させるものです。
また、UMAcrossEAではトレーリング機能が正しく動作していません。もし誰かが助けてくれるなら、私は感謝します。
どうもありがとうございました。
===============================
extern int SL_pips = 290;
extern int MA_distance_pips = 20;
extern int MA_period = 16;
extern int TP_pips = 20;
extern int TradeVolume = 1;
extern string HourTradeHelp = "--EAが一日のうち特定の時間帯にのみ動作するかどうかを設定します。ForceCloseはすべてのオープンオーダーをクローズします。
extern bool UseHourTrade = FALSE;
extern int StartHourTrade = 21;
extern int EndHourTrade = 3;
extern bool ForceClose = FALSE;
extern string MinToKeepTradeHelp = "--注文のライフタイムがMinutesToKeepTradeより長くなると、注文を閉じます。無効にするには0を設定してください";
extern int MinutesToKeepTrade = 0;
extern string DayProfitHelp = "--DayProfitLimitをUSDで、またはDayProfitLimitPctを最終日残高のパーセントで入力します。無効化するには両方0に設定してください。
extern double DayProfitLimit = 0.0;
extern double DayProfitLimitPct = 0.0; extern double DayProfitLimitPct = 0.0;
extern int DayProfitResetHour = 0;
extern bool DayProfitGlobal = FALSE;
extern int ModifyIntervalMin = 1;
extern int MagicNumber = 2265;
extern bool Hedge=false;
int g_ord_total_172;
int g_ticket_176;
int g_ticket_180;
int g_minute_184;
bool g_bool_188;
bool gi_192;
bool gi_196;
bool gi_200;
bool gi_204;
double g_price_208;
double gd_216;
double g_price_224;
double gd_232;
double gd_240;
double gd_248;
double gd_256
double gd_264
double gd_272
double gd_280
double g_ima_288;
double gd_296
double gd_304;
double gd_312;
double g_lots_320;
void init() {
gd_240 = MarketInfo(Symbol(), MODE_STOPLEVEL);
gd_256 = gd_240 * Point;
gd_248 = (gd_240 + 1.0) * ポイント。
gd_216 = SL_pips * Point。
gd_232 = MA_distance_pips * Point; gd_280 = TP_pips * Point;
gd_280 = TP_pips * Point。
g_minute_184 = Minute();
}
int start() {
double ld_8;
double ld_16;
if (AccountBalance() - gd_304 != 0.0) ld_8 = 100.0 * (gd_304 / (AccountBalance() - gd_304))です。
else ld_8 = 0;
if (AccountBalance() - gd_304 != 0.0) ld_16 = 100.0 * ((AccountBalance() - gd_304 + gd_312) / (AccountBalance() - gd_304)) - 100.0;
else ld_16 = 0;
gd_296 = Ask - Bid;
gd_304 = GetDailyProfit();
g_lots_320 = Lots()。
if (DayProfitLimitPct > 0.0) gd_312 = (AccountBalance() - gd_304) * (DayProfitLimitPct / 100.0);
else gd_312 = DayProfitLimit;
g_bool_188 = !(UseHourTrade && !IsTradeTime(StartHourTrade, EndHourTrade));
if (g_bool_188 && GlobalVariableGet("gISEAStop") == 1.0) g_bool_188 = FALSE;
string ls_0 = "Symbol:" + Symbol()
+ "ⅮⅮⅮ" + DoubleToStr(MarketInfo(Symbol(), MODE_SPREAD) / 10.0, 1) + " pips".
+ "ⅳ日当りのP/L: $"+ DoubleToStr(gd_304, 2) + " (" + DoubleToStr(ld_8, 2) + "%)".
+ "⑭リミットP/L: $"+ DoubleToStr(gd_312, 2) + " (" + DoubleToStr(ld_16, 2) + "%)".
+ "⑭現在のP/L: $"+ DoubleToStr(AccountProfit(), 2)
+ "ⅳストップレベル:" + DoubleToStr(gd_240 / 10.0, 1) + " pips".
+ "⑭ボリューム" + DoubleToStr(g_lots_320, 1) + " ($" + DoubleToStr(g_lots_320 * MarketInfo(Symbol(), MODE_LOTSIZE), 2) + ") "です。
if (gd_312 > 0.0 && gd_304 + AccountProfit() >= gd_312) {。
コメント(ls_0
+ "日次利益達成...。また明日ね...。おやすみなさい:-)");
RemoveAllOrders(1);
return (0);
}
g_ord_total_172 = OrdersTotal();
gi_192 = FALSE;
gi_196 = FALSE;
gi_200 = FALSE; gi_204 = FALSE
gi_204 = FALSE。
for (int l_ord_total_24 = g_ord_total_172; l_ord_total_24 >= 0; l_ord_total_24--){
if (OrderSelect(l_ord_total_24, SELECT_BY_POS) == TRUE && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
if (OrderType() == OP_BUY){
gi_200 = TRUEとする。
Close_B(OrderTicket(), OrderLots());
if (OrderType() == OP_SELL) { (オーダータイプ() == OP_SELL) { (オーダータイプ() == OP_SELL)
gi_204 = TRUE;
Close_S(OrderTicket(), OrderLots())。
}
if (OrderType() == OP_BUYLIMIT) { (オーダータイプ() == OP_BUYLIMIT)
gd_264 = NormalizeDouble(OrderOpenPrice(), Digits);
g_ticket_176 = OrderTicket();
gi_192 = TRUE;
}
if (OrderType() == OP_SELLLIMIT) { (注文タイプ)
gd_272 = NormalizeDouble(OrderOpenPrice(), Digits);
g_ticket_180 = OrderTicket();
gi_196 = TRUE;
}
}
}
if (g_bool_188) { .
g_ima_288 = iMA(NULL, 0, MA_period, 0, MODE_LWMA, PRICE_TYPICAL, 0).MODIFY_ORDER(); G_IMA_288 = iMA(NULL, 0, MA_period, 0);
Modify_order() を実行します。
Open_order()を実行します。
} else {