연결되었습니다() - 페이지 3

 

죄송하지만 작동하지 않는 이유는 다음과 같습니다.

 int start()

{

     while ( ! IsStopped () )
    {
        IsConnectedBefore = IsConnectedNow;
        IsConnectedNow = IsConnected();
      ....

     }

}   

따라서 내 EA는 항상 while 루프에 있으며 틱이 필요하지 않습니다.

 

PostMessageA()와 관련된 모든 것은 이 스레드 앞부분의 "call start() from init()" 문장에 대한 응답으로만 게시되었습니다. 나는 이것을 논평하지 않을 수 없었다. "init()에서 start() 호출" 은 많은 수준에서 명백히 잘못된 것이므로 이에 대해 언급하고 동일한 결과를 얻기 위한 적절한 솔루션 을 제공해야 했습니다. 즉, init() 내에서 start() 호출을 강제로 주말에.


연결이 끊긴 상태에서 MT4를 시작 하는 문제에 대해서는 솔루션을 제공하지 않습니다. 나는 또한 이것이 어떤 사용 사례인지 이해하지 못하지만 메타 트레이더 자체가 중단 없이 24/7 쉽게 계속 실행되어야 하는 동안 왔다 갔다 하는 연결이기 때문입니다 . 그리고 주말에 다시 시작하더라도 init()의 PostMessageA()를 사용하여 다시 시작한 후 연결이 다시 시작되는 즉시 틱 없이 다시 시작()의 루프를 다시 시작합니다. 다음에 (우발적으로) 다시 시작할 때까지 영원히 실행됩니다.

 
sunshineh :

죄송하지만 작동하지 않는 이유는 다음과 같습니다.

따라서 내 EA는 항상 while 루프에 있으며 틱이 필요하지 않습니다.


네, 터미널을 다시 시작하지 않았기 때문에 인터넷에 연결되어 있지 않은 상태에서 터미널을 다시 시작하면 인터넷에 연결되지 않은 상태에서 터미널을 다시 시작하면 AE가 한 번의 틱 없이 루프에 오지 않습니다. PostMessageA()를 사용하거나 init()에서 Start()를 호출하더라도 이 작업을 수행하는 유일한 방법은 스크립트를 사용하는 것입니다.
 

어쨌든 도움을 주신 모든 분들께 감사드립니다. 나는 내 손을 조금 더럽히고 이야기의 끝에서 스크립트를 실행하기 위해 외부 프로그램을 실행하기로 결정했습니다.
그럼에도 불구하고 IsConnected() 함수 는 여전히 나를 웃게 만든다.

 
7bit :

PostMessageA()와 관련된 모든 것은 이 스레드 앞부분의 "call start() from init()" 문장에 대한 응답으로만 게시되었습니다. 나는 이것을 논평하지 않을 수 없었다. "init()에서 start() 호출" 은 많은 수준에서 명백히 잘못된 것이므로 이에 대해 언급하고 동일한 결과를 얻기 위한 적절한 솔루션 을 제공해야 했습니다. 즉, init() 내에서 start() 호출을 강제로 주말에.


연결이 끊긴 상태에서 MT4를 시작 하는 문제에 대해서는 솔루션을 제공하지 않습니다. 나는 또한 이것이 어떤 사용 사례인지 이해하지 못하지만 메타 트레이더 자체가 중단 없이 24/7 쉽게 계속 실행되어야 하는 동안 왔다 갔다 하는 연결이기 때문입니다 . 그리고 주말에 다시 시작하더라도 init()의 PostMessageA()를 사용하여 다시 시작한 후 연결이 다시 시작되는 즉시 틱 없이 다시 시작()의 루프를 다시 시작합니다. 다음에 (우발적으로) 다시 시작할 때까지 영원히 실행됩니다.


7Bit에 대한 귀하의 의견에 감사드립니다. 더 나은 방법을 아는 것이 유용합니다. 저는 중요한 문제를 일으키는 문제를 해결하기 위해 위에서 설명한 대로 EA를 성공적으로 실행해 왔습니다. 터미널이 정기적으로 연결이 끊길 수 있지만 알 수 없는 이유로 다시 연결하지 못합니다. 다시 연결하기 전에 터미널에서 수동으로 서버를 다시 검색해야 했습니다. 처음에는 타이밍의 우연이라고 생각했지만 우연이라고 하기에는 너무 자주 연결을 다시 시작하지 못하고 1시간을 기다렸다가 다시 검색을 클릭한 인스턴스가 다시 연결됩니다. 내 솔루션은 연결 상태를 지속적으로 테스트하는 것이 었습니다. 연결이 끊긴 경우 알림, 이메일 및 로그에서 옥상에서 비명을 다시 연결하는 데 5분을 준 다음 터미널을 닫고 다시 시작합니다. 그것은 대부분의 경우에 효과가 있었습니다. 때때로 합법적인 연결 문제가 있었고 연결 없이는 EA가 초기화되지 않으므로 구멍에 갇혔습니다. 나는 이 모든 것을 해결하기 위한 방법을 살펴보았는데, 이 모든 방법은 MT4 외부의 방법이므로 현재의 IT 능력 밖에 있습니다. Fortunatley, 저는 브로커를 옮겼고 현재 제공업체와 아무런 문제가 없었습니다... 그래서 더 많은 일을 하는 것은 우선 순위 목록에서 낮습니다.

