oldiol : if(!m_Trade.PositionClose(_Symbol,100))//--- 현재 기호의 위치를 닫습니다. 결과 - 위치가 반대입니다! 힌트를 주시면 대단히 감사하겠습니다. 어떻게 포지션을 청산할 수 있습니까?
프로그램이 서버에 두 개의 동일한 요청을 보내기 때문에 위치가 반대입니다. 프로그램은 코드가 이전에 보낸 요청의 존재 여부를 확인하는 기능을 제공하지 않기 때문에(또한 서버에서 이 요청을 처리한 결과를 확인하는 기능을 제공하지 않기 때문에) 두 개의 동일한 요청을 서버에 보냅니다.
Yedelkin : 프로그램이 서버에 두 개의 동일한 요청을 보내기 때문에 위치가 반대입니다. 프로그램은 코드가 이전에 보낸 요청의 존재 여부를 확인하는 기능을 제공하지 않기 때문에(또한 서버에서 이 요청을 처리한 결과를 확인하는 기능을 제공하지 않기 때문에) 두 개의 동일한 요청을 서버에 보냅니다.
oldiol : При повторном открытии лонга, эксперт не закрывает больше позу по условию. В окне эксперта всё время идут сообщения: Как же использовать этот код в теле эксперта, если он работает только 1 раз)?
이 문제에서 모든 것이 매우 간단해야 합니다. 도식 코드에서 오픈 포지션 이 매수 포지션이 아닌 경우 sentRequest 플래그는 0으로 설정되어야 합니다(코드의 마지막 라인). 오픈 포지션이 없거나 오픈포지션 이 매수 포지션이 아닌 경우 코드 내의 이 플래그가 재설정되지 않는 이유를 확인하십시오.
만세! 획득))) 제거됨 lse if(sentRequest) sentRequest= false ; 그리고 블록 전에 썼습니다. if( PositionsTotal()==0 ) sentRequest=false; 나는 당신의 도움에 대해 Yedelkin에게 깊은 감사를 표합니다. SUCCESS TO YOU!
oldiol : 롱 포지션을 다시 열 때 EA는 더 이상 해당 포지션을 조건부로 청산하지 않습니다. 전문가 창에는 항상 메시지가 있습니다. 한 번만 작동하는 경우 전문가 본문에서 이 코드를 사용하는 방법)? 죄송합니다, 제 실수입니다... 코드에 조건이 하나 더 있습니다.
if(PositionSelect(_Symbol)==true) // 열린 위치 가 있습니다. {
포지션 클로징 블록
} // ... 그렇기 때문에
e lse if(sentRequest) sentRequest= false ;// 다음 괄호 뒤에 배치되고 모든 것이 훌륭하게 작동합니다. 예델킨 감사합니다!
프로그램이 서버에 두 개의 동일한 요청을 보내기 때문에 위치가 반대입니다. 프로그램은 코드가 이전에 보낸 요청의 존재 여부를 확인하는 기능을 제공하지 않기 때문에(또한 서버에서 이 요청을 처리한 결과를 확인하는 기능을 제공하지 않기 때문에) 두 개의 동일한 요청을 서버에 보냅니다.
Yedelkin은 다음과 같이 씁니다. 그녀의 코드는 이전에 보낸 요청이 있는지 확인하는 기능을 제공하지 않습니다. 이 검사가 어떤 기능을 하는지 알려주실 수 있습니까?
모든 사람은 코드의 정확성에 대한 자신의 이해를 가지고 있습니다. 따라서 "올바른" 코드는 결국 사용자가 작성해야 합니다. 그리고 또 다른 힌트로 다음 코드가 올바른 방식으로 작동하는지 확인하십시오(sentRequest 플래그의 도식적 사용).
모든 사람은 코드의 정확성에 대한 자신의 이해를 가지고 있습니다. 따라서 "올바른" 코드는 결국 사용자가 작성해야 합니다. 그리고 또 다른 힌트로 다음 코드가 올바른 방식으로 작동하는지 확인하십시오(sentRequest 플래그의 도식적 사용).
정말 감사합니다! 노력하고있어...
결과는 다음과 같습니다. 코드는 롱 포지션을 올바르게 닫고 숏 포지션을 열지 않습니다... 하지만! 롱 포지션을 재개설할 때 전문가는 조건에 따라 더 이상 포지션을 청산하지 않습니다. 전문가 창에는 항상 다음과 같은 메시지가 있습니다.
한 번만 작동하는 경우 Expert Advisor의 본문에서 이 코드를 사용하는 방법)?
oldiol : При повторном открытии лонга, эксперт не закрывает больше позу по условию. В окне эксперта всё время идут сообщения: Как же использовать этот код в теле эксперта, если он работает только 1 раз)?
이 문제에서 모든 것이 매우 간단해야 합니다. 도식 코드에서 오픈 포지션 이 매수 포지션이 아닌 경우 sentRequest 플래그는 0으로 설정되어야 합니다(코드의 마지막 라인). 오픈 포지션이 없거나 오픈 포지션 이 매수 포지션이 아닌 경우 코드 내의 이 플래그가 재설정되지 않는 이유를 확인하십시오.
만세! 획득))) 제거됨 lse if(sentRequest) sentRequest= false ; 그리고 블록 전에 썼습니다. if( PositionsTotal()==0 ) sentRequest=false; 나는 당신의 도움에 대해 Yedelkin에게 깊은 감사를 표합니다. SUCCESS TO YOU!
oldiol : 롱 포지션을 다시 열 때 EA는 더 이상 해당 포지션을 조건부로 청산하지 않습니다. 전문가 창에는 항상 메시지가 있습니다. 한 번만 작동하는 경우 전문가 본문에서 이 코드를 사용하는 방법)? 죄송합니다, 제 실수입니다... 코드에 조건이 하나 더 있습니다.
if(PositionSelect(_Symbol)==true) // 열린 위치 가 있습니다.
{
포지션 클로징 블록
} // ... 그렇기 때문에
e lse if(sentRequest) sentRequest= false ;// 다음 괄호 뒤에 배치되고 모든 것이 훌륭하게 작동합니다. 예델킨 감사합니다!