コーディングのヘルプ - ページ 326

 

方向転換時のアラートについて

こんにちは。

MA10>MA20で買うEAで、MA10<MA20で買ったらアラートを出すにはどうしたらいいですか?

ありがとうございます。

ジョウ

 
Jovager:
こんにちは。

買いのEAで、例えばMA10>MA20(と反対側の売り)の場合、買いとMA10<MA20(と反対側)の場合、どのようにアラートを書けばいいのでしょうか?

ありがとうございます。

ジョ

このように試してみてください。

もし (MA10previousMA20) が最初の条件なら

if (MA10previous>MA20previous && MA10<MA20) for the second condition.

 
mladen:
バックテストでアラートを試していますか? もしそうなら、それが原因です:バックテストでアラートが機能しない

ありがとうございます。Build 509のように、以前はそうでした。

 
Big Be:
ありがとうございます。Build 509のように、以前は動作していました。

:):)

この "新しいメタトレーダー "では、以前は動作していた多くのものが動作しなくなりました。ビジュアルバックテストで複数のタイムフレームを試してみると、週末の "娯楽 "になることでしょう。

 
mladen:
それはすでに存在しているかどうかを確認します見慣れたルックス

このムラデン氏に運があったのか.

あなたはそれを見つけることができましたか?

ありがとうございます。

 
mladen:
:):):) この "新しいメタトレーダー "では、以前は動作していたものが動作しなくなったものがたくさんあります。ビジュアルバックテストで複数のタイムフレームを試してみると、週末の "娯楽 "になるでしょう

こんにちは、Mladenです。

あなたは親切なプログラマーの一人だと思いますので、追加されたインジケータからEAを作ることができないかお願いするかもしれません。このインジケータはリペイントもなく、驚くほど良いシグナルを出します。

ファイル:
 

こんにちはみんな、plsは、それが警告し、現在のキャンドルに矢印を表示させるために行うことができ、このコードを見て助ける。

事前にありがとうございます

// B83A886A5C437CCD9AC15473FD6F1788

