코딩하는 방법? - 페이지 24

 

감사합니다

감사합니다. 당신은 인생의 맛

 
BC Brett:
답변이 되었으면 합니다.

방금 첫 번째 EA 작성을 마치고 Strategy Tester에서 테스트해 보았습니다.

ST 저널에 오류가 표시되어 문제를 디버깅하기 위해 EA의 인쇄 기능을 사용해 보았습니다. 지금까지 이 방법으로 몇 가지 버그를 해결했지만 프로세스가 느립니다.

편집 메뉴의 메타 편집기에 "toggle breakpoint"가 존재합니다... 중단점을 사용하려면?

 

참고용:

- 이메일 기능에 대한 스레드(코딩 방법) https://www.mql5.com/en/forum/174336

- 일부 도구가 포함된 좋은 기사 https://www.mql5.com/en/forum/176053

 

브로커의 보이지 않는 TP 및 SL 코드

여러분, 안녕하세요,

브로커가 SL을 노리는 편집증과 TP를 피하기 위해 스프레드를 확대하면서 브로커로부터 TP와 SL을 숨기는 방법에 대한 정보를 찾고 있습니다.

브로커에게 TP와 SL을 제출하면 연결이 끊긴 경우 주문이 "안전"하다는 것을 알고 있습니다. 정보를 원격으로 보유하는 동안 연결이 끊어지면 막대한 손실의 위험이 있습니다.

TP 및 SL을 브로커로부터 숨기는 방법에 대한 EA 또는 코드 예제가 있는 사람이 있습니까?

감사해요!

마이크

 

이 EA가 있습니다

안녕 MikeP

나는 이 EA가 당신이 찾고 있는 것을 담고 있다고 생각합니다. 이것이 당신이 찾고 있는 것이면 저에게 PM을 보내주십시오. 이것에 대해 다른 생각이 있습니다.

파일:
jlpigrid.mq4  8 kb
 

코드 단순화를 위한 도움말

안녕하세요!

저는 프로 코더가 아닙니다(아래 참조!). 이 코드는 잘 작동하지만 단순화할 수 있습니까? 예를 들어 while/for 주기로? 가장 가벼운 코드를 원합니다! 이것은 매우 "무거우며" "내부 스택 오버플로-프로그램을 단순화하십시오." 오류가 발생합니다!!!

별도의 창에 표시되는 표시기입니다.

예제 코드에서는 멀티 TF에 대한 MA의 위 또는 아래를 표시합니다.

당신의 도움을 주셔서 감사합니다.

int start()

