2) 코어에 연결하여 테스트 실행을 시도할 때 종종 문제가 발생합니다(n번째 실행부터 작동). 그림을 참조하십시오.
더엑스퍼트 : 텔레파시 그룹이 이미 당신의 문제를 조사하고 있습니다.
iCustom()이 제대로 작동하지 않는다는 것을 알아내는 데 텔레패스가 필요하지 않습니다.
확인하려면 전문가의 코드를 실행할 수 있습니다. 이중 버퍼[]; 재설정 마지막 오류(); int MA_handle = iCustom(NULL, 0, "예\사용자 정의 이동 평균", 21, 0, MODE_SMMA); //int MA_handle = iMA(NULL, 0, 21, 0, MODE_SMMA, PRICE_MEDIAN); Print("MA_handle = ", MA_handle, " 오류 = ", GetLastError()); 정수 복사 = CopyBuffer(MA_handle, 0, 0, 5, 버퍼); if (copy == -1) Print("사용자 정의 이동 평균 지표 값을 가져오지 못했습니다."); 또 다른 for (int i = 0; i < 5; i++) Print("buffer[", i, "] = ", buffer[i]);
결과는 "사용자 지정 이동 평균 표시기의 값을 가져오는 데 실패했습니다"라는 메시지가 표시됩니다.
저것들. CopyBuffer는 iCustom() 표시기 핸들에 대해 오류(-1 반환)를 제공합니다. 표준 iMA() 표시기를 사용하면 동일한 코드가 작동합니다!
우크라이나 : 결과 배열의 인덱싱 방향을 보면 확장해야 할 수도 있습니다.
모든 것이 인덱싱 방향과 이전 빌드에서 동일하게 작동했습니다. 448 및 450에서 - 작동하지 않습니다. 나는 개발자들에게 터미널의 주요 기능을 더 철저히 테스트할 것을 반복적으로 제안했지만, 그러나 터미널에서 빌드할 때마다 치명적인 오류 대신 다른 오류가 나타나며 중요합니다. 저것들. 하나는 수리 중이고 다른 하나는 이미 정상적으로 작동하고 있으며 끝이 보이지 않습니다. 분명히 우리는 안정적인 버전을 기다릴 수 없습니다(((
데이터를 복사하기 전에 슬립을 넣어두면 인디케이터를 계산하는데 시간이 걸리므로 핸들이 제대로 반환되더라도 아직 데이터가 계산되지 않은 경우
수면(1000); // 1 초. iCustom()을 호출한 후 정말 도움이 되었지만... 지금 지연 시간을 선택해야 합니까? 계산 과정에 소요되는 시간은 어디에서 확인해야 합니까? 쓰레기를 가리키는 표시기의 올바른 핸들을 제공하는 것은 잘못되었습니다! 이전에는 그러한 문제가 없었기 때문에 분명히 올바르게 작동했습니다.
우크라이나 :
일반적으로 인터넷에서 표시기를 호출하고 이미 OnTick() 또는 기타 특수 기능에 있는 데이터를 요청하는 것이 좋습니다.
이것은 나에게 좋은 메모입니다. 감사합니다) 내가 이것을했다면 문제를 보지 못했을 것입니다 ...
다시 말하지만, 0 막대에서 5개의 데이터를 복사하고 있지만 0 막대는 약 1970년(최대 막대 설정에 따라 다름) 어딘가에 있으므로 배열 인덱싱을 살펴보라고 했습니다.
내가 이해하는 한 참조 문서에서 CopyBuffer()에서 0 막대는 실제로 "현재 시간"이며 이미 복사할 때 배열이 반전됩니다.
수면(1000); // 1 초. iCustom()을 호출한 후 정말 도움이 되었지만... 지금 지연 시간을 선택해야 합니까? 계산 과정에 소요되는 시간은 어디에서 확인해야 합니까? 쓰레기를 가리키는 표시기의 올바른 핸들을 제공하는 것은 잘못되었습니다! 이전에는 그러한 문제가 없었기 때문에 분명히 올바르게 작동했습니다.
iCustom 호출과 이 표시기의 값에 대한 액세스가 시간으로 구분되면 Sleep() 함수에 대한 지연 시간을 선택할 필요가 없습니다. 또한 BarsCalculated () 함수가 있습니다.
이것이 버그로 인한 것인지는 모르겠지만 제 생각에는 마스터에 대한 모든 유형의 이동 평균( SignalFrAMA, SignalAMA, SignalMA, SignalDEMA, SignalTEMA)에 대한 라이브러리 코드에 오류가 있습니다. CSignalTEMA: 를 참조하세요. ShortCondition()
//| "Voting" that price will grow. |//| INPUT: no. |//| OUTPUT: number of "votes" that price will grow. |//| REMARK: no. |//+------------------------------------------------------------------+int CSignalTEMA::LongCondition()
{
int result= 0 ;
int idx =StartIndex();
//--- analyze positional relationship of the close price and the indicator at the first analyzed barif (DiffCloseMA(idx)< 0.0 )
{
//--- the close price is below the indicatorif (IS_PATTERN_USAGE( 1 ) && DiffOpenMA(idx)> 0.0 && DiffMA(idx)> 0.0 )
{
//--- the open price is above the indicator (i.e. there was an intersection), but the indicator is directed upwards
result=m_pattern_1;
//--- consider that this is an unformed "piercing" and suggest to enter the market at the current price
m_base_price= 0.0 ;
}
}
else
{
//--- the close price is above the indicator (the indicator has no objections to buying)if (IS_PATTERN_USAGE( 0 ))
result=m_pattern_0;
//--- if the model 2 is usedif (IS_PATTERN_USAGE( 2 ) && DiffMA(idx)> 0.0 )
{
//--- the indicator is directed upwardsif (DiffOpenMA(idx)< 0.0 )
{
//--- the open price is below the indicator (i.e. there was an intersection)
result=m_pattern_2;
//--- suggest to enter the market at the "roll back"
m_base_price=m_symbol.NormalizePrice(MA(idx));
}
else
{
//--- the open price is above the indicatorif (DiffLowMA(idx)< 0.0 )
{
//--- the low price is below the indicator
result=m_pattern_2;
//--- consider that this is a formed "piercing" and suggest to enter the market at the current price
m_base_price= 0.0 ;
}
}
}
}
//--- return the resultreturn (result);
}
//+------------------------------------------------------------------+//| "Voting" that price will fall. |//| INPUT: no. |//| OUTPUT: number of "votes" that price will fall. |//| REMARK: no. |//+------------------------------------------------------------------+int CSignalTEMA::ShortCondition()
{
int result= 0 ;
int idx =StartIndex();
//--- analyze positional relationship of the close price and the indicator at the first analyzed barif (DiffCloseMA(idx)> 0.0 )
{
//--- the close price is above the indicatorif (IS_PATTERN_USAGE( 1 ) && DiffOpenMA(idx)< 0.0 && DiffMA(idx)< 0.0 )
{
//--- the open price is below the indicator (i.e. there was an intersection), but the indicator is directed downwards
result=m_pattern_1;
//--- consider that this is an unformed "piercing" and suggest to enter the market at the current price
m_base_price= 0.0 ;
}
}
else
{
//--- the close price is below the indicator (the indicator has no objections to buying)if (IS_PATTERN_USAGE( 0 ))
result=m_pattern_0;
//--- if the model 2 is usedif (IS_PATTERN_USAGE( 2 ) && DiffMA(idx)< 0.0 )
{
//--- the indicator is directed downwardsif (DiffOpenMA(idx)< 0.0 )---------------------------------------->ДОЛЖЕН БЫТЬ ЗНАК "БОЛЬШЕ" !!!
{
//--- the open price is above the indicator (i.e. there was an intersection)
result=m_pattern_2;
//--- suggest to enter the market at the "roll back"
m_base_price=m_symbol.NormalizePrice(MA(idx));
}
else
{
//--- the open price is below the indicatorif (DiffHighMA(idx)> 0.0 )
{
//--- the high price is above the indicator
result=m_pattern_2;
//--- consider that this is a formed "piercing" and suggest to enter the market at the current price
m_base_price= 0.0 ;
}
}
}
}
//--- return the resultreturn (result);
}
또한 SignalMA 라이브러리의
int CSignalMA::ShortCondition()
{
.......
//--- analyze positional relationship of the close price and the indicator at the first analyzed barif (DiffCloseMA(idx)> 0.0 )
{
.......
}
else
{
//--- the close price is below the indicator (the indicator has no objections to buying)if (IS_PATTERN_USAGE( 0 ))
result=m_pattern_0;
//--- if the model 2 is used
То что ниже не корректно:
if (DiffMA(idx)< 0.0 )
{
//--- the indicator is directed downwardsif (IS_PATTERN_USAGE( 2 ) && DiffOpenMA(idx)< 0.0 )
{
.....
}
Последние 2 условия должны выглядеть так:
if (IS_PATTERN_USAGE( 2 ) && DiffMA(idx)< 0.0 )
{
//--- the indicator is directed downwardsif (DiffOpenMA(idx)> 0.0 )
{
.....
}
이것이 버그로 인한 것인지는 모르겠지만 제 생각에는 마스터에 대한 모든 유형의 이동 평균( SignalFrAMA, SignalAMA, SignalMA, SignalDEMA, SignalTEMA)에 대한 라이브러리 코드에 오류가 있습니다. CSignalTEMA:를 참조하세요. ShortCondition()
그리고 정확히 어느 것입니까?
나는 몇 가지 지표를 시도했다. 둘 다 잘 작동했지만 지금은 작동하지 않습니다.
2) 코어에 연결하여 테스트 실행을 시도할 때 종종 문제가 발생합니다(n번째 실행부터 작동). 그림을 참조하십시오.
텔레파시 그룹이 이미 당신의 문제를 조사하고 있습니다.
iCustom()이 제대로 작동하지 않는다는 것을 알아내는 데 텔레패스가 필요하지 않습니다.
확인하려면 전문가의 코드를 실행할 수 있습니다.
이중 버퍼[];
재설정 마지막 오류();
int MA_handle = iCustom(NULL, 0, "예\사용자 정의 이동 평균", 21, 0, MODE_SMMA);
//int MA_handle = iMA(NULL, 0, 21, 0, MODE_SMMA, PRICE_MEDIAN);
Print("MA_handle = ", MA_handle, " 오류 = ", GetLastError());
정수 복사 = CopyBuffer(MA_handle, 0, 0, 5, 버퍼);
if (copy == -1) Print("사용자 정의 이동 평균 지표 값을 가져오지 못했습니다.");
또 다른
for (int i = 0; i < 5; i++) Print("buffer[", i, "] = ", buffer[i]);
결과는 "사용자 지정 이동 평균 표시기의 값을 가져오는 데 실패했습니다"라는 메시지가 표시됩니다.
저것들. CopyBuffer는 iCustom() 표시기 핸들에 대해 오류(-1 반환)를 제공합니다. 표준 iMA() 표시기를 사용하면 동일한 코드가 작동합니다!
결과 배열의 인덱싱 방향을 보면 확장해야 할 수도 있습니다.
모든 것이 인덱싱 방향과 이전 빌드에서 동일하게 작동했습니다. 448 및 450에서 - 작동하지 않습니다.
나는 개발자들에게 터미널의 주요 기능을 더 철저히 테스트할 것을 반복적으로 제안했지만,
그러나 터미널에서 빌드할 때마다 치명적인 오류 대신 다른 오류가 나타나며 중요합니다.
저것들. 하나는 수리 중이고 다른 하나는 이미 정상적으로 작동하고 있으며 끝이 보이지 않습니다. 분명히 우리는 안정적인 버전을 기다릴 수 없습니다(((
데이터를 복사하기 전에 슬립을 넣으면 인디케이터를 계산하는 데 시간이 걸리므로 핸들이 제대로 반환되더라도 데이터는 아직 계산되지 않은 상태이므로,
일반적으로 인터넷에서 표시기를 호출하고 이미 OnTick() 또는 기타 특수 기능에 있는 데이터를 요청하는 것이 좋습니다.
다시 말하지만, 0 막대에서 5개의 데이터를 복사하고 있지만 0 막대는 약 1970년(최대 막대 설정에 따라 다름) 어딘가에있으므로 배열 인덱싱을 살펴보라고 했습니다.
데이터를 복사하기 전에 슬립을 넣어두면 인디케이터를 계산하는데 시간이 걸리므로 핸들이 제대로 반환되더라도 아직 데이터가 계산되지 않은 경우
수면(1000); // 1 초. iCustom()을 호출한 후 정말 도움이 되었지만... 지금 지연 시간을 선택해야 합니까? 계산 과정에 소요되는 시간은 어디에서 확인해야 합니까?
쓰레기를 가리키는 표시기의 올바른 핸들을 제공하는 것은 잘못되었습니다! 이전에는 그러한 문제가 없었기 때문에 분명히 올바르게 작동했습니다.
일반적으로 인터넷에서 표시기를 호출하고 이미 OnTick() 또는 기타 특수 기능에 있는 데이터를 요청하는 것이 좋습니다.
이것은 나에게 좋은 메모입니다. 감사합니다) 내가 이것을했다면 문제를 보지 못했을 것입니다 ...
다시 말하지만, 0 막대에서 5개의 데이터를 복사하고 있지만 0 막대는 약 1970년(최대 막대 설정에 따라 다름) 어딘가에 있으므로 배열 인덱싱을 살펴보라고 했습니다.
내가 이해하는 한 참조 문서에서 CopyBuffer()에서 0 막대는 실제로 "현재 시간"이며 이미 복사할 때 배열이 반전됩니다.
수면(1000); // 1 초. iCustom()을 호출한 후 정말 도움이 되었지만... 지금 지연 시간을 선택해야 합니까? 계산 과정에 소요되는 시간은 어디에서 확인해야 합니까?
쓰레기를 가리키는 표시기의 올바른 핸들을 제공하는 것은 잘못되었습니다! 이전에는 그러한 문제가 없었기 때문에 분명히 올바르게 작동했습니다.
다음 표시기 옵션 (빨간색 원)을 프로그래밍 방식으로 설정할 수 있습니까?
그것을하는 방법을 찾지 못했습니다.
이것이 버그로 인한 것인지는 모르겠지만 제 생각에는 마스터에 대한 모든 유형의 이동 평균( SignalFrAMA, SignalAMA, SignalMA, SignalDEMA, SignalTEMA)에 대한 라이브러리 코드에 오류가 있습니다. CSignalTEMA: 를 참조하세요. ShortCondition()
또한 SignalMA 라이브러리의
이것이 버그로 인한 것인지는 모르겠지만 제 생각에는 마스터에 대한 모든 유형의 이동 평균( SignalFrAMA, SignalAMA, SignalMA, SignalDEMA, SignalTEMA)에 대한 라이브러리 코드에 오류가 있습니다. CSignalTEMA:를 참조하세요. ShortCondition()
또한 SignalMA 라이브러리의
https://www.mql5.com/ru/forum/1111/page391#comment_67358
완전한 호출 문자열을 제공하십시오.
/i:<MQL5 폴더 경로>
완전한 호출 문자열을 제공하십시오.
내가 시도한 모든 옵션은 다음과 같습니다.
각 시도 후에 경로를 따라 파일이 존재하는지 확인했습니다.
D:\Users\Дмитрий\AppData\Roaming\MetaQuotes\Terminal\ 44 D6FB562C883F0C70690F3306A3851D\MQL5\Scripts\sInstallerTestScript.ex5
도중에 포함
D:\Users\Дмитрий\AppData\Roaming\MetaQuotes\Terminal\ 44 D6FB562C883F0C70690F3306A3851D\MQL5\Include\InstallerTestInclude\IncInstallerTest.mqh
존재하다.
존재 확인은 다음 기능에 의해 수행되었습니다.