void f0_2(文字列As_0){(テスト中?

if (IsTesting() == FALSE && IsOptimization() == FALSE && IsVisualMode() == FALSE) SendMail(WindowExpertName(), As_0).を送信します。

}

// A8CFDE6331BD59EB2AC96F8911C4B666

void f0_1(string A_name_0, string A_text_8, string A_fontname_16, int A_fontsize_24, color A_color_28, int A_y_32, int A_x_36, int A_corner_40, int A_bool_44) { {

ObjectCreate(A_name_0,OBJ_LABEL, 0, 0, 0);

ObjectSetText(A_name_0, A_text_8, A_fontsize_24, A_fontname_16, A_color_28); ObjectSetText(A_name_0, A_text_8, A_fontname_16, A_color_28)

ObjectSet(A_name_0, OBJPROP_CORNER, A_corner_40);

ObjectSet(A_name_0, OBJPROP_XDISTANCE, A_x_36); ObjectSet(A_name_0, OBJPROP_XDISTANCE, A_x_36)

ObjectSet(A_name_0, OBJPROP_YDISTANCE, A_y_32);

ObjectSet(A_name_0, OBJPROP_BACK, A_bool_44)。

}

// 085FEA7ABDC5D904FE69A3081EFD7398

void f0_0(文字列 As_0, int GetBar) {

if (IsTesting() == FALSE && IsOptimization() == FALSE && IsVisualMode() == FALSE) { {...

if (sound) PlaySound("News.wav")。

if (alert) Alert("新しいシグナル " + As_0+ " @ Symbol:"+Symbol()+" & Period:M "+Period()+" & Time: "+TimeToString(GetBar,TIME_MINUTES|TIME_SECONDS)");

if (email) f0_2("新しいシグナル " + As_0+ " @ Symbol:"+Symbol()+" & Period:M "+Period()+" & Time: "+TimeToString(GetBar,TIME_MINUTES|TIME_SECONDS)");

}

}

// BE8F80182E0C983916DA7338C2C1C040

int f0_3(string A_name_0, string A_name_8) { } } } } else

if (ObjectFind(A_name_0) == -1) return (0);

if (ObjectFind(A_name_8) == -1) return (0);

if (ObjectGet(A_name_0, OBJPROP_XDISTANCE) > ObjectGet(A_name_8, OBJPROP_XDISTANCE) - 10.0 && ObjectGet(A_name_0, OBJPROP_XDISTANCE) < ObjectGet(A_name_8, OBJPROP_XDISTANCE) + 10.0) { if (オブジェクト検出(A_name_0) == -1; if (オブジェクト検出(A_name_8) == -1; if (オブジェクト検出(A_name_8) == -1)

10.0) {

if (ObjectGet(A_name_0, OBJPROP_YDISTANCE) > ObjectGet(A_name_8, OBJPROP_YDISTANCE) - 10.0 && ObjectGet(A_name_0, OBJPROP_YDISTANCE) < ObjectGet(A_name_8, OBJPROP_YDISTANCE) + 10.0) { if (Objective_Name_0, BJP_YISTANGES, OBJP_YISTANCE) > ObjectGet(BJPROP_YSTANGES) + 10.1

10.0) return (1);

}

return (0);

}

// E4DB2306E8CC4DEB5830201DE61935CA

double f0_4() {

double Ld_ret_0 = 0;

for (int pos_8 = 0; pos_8 < OrdersTotal(); pos_8++) { { (int pos_8 = 0; pos_8 < OrdersTotal(); pos_8 + )

if (オーダーセレクト(pos_8, SELECT_BY_POS, MODE_TRADES) == TRUE)

if (OrderSymbol() == Symbol())Ld_ret_0 += OrderProfit()。

}

return (Ld_ret_0);

// EA2B2676C28C0DB26D39331A336C6B92

int start() {

文字列 Ls_0;

double iatr_20;

double Ld_28

double Ld_36;

int TimeBar=0;

if (f0_3("x", "r4") == 1) {

alert = FALSE;

ObjectDelete("r2")。

f0_1("x", "G", "Wingdings", 25, Pink, 160, 55, 1, FALSE);

PlaySound("Tick.wav")。

G_time_192 = 0;

RefreshRates()を実行します。

}

if (f0_3("x", "t4") == 1) { {.

sound = FALSE;

ObjectDelete("t2")。

f0_1("x", "G", "Wingdings", 25, Pink, 160, 55, 1, FALSE);

PlaySound("Tick.wav")。

G_time_192 = 0;

RefreshRates()を実行します。

}

if (f0_3("x", "u4") == 1) {

email = FALSE。

ObjectDelete("u2")。

f0_1("x", "G", "Wingdings", 25, Pink, 160, 55, 1, FALSE);

PlaySound("Tick.wav")。

G_time_192 = 0;

RefreshRates()を実行します。

}

if (f0_3("x", "r3") == 1) { {.

alert = TRUE;

f0_1("r2", "þ", "Wingdings", 14, Red, 55, 65, 1, FALSE);

f0_1("x", "G", "Wingdings", 25, Pink, 160, 55, 1, FALSE);

PlaySound("Tick.wav")。

G_time_192 = 0;

RefreshRates()を実行します。

}

if (f0_3("x", "t3") == 1) { {.

sound = TRUE;

f0_1("t2", "þ", "Wingdings", 14, Red, 80, 65, 1, FALSE);

f0_1("x", "G", "Wingdings", 25, Pink, 160, 55, 1, FALSE);

PlaySound("Tick.wav")。

G_time_192 = 0;

RefreshRates()を実行します。

}

if (f0_3("x", "u3") == 1) {

email = TRUE;

f0_1("u2", "þ", "Wingdings", 14, Red, 105, 65, 1, FALSE);

f0_1("x", "G", "Wingdings", 25, Pink, 160, 55, 1, FALSE);

PlaySound("Tick.wav")。

G_time_192 = 0;

RefreshRates()を実行します。

}

for (int index_8 = 0; index_8 < 100; index_8++) { { G_ibuf_108

if (G_ibuf_108 < 1000.0) {

TimeBar=Time;

Ls_0 = "BUY "です。

ブレーク

}

if (G_ibuf_112 < 1000.0) { { TimeBar=Time; Ls_0 = "BUY"; break; }.

TimeBar=Time;

Ls_0 = "SELL";

ブレーク

}

if (Ls_0 == "BUY" && ObjectDescription("Signal1") != "BUY") { { (Ls_0 == "BUY" && ObjectDescription("Signal1") != "BUY")

f0_0("BUY",TimeBar)。

f0_1("Signal1", "BUY", "Wingdings 3", 30, White, 80, 32, 1, FALSE).FALSEは、"Signal1", "BUY", "BUY "を意味します。

}

if (Ls_0 == "SELL" && ObjectDescription("Signal1") != "SELL") { { f0_0("Signal1") !

f0_0("SELL",TimeBar)。

f0_1("Signal1", "SELL", "Wingdings 3", 30, White, 80, 25, 1, FALSE).この場合、"Signal1 "は "SELL "となります。

}

f0_1("r1", "Profit", "Arial", 10, Lime, 50, 80, 1, FALSE);

f0_1("Pr", DoubleToStr(f0_4(), 0), "Arial", 13, Yellow, 50, 35, 1, FALSE);

if (Time[0] == G_time_192) return (0);

G_time_192 = Time[0]です。

int Li_12 = Bars - IndicatorCounted();

if (IndicatorCounted() > 0) Li_12++;

for (int bars_16 = Bars; bars_16 > 0; bars_16--) { { { for (int bars_16 <= Histructor'?

if (bars_16 <= HistoriBar) {

iatr_20 = iATR(NULL, 0, 100, 0);

Ld_28 = Close - iATR(NULL, 0, PeriodIndikator, bars_16) * Factor.Ld_36 = Close + iATR(NULL, 0, PeriodIndikator, bars_16) * Factor;

Ld_36 = Close + iATR(NULL, 0, PeriodIndikator, bars_16) * Factor.Ld_36 = Close + iATR(NULL, 0, PeriodIndikator, bars_16) * Factor;

if (Ld_28 > Gd_156 && Gi_180 == 1) Gd_156 = Ld_28.Ld_36 = Gd_156;

if (Ld_36 < Gd_148 && Gi_180 == 2) Gd_148 = Ld_36;

if (Gd_156 !&& Gi_180 == 1) Gd_unused_124 = Gd_156;

if (Gd_148 != 1000.0 && Gi_180 == 2) Gd_unused_132 = Gd_148;

if (Close < Gd_156 && Gi_180 == 1) { { (Close < Gd_156 && Gi_180 == 1)

Gi_180 = 2;

if (bars_16 < HistoriBar / 2.0) G_ibuf_112 = High + iatr_20;

Gd_156 = 0;

}

if (Close > Gd_148 && Gi_180 == 2) { {.

Gi_180 = 1;

if (bars_16 < HistoriBar / 2.0) G_ibuf_108 = Low - iatr_20;

Gd_148 = 1000。

}

}

}

return (0);

// 52D46093050F38C27267BCE42543EF60

int deinit() {

 
wolfsch:
こんにちは、Mladenさん。あなたは親切なプログラマーの一人だと思うので、追加したインジケータでEAを作ってもらえないでしょうか。このインジケータはリペイントがなく、驚くほど良いシグナルを出します。

ウォルフシュ

残念ですが、そのインジケータはT3 clean and snake indicatorを使用しています。T3は再描画しません。しかし、"snake "はTMAを中心とし、再計算を行うので、そのインジケータは再計算(再描画)の種類になります。

追記:これは実は "T3 TMA combination "インジケータを改名したもので、その後 "uni cross "インジケータに改名されました。詳しくはこちら(https://www.mql5.com/en/forum/general)をご覧ください。

 
emmany4:
Hello Guys, pls help to look at this code, what can be done to make it alert and show arrows on current candle.このコードを見て、現在のキャンドルに矢印を表示させることができます。

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

// B83A886A5C437CCD9AC15473FD6F1788

void f0_2(文字列As_0){(文字列As_0)の場合

if (IsTesting() == FALSE && IsOptimization() == FALSE && IsVisualMode() == FALSE) SendMail(WindowExpertName(), As_0)です。

}

// A8CFDE6331BD59EB2AC96F8911C4B666

void f0_1(string A_name_0, string A_text_8, string A_fontname_16, int A_fontsize_24, color A_color_28, int A_y_32, int A_x_36, int A_corner_40, int A_bool_44) { {

ObjectCreate(A_name_0, OBJ_LABEL, 0, 0, 0);

ObjectSetText(A_name_0, A_text_8, A_fontsize_24, A_fontname_16, A_color_28); ObjectSetText(A_name_0, A_text_8, A_fontname_16, A_color_28)

ObjectSet(A_name_0, OBJPROP_CORNER, A_corner_40);

ObjectSet(A_name_0, OBJPROP_XDISTANCE, A_x_36); ObjectSet(A_name_0, OBJPROP_XDISTANCE, A_x_36)

ObjectSet(A_name_0, OBJPROP_YDISTANCE, A_y_32);

ObjectSet(A_name_0, OBJPROP_BACK, A_bool_44)。

}

// 085FEA7ABDC5D904FE69A3081EFD7398

void f0_0(文字列 As_0, int GetBar) {

if (IsTesting() == FALSE && IsOptimization() == FALSE && IsVisualMode() == FALSE) { {...

if (sound) PlaySound("News.wav")。

if (alert) Alert("新しいシグナル " + As_0+ " @ Symbol:"+Symbol()+" & Period:M "+Period()+" & Time: "+TimeToString(GetBar,TIME_MINUTES|TIME_SECONDS)");

if (email) f0_2("新しいシグナル " + As_0+ " @ Symbol:"+Symbol()+" & Period:M "+Period()+" & Time: "+TimeToString(GetBar,TIME_MINUTES|TIME_SECONDS)");

}

}

// BE8F80182E0C983916DA7338C2C1C040

int f0_3(string A_name_0, string A_name_8) { } } } } else

if (ObjectFind(A_name_0) == -1) return (0);

if (ObjectFind(A_name_8) == -1) return (0);

if (ObjectGet(A_name_0, OBJPROP_XDISTANCE) > ObjectGet(A_name_8, OBJPROP_XDISTANCE) - 10.0 && ObjectGet(A_name_0, OBJPROP_XDISTANCE) < ObjectGet(A_name_8, OBJPROP_XDISTANCE) + 10.0) { if (オブジェクト検索(A_name_1), OBJPROP_xdistance) > ObjectGet(A_name_7, OBJPROP_7) - 0.0

10.0) {

if (ObjectGet(A_name_0, OBJPROP_YDISTANCE) > ObjectGet(A_name_8, OBJPROP_YDISTANCE) - 10.0 && ObjectGet(A_name_0, OBJPROP_YDISTANCE) < ObjectGet(A_name_8, OBJPROP_YDISTANCE) + 10.0) { if (Objective_Name_0, BJP_YISTANGES, OBJP_YISTANCE) - 10.1; if (ObjectGet(A_name_8, BJP_YISTANGES) + 10.0) { return (1)

10.0) return (1);

}

return (0);

}

// E4DB2306E8CC4DEB5830201DE61935CA

double f0_4() {

double Ld_ret_0 = 0;

for (int pos_8 = 0; pos_8 < OrdersTotal(); pos_8++) { { (int pos_8 = 0; pos_8 < OrdersTotal(); pos_8 + )

if (オーダーセレクト(pos_8, SELECT_BY_POS, MODE_TRADES) == TRUE)

if (OrderSymbol() == Symbol())Ld_ret_0 += OrderProfit()。

}

return (Ld_ret_0);

// EA2B2676C28C0DB26D39331A336C6B92

int start() {

文字列 Ls_0;

double iatr_20;

double Ld_28

double Ld_36;

int TimeBar=0;

if (f0_3("x", "r4") == 1) {

alert = FALSE;

ObjectDelete("r2")。

f0_1("x", "G", "Wingdings", 25, Pink, 160, 55, 1, FALSE);

PlaySound("Tick.wav")。

G_time_192 = 0;

RefreshRates()を実行します。

}

if (f0_3("x", "t4") == 1) { {.

sound = FALSE;

ObjectDelete("t2")。

f0_1("x", "G", "Wingdings", 25, Pink, 160, 55, 1, FALSE);

PlaySound("Tick.wav")。

G_time_192 = 0;

RefreshRates()を実行します。

}

if (f0_3("x", "u4") == 1) {

email = FALSE。

ObjectDelete("u2")。

f0_1("x", "G", "Wingdings", 25, Pink, 160, 55, 1, FALSE);

PlaySound("Tick.wav")。

G_time_192 = 0;

RefreshRates()を実行します。

}

if (f0_3("x", "r3") == 1) { {.

alert = TRUE;

f0_1("r2", "þ", "Wingdings", 14, Red, 55, 65, 1, FALSE);

f0_1("x", "G", "Wingdings", 25, Pink, 160, 55, 1, FALSE);

PlaySound("Tick.wav")。

G_time_192 = 0;

RefreshRates()を実行します。

}

if (f0_3("x", "t3") == 1) { {.

sound = TRUE;

f0_1("t2", "þ", "Wingdings", 14, Red, 80, 65, 1, FALSE);

f0_1("x", "G", "Wingdings", 25, Pink, 160, 55, 1, FALSE);

PlaySound("Tick.wav")。

G_time_192 = 0;

RefreshRates()を実行します。

}

if (f0_3("x", "u3") == 1) {

email = TRUE;

f0_1("u2", "þ", "Wingdings", 14, Red, 105, 65, 1, FALSE);

f0_1("x", "G", "Wingdings", 25, Pink, 160, 55, 1, FALSE);

PlaySound("Tick.wav")。

G_time_192 = 0;

RefreshRates()を実行します。

}

for (int index_8 = 0; index_8 < 100; index_8++) { { G_ibuf_108

if (G_ibuf_108 < 1000.0) {

TimeBar=Time;

Ls_0 = "BUY "です。

ブレーク

}

if (G_ibuf_112 < 1000.0) { { TimeBar=Time; Ls_0 = "BUY"; break; }.

TimeBar=Time;

Ls_0 = "SELL";

ブレーク

}

if (Ls_0 == "BUY" && ObjectDescription("Signal1") != "BUY") { { (Ls_0 == "BUY" && ObjectDescription("Signal1") != "BUY")

f0_0("BUY",TimeBar)。

f0_1("Signal1", "BUY", "Wingdings 3", 30, White, 80, 32, 1, FALSE).FALSEは、"Signal1", "BUY", "BUY "を意味します。

}

if (Ls_0 == "SELL" && ObjectDescription("Signal1") != "SELL") { { f0_0("Signal1") !

f0_0("SELL",TimeBar)。

f0_1("Signal1", "SELL", "Wingdings 3", 30, White, 80, 25, 1, FALSE).この場合、"Signal1 "は "SELL "となります。

}

f0_1("r1", "Profit", "Arial", 10, Lime, 50, 80, 1, FALSE);

f0_1("Pr", DoubleToStr(f0_4(), 0), "Arial", 13, Yellow, 50, 35, 1, FALSE);

if (Time[0] == G_time_192) return (0);

G_time_192 = Time[0]です。

int Li_12 = Bars - IndicatorCounted();

if (IndicatorCounted() > 0) Li_12++;

for (int bars_16 = Bars; bars_16 > 0; bars_16--) { { { for (int bars_16 <= Histructor'?

if (bars_16 <= HistoriBar) {

iatr_20 = iATR(NULL, 0, 100, 0);

Ld_28 = Close - iATR(NULL, 0, PeriodIndikator, bars_16) * Factor.Ld_36 = Close + iATR(NULL, 0, PeriodIndikator, bars_16) * Factor;

Ld_36 = Close + iATR(NULL, 0, PeriodIndikator, bars_16) * Factor.Ld_36 = Close + iATR(NULL, 0, PeriodIndikator, bars_16) * Factor;

if (Ld_28 > Gd_156 && Gi_180 == 1) Gd_156 = Ld_28.Ld_36 = Gd_156;

if (Ld_36 < Gd_148 && Gi_180 == 2) Gd_148 = Ld_36;

if (Gd_156 !&& Gi_180 == 1) Gd_unused_124 = Gd_156;

if (Gd_148 != 1000.0 && Gi_180 == 2) Gd_unused_132 = Gd_148;

if (Close < Gd_156 && Gi_180 == 1) { { (Close < Gd_156 && Gi_180 == 1)

Gi_180 = 2;

if (bars_16 < HistoriBar / 2.0) G_ibuf_112 = High + iatr_20;

Gd_156 = 0;

}

if (Close > Gd_148 && Gi_180 == 2) { {.

Gi_180 = 1;

if (bars_16 < HistoriBar / 2.0) G_ibuf_108 = Low - iatr_20;

Gd_148 = 1000。

}

}

}

return (0);

// 52D46093050F38C27267BCE42543EF60

int deinit() {

こんにちはEmmany4、あなたがそのEAの元のコードを見つけた場合、おそらく矢印と売買のためのアラートを追加または修正することができるだろうが、そのバージョンは逆コンパイルされています。

 
mrtools:
こんにちはEmmany4、あなたがそのEAの元のコードを見つけた場合、おそらく矢印と売買のためのアラートを追加または修正することができるだろうが、そのバージョンは逆コンパイルされています。

私が見る限り、それはいくつかのスーパートレンドのバリエーション(cciバージョンではなくatrを使用したもの)の不完全な逆コンパイルされたコードです。他には何もありません。とにかく、そのコードはそのままでは、動作しません(その大部分が欠落しています)。