{

string MAfast_Trend_1, MAfast_Trend_5, MAfast_Trend_15;

double x;

color color_indic;

// period M1

double FastMA_1_1 = iMA(NULL,PERIOD_M1,FastMAPeriod,0,MAMethod,MAPrice,MAShift);

double FastMA_2_1 = iMA(NULL,PERIOD_M1,FastMAPeriod,0,MAMethod,MAPrice,MAShift+1);

if ((FastMA_1_1 > FastMA_2_1)) { MAfast_Trend_1 = "UP"; x = 256; color_indic = Lime; }

if ((FastMA_1_1 < FastMA_2_1)) { MAfast_Trend_1 = "DOWN"; x = 246; color_indic = Red; }

ObjectCreate("Trend_MAfast_1", OBJ_LABEL, WindowFind("xxxxxxx"), 0, 0);

ObjectSetText("Trend_MAfast_1",MAfast_Trend_1,7, "Verdana", color_indic);

ObjectSet("Trend_MAfast_1", OBJPROP_CORNER, 0);

ObjectSet("Trend_MAfast_1", OBJPROP_XDISTANCE, x);

ObjectSet("Trend_MAfast_1", OBJPROP_YDISTANCE, 22);

// period M5

double FastMA_1_5 = iMA(NULL,PERIOD_M5,FastMAPeriod,0,MAMethod,MAPrice,MAShift);

double FastMA_2_5 = iMA(NULL,PERIOD_M5,FastMAPeriod,0,MAMethod,MAPrice,MAShift+1);

if ((FastMA_1_5 > FastMA_2_5)) { MAfast_Trend_5 = "UP"; x = 256; color_indic = Lime; }

if ((FastMA_1_5 < FastMA_2_5)) { MAfast_Trend_5 = "DOWN"; x = 246; color_indic = Red; }

ObjectCreate("Trend_MAfast_5", OBJ_LABEL, WindowFind("xxxxxxx"), 0, 0);

ObjectSetText("Trend_MAfast_5",MAfast_Trend_5,7, "Verdana", color_indic);

ObjectSet("Trend_MAfast_5", OBJPROP_CORNER, 0);

ObjectSet("Trend_MAfast_5", OBJPROP_XDISTANCE, x);

ObjectSet("Trend_MAfast_5", OBJPROP_YDISTANCE, 37);

// period M15

double FastMA_1_15 = iMA(NULL,PERIOD_M15,FastMAPeriod,0,MAMethod,MAPrice,MAShift);

double FastMA_2_15 = iMA(NULL,PERIOD_M15,FastMAPeriod,0,MAMethod,MAPrice,MAShift+1);

if ((FastMA_1_15 > FastMA_2_15)) { MAfast_Trend_15 = "UP"; x = 256; color_indic = Lime; }

if ((FastMA_1_15 < FastMA_2_15)) { MAfast_Trend_15 = "DOWN"; x = 246; color_indic = Red; }

ObjectCreate("Trend_MAfast_15", OBJ_LABEL, WindowFind("xxxxxxx"), 0, 0);

ObjectSetText("Trend_MAfast_15",MAfast_Trend_15,7, "Verdana", color_indic);

ObjectSet("Trend_MAfast_15", OBJPROP_CORNER, 0);

ObjectSet("Trend_MAfast_15", OBJPROP_XDISTANCE, x);

ObjectSet("Trend_MAfast_15", OBJPROP_YDISTANCE, 52);

etc ...............

return(0);

}
 

코드 도움말? 양초당 하나의 거래만 가능

나는 촛불 당 하나의 거래를 취하도록 내 ea를 제한하려고합니다. 나는 추세에 대한 가격 급등에서 지표가 뒤처지면서 여러 거래를 잃고 있음을 발견했습니다.

이전에 코드를 본 적이 있지만 찾을 수 없습니다. 누구든지 올바른 코드가 있는 ea를 알려주거나 코드가 어떻게 수행되는지 보여줄 수 있다면.

그것은 UniversalMa ea에서 이루어지지만 거기에서는 나에게 그렇게 명확하지 않습니다.

도움을 주시면 감사하겠습니다.

 

여기에 있습니다 https://www.mql5.com/en/forum/173026

이 스레드에서 모든 기능을 수집 중입니다. https://www.mql5.com/en/forum/174329

 

다시 한번 감사합니다

안녕하세요 NewDigital, 항상 신속한 답변에 감사드립니다.

건배

 

다음은 코드를 단순화하는 몇 가지 방법입니다.

개별 지표 값을 기능 으로 교체

이중 FastMA_1_5 = iMA(NULL,PERIOD_M5,FastMAPeriod,0,MAMethod,MAPrice,MAShift);

이중 FastMA_1_15 = iMA(NULL,PERIOD_M15,FastMAPeriod,0,MAMethod,MAPrice,MAShift);

.... 추가된 기능으로 이것으로 바꾸세요

maVal(5,1);

maVal(15,1);

그들이 호출하는 기능은 다음과 같습니다.

이중 maVal(int tf, int shift)

{

반환(iMA(NULL,tf,FastMAPeriod,0,MAMethod,MAPrice,shift));

}

* * * * * * * * * * * * * * * * * * * * * * *

또한 문자열 변수와 같은 다른 개별 변수를 문자열 배열로 교체하십시오. 배열은 루프에서 매우 훌륭하게 작동하며 선언할 선언이 적기 때문에 코드를 단순화합니다.

문자열 MAfast_Trend_1, MAfast_Trend_5, MAfast_Trend_15;

....이 된다.....

문자열 MAfast_Trend [3];