그러나 연결이 실제로 사용 가능할 때 연결이 끊어지고 MT4가 다시 연결하지 못하는 일이 발생할 수 있습니다. 터미널 다시 시작은 내 EA를 단계적으로 수행하지 않지만 한 시간 동안 연결 없이 앉아 있는 것은 마찬가지입니다!.

V

 
Viffer :

Fortunatley, 저는 브로커를 옮겼고 현재 제공업체와 아무런 문제가 없었습니다... 그래서 더 많은 일을 하는 것은 우선 순위 목록에서 낮습니다.

나는 이것을 아직 내 중개인과 함께 본 적이 없으므로 실제로 일부 중개인에게만 발생할 수 있습니다. 하루에 한두 번 몇 초 동안 연결이 끊어지는 경우가 있지만 항상 즉시 다시 연결됩니다.


다른 Windows 응용 프로그램(버튼 클릭, 메뉴 명령 등)을 모니터링하고 원격 제어 할 수 있는 외부 응용 프로그램을 함께 빠르게 해킹하려면 AutoIT를 권장합니다. 정확히 이런 유형의 것들을 중심으로 하는 스크립팅 언어와 같은 BASIC을 배우기 쉽습니다.

 
7bit :

나는 이것을 아직 내 중개인과 함께 본 적이 없으므로 실제로 일부 중개인에게만 발생할 수 있습니다. 하루에 한두 번 몇 초 동안 연결이 끊어지는 경우가 있지만 항상 즉시 다시 연결됩니다.


다른 Windows 응용 프로그램(버튼 클릭, 메뉴 명령 등)을 모니터링하고 원격 제어할 수 있는 외부 응용 프로그램을 함께 빠르게 해킹하려면 AutoIT를 권장합니다. 정확히 이런 유형의 것들을 중심으로 하는 스크립팅 언어와 같은 BASIC을 배우기 쉽습니다.

그렇군요 찾아보겠습니다 감사합니다

V

 
qjol :

IsConnected() 함수는 여전히 나를 웃게합니다. 그런 간단한 것을 그가 다루지 않는다면

MT4가 완전히 연결될 때까지 다시 시작한 후 init()를 지연시키는 데 문제가 있다고 생각했습니다.


이것은 갑자기 IsConnected()와 어떤 관련이 있습니까? IsConnected()가 의도한 대로 작동하는 것 같습니다. 연결되면 true를, 연결이 끊어지면 false를 반환합니다. 나는 그것에 대해 그렇게 웃을 수 없습니다.

 
7bit :

MT4가 완전히 연결될 때까지 다시 시작한 후 init()를 지연시키는 데 문제가 있다고 생각했습니다.


이것은 갑자기 IsConnected()와 어떤 관련이 있습니까? IsConnected()가 의도한 대로 작동하는 것 같습니다. 연결되면 true를, 연결이 끊어지면 false를 반환합니다. 나는 그것에 대해 그렇게 웃을 수 없습니다.


왜냐하면

if (!IsConnected())는 false를 반환해야 하고 새 틱이 오지 않는 한 IsConnected()는 확인할 수 없기 때문에 웃음이 나옵니다.

 
qjol :

새 틱이 안 오는 한 IsConnected()는 확인할 수 없기 때문에 웃음이 나온다.

검사할 수 있습니다. 무한 루프에서 검사를 실행하기만 하면 됩니다. 연결 중단 중에 터미널 을 시작할 때 이 루프를 시작하는 방법 은 완전히 별개의 문제입니다. 루프를 실행하면 예상한 대로 수행됩니다.

귀하의 문제는 IsConnected() 함수 와 관련이 없습니다. 동일한 인수로 Print() 또는 Alert() 또는 완전히 다른 이유로 인해 전체 코드를 처음부터 시작할 수 없기 때문에 호출할 수 없는 다른 함수에 대해 불평할 수도 있습니다.