ユニバーサルMAクロスEA - ページ 64

 

こんにちは、どなたかこのEaにブレークイーブンコードを追加していただけませんか?

価格はx pips移動し、ストップはブレイクイーブンにプラスx pipsです。私は試したが、複数のエラーが発生し続ける。https://www.mql5.com/en/forum。

どのようなヘルプのために事前にありがとうございます。

ファイル:
 

は、あなたが探しているものですか?

Mjack59_59@yahoo.com:
こんにちは誰かこのEaにブレイクイーブンコードを追加してください。

価格はx pips移動し、ストップはブレイクイーブンにプラスx pipsです。試してみましたが、何度もエラーが出ます。https://www.mql5.com/en/forum。

どのようなヘルプのために事前に感謝します。

というのも、あなたの言いたいことがよく分からないからです...でも、これで始めてみて、私に教えてください...。

Sn

ファイル:
 

5桁のブローカー・ボスに効かないのですが?

firedave:
どのような移動平均線クロス戦略にも対応できるような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に感謝します。お役に立てれば幸いです。

ジャーナル

-----------

バージョン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)であることを解決する方法を教えていただけませんか?

乾杯

テイキングピップ

 

無効なストップロス、エラー 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 モニタリングパラメータをコードのどこに挿入すればよいか教えてください。

よろしくお願いします。

 
serpentsnoir:
というのは、あなたの言っていることがよく分からないからです...。

こんにちは、BE機能付きのバージョンをダウンロードしたのですが、コンパイル時に以下のエラーが発生しました。"'UseBreakEven' - 比較式が期待されます。

どうか、それをチェック アップすることができますか?

ありがとうございました。

 
FxCba:
こんにちは、BE機能付きのバージョンをダウンロードしたのですが、コンパイル時にこのようなエラーが発生しました。"'UseBreakEven' - 比較式が期待されます。

どうか、チェックしていただけませんか?

ありがとうございます。

フラグはbooleanよりintegerの方が好きです。 EAの動作に影響を与えるものではありません。 エラーを消したいなら型をbooleanに変更すればいいだけです。

Sn

 
serpentsnoir:
フラグは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 {

ファイル: