오류 4756 - 페이지 3

 
BHC :

내 EA에서 빌드 778에서 이상한 오류가 발생했습니다. 볼륨 0.1은 정규화되었으며 분명히 유효하지 않습니다.

Silver의 기호 속성을 확인하고 SYMBOL_VOLUME_MIN 및 SYMBOL_VOLUME_STEP 이 무엇인지 알려주십시오. 정규화만으로는 항상 충분하지 않습니다. 예를 들어 볼륨 단계가 0.5인 경우 정규화는 도움이 되지 않습니다.
 
RaptorUK :
Silver의 기호 속성을 확인하고 SYMBOL_VOLUME_MIN 및 SYMBOL_VOLUME_STEP 이 무엇인지 알려주십시오. 정규화만으로는 항상 충분하지 않습니다. 예를 들어 볼륨 단계가 0.5인 경우 정규화는 도움이 되지 않습니다.

이 소스

 Print ( " volume step: " , SymbolInfoDouble (_trade_symbol, SYMBOL_VOLUME_STEP ), ", volume minimum: " , ", " , SymbolInfoDouble (_trade_symbol, SYMBOL_VOLUME_MIN )); return ;
         

테스터 로그에 이것을 제공합니다 ...

2013.03.12 12:46:01 코어 1 2013.01.23 13:32:59 볼륨 단계: 0.1, 볼륨 최소: , 0.1

 
BHC :

이 소스

테스터 로그에 이것을 제공합니다 ...

2013.03.12 12:46:01 코어 1 2013.01.23 13:32:59 볼륨 단계: 0.1, 볼륨 최소: , 0.1

문제는 오류 보고에 있을 수 있으며 mql5로 확인 하지 않았지만 mql4에서는 작동하지 않습니다. . .

 if (_result.retcode != ( 0 || TRADE_RETCODE_PLACED || TRADE_RETCODE_DONE ))

대신 이것을 시도하십시오. .

 if ( _result.retcode != 0 && _result.retcode != TRADE_RETCODE_PLACED && _result.retcode != TRADE_RETCODE_DONE )
 
그것은 오류를 제거했습니다! 고마워
 
BHC :
그것은 오류를 제거했습니다! 고마워
 if (_result.retcode != ( 0 || TRADE_RETCODE_PLACED || TRADE_RETCODE_DONE ))

이 구문이 유효한 언어가 있습니까?

 
나는 실제로 그것을 본 적이 없습니다 ... 나는 이것을 누군가의 ordercheck 구현에서 얻은 것 같습니다. 이 사이트에 있던데...
 
angevoyageur :

이 구문이 유효한 언어가 있습니까?

아마도 변수가 bool 유형이라면 의미가 있을 수 있습니다. 나는 몇몇 사람들이 mql4 포럼에서 비슷한 일을 하는 것을 보았는데, 그것은 범하기 쉬운 실수입니다.
 
RaptorUK :
이것이 당신이 찾은 스레드입니까? https://www.mql5.com/en/forum/10850 내가 겪고있는 것과 동일한 문제를보고합니다.

이 스레드를 보지 못했습니다.

솔루션은 내가 말했듯이 OnTradeTransaction() 이벤트 핸들러를 사용하는 것입니다(이 코드를 있는 그대로 사용하지 마십시오. 시험 및 테스트용입니다).

 void OnTradeTransaction( const MqlTradeTransaction& trans,
                         const MqlTradeRequest & request,
                         const MqlTradeResult & result)
                        {

     if (trans.type == TRADE_TRANSACTION_DEAL_ADD) {

         if (execution == SYMBOL_TRADE_EXECUTION_MARKET ) {
             if (!trade.PositionModify( _Symbol , _sl, _tp))
                 if (debugMode) {
                     Print ( "Modify SL & TP failed. Return code=" , trade.ResultRetcode(), ". Code description: " , trade.ResultRetcodeDescription());
                     Print ( "Deal ticket : " , trans.deal);
                }
             else
                 if (debugMode) Print ( "Modify SL & TP executed successfully. Return code=" , trade.ResultRetcode(), " (" , trade.ResultRetcodeDescription(), ")" );
        }

    }
}   

작동 중입니다. _sl 및 _tp는 전역 변수이므로 로컬에서 처리하는 것이 좋습니다. trade는 CTrade 클래스 유형입니다. OrderSend()로 같은 작업을 수행할 수 있다고 가정합니다.

 
angevoyageur :

이 스레드를 보지 못했습니다.

솔루션은 내가 말했듯이 OnTradeTransaction() 이벤트 핸들러를 사용하는 것입니다(이 코드를 그대로 사용하지 마십시오. 시험 및 테스트용입니다):

작동 중입니다. _sl 및 _tp는 전역 변수이므로 로컬에서 처리하는 것이 좋습니다. trade는 CTrade 클래스 유형입니다. OrderSend()로 같은 작업을 수행할 수 있다고 가정합니다.

나는 기본을 배우기 위해 CTrade 클래스에서 멀리 떨어져 있고 OOP를 사용한 적이 없으므로 클래스, 구조 등은 모두 mql5로 학습 곡선의 일부입니다.

나는 OnTradeTransaction()이 해결 방법을 제공할 것이라고 확신하지만, 내가 작업하고 있는 간단한 EA에도 사용하기에는 상당히 끔찍한 것 같습니다. OrderSend() 및 내 생각에는 Strategy Tester에서 동일한 문제를 보았음을 확인할 수 있습니다. 이것이 정확히 어떻게 발생할 수 있는지는 확실하지 않습니다. 오류 보고를 추가하여 다시 시도하겠습니다.

 
RaptorUK :

나는 기본을 배우기 위해 CTrade 클래스에서 멀리 떨어져 있고 OOP를 사용한 적이 없으므로 클래스, 구조 등은 모두 mql5로 학습 곡선의 일부입니다.

나는 OnTradeTransaction()이 해결 방법을 제공할 것이라고 확신하지만, 내가 작업하고 있는 간단한 EA에도 사용하기에는 상당히 끔찍한 것 같습니다. OrderSend() 및 내 생각에는 Strategy Tester에서 동일한 문제를 보았음을 확인할 수 있습니다. 이것이 정확히 어떻게 발생할 수 있는지는 확실하지 않습니다. 오류 보고를 추가하여 다시 시도하겠습니다.

OOP에 대한 귀하의 입장을 이해합니다. 나는 항상 "전통적인" 접근 방식보다 더 많은 시간이 걸리며 대규모(또는 중간) 프로젝트에 정말 유용합니다.

우리 문제에 대한 "고전적인" 솔루션이 있는지 알고 싶습니다.