오류, 버그, 질문 - 페이지 1805

 
Alexey Kozitsyn :
@Slawa , OnCalculate() 함수 외부에서 표시기 버퍼를 작성하는 데 제한이 있는지 지정하십시오. OnTimer(), OnBookEvent(), OnChartEvent() 함수에 버퍼가 작성되면 모든 것이 항상 올바르게 기록됩니까?

명시적인 제한은 없습니다. 시도 해봐.

그러나 새 막대를 추가하는 순간 버퍼의 재분배가 발생할 수 있습니다(재분배는 여백으로 수행되므로 모든 새 막대가 아닌).

PS는 아니지만. 모든 처리가 하나의 스레드에서 진행되므로 충돌이 없어야 합니다. 노력하다
 
Slawa :
명시적인 제한은 없습니다. 시도 해봐.

그러나 새 막대를 추가할 때 버퍼 재할당이 발생할 수 있습니다(재분배는 여백을 두고 수행되므로 모든 새 막대에서 수행되는 것은 아님)

자세한 내용은 여기를 참조하세요. 어떤 종류의 배포, 어떻게 처리합니까?

새 막대에 "멈춤"이 표시되기 때문에 방금 질문을 작성했습니다. 또한 이러한 동결 은 버퍼 값을 재설정합니다 . 지금까지 이 순간을 포착하지 못했습니다. 때로는 표시기가 "점프"하고 즉시 정상 상태로 복원되며 때로는 "고정"됩니다. 막히면 파일에 값이 기록되지 않고 버퍼가 그려지지 않습니다. OnBookEvent()의 버퍼에 씁니다.

OnCalculate()의 동일한 코드는 잘 작동하지만 OnCalculate()는 미결제약정 및 기타 교환 매개변수의 모든 값을 수집하는 것을 허용하지 않습니다.

TF를 전환해야만 처리됩니다. 예, 5-7개의 동일한 표시기가 동시에 실행되어 다른 데이터를 기록합니다.

추가됨:

네, 오늘도 단말기를 켰을 때, 정확히 같은 것을 눈치 챘습니다. 모든 버퍼에서 모든 값이 0이고 표시기가 기록을 제공하지 않았습니다(파일에 기록됨). 저것들. 모든 것이 그냥 매달려 있습니다. 시장은 여전히 닫혀 있었다. TF 변경 - 히스토리가 로드되었지만 다시 SESSION 값에 대한 타임스탬프의 필요성에 대한 질문으로 변경되었습니다. 마지막으로 알려진 값은 터미널이 닫힐 때 기록되었습니다! 기록 동기화에 성공했으며 오류가 없습니다. 그러나 TimeCurrent()는 잘못된 값을 반환했습니다(약 21:03). 이 값의 실제 도착 시간은 23:49:59이지만. 일반적으로 어떤 종류의 슬픔 ...

 
Alexey Kozitsyn :

자세한 내용은 여기를 참조하세요. 어떤 종류의 배포, 어떻게 처리합니까?

새 막대에 "멈춤"이 표시되기 때문에 방금 질문을 작성했습니다. 또한 이러한 동결 은 버퍼 값을 재설정합니다 . 지금까지 이 순간을 포착하지 못했습니다. 때로는 표시기가 "점프"하고 즉시 정상 상태로 복원되며 때로는 "고정"됩니다. 막히면 파일에 값이 기록되지 않고 버퍼가 그려지지 않습니다. OnBookEvent()의 버퍼에 씁니다.

OnCalculate()의 동일한 코드는 잘 작동하지만 OnCalculate()는 미결제약정 및 기타 교환 매개변수의 모든 값을 수집하는 것을 허용하지 않습니다.

TF를 전환해야만 처리됩니다. 예, 5-7개의 동일한 표시기가 동시에 실행되어 다른 데이터를 기록합니다.

쉬운. 새 막대의 첫 번째 눈금이 도착합니다. 버퍼는 1000개의 막대로 나뉘며 완전히 채워집니다.

버퍼를 1250바만큼 재배포하고 이전 버퍼에서 새 버퍼로 1000바를 복사합니다. 이전 버퍼 대신 새 버퍼를 노출하고 이전 버퍼를 삭제합니다. 1001번째 막대를 추가합니다.

"그를 다루는 방법"은(는) 무슨 뜻인가요?

한 기호의 모든 표시기는 한 스트림에서 차례로 차례로 계산됩니다. 일부 표시기가 느려지면 전체 기호 처리 흐름이 느려집니다.
 
Slawa :
쉬운. 새 막대의 첫 번째 눈금이 도착합니다. 버퍼는 1000개의 막대로 나뉘며 완전히 채워집니다.

