오류, 버그, 질문 - 페이지 123

 

개발자가 알아낼 수 있도록 하십시오. 여기에 이 스크립트의 3번 실행 화면이 있습니다.

불행히도 그것은 나를 위해 작동하지 않습니다

 
Prival :

버그 - 이전에는 작동했지만 지금은 작동하지 않습니다.

메시지 주셔서 감사합니다.

추구합니다.

 

PrintCheckResult 메서드에서 작은 버그를 찾았습니다(Trade.mqh 파일, Trade 클래스, CTrade 클래스).

무효 CTrade::PrintCheckResult(무효) const
{
printf("검사결과");
// printf("%d,%f,%f,%f,%f,%f,%f,'%s'", - 끝에서 두 번째 매개변수가 중복됨
printf("%d,%f,%f,%f,%f,%f,'%s'",
m_check_result.retcode,m_check_result.balance,m_check_result.equity,
m_check_result.margin,m_check_result.margin_free,m_check_result.margin_level,
m_check_result.comment);
}

줄 대신: printf("%d,%f,%f,%f,%f,%f,%f,'%s'", 내가 주석 처리함

라인이어야 합니다: printf("%d,%f,%f,%f,%f,%f,'%s'",

확인하면 수정된 기능이 올바르게 작동합니다.

 
Prival :

버그 - 이전에는 작동했지만 지금은 작동하지 않습니다.

메시지 주셔서 감사합니다. 다음 업데이트에서 사용할 수 있습니다. 현재 버전에서 작동하도록 하려면 일반적으로 상수 또는 곱셈에 대해 명시적 캐스팅을 사용하세요.

void OnStart()
  {
  // вот так работает
     Print(TimeCurrent()+2*PeriodSeconds(PERIOD_D1));
  // а вот так нет (а раньше работало)  
     datetime    time_end=0;
     time_end=TimeCurrent()+ (long) 2*PeriodSeconds(PERIOD_D1);
     Print(time_end);
  }
 
retired :

PrintCheckResult 메서드에서 작은 버그를 찾았습니다(Trade.mqh 파일, Trade 클래스, CTrade 클래스).


메시지 주셔서 감사합니다.

곧 수정됩니다.

 
mql5 :

메시지 주셔서 감사합니다. 다음 업데이트에서 사용할 수 있습니다. 현재 버전에서 작동하도록 하려면 일반적으로 상수 또는 곱셈에 대해 명시적 캐스팅을 사용하세요.

고맙습니다. 내가 올바르게 이해했다면 이것은 유형 캐스팅 때문이었습니다. 컴파일시 이런 메시지가 없는게 아쉽네요, 찾기 쉬울꺼에요
Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Основы языка / Типы данных / Приведение типов - Документация по MQL5
 
Prival :
고맙습니다. 내가 올바르게 이해했다면 이것은 유형 캐스팅 때문이었습니다. 컴파일시 이런 메시지가 없는게 아쉽네요, 찾기 쉬울꺼에요
귀하의 코드는 정확합니다. 맹세할 것은 없습니다. 오류는 실제로 x64에서 피연산자를 캐스팅하는 데 있으며 수정되었습니다. 업데이트를 기다리십시오.
 

ENUM_TRADE_RETURN_CODES 오류를 올바르게 처리하려면 오류를 올바르게 해석해야 합니다. 자세한 설명에 자료가 있습니까?

특히 다음 오류는 완전히 이해되지 않습니다.

10008

TRADE_RETCODE_PLACED

주문 완료

10021

TRADE_RETCODE_PRICE_OFF

요청을 처리할 따옴표가 없습니다.


10028

TRADE_RETCODE_LOCKED

처리를 위해 차단된 요청

10029

TRADE_RETCODE_FROZEN

주문 또는 위치가 동결됨

누구든지 이 질문에 도움을 줄 수 있습니까?

 
retired :

ENUM_TRADE_RETURN_CODES 오류를 올바르게 처리하려면 오류를 올바르게 해석해야 합니다. 자세한 설명에 자료가 있습니까?

특히 다음 오류는 완전히 이해되지 않습니다.

10008

TRADE_RETCODE_PLACED

주문 완료

10021

TRADE_RETCODE_PRICE_OFF

요청을 처리할 따옴표가 없습니다.


10028

TRADE_RETCODE_LOCKED

처리를 위해 차단된 요청

10029

TRADE_RETCODE_FROZEN

주문 또는 위치가 동결됨

누구든지 이 질문에 도움을 줄 수 있습니까?

위의 모든 것은 서버가 터미널 요청에 대한 응답으로 반환하는 코드를 나타냅니다. 따라서 "무역 서버 반환 코드" 섹션에 모든 것이 제공됩니다.

목록에 오류만 포함되어 있지 않다고 가정하는 것이 논리적일 것입니다.

이제 순서대로

에 관하여

10008

TRADE_RETCODE_PLACED

주문 완료


이 응답이 단순한 오류가 아니라 단순히 주문이 성공적으로 배치되었음을 클라이언트(거래 터미널)에 알리는 것이라고 가정하는 것이 논리적입니다.

이 경우 세 가지 방법으로 수행할 수 있습니다.

1. 응답을 전혀 처리하지 마십시오.

2. OnTrade() 블록에서 주문하는 프로세스 - 상당히 수용 가능하지만 제 생각에는 그다지 올바른 옵션이 아닙니다.

3. 주문한 곳에서 답변 처리 - 제 생각에는 기계 거래를 처리하는 가장 최적의 방법입니다.

추신

나는 거래 작업이 수행 된 장소에서 서버의 응답을 처리하고 상인, 서버 또는 기타 Expert Advisors의 행동 결과를 포착하기 위해 OnTrade()에서 처리하는 것을 선호합니다.

예를 들어, OnTrade에서 거래자의 거래 작업(주문 배치 또는 삭제, 포지션 작업)을 파악할 수 있습니다.


에 관하여


10029

TRADE_RETCODE_FROZEN

주문 또는 위치가 동결됨


특정 수준에 도달하면 위치 또는 주문이 "동결"됩니다(이와 관련된 모든 작업은 금지됨).

이 수준은 서버가 주문 또는 위치에 대한 모든 작업을 금지하는 현재 가격까지의 거리를 나타냅니다. 이 거리는 포인트로 측정되며 각 문자에 대해 설정됩니다.

SYMBOL_TRADE_FREEZE_LEVEL 매개변수 와 함께 SymbolInfoInteger() 사용하여 찾을 수 있습니다 .

서버에서 이러한 응답을 받은 경우 다음 두 가지 중 하나가 발생할 때까지 기다려야 합니다.

1. 가격은 필요한 거리( 심볼의 속성에 표시된 것보다 큼)로 이동하지 않습니다 .

2. 순서나 위치는 그 안에 명시된 조건을 충족하지 않습니다.


에 관하여

10021

TRADE_RETCODE_PRICE_OFF

요청을 처리할 따옴표가 없습니다.


아마도 그러한 응답을 받았을 때 기호의 이름을 확인하고(만일을 대비하여) 기호가 선택되어 있는지(테스터 및 만화와 관련이 있음), 다음을 포함한 이력이 있는지 확인해야 합니다. 서버(업로드해야 하는 경우), 아마도 시장이 열려 있고 상품에서 거래가 가능한지 확인하십시오.

추신

여기에서 개발자와 명확히해야하지만


스윙은 무엇입니까

10028

TRADE_RETCODE_LOCKED

처리를 위해 차단된 요청


이것은 아마도 위에 나열된 서버 응답 중 가장 구체적일 것입니다. 여기, 아마도 개발자의 설명이 필요할 것입니다 (특정 시간 동안 기다릴 가치가 가장 크다고 가정 할 것입니다) ...

 
Interesting :

에 관하여


10029

TRADE_RETCODE_FROZEN

주문 또는 위치가 동결됨


특정 수준에 도달하면 위치 또는 주문이 "동결"됩니다(이와 관련된 모든 작업은 금지됨).

이 수준은 서버가 주문 또는 위치에 대한 모든 작업을 금지하는 현재 가격까지의 거리를 나타냅니다. 이 거리는 포인트로 측정되며 각 문자에 대해 설정됩니다.

SYMBOL_TRADE_FREEZE_LEVEL 매개변수 와 함께 SymbolInfoInteger() 사용하여 찾을 수 있습니다 .

서버에서 이러한 응답을 받은 경우 다음 두 가지 중 하나가 발생할 때까지 기다려야 합니다.

1. 가격은 필요한 거리( 심볼의 속성에 표시된 것보다 큼)로 이동하지 않습니다 .

2. 순서나 위치는 그 안에 명시된 조건을 충족하지 않습니다.


자세한 답변 감사합니다. 코드 "10029: TRADE_RETCODE_FROZEN: 주문 또는 위치가 동결됨"은 이해할 수 있습니다.

그러나 나머지에 대한 질문은 남아 있습니다(가정이 아닌 정확한 답변을 듣고 싶습니다).

10008

TRADE_RETCODE_PLACED

주문 완료

10021

TRADE_RETCODE_PRICE_OFF

요청을 처리할 따옴표가 없습니다.


10028

TRADE_RETCODE_LOCKED

처리를 위해 차단된 요청

특히 "10008: 주문 완료"가 무엇을 의미하는지 완전히 명확하지 않습니다. 주문이 서버에 대기할 때 티켓이 할당되고 코드 "10009: TRADE_RETCODE_DONE: 주문 완료"가 반환되기 때문입니다.