초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 1151

 
Maksym Mudrakov :

오류는 소수점 이하 자릿수에 있을 수 있습니다.


오류는 이것에 있지 않고 데이터가 기록에 계산되지 않지만 기호 가 생성 된 순간부터 모든 것이 올바르게 계산됩니다. 기록에 대한 계산 기능이 올바르게 작동하지 않는 것 같습니다. 이것은 버그입니다.
 
좋은 오후입니다. 신사 숙녀 여러분.

나는 그런 문제가 있습니다. 방금 MT5에서 도핑을 시작했고 MT4에서 지표를 전송하고 문제가 발생했습니다. 한 줄에 iMA를 사용하고 특정 인덱스 하나의 값을 가져와야 합니다. 포럼에서 메시지와 iMAGet 기능 사용(유사한 iATRGet 등)을 보았습니다. 내가 볼 수 있듯이 기능이 더 이상 작동하지 않습니다. 그러면 문제는 하나의 단일 iMA 값을 정상적으로 가져오는 방법입니다. 위의 기능을 다음과 같이 사용해 보았습니다.

 NormalizeDouble (iMAGet( iMA ( Symbol (), timeframe, signal_period, 0 , MODE_LWMA , PRICE_LOW ), shift), Digits ())

확인하지 않고는 좋지 않지만 이전 MT4 코드를 이식해야 한다는 것을 압니다. 다른 방법으로 이식하는 방법을 알지 못했습니다(12개의 컴퓨터가 있고 모두 다른 시간대에서 작동합니다). 코드에 3단계 중첩이 있고 치질이 없으면 필요한 mashine을 호출할 수 없기 때문에 oninit에서 mashine을 초기화할 수 없습니다. 따라서 요컨대 내 목표는

이것은 :

 NormalizeDouble ( iMA ( Symbol (), timeframe, signal_period, 0 , MODE_LWMA , PRICE_LOW , shift), Digits ())

갑자기 움직이지 않고 MT5에서 작동하는 무언가로.

 
Olga Miakhovich :
좋은 오후입니다. 신사 숙녀 여러분.

나는 그런 문제가 있습니다. 방금 MT5에서 도핑을 시작했고 MT4에서 지표를 전송하고 문제가 발생했습니다. 한 줄에 iMA를 사용하고 특정 인덱스 하나의 값을 가져와야 합니다. 포럼에서 메시지와 iMAGet 기능 사용(유사한 iATRGet 등)을 보았습니다. 내가 볼 수 있듯이 기능이 더 이상 작동하지 않습니다. 그러면 문제는 하나의 단일 iMA 값을 정상적으로 가져오는 방법입니다. 위의 기능을 다음과 같이 사용해 보았습니다.


확인하지 않고는 좋지 않지만 이전 MT4 코드를 이식해야 한다는 것을 압니다. 다른 방법으로 이식하는 방법을 알지 못했습니다(12개의 컴퓨터가 있고 모두 다른 시간대에서 작동합니다). 코드에 3단계 중첩이 있고 치질이 없으면 필요한 mashine을 호출할 수 없기 때문에 oninit에서 mashine을 초기화할 수 없습니다. 따라서 요컨대 내 목표는

이것은 :

갑자기 움직이지 않고 MT5에서 작동하는 무언가로.

