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

 
Ivan Titov :

오늘 프리랜서 작업 페이지에서 오류가 발생했습니다.

크롬 브라우저. 그것은 무엇과 연결되어 있습니까?

메시지 주셔서 감사합니다. 결정된

 
Slava :

직접 확인할 수 없습니까?

확인 가능합니다, 이해가 안될때만 확인하세요))
그리고 데이터가 아직 준비되지 않은 순간을 상상할 수 없습니다.

이 예제에서 OnCalculate 로 작업하는 방법에 대한 이론을 이해하고 싶습니다.
현재 루프 반복에서 데이터가 준비되지 않은 경우 limit+1 카운터를 반환해야 합니까? 아니면 무엇을 반환해야 합니까?

 
Roman :

확인 가능합니다, 이해가 안될때만 확인하세요))
그리고 데이터가 아직 준비되지 않은 순간을 상상할 수 없습니다.

이 예제에서 OnCalculate 로 작업하는 방법에 대한 이론을 이해하고 싶습니다.
현재 루프 반복에서 데이터가 준비되지 않은 경우 limit+1 카운터를 반환해야 합니까? 아니면 무엇을 반환해야 합니까?

0을 반환해야 합니다.

 
Slava :

4. 모든 시계열은 가장 어린 것부터 가장 오래된 것까지 순서대로 처리됩니다. 먼저 틱을 적용한 다음 이 시계열에서 생성된 모든 지표를 계산합니다. M1에서 실행되는 표시기에서 동일한 H1 기호에 대한 데이터를 요청하면 적용된 틱이 있는 데이터를 받지 못합니다. 어떤 트릭을 사용하든 데이터는 항상 한 틱 백됩니다. 시간 프레임을 순차적으로 처리하는 심볼당 하나의 스레드 때문입니다.

진술은 약간 모호한 것으로 판명되었습니다. 만일의 경우를 대비하여 해명하겠습니다. 예, 틱을 처리할 때 모든 시계열은 가장 낮은 것부터 가장 높은 것까지 순서대로 처리됩니다. 각 시계열의 데이터에 각 눈금을 추가한 다음 각 시계열에 대한 지표를 순서대로 계산 합니다. 저것들. OnCalculate()의 표시기의 경우 시계열 자체(모두)의 데이터는 무조건 업데이트되지만 상위 시간대의 표시기 데이터는 아직 재계산되지 않았습니다.

 
Slava :

첫 번째 요청에서 표시기는 해당 기호에서 데이터를 수신하지 못하지만 단 한 가지 이유로 인해 다른 시간 프레임을 수신할 수 있습니다. 필요한 시계열이 아직 구축되지 않았거나 요청이 없을 때 일정 시간이 지난 후 이미 소멸되었습니다.

요청이 실패한 후 차트에 업데이트 명령을 보내고 즉시 OnCalculate를 종료하십시오. 이 순간까지 OnCalculate가 호출되고 필요한 시계열이 준비된다는 것이 보장됩니다.

망치로 파리를 잡는 것과 같습니다.

아시다시피 이 명령은 해당 기호의 모든 차트에 있는 모든 표시기를 업데이트합니다. 동일한 기호의 여러 차트에 여러 지표가 있는 경우 각 지표가 자체 ChartSetSymbolPeriod() 명령을 보내므로 일종의 루프로 쉽게 끝날 수 있습니다.

CURRENT 표시기만 업데이트하는 명령을 추가할 수 있습니까?

 
Alain Verleyen :

망치로 파리를 잡는 것과 같습니다.

아시다시피 이 명령은 해당 기호의 모든 차트에 있는 모든 표시기를 업데이트합니다. 동일한 기호의 여러 차트에 여러 지표가 있는 경우 각 지표가 자체 ChartSetSymbolPeriod() 명령을 보내기 때문에 일종의 루프로 쉽게 끝날 수 있습니다 .

CURRENT 표시기만 업데이트하는 명령을 추가할 수 있습니까?

코드에 논리적 오류가 있으면 무엇이든 얻을 수 있습니다.

 
mktr8591 :

실제로 OnTick은 동일한 기호에 대해 OnCalculate 와 동기화되지 않습니다. 이론적으로 OnTick은 늦을 수 있으며 시작될 때까지 모든 TF의 모든 지표가 계산됩니까?

반대 상황을 보는 동안 표시기는 막대가 열릴 때 새 틱이 도착할 때 계산되지 않습니다.

 
Anton :

진술은 약간 모호한 것으로 판명되었습니다. 만일의 경우를 대비하여 해명하겠습니다. 예, 틱을 처리할 때 모든 시계열은 가장 낮은 것부터 가장 높은 것까지 순서대로 처리됩니다. 각 시계열의 데이터에 각 눈금을 추가한 다음 각 시계열에 대한 지표를 순서대로 계산 합니다. 저것들. OnCalculate()의 표시기의 경우 시계열 자체(모두)의 데이터는 무조건 업데이트되지만 상위 시간대의 표시기 데이터는 아직 재계산되지 않았습니다.

"각 시계열에 대한 지표의 순서대로 계산 "은 무엇을 의미합니까? " ENUM_TIMEFRAMES 에 따라    기간"?

int iCustom (
                기호 , // 기호 이름
    ENUM_TIMEFRAMES    기간 , // 기간
                이름          // 폴더/사용자 indicator_name
...                            // 표시기 입력 매개변수 목록
);

ENUM_TIMEFRAMES 가 동일한 두 개의 표시기가 있는 경우    하나는 다른 하나의 데이터에 대해 계산되는 기간 동안 순차 계산의 정확성을 보장하는 방법은 무엇입니까?

지표가 계산되는 경우( ENUM_TIMEFRAMES    기간) M1에서 OHLC 정보를 요청할 때 어떤 경우에도 상위 시간대의 마지막 틱에 대한 최신 정보를 받게 됩니까?

 
함수의 결과는 무엇입니까

아이스프레드?


터미널의 Symbols/Bars에서 Bar를 요청하면 스프레드 값과 거의 비슷하다고 생각합니다.

동시에 이러한 값은 SYMBOL_SPREAD에서 발행한 실제 값과 당연히 일치하지 않습니다.

왜 그런 차이가 있습니까? 그리고 iSpread 는 어떤 비현실적인 스프레드를 발행합니까?

 
Aleksey Vyazmikin :

"각 시계열에 대한 지표의 순서대로 계산 "은 무엇을 의미합니까? " ENUM_TIMEFRAMES 에 따라    기간"?

int iCustom (
                기호 , // 기호 이름
    ENUM_TIMEFRAMES    기간 , // 기간
                이름          // 폴더/사용자 indicator_name
...                            // 표시기 입력 매개변수 목록
);

ENUM_TIMEFRAMES 가 동일한 두 개의 표시기가 있는 경우    하나는 다른 하나의 데이터에 대해 계산되는 기간 동안 순차 계산의 정확성을 보장하는 방법은 무엇입니까?

이것은 터미널에서 제공합니다.

지표가 계산되는 경우( ENUM_TIMEFRAMES    기간) M1에서 OHLC 정보를 요청할 때 어떤 경우에도 상위 시간대의 마지막 틱에 대한 최신 정보를 받게 됩니까?

네 맞습니다.