[ARCHIVE] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 5. - 페이지 391

 
Integer :


1. 글쎄, 그녀는 갇혔다. 다시 한 번 반복합니다. 시스템은 스레드가 유휴 상태인지 또는 일부 작업을 수행했는지 알 수 없습니다.

시스템은 이것을 알 필요가 없습니다. 흐름의 문제입니다. 어쨌든 처리됩니다. 이것은 시스템에 의해 보장됩니다. 물론 코드에 오류가 있어서 직접 중지하지 않는 한.
 
Zhunko :
시스템은 이것을 알 필요가 없습니다. 흐름의 문제입니다. 어쨌든 처리됩니다. 이것은 시스템에 의해 보장됩니다. 물론 코드에 오류가 있어서 직접 중지하지 않는 한.


예, 당신이 대화의 내용을 전혀 말하지 않았다는 것이 오랫동안 분명해졌습니다.
 

Zhunko, 왜 여기서 이런 걸 시도하는 건데... 대화 내용도 모르는 거죠. 그것은 시스템에 필요하고 시스템에 필요하지 않습니다 ... 대화가 무엇에 관한 것인지 전혀 말하지 않습니다. 이것은 이전에 지정된 작업을 해결하기 위해 필요합니다 ... 그리고 당신은 이것이 필요하지 않기 때문에 지금 다시 시작합니다 ... 당신은 이미이 작업이 없어야한다고 주었습니다. 빙글빙글 생각하면서 스스로 깨닫지 못하고, 구루의 역할을 하기도 한다.

 
중요한 것은 스레드가 아니라 그것이 무엇을 하는지, 항상 하는 것은 아닙니다. 그리고 당신은 그가 하는 일을 조종해야 합니다.
 
Integer :
중요한 것은 스레드가 아니라 그것이 무엇을 하는지, 항상 하는 것은 아닙니다. 그리고 당신은 그가 하는 일을 조종해야 합니다.

여기 에 그는 다음과 같이 썼습니다.

쥰코 :

대기열이 필요한 또 다른 경우가 있습니다. 그러나 스레드 실행 큐가 아니라 스레드에서 받은 데이터 처리 순서(스레드 작업 결과). 이것은 대기열에 대한 가장 일반적인 작업입니다.

이것은?

 
Zhunko :

여기 에 그는 다음과 같이 썼습니다.

이것은?

대략 비슷합니다. 그러나 그 이전에는 순서가 전혀 중요하지 않다는 진술이 있었습니다. 그리고 여기에 일반적으로 작업을 균등하게 수행해야 할 뿐만 아니라 특정 순서로 수행해야 할 때 표시되었습니다(수행하지 않더라도 추가 처리를 위해 데이터를 수집합니다. 그렇지 않으면 성명). 이제 당신이 대답할 차례입니다 - 내가 한 것을 압니다 ... 그렇다면 마지막 10페이지는 무엇이었습니까?
 
1년 동안 1회 실행(300~400건의 트랜잭션)할 때 테스터가 최대 기가바이트의 로그 파일을 생성하면 정상입니까?
 
lottamer :
알려주세요, 1년 동안 1회(300-400 트랜잭션) 실행할 때 테스터가 최대 기가바이트의 로그 파일을 생성하면 정상입니까...?

원칙적으로는 정상입니다 :) 그렇게 정상적이지도 않고 정상적이지도 않은 그는 그냥 하면 됩니다. 오류 메시지 가 표시되면 이러한 오류에 대해 조치를 취해야 합니다. 정보 메시지가 있으면 비활성화하거나(스위치가 있는 경우) Print()(), Comment(), Alert() 함수 호출을 주석 처리해야 합니다.
 
Integer :

대략 비슷합니다. 그러나 그 이전에는 순서가 전혀 중요하지 않다는 진술이 있었습니다. 그리고 여기에 일반적으로 작업을 균등하게 수행해야 할 뿐만 아니라 특정 순서로 수행해야 할 때 표시되었습니다(수행하지 않더라도 추가 처리를 위해 데이터를 수집합니다. 그렇지 않으면 성명). 이제 당신이 대답할 차례입니다 - 내가 한 것을 압니다... 그렇다면 마지막 10페이지는 무엇이었습니까?

귀하의 설명이 부족하여 발생한 일입니다. 381페이지를 더 썼습니다. 내 대답을 읽었다면 눈치 채고 말했을 것입니다.

====================

1. 여러 개의 독립적인 스레드가 있습니다.

2. 결과가 일부 대기열에 추가됩니다.

3. 이 대기열은 공유 리소스입니다.