코드베이스의 예를 살펴보십시오(예: https://www.mql5.com/en/code/27161 ).

사실: OnInit()에서 표시기 핸들을 만듭니다.

handle_iMA_High= iMA ( Symbol (), Period (),Inp_MA_ma_period,Inp_MA_ma_shift,
                       Inp_MA_ma_method, PRICE_HIGH );
//--- if the handle is not created
   if (handle_iMA_High== INVALID_HANDLE )
     {
       //--- tell about the failure and output the error code
       PrintFormat ( "Failed to create handle of the iMA indicator (\"Price High\") for the symbol %s/%s, error code %d" ,
                   Symbol (),
                   EnumToString ( Period ()),
                   GetLastError ());
       //--- the indicator is stopped early
       return ( INIT_FAILED );
     }

그런 다음 원하는 요소를 버퍼에 복사하고 작업하십시오.

 if ( CopyBuffer (ind_handle, 0 ,-shift,amount,values)< 0 )
     {
       //--- if the copying fails, tell the error code
       PrintFormat ( "Failed to copy data from the iMA indicator, error code %d" , GetLastError ());

https://www.mql5.com/ru/docs/series/copybuffer

 
Vitaly Muzichenko :

코드베이스의 예를 살펴보십시오(예: https://www.mql5.com/ru/code/27161 ).

사실: OnInit()에서 표시기 핸들을 만듭니다.

그런 다음 원하는 요소를 버퍼에 복사하고 작업하십시오.

https://www.mql5.com/ru/docs/series/copybuffer

이미 썼듯이 OnInit의 초기화는 저에게 적합하지 않습니다. 모든 시간 프레임을 동시에 작업해야 하고 각 TF에서 모든 틱을 초기화해야 하고 값을 사용하는 코드에서 다음과 같이 수행해야 합니다.

 if (timeframe = PERIOD_M5 )
         CopyBuffer (handle_ma_m5, ...)
if (timeframe = PERIOD_M15 )
         CopyBuffer (handle_ma_m15, ...)
...

그리고 각 기계의 각 호출도 마찬가지입니다. 코드는 혼란스러운 설사로 바뀔 것입니다.

동시에 각각의 새로운 막대가 어떻게든 업데이트되어야 합니까?

CopyBuffer와 같이 배열이 아닌 원하는 인덱스에 하나의 값을 복사하는 기능이 있습니까?

 
Olga Miakhovich :

이미 썼듯이 OnInit의 초기화는 저에게 적합하지 않습니다 . 모든 시간 프레임을 동시에 작업해야 하고 각 TF에서 모든 틱을 초기화해야 하고 값을 사용하는 코드에서 다음과 같이 수행해야 합니다.

그리고 각 기계의 각 호출도 마찬가지입니다. 코드는 혼란스러운 설사로 바뀔 것입니다.

그리고 동시에 각각의 새로운 막대가 어떻게든 업데이트되어야 합니까?

CopyBuffer와 같이 배열이 아닌 원하는 인덱스에 하나의 값을 복사하는 기능이 있습니까?

OnInit ()에서 핸들 배열을 만들고 작업하십시오.

사용하기 쉽도록 CopyBuffer(...)를 함수로 이동 하고 배열에서 표시기 핸들과 원하는 인덱스를 제공하면 함수가 가격을 반환합니다.

 
Vitaly Muzichenko :

OnInit ()에서 핸들 배열을 만들고 작업하십시오.

사용하기 쉽도록 CopyBuffer(...)를 함수로 이동하고 배열에서 표시기 핸들과 원하는 인덱스를 제공하면 함수가 가격을 반환합니다.

kapets 얼마나 불편한지)

 
Olga Miakhovich :

kapets 얼마나 불편한지)

오히려 일반적이지 않습니다)))

 
Vitaly Muzichenko :

OnInit ()에서 핸들 배열을 만들고 작업하십시오.

사용하기 쉽도록 CopyBuffer(...)를 함수로 이동하고 표시기 핸들과 배열에서 원하는 인덱스를 제공하면 함수가 가격을 반환합니다.

CopyBuffer의 또 다른 문제는 자체적으로 표시기 버퍼 가 필요하다는 것입니다. 총 100개 미만의 지표가 있으며 하나의 지표를 얻기 위해 계산에 사용됩니다. 이러한 값을 저장하기 위해 수백 개의 버퍼를 생성해야 합니까?

 
Olga Miakhovich :

CopyBuffer의 또 다른 문제는 자체적으로 표시기 버퍼 가 필요하다는 것입니다. 총 100개 미만의 지표가 있으며 하나의 지표를 얻기 위해 계산에 사용됩니다. 이러한 값을 저장하기 위해 수백 개의 버퍼를 생성해야 합니까?

스크립터의 CodeBase에서 코드 예제를 찾으십시오. 모든 것이 있습니다.
일반적으로 Mashka는 모든 막대에 대해 계산할 수 있습니다.
 
이 문제를 해결할 수 있도록 예가 있는 게시물을 가리킵니다. 차트에 12개의 그래픽 버퍼(마스카라 및 기타 라부텐 제외)가 있는 지표 1번이 있으며 지하 지표 2번이 필요합니다. 1번 표시기에서 여러 버퍼를 가져와서 hyxogram(예, 방법은 중요하지 않음) 형식으로 표시합니다. 이미 지하실에 있습니다. 미리 감사드립니다. MT5용.
사유: