코딩 도움말 - 페이지 326

 

방향 변경 알림

여보세요,

예를 들어 MA10>MA20(그리고 반대로 매도)을 매수하는 EA에서 매수이고 MA10<MA20(및 그 반대)이면 어떻게 경고를 작성할 수 있습니까?

감사해요.

 
Jovager:
여보세요,

예를 들어 MA10>MA20(그리고 반대로 매도)을 매수하는 EA에서 매수이고 MA10<MA20(및 그 반대)이면 어떻게 경고를 작성할 수 있습니까?

감사해요.

다음과 같이 시도하십시오.

첫 번째 조건의 경우 (MA10previousMA20)

두 번째 조건의 경우 (MA10previous>MA20previous && MA10<MA20)

 
mladen:
백 테스트에서 경고를 시도하고 있습니까? 그렇다면 이것이 원인입니다. 백 테스트에서 경고가 작동하지 않습니다.

감사해요. 그들은 Build 509에서와 같이 사용했습니다.

 
Big Be:
감사해요. 그들은 Build 509에서와 같이 사용했습니다.

:) :)

이 "새로운 메타 트레이더"에서 더 이상 작동하지 않는 많은 것들이 작동했습니다. 시각적 백 테스트에서 여러 시간 프레임을 시도하면 주말 동안 "즐거움"을 느낄 것입니다.

 
mladen:
익숙한 것 같습니다 이미 존재하는지 확인합니다

이 Mr Mladen에게 행운을 빕니다 ...

찾을 수 있었습니까 .??

감사해요

 
mladen:
:):):) 이 "새로운 메타 트레이더"에서 더 이상 작동하지 않는 많은 것들이 작동했습니다. 시각적 백 테스트에서 여러 시간 프레임을 시도하면 주말 동안 "즐거움"을 느낄 것입니다.

안녕 믈라덴

나는 당신이 유용한 프로그래머 중 한 명이라는 것을 알고 있으므로 추가된 지표에서 EA를 만들 수 있는지 묻고 싶습니다. 이것은 다시 칠하지 않고 놀라운 좋은 신호를 전달합니다!

파일:
 

안녕하세요 여러분, pls는 이 코드를 살펴보고 현재 촛불에 경고를 표시하고 화살표를 표시하기 위해 무엇을 할 수 있는지 도와주세요.

미리 감사드립니다

// B83A886A5C437CCD9AC15473FD6F1788

무효 f0_2(문자열 As_0) {

if (IsTesting() == FALSE && IsOptimization() == FALSE && IsVisualMode() == FALSE) SendMail(WindowExpertName(), As_0);

}

// A8CFDE6331BD59EB2AC96F8911C4B666

무효 f0_1(문자열 A_name_0, 문자열 A_text_8, 문자열 A_fontname_16, int A_fontsize_24, 색상 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);

ObjectSet(A_name_0, OBJPROP_CORNER, A_corner_40);

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

무효 f0_0(문자열 As_0, int GetBar) {

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

if (사운드) PlaySound("News.wav");

if (alert) Alert("새 신호 " + As_0+ " @ 기호: "+Symbol()+" & 기간: M"+Period()+" & 시간: "+TimeToString(GetBar,TIME_MINUTES|TIME_SECONDS));

if (email) f0_2("새 신호 " + As_0+ " @ 기호: "+Symbol()+" & 기간: M"+Period()+" & 시간: "+TimeToString(GetBar,TIME_MINUTES|TIME_SECONDS));

}

}

// BE8F80182E0C983916DA7338C2C1C040

int f0_3(문자열 A_name_0, 문자열 A_name_8) {

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 (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) 반환 (1);

}

리턴(0);

}

// E4DB2306E8CC4DEB5830201DE61935CA

더블 f0_4() {

이중 Ld_ret_0 = 0;

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

if (OrderSelect(pos_8, SELECT_BY_POS, MODE_TRADES) == TRUE)

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

}

반환(Ld_ret_0);

}

// EA2B2676C28C0DB26D39331A336C6B92

정수 시작() {

문자열 Ls_0;

이중 iatr_20;

이중 Ld_28;

이중 Ld_36;

정수 시간 표시줄=0;

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

경고 = 거짓;

ObjectDelete("r2");

f0_1("x", "G", "윙딩스", 25, 핑크, 160, 55, 1, FALSE);

PlaySound("Tick.wav");

G_time_192 = 0;

새로 고침 비율();

}

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

소리 = 거짓;

ObjectDelete("t2");

f0_1("x", "G", "윙딩스", 25, 핑크, 160, 55, 1, FALSE);

PlaySound("Tick.wav");

G_time_192 = 0;

새로 고침 비율();

}

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

이메일 = 거짓;

ObjectDelete("u2");

f0_1("x", "G", "윙딩스", 25, 핑크, 160, 55, 1, FALSE);

PlaySound("Tick.wav");

G_time_192 = 0;

새로 고침 비율();

}

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

경고 = 참;

f0_1("r2", "þ", "윙딩스", 14, 빨강, 55, 65, 1, FALSE);

f0_1("x", "G", "윙딩스", 25, 핑크, 160, 55, 1, FALSE);

PlaySound("Tick.wav");

G_time_192 = 0;

새로 고침 비율();

}

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

소리 = 참;

f0_1("t2", "þ", "윙딩", 14, 빨강, 80, 65, 1, FALSE);

f0_1("x", "G", "윙딩스", 25, 핑크, 160, 55, 1, FALSE);

PlaySound("Tick.wav");

G_time_192 = 0;

새로 고침 비율();

}

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

이메일 = 참;

f0_1("u2", "þ", "윙딩", 14, 빨강, 105, 65, 1, FALSE);

f0_1("x", "G", "윙딩스", 25, 핑크, 160, 55, 1, FALSE);

PlaySound("Tick.wav");

G_time_192 = 0;

새로 고침 비율();

}

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

if (G_ibuf_108 < 1000.0) {

TimeBar=시간;

Ls_0 = "구매";

부서지다;

}

if (G_ibuf_112 < 1000.0) {

TimeBar=시간;

Ls_0 = "판매";

부서지다;

}

}

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

f0_0("구매", 타임바);

f0_1("Signal1", "BUY", "Wingdings 3", 30, 흰색, 80, 32, 1, FALSE);

}

if (Ls_0 == "판매" && ObjectDescription("Signal1") != "판매") {

f0_0("판매", 타임바);

f0_1("신호1", "판매", "윙딩 3", 30, 흰색, 80, 25, 1, FALSE);

}

f0_1("r1", "이익", "Arial", 10, 라임, 50, 80, 1, FALSE);

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

if (시간[0] == G_time_192) return (0);

G_time_192 = 시간[0];

int Li_12 = 막대 - IndicatorCounted();

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

for (int bar_16 = 막대; 막대_16 > 0; 막대_16--) {

if (bars_16 <= HistoriBar) {

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

Ld_28 = 닫기 - iATR(NULL, 0, PeriodIndikator, bars_16) * 계수;

Ld_36 = 종가 + iATR(NULL, 0, PeriodIndikator, bars_16) * 계수;

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

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

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

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

if (닫기 < Gd_156 && Gi_180 == 1) {

Gi_180 = 2;

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

Gd_156 = 0;

}

if (닫기 > Gd_148 && Gi_180 == 2) {

Gi_180 = 1;

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

Gd_148 = 1000;

}

}

}

리턴(0);

}

// 52D46093050F38C27267BCE42543EF60

정수 초기화() {

 
wolfsch:
안녕하세요 Mladen 저는 당신이 유용한 프로그래머 중 한 사람임을 알고 있으므로 추가된 지표에서 EA를 만들 수 있는지 묻고 싶습니다. 이것은 다시 칠하지 않고 놀라운 좋은 신호를 전달합니다!

볼프쉬

나는 당신을 실망시켜야하지만 그 표시기는 T3 clean 및 snake 표시기를 사용하고 있습니다. 이제 T3는 다시 칠하지 않습니다. 그러나 "뱀"은 tma의 중심에 있고 다시 계산하여 해당 표시기를 다시 계산하는(다시 칠하는) 종류로 만듭니다.

추신: 실제로 이름이 변경된 "T3 TMA 조합" 표시기이며 "유니 크로스" 표시기로 이름이 변경되었습니다. 이에 대한 자세한 정보는 https://www.mql5.com/en/forum/general 에서 찾을 수 있습니다.

 
emmany4:
안녕하세요 여러분, pls는 이 코드를 살펴보고 현재 촛불에 경고를 표시하고 화살표를 표시하기 위해 무엇을 할 수 있는지 도와주세요.

미리 감사드립니다

// B83A886A5C437CCD9AC15473FD6F1788

무효 f0_2(문자열 As_0) {

if (IsTesting() == FALSE && IsOptimization() == FALSE && IsVisualMode() == FALSE) SendMail(WindowExpertName(), As_0);

}

// A8CFDE6331BD59EB2AC96F8911C4B666

무효 f0_1(문자열 A_name_0, 문자열 A_text_8, 문자열 A_fontname_16, int A_fontsize_24, 색상 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);

ObjectSet(A_name_0, OBJPROP_CORNER, A_corner_40);

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

무효 f0_0(문자열 As_0, int GetBar) {

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

if (사운드) PlaySound("News.wav");

if (alert) Alert("새 신호 " + As_0+ " @ 기호: "+Symbol()+" & 기간: M"+Period()+" & 시간: "+TimeToString(GetBar,TIME_MINUTES|TIME_SECONDS));

if (email) f0_2("새 신호 " + As_0+ " @ 기호: "+Symbol()+" & 기간: M"+Period()+" & 시간: "+TimeToString(GetBar,TIME_MINUTES|TIME_SECONDS));

}

}