4. 스레드의 액세스를 결과의 공통 큐에 동기화하는 것이 필요합니다.

그래서?

====================

전역 변수를 삭제하지 않고 올바르게 작동하는 방법은 다음과 같습니다.

 #property show_inputs

extern int Pause = 1000 ;

int     hwndChart = NULL ; // Уникальный идентификатор скрипта.
string sName = "Condition" ;

void init()
 {
  hwndChart = WindowHandle( Symbol (), 0 );
   // Создаём глобальную переменную синхронизации скриптов.
   if (! GlobalVariableCheck (sName)) GlobalVariableSet (sName, 0 );
 }
 
void deinit()
 {
   while (! IsStopped ())
   {
     if (! GlobalVariableSetOnCondition (sName, hwndChart, 0 )) continue ;
     if ( GlobalVariableSetOnCondition (sName, 0 , hwndChart)) return ;
   }
 }

void start()
 {
   while (! IsStopped ())
   {
     Sleep ( 200 ); // Имитация тика.
     // Начало блока синхронизации.
     if (! GlobalVariableSetOnCondition (sName, hwndChart, 0 )) continue ;
     if ( GlobalVariableGet (sName) == hwndChart)
     {
       Print ( "Start" );
       Sleep (Pause); // Имитация работы.
       Print ( "End" );
     }
     GlobalVariableSetOnCondition (sName, 0 , hwndChart);
   } // Завершение блока синхронизации.
 }

치리파하 :

이것...

나는 Arles가 그 질문에 대한 답을 알아냈다고 생각합니다. 나는 즉시 해결책의 본질을 파악하지 못합니다. 그러나 이것은 내가 초보자이고 먼저 이론을 공부한 다음 실습을 시도하는 데 더 많은 시간이 필요하기 때문입니다. 그러나 나는 이 사업을 마스터하려고 노력할 것입니다.


맞습니다. 미해결 문제에서 이 문제 목록을 의미했습니다.

.......................

======================================

즉, 즉. - Expert Advisor에 제안한 솔루션 블록이 포함되어 있지 않은 경우 이러한 Expert Advisor를 여러 개 사용할 때 위험 관리와 함께 질문에 설명된 상황이 발생할 수 있습니까?

조금 더 설명하겠습니다. 지금이 매우 중요한 순간인지 잘 모르겠습니다. 따라서 당분간은 가정적으로 생각합니다. 문제 해결 속도가 빠르기 때문에 아마도 컴퓨터의 솔루션은 컴퓨터 비트의 넓은 채널을 통해 "날아갈 것"입니다. - 하지만 내가 틀렸을 수도 있어요. 왜냐하면. Arles에 따르면 그는 서클당 2개의 주문을 받습니다. 그래서 문제가 있습니다.

이제서야 질문을 이해합니다 :-))

이런 일이 발생하면 이것은 잘못 선택된 위험의 문제입니다. 약간의 위험을 감수하고 동기화할 필요가 없습니다. 보증금의 +- 0.0001%는 결정적이지 않습니다.

 

Zhunko :

이제서야 질문을 이해합니다 :-))

이런 일이 발생하면 이것은 잘못 선택된 위험의 문제입니다. 약간의 위험을 감수하고 동기화할 필요가 없습니다. 보증금의 +- 0.0001%는 결정적이지 않습니다.

그것은 일어난다... 사람이 현재의 어떤 문제(질문)를 풀고 있을 때, 의식을 다른 작업에 대한 인식으로 전환하는 것이 어려울 수 있습니다. 그리고 과제가 많으면 다 잡기가 힘들어지는데... :)) 시간 관리 규칙.

멀티스레딩에 대한 또 다른 질문입니다.

Sergey Kovalev의 튜토리얼은 Expert Advisor가 한 사이클에서 작동하는 듀티 사이클 최적화 방법을 설명합니다. 이것과 멀티스레딩을 고려할 때, Expert Advisor의 이러한 주기적 특성이 다른 Expert Advisor, 스크립트 및 지표의 열등함으로 이어지지 않는다는 것을 올바르게 이해하고 있습니까? 그리고 당신은 두려움없이 한주기에서 고문의 작업을 시작할 수 있습니까? 아니면 안하는게 좋을까요? 그리고 어떤 경우에 그것을 피하는 것이 더 낫습니까?

내가 알기로는 바로 위의 코드에서 이 순환 작업이 구현됩니다. 아마 그래서 기억하고 있었던 것 같다.

그런데 그런 주기적 Expert Advisor가 테스터에서 실행된다면 얼마나 정확할까요? 아니면 이 경우 주기를 "비활성화"해야 합니까?