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

 

확실히 문제는 데모 또는 전략 테스터 에 표시되지 않는 실제 계정에서 발생할 수 있지만 일반적으로 반복되지 않고 드물게 발생합니다. 나는 이것을 본 적도 들은 적도 없다.

귀하의 설명에 따르면 문제가 발생할 때 얼마나 많은 거래가 열려 있는지 확인할 수 없습니다. 거래가 열리지 않은 상태에서 오류가 발생하는 경우 이는 미스터리입니다. 5번의 거래가 열려 있을 때 발생하는 경우 문제와 관련이 있을 수 있습니다.

ERR_TRADE_DISABLED 133 거래가 비활성화되었습니다. 모든 거래 시도는 중단되어야 합니다.

이 오류에 대한 문서는 EA가 거래를 하는 방식에 문제가 있음을 나타내는 것 같습니다. 그러나 두 EA가 동일한 OrderSend() 로직을 사용하고 있기 때문에 2개의 EA를 실행하고 있다는 사실과 관련이 있는지 궁금합니다. 일반적으로 모든 경합 문제는 "Trade Context Busy"(146)를 발생시키고 계정 문제는 "Insufficient Funds"(134) 오류를 발생시킵니다. 한 번에 하나의 EA만 실행하고 차이가 있는지 확인하는 것이 좋습니다.

 

아바시스

어리석게 들릴지 모르지만 EA를 컴파일한 것입니다. 맞죠?

컴파일 후에 Experts 폴더에 ex4 파일이 있어야 합니다.

 
michaelB:
어리석게 들릴지 모르지만 EA를 컴파일한 것입니다. 맞죠? 컴파일 후에 Experts 폴더에 ex4 파일이 있어야 합니다.

이건 나도 알아야해

mq4 파일을 전문가 폴더에 붙여넣었는데 MT4를 재시작하면 전문가 폴더에 ex4 파일이 생성되지 않고,

그래서 코드에 오류가 있는지 확인 해야 합니다.

 

IndicatorShortName의 색상을 변경하는 방법

친애하는 이여,

이 줄에 대한 고유한 색상을 코드에 어떻게 추가할 수 있습니까?

IndicatorShortName(GetTimeFrameStr() + " MACD ("+FastEma+","+SlowEma+","+SignalSMMA+")");

왼쪽 위 모서리에 있는 별도의 표시기 창에 있는 작은 정보의 색상을 변경하려면?

푸치오

 

이 코드의 문제점을 알려줄 수 있는 사람이 있습니까?

전문가 폴더에 MQ4 파일을 붙여넣을 때 EX4 파일을 생성하지 않기 때문에 오류가 있습니까?

//+----------------------------------------------- -------------------+

//| 간단한 EA.mq4 |

//| 저작권 © 2011, luktom.biz |

//| www.luktom.biz/ko |

//+----------------------------------------------- -------------------+

#property copyright "Copyright © 2011, luktom.biz."

#속성 링크 "http://www.luktom.biz"

외부 이중 정지 손실 = 300.0;

외부 이중 takeProfit = 500.0;

외부 문자열 시작 = "2: 00";

외부 문자열 종료 = "10:00";

외부 이중 거리 = 60;

부울 isECN = true;

부울 조건 = 거짓;

부울 cond2 = 거짓;

이중 낮은;

더블 하이;

외부 이중 로트 = 0.1;

정수 마법 = 1232344524285020;

int 미끄러짐 = 1;

문자열 주석 = "";

인트 티켓;

int short = 0;

긴 정수 = 0;

//+----------------------------------------------- -------------------+

//| 전문가 초기화 기능 |

//+----------------------------------------------- -------------------+

정수 초기화()

{

//----

//----

(0) 반환;

}

//+----------------------------------------------- -------------------+

//| 전문가 초기화 해제 기능 |

//+----------------------------------------------- -------------------+

정수 초기화()

{

//----

인쇄(countOrders(매직, OP_BUY));

//----

(0) 반환;

}

//+----------------------------------------------- -------------------+

