귀하의 코드를 시도해 보았는데 OnInit ()에 그 목적을 이해하지 못하는 코드가 약간 있습니다:
//--- 가격이 4자리 대신 5자리 또는 3자리인 통화쌍을 처리해 보겠습니다.
STP = StopLoss;
TKP = 테이크프로핏;
if(_Digits==5 || _Digits==3)
{
STP = STP*10;
TKP = TKP*10;
}
이 부분은 테이크프로핏과 스톱로스 핍의 값을 수정하기 때문에 입력값과 실제 사용 중인 값 사이에 차이가 발생합니다.
그러나 if 안에 있는 두 줄을 제거하면 주문을 서버로 보낼 때 종종 오류 10016(유효하지 않은 스톱)이 발생합니다. 첫 번째 주문 시도는 잘 진행되어 10009가 표시되지만 다음 번에는 대부분 10016이 표시됩니다. EA를 디버깅했는데 모든 손절매와 이익 실현은 현재 가격보다 30 또는 300 핍 위 또는 아래에서 손절매 30 또는 300, 이익 실현 100 또는 1000 핍의 차이로 괜찮은 것 같습니다.
STP와 TKP에 10을 곱하지 않을 때 서버에서 오류 10016이 발생하는 이유를 찾을 수 없습니다.
누구든지 _자리가 5 또는 3 일 때 오류가 발생하는 이유 또는 10을 곱하는 목적을 설명해 줄 수 있습니까?
이 부분은 테이크프로핏과 스톱로스 핍의 값을 수정하기 때문에 입력값과 실제 사용 중인 값 사이에 차이가 발생합니다.
그러나 if 안에 있는 두 줄을 제거하면 주문을 서버로 보낼 때 종종 오류 10016(유효하지 않은 스톱)이 발생합니다. 첫 번째 주문 시도는 잘 진행되어 10009가 표시되지만 다음 번에는 대부분 10016이 표시됩니다. EA를 디버깅했는데 모든 손절매와 이익 실현은 현재 가격보다 30 또는 300 핍 위 또는 아래에서 손절매 30 또는 300, 이익 실현 100 또는 1000 핍의 차이로 괜찮은 것 같습니다.
STP와 TKP에 10을 곱하지 않을 때 서버에서 오류 10016이 발생하는 이유를 찾을 수 없습니다.
누구든지 _자리가 5 또는 3 일 때 오류가 발생하는 이유 또는 10을 곱하는 목적을 설명해 줄 수 있습니까?
도와주셔서 감사합니다.
안녕하세요,
먼저 귀하의 설명에서 해당 코드 줄을 제거했을 때 오류가 발생하고 손절 / 이익 실현 값에 10을 곱하지 않았을 때 오류가 발생합니까? 이 코드 줄이 매우 중요하다는 것을 설명한 것 같습니다.
기사로 돌아가서 소수점 다섯 자리(0.XXXXX) 또는 소수점 세 자리(0.XXX) 통화쌍이 있는 차트를 사용하는 경우 이러한 코드 줄이 필요하다고 설명했습니다.
따라서 여기서는 EA가 모든 브로커에서 잘 작동하는지 확인하고자 합니다.Digits 또는 Digits()는현재 차트 심볼의 가격 정확도를 결정하는 십진수 자릿수를 반환합니다. 5자리 또는 3자리 가격 차트의 경우 스톱로스와 테이크프로핏에 10을 곱합니다.
if(mresult.retcode==10009 || mresult.retcode==10008) //Request is completed or order placed { Alert("A Buy order has been successfully placed with Ticket#:",mresult.order,"!!"); } else { Alert("The Buy order request could not be completed -error:",GetLastError()); // line 223 ResetLastError(); // line 224 return; }
MQL5 프로그래밍에 대한 모든 변경 사항으로 인해이 단계별 코드의 업데이트 된 버전이 필요합니다.이 코드를 복사하면 더 이상 컴파일되지 않습니다 - 최신 변경 사항이 포함 된 버전이 있습니까 - 많은 감사합니다.
안녕하세요 마이클,
의견을 보내 주셔서 감사합니다. 제안하신 내용을 검토하여 코드에 대한 업데이트가 필요한 경우 곧 제공될 수 있도록 하겠습니다.
왜 출력 오류 코드: 10030 ?
도와주세요, 여기 아무도 없나요?
왜 출력 오류 코드: 10030 ?
우선 기사에 감사드립니다. mql5 프로그래밍을 시작하는 데 도움이됩니다.
귀하의 코드를 시도해 보았는데 OnInit ()에 그 목적을 이해하지 못하는 코드가 약간 있습니다:
//--- 가격이 4자리 대신 5자리 또는 3자리인 통화쌍을 처리해 보겠습니다.
STP = StopLoss;
TKP = 테이크프로핏;
if(_Digits==5 || _Digits==3)
{
STP = STP*10;
TKP = TKP*10;
}
이 부분은 테이크프로핏과 스톱로스 핍의 값을 수정하기 때문에 입력값과 실제 사용 중인 값 사이에 차이가 발생합니다.
그러나 if 안에 있는 두 줄을 제거하면 주문을 서버로 보낼 때 종종 오류 10016(유효하지 않은 스톱)이 발생합니다. 첫 번째 주문 시도는 잘 진행되어 10009가 표시되지만 다음 번에는 대부분 10016이 표시됩니다. EA를 디버깅했는데 모든 손절매와 이익 실현은 현재 가격보다 30 또는 300 핍 위 또는 아래에서 손절매 30 또는 300, 이익 실현 100 또는 1000 핍의 차이로 괜찮은 것 같습니다.
STP와 TKP에 10을 곱하지 않을 때 서버에서 오류 10016이 발생하는 이유를 찾을 수 없습니다.
누구든지 _자리가 5 또는 3 일 때 오류가 발생하는 이유 또는 10을 곱하는 목적을 설명해 줄 수 있습니까?
도와주셔서 감사합니다.
도와주세요, 여기 아무도 없나요?
왜 출력 오류 코드: 10030 ?
안녕하세요,
어떻게 오류가 발생했는지 알려주시겠어요?
eshelios.sr:
먼저 기사에 감사드립니다. mql5 프로그래밍을 시작하는 데 도움이되고 있습니다.
코드를 사용해 봤는데 OnInit()의 목적을 이해하지 못하는 코드가 약간 있습니다:
//--- 가격이 4자리 대신 5자리 또는 3자리인 통화쌍을 처리해 보겠습니다.
STP = StopLoss;
TKP = 테이크프로핏;
if(_Digits==5 || _Digits==3)
{
STP = STP*10;
TKP = TKP*10;
}
이 부분은 테이크프로핏과 스톱로스 핍의 값을 수정하기 때문에 입력값과 실제 사용 중인 값 사이에 차이가 발생합니다.
그러나 if 안에 있는 두 줄을 제거하면 주문을 서버로 보낼 때 종종 오류 10016(유효하지 않은 스톱)이 발생합니다. 첫 번째 주문 시도는 잘 진행되어 10009가 표시되지만 다음 번에는 대부분 10016이 표시됩니다. EA를 디버깅했는데 모든 손절매와 이익 실현은 현재 가격보다 30 또는 300 핍 위 또는 아래에서 손절매 30 또는 300, 이익 실현 100 또는 1000 핍의 차이로 괜찮은 것 같습니다.
STP와 TKP에 10을 곱하지 않을 때 서버에서 오류 10016이 발생하는 이유를 찾을 수 없습니다.
누구든지 _자리가 5 또는 3 일 때 오류가 발생하는 이유 또는 10을 곱하는 목적을 설명해 줄 수 있습니까?
도와주셔서 감사합니다.
안녕하세요,
먼저 귀하의 설명에서 해당 코드 줄을 제거했을 때 오류가 발생하고 손절 / 이익 실현 값에 10을 곱하지 않았을 때 오류가 발생합니까? 이 코드 줄이 매우 중요하다는 것을 설명한 것 같습니다.
기사로 돌아가서 소수점 다섯 자리(0.XXXXX) 또는 소수점 세 자리(0.XXX) 통화쌍이 있는 차트를 사용하는 경우 이러한 코드 줄이 필요하다고 설명했습니다.
따라서 여기서는 EA가 모든 브로커에서 잘 작동하는지 확인하고자 합니다.Digits 또는 Digits()는현재 차트 심볼의 가격 정확도를 결정하는 십진수 자릿수를 반환합니다. 5자리 또는 3자리 가격 차트의 경우 스톱로스와 테이크프로핏에 10을 곱합니다.
아래 예시를 참조하세요:
5 - 소수점 이하 가격
3 - 소수점 자릿수 가격
질문에 도움이 되었기를 바랍니다.
안녕하세요,
오류가 어떻게 발생하는지 알려주실 수 있나요?
1단계: 이 샘플 코드를 다운로드합니다.
2단계: MQL5에서 컴파일합니다.
3단계: MT5에서 EURUSD 1m차트를 연 다음 "자동 거래"를 클릭합니다.
4단계: 코드 줄 223,224 등에 중단 기호 설정...
5 단계 : MT5에서 디버깅 시작 버튼을 클릭 한 다음이 오류를 표시합니다.
1단계: 이 샘플 코드를 다운로드합니다.
2단계: MQL5에서 컴파일합니다.
3단계: MT5에서 EURUSD 1m차트를 연 다음 "자동 거래"를 클릭합니다.
4단계: 코드 줄 223,224 등에 중단 기호 설정...
5 단계 : mt5에서 디버깅 시작 버튼을 클릭 한 다음이 오류를 표시합니다.
안녕하세요,
단계를 공유해 주셔서 감사합니다. 다시 코드로 돌아가겠습니다,
if(mresult.retcode==10009 || mresult.retcode==10008) //Request is completed or order placed
{
Alert("A Buy order has been successfully placed with Ticket#:",mresult.order,"!!");
}
else
{
Alert("The Buy order request could not be completed -error:",GetLastError()); // line 223
ResetLastError(); // line 224
return;
}
제가 아는 한 코드는 제대로 작동했습니다. 시도한 주문이 성공하지 못했기 때문에 오류가 발생했으며 이것이 223 줄이 수행해야하는 작업입니다. 이 오류의 의미를 확인하려면 https://www.mql5.com/ko/docs/constants/errorswarnings/enum_trade_return_codes 을 참조하세요. (실제로 10030은 잘못된주문 처리 유형을 의미합니다.)
주문 처리 유형 -ORDER_FILLING_FOK -가 무엇을 의미하는지 이해하려면 다음을 참조하세요.
mrequest.type_filling = ORDER_FILLING_FOK; // Order execution type ( line 213 )
의 의미를 이해하려면 https://www.mql5.com/ko/docs/constants/tradingconstants/orderproperties#enum_order_type_filling
질문에 도움이 되셨기를 바랍니다.
안녕하세요 사무엘,
코드를 다운로드하여 설치하고 실행해 보니 대부분 기준을 충족하는 모든 캔들에서 매수 및 매도 주문이 시작된다는 것을 알았습니다 (기간으로 H1을 사용 중입니다).
디버깅을 하지 않았고 코드의 일부가 트리거되지 않는다는 것을 깨달았습니다. 다운로드 가능한 코드로 EA를 제대로 실행할 수 있나요?