MT4가 멈추고 start()를 다시 호출하지 않습니다. - 페이지 3

 
mt4forum :

아니요, sleep() 또는 messagebox()를 사용하지 않지만 약 5초가 소요되는 MyInit() 함수에서 많은 작업을 수행합니다.

로그 파일에서 다음을 확인할 수 있습니다.

2013.11.15 14:35:32 테스트 축소 1180990: USDJPY M15 DebugStart: InitialHistoryGapClosed
2013.11.15 14:35:32 테스트 축소 1180990: USDJPY M15 DebugMyInit 시작: <---------- 작업 시작
2013.11.15 14:35:32 테스트 축소 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 1 nach CreateHistory()
2013.11.15 14:35:33 테스트 축소 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 2 nach CreateHistory()
2013.11.15 14:35:34 테스트 축소 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 3 nach CreateHistory()
2013.11.15 14:35:35 테스트 축소 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 4 nach CreateHistory()
2013.11.15 14:35:35 테스트 축소 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 5 nach CreateHistory()
2013.11.15 14:35:36 테스트 축소 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 6 nach CreateHistory()
2013.11.15 14:35:37 테스트 축소 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 7 nach CreateHistory()
2013.11.15 14:35:37 테스트 축소 1180990: USDJPY M15 DebugMyInit 반환 InitialMyInitCalls: 0 IndexCount: 8 <---------- 작업 종료
2013.11.15 14:35:37 테스트 축소 1180990: USDJPY M15 DebugStart: InitialGapFound의 마지막 반환

하지만 그 이후에 MT4가 루프에 빠지게 된 이유는 무엇입니까?

그렇지는 않지만 인터페이스 스레드를 망치고 MT4가 잠깁니다. . . 당신은 EA에서 당신이하고있는 일을 할 수 없습니까?
 
여러분 모두는 무한 루프에 대해 이야기하지만 아무도 CreateHistory()가 무엇을 하는지 궁금해하지 않습니다. 로그 출력에 따르면 마지막 start() 실행에서만 나타납니다.
 
Ovo :
여러분 모두는 무한 루프에 대해 이야기하지만 아무도 CreateHistory()가 무엇을 하는지 궁금해하지 않습니다. 로그 출력에 따르면 마지막 start() 실행에서만 나타납니다.
일종의 히스토리 저장 기능인 줄 알았습니다. . . OP가 그것을 보여주고 싶다면 그는 그렇게 할 것입니다. . . 나는 그가 그렇게 하지 않는다고 가정하고 그가 한다 해도 우리가 그를 돕는 데 도움이 되지 않을 것입니다. 가장 빠른 방법은 누군가가 새로운 눈으로 코드를 볼 수 있도록 자신의 코드를 게시하는 것입니다. . . .
 
RaptorUK :
일종의 히스토리 저장 기능인 줄 알았습니다. . . OP가 그것을 보여주고 싶다면 그는 그렇게 할 것입니다. . . 나는 그가 그렇게 하지 않는다고 가정하고 그가 한다 해도 우리가 그를 돕는 데 도움이 되지 않을 것입니다. 가장 빠른 방법은 누군가가 새로운 눈으로 코드를 볼 수 있도록 자신의 코드를 게시하는 것입니다. . . .

문제 없습니다. 무한 루프가 터미널이 중단되는 유일한 이유는 아닐 수도 있다는 점을 지적하고 싶었습니다. 특히 스크립트가 일부 파일을 수정하는 경우.
 

mt4forum 2013.11.16 11:14


하지만 그 이후에 MT4가 루프에 빠지게 된 이유는 무엇입니까?

로그 파일로 판단하면 이미 루프에 있었던 것 같습니다. 8이 되면 어떻게 될까요? 그것이 루프를 빠져 나갔다는 것을 어떻게 알 수 있다면 루프에 있었습니까? init() 로 돌아갔습니까?

Print("Start Started"); 로그 파일에 나타나지 않았으므로 start() 함수에 들어가지 않았습니다. 이는 init() 함수를 종료하지 않았음을 의미합니다. Print() 문을 더 넣고 범위를 좁힙니다.

 

먼저 많은 관심 부탁드리며, 답변이 늦어 죄송합니다.

다음 항목에서 다양한 의견을 다룰 것입니다.

 
RaptorUK :
그렇지는 않지만 인터페이스 스레드를 망치고 MT4가 잠깁니다. . . 당신은 EA에서 당신이하고있는 일을 할 수 없습니까?

저는 EA로 프로그램을 실행했습니다. MT4도 중단되거나 충돌합니다.

 
mt4forum :

저는 EA로 프로그램을 실행했습니다. MT4도 중단되거나 충돌합니다.

누군가 를 도울 수 있는 기회 를 많이 가질 수 있도록 코드 를 게시 해야 한다고 생각 합니다 . . .
 
Ovo :
여러분 모두는 무한 루프에 대해 이야기하지만 아무도 CreateHistory()가 무엇을 하는지 궁금해하지 않습니다. 로그 출력에 따르면 마지막 start() 실행에서만 나타납니다.

CreateHistory()는 많은 작업을 수행합니다. 통화 쌍 및 기간을 반복하고 오프라인 차트를 생성합니다.

그러나 로그 파일은 올바르게 완료되었음을 보여줍니다.

 
SDC :

로그 파일로 판단하면 이미 루프에 있었던 것 같습니다. 8이 되면 어떻게 될까요? 루프가 종료되었는지 어떻게 알 수 있습니까? init() 로 돌아갔습니까?

Print("Start Started"); 로그 파일에 나타나지 않았으므로 start() 함수에 들어가지 않았습니다. 이는 init() 함수를 종료하지 않았음을 의미합니다. 더 많은 Print() 문을 넣고 범위를 좁힙니다.

8에 도달하면 init()로 올바르게 반환됩니다.

로그 파일의 다음 행은 이를 보여줍니다. "DebugMyInit return ..."은 MyInit()의 마지막 디버그 라인입니다.

2013.11.15 12:33:22 테스트 축소 395052: USDJPY M15 DebugMyInit 반환 InitialMyInitCalls: 0 IndexCount: 8

내 자신의 인쇄 기능 을 사용하여 로그 파일을 생성합니다. Print("Start Started")는 해당 로그 파일에 인쇄하지 않습니다.

항목

2013.11.15 12:33:22 테스트 축소 395052: USDJPY M15 DebugStart: InitialGapFound에서 마지막 반환

init() 함수를 종료했음을 보여줍니다.

내 디버그 기능이 모든 정보를 올바르게 기록한다고 믿을 수 있다면 로그 파일은 start()를 마지막으로 실행한 후,

start()가 종료되고 다시 호출되지 않습니다. 그게 바로 문제 야.