//| 전문가 시작 기능 |

//+----------------------------------------------- -------------------+

정수 시작()

{

인쇄(AccountCurrency());

//----

if (isGoodTime(시작, 끝))

{

짧은 = 0;

긴 = 0;

만약 (! 조건)

{

낮음 = 입찰가

높음 = 묻다;

}

조건 = 참;

if (입찰가 < 낮음) 낮음 = 입찰가

if (Ask > high) high = 묻다;

}

if ((높은-낮은) * 1000 > 거리)

{

조건2 = 참;

}

if(! isGoodTime(시작, 끝))

{

조건 = 거짓;

}

if(! isGoodTime(시작, 끝) & & cond2)

{

if (countOrders(매직, OP_SELL) == 0)

{

if (입찰가 « = (CRL-0.0005) & & short == 0)

{

짧은 + +;

if (isECN == 거짓)

{

OrderSend (Symbol(), OP_SELL, lot, Bid, slippage, sltpValue (Ask + stopLoss * Point, stopLoss), sltpValue (Ask-takeProfit * Point, takeProfit), comment, magic);

}

if (isECN)

{

티켓 = OrderSend (Symbol(), OP_SELL, lot, Bid, slippage, 0,0, comment, magic);

OrderSelect(티켓, SELECT_BY_TICKET);

OrderModify(티켓, OrderOpenPrice(), sltpValue(Ask + stopLoss * Point, stopLoss), sltpValue(Bid-takeProfit * Point, takeProfit), 0);

}

}

}

if (countOrders(매직, OP_BUY) == 0)

{

if ((높은 요청) > = 0.005 & & 긴 = = 0)

{

긴 + +;

if (isECN == 거짓)

{

OrderSend(Symbol(), OP_BUY, lot, Ask, slippage, sltpValue(Ask-stopLoss * Point, stopLoss), sltpValue(Bid + takeProfit * Point, takeProfit), comment, magic);

}

if (isECN)

{

티켓 = OrderSend(Symbol(), OP_BUY, lot, Ask, slippage, 0,0, comment, magic);

OrderSelect(티켓, SELECT_BY_TICKET);

OrderModify(티켓, OrderOpenPrice(), sltpValue(Bid-stopLoss * Point, stopLoss), sltpValue(Ask + takeProfit * Point, takeProfit), 0);

}

}

}

}

//----

(0) 반환;

}

//+----------------------------------------------- -------------------+

bool isGoodTime(문자열, 문자열, 시작, 끝) {

if (TimeCurrent() > 현지 시간(시작) & & TimeCurrent < 현지 시간()(종료)) {

반환(참);

}

반환(거짓);

}

int countOrders (int, int oMagic oType) {

정수 개수 = 0;

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

if (OrderSelect (i, SELECT_BY_POS)) {

if (OrderMagicNumber () == oMagic) {

if (OrderSymbol() = 기호()) {

if (OrderType() == oType || oType < 0) {

카운트 ++;

}

}

}

}

}

반환(카운트);

}

이중 sltpValue (이중, int w1 w2)

{

만약 (w2 = = 0)

리턴(0);

반환(NormalizeDouble(w1, 숫자));

}

 
Avasys:
이 코드의 문제점을 알려줄 수 있는 사람이 있습니까?

전문가 폴더에 MQ4 파일을 붙여넣을 때 EX4 파일을 생성하지 않기 때문에 오류가 있습니까?

이거 어디서 구하셨는지 알려주실 수 있나요?

에아가 뒤죽박죽인 것 같습니다. 예를 들어 isGoodTime 함수 의 정의가 있는 129행에서 다음을 볼 수 있습니다.

bool isGoodTime(문자열, 문자열, 시작, 끝)

그것은해야한다:

bool isGoodTime(문자열 시작, 문자열 끝)

ea에는 그런 오류가 많이 있습니다. 코드가 불완전하거나 이와 같은 코드 변경으로 보호되어 이 소스를 쓸모없게 만드는 것처럼 보입니다.

 
Kalenzo:
이거 어디서 구하셨는지 알려주실 수 있나요?

