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

 
fxsaber :
현재 대기열에 틱 번호를 추가하는 것도 논리적입니다.

그런 다음 ServiceDesk#1666680에 직접 씁니다.

기능의 원리를 바꾸는 것을 고려하십시오

bool SymbolInfoTick ( string symbol, MqlTick & tick );

표시기(OnCalculate 본문 포함)에서 설명에 따라 현재 가격을 반환합니다.

기능으로 언어를 동시에 보완

bool SymbolInfoTick _OnCalculate( string & symbol, MqlTick & tick ); //(*)

OnCalculate 함수에서 반환되는 기호 및 OnCalculate 호출을 유발한 특정 틱

또는 대안으로 (*) : OnCalculate에 대한 호출에 이러한 매개변수를 추가합니다.

OnCalculate ( ..., const string & symbol, const MqlTick & tick );
 

질문이 생겼습니다. mql5를 사용하여 차트에서 실행 중인 모든 프로그램과 해당 이름을 어떻게든 결정할 수 있습니까? 특히 현재 차트에 있는 모든 지표의 이름을 가져오는 방법이 궁금합니다.

 
Alexey Kozitsyn :

질문이 생겼습니다. mql5를 사용하여 차트에서 실행 중인 모든 프로그램과 해당 이름을 어떻게든 결정할 수 있습니까? 특히 현재 차트에 있는 모든 지표의 이름을 가져오는 방법이 궁금합니다.

https://www.mql5.com/en/docs/chart_operations/chartindicatorstotal

https://www.mql5.com/ru/docs/chart_operations/chartindicatorname

https://www.mql5.com/ru/docs/chart_operations/chartgetstring

https://www.mql5.com/ru/docs/constants/chartconstants/enum_chart_property#enum_chart_property_string
Документация по MQL5: Операции с графиками / ChartIndicatorName
Документация по MQL5: Операции с графиками / ChartIndicatorName
  • www.mql5.com
Операции с графиками / ChartIndicatorName - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

MT4 Expert Advisor에서 하나 이상의 그래픽 버퍼가 있는 사용자 지정 표시기가 순차적으로 호출되면 각 호출과 함께 재계산이 발생하거나 모든 버퍼가 한 번에 계산되고 표시기를 여러 번 참조할 수 있습니다. 코드를 작성하고 리소스 낭비가 있을 것으로 예상하지 마십시오. 이 질문도 흥미롭습니다. 코드 실행이 완료되지 않고(틱보다 오래 실행됨) 표시기의 값이 변경되면 어떻게 될까요?

 
A100 :

그런 다음 ServiceDesk#1666680에 직접 씁니다.

기능의 원리를 바꾸는 것을 고려하십시오

bool SymbolInfoTick ( string symbol, MqlTick & tick );

표시기(OnCalculate 본문 포함)에서 설명에 따라 현재 가격을 반환합니다.

기능으로 언어를 동시에 보완

bool SymbolInfoTick _OnCalculate( string & symbol, MqlTick & tick ); //(*)

OnCalculate 함수에서 반환되는 기호 및 OnCalculate 호출을 유발한 특정 틱

또는 대안으로 (*) : OnCalculate에 대한 호출에 이러한 매개변수를 추가합니다.

OnCalculate ( ..., const string & symbol, const MqlTick & tick );
나는 이 명백한 뻔뻔함에 동참한다! ))
 