버퍼를 1250바만큼 재배포하고 이전 버퍼에서 새 버퍼로 1000바를 복사합니다. 이전 버퍼 대신 새 버퍼를 노출하고 이전 버퍼를 삭제합니다. 1001번째 막대를 추가합니다.

"그를 다루는 방법"은(는) 무슨 뜻인가요?

한 기호의 모든 표시기는 한 스레드에서 차례로 차례로 계산됩니다. 일부 표시기가 느려지면 전체 기호 처리 흐름이 느려집니다.
하나의 스트림에 대해 코스에 있는 I입니다. 그리고 재배포는 OnCalculate() 보다 OnBookEvent () 에 더 많은 영향을 미치나요?
 
Alexey Kozitsyn :
하나의 스트림에 대해 코스에 있는 I입니다. 그리고 재배포는 OnCalculate()보다 OnBookEvent()에 더 많은 영향을 미치는 것으로 이해합니까?
새 틱이 도착하면 재배포가 수행됩니다. 새 틱이 도착한 직후 OnCalculate 가 차례대로 호출됩니다. 그 후에야 표시기가 수신 한 이벤트 처리가 계속됩니다.

그러나 표시기(이 기호의 표시기!)가 계산(OnCalculate, OnTimer, OnChartEvent, OnBookEvent)을 완료할 때까지 새 눈금이 처리되지 않습니다.
 
Slawa :
새 틱이 도착하면 재배포가 수행됩니다. 새 틱이 도착한 직후 OnCalculate 가 차례대로 호출됩니다. 그 후에야 표시기가 수신 한 이벤트 처리가 계속됩니다.

그러나 표시기(이 기호의 표시기!)가 계산(OnCalculate, OnTimer, OnChartEvent, OnBookEvent)을 완료할 때까지 새 눈금이 처리되지 않습니다.

또한 내가 이해하는 한 한 기호의 지표는 순차적으로 계산됩니다. 인디케이터 i1, i2, i3을 차례로 던지면 같은 순서로 계산되나요?

이제 테스트를 위해 표준 MACD를 추가했으며 목록의 마지막 MACD입니다. 새 막대가 형성되면서 고정되는지 확인할 것입니다.

 
Alexey Kozitsyn :

또한 내가 이해하는 한 한 기호의 지표는 순차적으로 계산됩니다. 인디케이터 i1, i2, i3을 차례로 던지면 같은 순서로 계산되나요?

이제 테스트를 위해 표준 MACD를 추가했으며 목록의 마지막 MACD입니다. 새 막대가 형성되면서 고정되는지 확인할 것입니다.

처음에는 - 예, 계산은 동일한 순서로 진행됩니다.

그러나 다른 지표를 제거/추가하면 재계산 순서에 놀라게 될 수 있습니다. 따라서 순서에 베팅하지 마십시오.
 
Slawa :
처음에는 - 예, 계산은 동일한 순서로 진행됩니다.

그러나 다른 지표를 제거/추가하면 재계산 순서에 놀라게 될 수 있습니다. 따라서 순서에 베팅하지 마십시오.
이것은 내 지표가 중단되었는지, 마지막 지표가 표준 MACD인지 여부를 확인하는 데 필요합니다. 모든 광산은 MACD보다 앞서갑니다.
 
Slawa :

제가 얘기한 내용은 다음과 같습니다.

GOLD-3.17에 따르면 이 기호에 대해 OnBookEvent()에서 계산된 모든 지표에 따라 새 막대가 형성되었으며 모든 현재 값이 0으로 재설정되었습니다. 표시기의 논리에 따르면 새 막대가 생성될 때 버퍼가 재설정되지 않고 현재 값이 즉시 버퍼에 기록됩니다. MACD가 재설정되지 않았습니다. 로그가 비어 있으므로 비동기화가 없었으므로 모든 값이 정확해야 합니다. 이 경우 글리치는 5초 정도 지속되었는데 어제 몇 분 동안 글리치를 잡았습니다.

다른 캐릭터들은 다 괜찮습니다. 반복합니다. 표시기 논리에는 값을 0으로 재설정하는 작업이 포함되어 있지 않습니다! 따라서 문제는 새로운 요소를 재배포할 때 이론적으로 가비지를 포함해야 한다는 것입니다. 그런 다음 0.0하고 중단...

예, 한 가지 더: 하나의 표시기가 멈추면 나머지는 값을 저장해야 합니까?! 그리고 모든 것이 한 번에 재설정되었습니다. 이런 일이 발생할 수 있는 상황이 있습니까?
 

유사한 정지가 BR-3.17에서 발생했습니다.

@Slawa 어떤 방향으로 파헤칠 아이디어가 있습니까? 주식 데이터를 수집하고 표시하는 더 좋은 방법이 있을까요?