에아가 뒤죽박죽인 것 같습니다. 예를 들어 isGoodTime 함수의 정의가 있는 129행에서 다음을 볼 수 있습니다.

bool isGoodTime(문자열, 문자열, 시작, 끝)

그것은해야한다:

bool isGoodTime(문자열 시작, 문자열 끝)

ea에는 그런 오류가 많이 있습니다. 코드가 불완전하거나 이와 같은 코드 변경으로 보호되어 이 소스를 쓸모없게 만드는 것처럼 보입니다.

[lang=pl]저는 작가입니다. Avasys용 mq4 파일을 첨부합니다. 코드 함수 isGoodTime에서 누가 변경하지 않습니다. 내 터미널에서 작동합니다. Avasys 왜 그렇게 긴장해??

문제가 있으면 포럼에서 이에 대해 이야기하는 대신 저에게 연락하십시오.[/lang]

파일:
 
g.pociejewski:
[lang=pl]저는 작가입니다. Avasys용 mq4 파일을 첨부합니다. 나는 코드 함수 isGoodTime에서 누가 변경하지 않습니다. 내 터미널에서 작동합니다. Avasys 왜 그렇게 긴장해?? 문제가 있으면 포럼에서 이에 대해 이야기하는 대신 저에게 연락하십시오.[/lang]

나는 긴장하지 않습니다, 나는 포럼에서 당신을 찾을 수 없습니다

이 EA는 잘 작동하지만 하루에 여러 번 거래합니다. 그래서 내 걱정은 EA에게 하루에 한 번만 거래하도록 요청하는 것이 었습니다.

 
CodeMeister:
확실히 문제는 데모 또는 전략 테스터에 표시되지 않는 실제 계정에서 발생할 수 있지만 일반적으로 반복되지 않고 드물게 발생합니다. 나는 이것을 본 적도 들은 적도 없다.

귀하의 설명에 따르면 문제가 발생할 때 얼마나 많은 거래가 열려 있는지 확인할 수 없습니다. 거래가 열리지 않은 상태에서 오류가 발생하는 경우 이는 미스터리입니다. 5번의 거래가 열려 있을 때 발생하는 경우 문제와 관련이 있을 수 있습니다.

ERR_TRADE_DISABLED 133 거래가 비활성화되었습니다. 모든 거래 시도는 중단되어야 합니다.

이 오류에 대한 문서는 EA가 거래를 하는 방식에 문제가 있음을 나타내는 것 같습니다. 그러나 두 EA가 동일한 OrderSend() 로직을 사용하고 있기 때문에 2개의 EA를 실행하고 있다는 사실과 관련이 있는지 궁금합니다. 일반적으로 모든 경합 문제는 "Trade Context Busy"(146)를 발생시키고 계정 문제는 "Insufficient Funds"(134) 오류를 발생시킵니다. 한 번에 하나의 EA만 실행하고 차이가 있는지 확인하는 것이 좋습니다.

문제가 있는 EA는 한 번에 하나의 거래만 엽니다. 오류가 발생했을 때 열린 다른 거래가 없습니다. 하나의 EA만 실행하여 도움이 되는지 확인하겠습니다. 조언 해주셔서 감사합니다.

 

MT4 라벨 읽는 방법

이봐,

내 EA가 OBJ_LABEL에서 값을 선택할 수 있도록 표시기를 수정하고 값이 있는 OBJ_LABEL 개체 를 만들었습니다. 이 값은 가격 포인트이며 표시기에서 이 값을 유지하기 위해 다른 버퍼를 생성할 수 없으므로 이 레이블에 배치했습니다. 좋은 솔루션처럼 보이지만 EA의 MT4에서 레이블을 읽는 방법을 알 수 없습니다!! GETOBJECT 함수를 사용하지만 특정 속성만 반환하고 레이블 또는 텍스트 개체의 텍스트 값은 그 중 하나가 아닙니다!!

누구든지 여기에서 나를 도울 수 있습니까?

감사해요!