// BE8F80182E0C983916DA7338C2C1C040

int f0_3(문자열 A_name_0, 문자열 A_name_8) {

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 (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) 반환 (1);

}

리턴(0);

}

// E4DB2306E8CC4DEB5830201DE61935CA

더블 f0_4() {

이중 Ld_ret_0 = 0;

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

if (OrderSelect(pos_8, SELECT_BY_POS, MODE_TRADES) == TRUE)

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

}

반환(Ld_ret_0);

}

// EA2B2676C28C0DB26D39331A336C6B92

정수 시작() {

문자열 Ls_0;

이중 iatr_20;

이중 Ld_28;

이중 Ld_36;

정수 시간 표시줄=0;

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

경고 = 거짓;

ObjectDelete("r2");

f0_1("x", "G", "윙딩스", 25, 핑크, 160, 55, 1, FALSE);

PlaySound("Tick.wav");

G_time_192 = 0;

새로 고침 비율();

}

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

소리 = 거짓;

ObjectDelete("t2");

f0_1("x", "G", "윙딩스", 25, 핑크, 160, 55, 1, FALSE);

PlaySound("Tick.wav");

G_time_192 = 0;

새로 고침 비율();

}

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

이메일 = 거짓;

ObjectDelete("u2");

f0_1("x", "G", "윙딩스", 25, 핑크, 160, 55, 1, FALSE);

PlaySound("Tick.wav");

G_time_192 = 0;

새로 고침 비율();

}

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

경고 = 참;

f0_1("r2", "þ", "윙딩스", 14, 빨강, 55, 65, 1, FALSE);

f0_1("x", "G", "윙딩스", 25, 핑크, 160, 55, 1, FALSE);

PlaySound("Tick.wav");

G_time_192 = 0;

새로 고침 비율();

}

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

소리 = 참;

f0_1("t2", "þ", "윙딩", 14, 빨강, 80, 65, 1, FALSE);

f0_1("x", "G", "윙딩스", 25, 핑크, 160, 55, 1, FALSE);

PlaySound("Tick.wav");

G_time_192 = 0;

새로 고침 비율();

}

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

이메일 = 참;

f0_1("u2", "þ", "윙딩", 14, 빨강, 105, 65, 1, FALSE);

f0_1("x", "G", "윙딩스", 25, 핑크, 160, 55, 1, FALSE);

PlaySound("Tick.wav");

G_time_192 = 0;

새로 고침 비율();

}

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

if (G_ibuf_108 < 1000.0) {

TimeBar=시간;

Ls_0 = "구매";

부서지다;

}

if (G_ibuf_112 < 1000.0) {

TimeBar=시간;

Ls_0 = "판매";

부서지다;

}

}

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

f0_0("구매", 타임바);

f0_1("Signal1", "BUY", "Wingdings 3", 30, 흰색, 80, 32, 1, FALSE);

}

if (Ls_0 == "판매" && ObjectDescription("Signal1") != "판매") {

f0_0("판매", 타임바);

f0_1("신호1", "판매", "윙딩 3", 30, 흰색, 80, 25, 1, FALSE);

}

f0_1("r1", "이익", "Arial", 10, 라임, 50, 80, 1, FALSE);

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

if (시간[0] == G_time_192) return (0);

G_time_192 = 시간[0];

int Li_12 = 막대 - IndicatorCounted();

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

for (int bar_16 = 막대; 막대_16 > 0; 막대_16--) {

if (bars_16 <= HistoriBar) {

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

Ld_28 = 닫기 - iATR(NULL, 0, PeriodIndikator, bars_16) * 계수;

Ld_36 = 종가 + iATR(NULL, 0, PeriodIndikator, bars_16) * 계수;

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

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

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

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

if (닫기 < Gd_156 && Gi_180 == 1) {

Gi_180 = 2;

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

Gd_156 = 0;

}

if (닫기 > Gd_148 && Gi_180 == 2) {

Gi_180 = 1;

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

Gd_148 = 1000;

}

}

}

리턴(0);

}

// 52D46093050F38C27267BCE42543EF60

정수 초기화() {

Emmany4님, 안녕하세요. 해당 EA의 원본 코드를 찾으면 구매 및 판매에 대한 화살표와 경고를 추가하거나 수정할 수 있지만 해당 버전은 디컴파일됩니다.

 
mrtools:
Emmany4님, 안녕하세요. 해당 EA의 원본 코드를 찾으면 구매 및 판매에 대한 화살표와 경고를 추가하거나 수정할 수 있지만 해당 버전은 디컴파일됩니다.

내가 아는 한 그것은 일부 슈퍼 트렌드 변형(cci 버전이 아닌 atr을 사용하는 코드)의 불완전한 디컴파일된 코드입니다. 다른 건 없습니다. 어쨌든 그 코드는 작동하지 않습니다(많은 부분이 누락됨)