Alexey Kozitsyn :
너무 적습니다. 몇 시간 동안 얼립니다. 여러 악기에.
죄송합니다
Test_SymbolInfoTcick (Si- 3.17 ,M1)       OnCalculate : ОШИБКА ПОСЛЕДОВАТЕЛЬНОСТИ! SymbolInfoTick () вернуло не последнее значение!
Test_SymbolInfoTcick (Si- 3.17 ,M1)       OnCalculate : Текущее время мс = 1486493406313 ( 2017.02 . 07 18 : 50 : 06 ), предыдущее = 1486493406315
Test_SymbolInfoTcick (Si- 3.17 ,M1)       OnTick : ОШИБКА ПОСЛЕДОВАТЕЛЬНОСТИ! SymbolInfoTick () вернуло не последнее значение!
Test_SymbolInfoTcick (Si- 3.17 ,M1)       OnTick : Текущее время мс = 1486493406313 ( 2017.02 . 07 18 : 50 : 06 ), предыдущее = 1486493406315
Test_SymbolInfoTcick (Si- 3.17 ,M1)       OnCalculate : ОШИБКА ПОСЛЕДОВАТЕЛЬНОСТИ! SymbolInfoTick () вернуло не последнее значение!
Test_SymbolInfoTcick (Si- 3.17 ,M1)       OnCalculate : Текущее время мс = 1486495281212 ( 2017.02 . 07 19 : 21 : 21 ), предыдущее = 1486495281213
Test_SymbolInfoTcick (Si- 3.17 ,M1)       OnTick : ОШИБКА ПОСЛЕДОВАТЕЛЬНОСТИ! SymbolInfoTick () вернуло не последнее значение!
Test_SymbolInfoTcick (Si- 3.17 ,M1)       OnTick : Текущее время мс = 1486495281212 ( 2017.02 . 07 19 : 21 : 21 ), предыдущее = 1486495281213
OnTick에도 문제가 있습니다. OnCalculate의 몇 시간 동안의 로그에 따르면 문제 는 OnTick보다 3배 더 높습니다 . 이 경우 OnTick 문제는 OnCalculate에서 항상 반복되지만 그 반대는 아닙니다.
 
fxsaber :
죄송합니다
OnTick에도 문제가 있습니다. OnCalculate의 몇 시간 동안의 로그에 따르면 문제는 OnTick보다 3배 더 높습니다 . 동시에 OnTick 문제는 OnCalculate에서 항상 반복되지만 그 반대는 아닙니다.
SymbolInfoTick()이 비동기식임이 밝혀졌습니다 ...
 
-Aleks- :

MT4 Expert Advisor에서 하나 이상의 그래픽 버퍼가 있는 사용자 지정 표시기가 순차적으로 호출되면 각 호출과 함께 재계산이 발생하거나 모든 버퍼가 한 번에 계산되고 표시기를 여러 번 참조할 수 있습니다. 코드를 작성하고 리소스 낭비가 있을 것으로 예상하지 마십시오. 이 질문도 흥미롭습니다. 코드 실행이 완료되지 않고(틱보다 오래 실행됨) 표시기의 값이 변경되면 어떻게 될까요?

모든 버퍼는 한 번에 계산됩니다. 조용히 지표 값을 요청하십시오-재계산은 없을 것입니다

MT4에서 EA에서 호출된 표시기는 EA의 스트림과 EA의 과거 데이터 복사본에서 작동합니다. Expert Advisor를 반복할 수 있지만 동시에 OnTick 호출 시 계산된 지표 데이터를 수신합니다. RefreshRates를 호출할 때까지. RefreshRates는 전문가의 과거 데이터를 업데이트한 후 지표가 처음 호출 될 때 모든 데이터가 다시 계산됩니다.
 
Slawa :
모든 버퍼는 한 번에 계산됩니다. 조용히 지표 값을 요청하십시오-재계산은 없을 것입니다

MT4에서 EA에서 호출된 표시기는 EA의 스트림과 EA의 과거 데이터 복사본에서 작동합니다. Expert Advisor를 반복할 수 있지만 동시에 OnTick 호출 시 계산된 지표 데이터를 수신합니다. RefreshRates를 호출할 때까지. RefreshRates는 전문가의 과거 데이터를 업데이트한 후 지표가 처음 호출 될 때 모든 데이터가 다시 계산됩니다.

답변 해주셔서 감사합니다!

이전에는 MT5에서 지그재그 표시가 깜박이는 문제에도 관심이 있었습니다(MT4에는 이러한 효과가 없음). 매우 불안합니다. 그 이유는 무엇입니까?