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

 
Mike :
1. 모두 일치
2. 해당 매개변수가 없습니다.
다른 스레드에서 MT4의 이 문제는 해결할 수 없다고 들었습니다. :(

2. 매개변수에 대해 말씀드릴 수 있도록 별도의 창에서 Masha를 어디서 얻었는지 모르겠습니다. 하지만... 표시기 --> 오실레이터 --> 오실레이터의 이동 평균에서 가져오면 "적용 대상:"이 있습니다.

따라서 별도의 창에 있는 지표에 다른 것을 넣으려고 하면 ENUM_APPLIED_PRICE 열거형의 표준 가격뿐만 아니라 이미 창에 있는 지표의 데이터에도 적용될 수 있습니다. 어쩌면 당신은 바로 그런 상황에 있습니다.

3. 무엇이 문제입니까? 3개의 Mashka가 동일한 3개의 Mashka에 해당하지 않는다는 것(귀하의 진술에 따르면) Mashka? 그래서 그것은 해결할 수 없는 것이 아니라 말도 안되는 것입니다. 올바르게 수행된 경우 일치해야 합니다. 차이점은 무엇입니까 - 자체 매개변수가 있는 3개의 개별 MA 또는 동일한 매개변수가 있는 동일한 3개의 MA, 그러나 3개의 버퍼가 있는 하나의 표시기로 푸시됩니다... 차이점이 보이나요? 나 아니야. 그리고 그것이 보이면 Mashek의 계산에서 불일치를 찾으십시오.

그건 그렇고... 악어 - 하나의 지표에 3개의 MA가 있고 각각 고유한 매개변수가 있습니다. 3개의 개별 MA와 동일하게 매개변수를 설정하면 일치합니다. 사실, 당신은이 모든 bacchanalia를 별도의 창에 가지고 있습니다 ... 글쎄 ... 예를 들어

 
Mike :
나는 지표를 Three One - 3MA(4,9,14)로 만들고 MA(4), MA(9), MA(14)의 세 가지 지표가 있는 창과의 정확성을 확인하기 위해 비교하기로 결정했습니다. 머리카락이 끝에 서 있습니다. :)
표시기 창의 자체 크기 조정을 끄면 모든 것이 안정될 수 있습니다.
"3개의 표시기가 있는 경우 - МА(4), МА(9), МА(14)" 표시기 창은 이 창에 연결된 첫 번째 표시기에 의해 자체 크기 조정됩니다. 귀하의 경우 MA(4)
 

위의 시간 프레임에서, 그러나 이 시간 프레임 내에서 내장 표시기의 값을 함수를 통해 얻는 구성을 알려주세요.

저것들. 현재 차트는 15분, 지표의 값을 일 단위로 계산해야 하는데 45분 전, 어떻게 할까요?

다음은 표시기 값을 반환하지만 현재 막대에만 적용되는 까다롭지 않은 알고리즘입니다.

double iDelta(int Variant,int n,int TF,int index)

  {

   double Fibo=0;

   if(Variant==1) Fibo=0.236;

   if(Variant==2) Fibo=0.382;

   if(Variant==3) Fibo=0.5;

   if(Variant==4) Fibo=0.618;

   if(Variant==5) Fibo=0.764;

   if(Variant==6) Fibo=1;

   if(Variant==7) Fibo=1.236;

   if(Variant==8) Fibo=1.382;

   if(Variant==9) Fibo=1.5;

   if(Variant==10) Fibo=1.618;

   if(Variant==11) Fibo=2.0;

   if(Variant==12) Fibo=2.236;

   if(Variant==-1) Fibo=-0.236;

   if(Variant==-2) Fibo=-0.382;

   if(Variant==-3) Fibo=-0.5;

   if(Variant==-4) Fibo=-0.618;

   if(Variant==-5) Fibo=-0.764;

   if(Variant==-6) Fibo=-1;

   if(Variant==-7) Fibo=-1.236;

   if(Variant==-8) Fibo=-1.382;

   if(Variant==-9) Fibo=-1.5;

   if(Variant==-10) Fibo=-1.618;

   if(Variant==-11) Fibo=-2.0;

   if(Variant==-12) Fibo=-2.236;

   return ( NormalizeDouble(iOpen(Symbol(),TF,index)+iATR(Symbol(), TF, n, index+1)*Fibo,Digits) );

  } 

 
Leo59 :
표시기 창의 자체 크기 조정을 끄면 모든 것이 안정될 수 있습니다.
"3개의 표시기가 있는 경우 - МА(4), МА(9), МА(14)" 표시기 창은 이 창에 연결된 첫 번째 표시기에 의해 자체 크기 조정됩니다. 귀하의 경우 MA(4)
그리고 이 자체 크기 조정은 어디에서 해제되어 있습니까?
 
Artyom Trishkin :

2. 매개변수에 대해 말씀드릴 수 있도록 별도의 창에서 Masha를 어디서 얻었는지 모르겠습니다. 하지만... 표시기 --> 오실레이터 --> 오실레이터의 이동 평균에서 가져오면 "적용 대상:"이 있습니다.

따라서 별도의 창에 있는 지표에 다른 것을 넣으려고 하면 ENUM_APPLIED_PRICE 열거형의 표준 가격뿐만 아니라 이미 창에 있는 지표의 데이터에도 적용될 수 있습니다. 어쩌면 당신은 바로 그런 상황에 있습니다.

3. 무엇이 문제입니까? 3개의 Mashka가 동일한 3개의 Mashka에 해당하지 않는다는 것(귀하의 진술에 따르면) Mashka? 그래서 그것은 해결할 수 없는 것이 아니라 말도 안되는 것입니다. 올바르게 수행된 경우 일치해야 합니다. 차이점은 무엇입니까 - 자체 매개변수가 있는 3개의 개별 MA 또는 동일한 매개변수가 있는 동일한 3개의 MA, 그러나 3개의 버퍼가 있는 하나의 표시기로 푸시됩니다... 차이점이 보이나요? 나 아니야. 그리고 그것이 보이면 Mashek의 계산에서 불일치를 찾으십시오.

그건 그렇고... 악어 - 하나의 지표에 3개의 MA가 있고 각각 고유한 매개변수가 있습니다. 3개의 개별 MA와 동일하게 매개변수를 설정하면 일치합니다. 사실, 당신은이 모든 bacchanalia를 별도의 창에 가지고 있습니다 ... 글쎄 ... 예를 들어

Artyom, "적용 대상" - 가격 목록만 있습니다. MA 계산이 정확하고 3MA 표시기가 있는 창에 기간이 4, 9, 14인 단일 표시기를 추가하여 세 줄 모두 확인합니다. 각각의 경우 단일 표시기는 3MA 표시기의 해당 선과 일치합니다.
 
Mike :
Artyom, "적용 대상" - 가격 목록만 있습니다. MA 계산이 정확하고 3MA 표시기가 있는 창에 기간이 4, 9, 14인 단일 표시기를 추가하여 세 줄 모두 확인합니다. 각각의 경우 단일 표시기는 3MA 표시기의 해당 선과 일치합니다.
그렇다면 무엇이 문제인가? 나는 당신이 다른 창에서 시각적으로 일치하지 않는 선을 좋아하지 않는다는 것을 이해합니다. Ctrl+D를 누르고 표시줄 위로 마우스를 이동하고 데이터 창에서 값을 찾습니다. 일치합니까...
 
-Aleks- :

위의 시간 프레임에서, 그러나 이 시간 프레임 내에서 내장 표시기의 값을 함수를 통해 얻는 구성을 알려주세요.

저것들. 현재 차트는 15분, 지표의 값을 일 단위로 계산해야 하는데 45분 전, 어떻게 할까요?

다음은 표시기 값을 반환하지만 현재 막대에만 적용되는 까다롭지 않은 알고리즘입니다.

double iDelta(int Variant,int n,int TF,int index)

  {

   double Fibo=0;

   if(Variant==1) Fibo=0.236;

   if(Variant==2) Fibo=0.382;

   if(Variant==3) Fibo=0.5;

   if(Variant==4) Fibo=0.618;

   if(Variant==5) Fibo=0.764;

   if(Variant==6) Fibo=1;

   if(Variant==7) Fibo=1.236;

   if(Variant==8) Fibo=1.382;

   if(Variant==9) Fibo=1.5;

   if(Variant==10) Fibo=1.618;

   if(Variant==11) Fibo=2.0;

   if(Variant==12) Fibo=2.236;

   if(Variant==-1) Fibo=-0.236;

   if(Variant==-2) Fibo=-0.382;

   if(Variant==-3) Fibo=-0.5;

   if(Variant==-4) Fibo=-0.618;

   if(Variant==-5) Fibo=-0.764;

   if(Variant==-6) Fibo=-1;

   if(Variant==-7) Fibo=-1.236;

   if(Variant==-8) Fibo=-1.382;

   if(Variant==-9) Fibo=-1.5;

   if(Variant==-10) Fibo=-1.618;

   if(Variant==-11) Fibo=-2.0;

   if(Variant==-12) Fibo=-2.236;

   return ( NormalizeDouble(iOpen(Symbol(),TF,index)+iATR(Symbol(), TF, n, index+1)*Fibo,Digits) );

  } 

질문에 대답할 수는 없지만 기능을 단순화하고 크게 가속화할 수 있습니다.
표시기를 초기화할 때 정적 배열 을 만듭니다.

double arrFibo[13] = {0.0, 0.236, 0.382, ..., 2.236};

모든 if in iDelta() 는 다음으로 대체할 수 있습니다.

if (Variant>0)
    Fibo =  arrFibo[  Variant];
else
    Fibo = -arrFibo[- Variant];

 
Mike :

질문에 대답할 수는 없지만 기능을 단순화하고 크게 가속화할 수 있습니다.
표시기를 초기화할 때 정적 배열 을 만듭니다.

double arrFibo[13] = {0.0, 0.236, 0.382, ..., 2.236};

모든 if in iDelta() 는 다음으로 대체할 수 있습니다.

if (Variant>0)
    Fibo =  arrFibo[  Variant];
else
    Fibo = -arrFibo[- Variant];

감사합니다. 시도해 보겠습니다. 아마도 더 나을 것입니다.

 
Mike :

질문에 대답할 수는 없지만 기능을 단순화하고 크게 가속화할 수 있습니다.
표시기를 초기화할 때 정적 배열 을 만듭니다.

double arrFibo[13] = {0.0, 0.236, 0.382, ..., 2.236};

모든 if in iDelta() 는 다음으로 대체할 수 있습니다.

if (Variant>0)
    Fibo =  arrFibo[  Variant];
else
    Fibo = -arrFibo[- Variant];

만들어진. 당신이 쓴 것처럼, 그러나 그것은 제대로 작동하지 않았습니다 - 나는 아직 정확히 무엇이 잘못되었는지 모릅니다 - 인쇄해야합니다 ....

라인이 이해가 안감

else           Fibo = -arrFibo[-Variant];

그래서 일반적으로 배열의 마이너스 인덱스를 요청하면 어떻게 됩니까?
 
-Aleks- :

만들어진. 당신이 쓴 것처럼, 그러나 그것은 제대로 작동하지 않았습니다 - 나는 아직 정확히 무엇이 잘못되었는지 모릅니다 - 인쇄해야합니다 ....

라인이 이해가 안감

else           Fibo = -arrFibo[-Variant];

그래서 일반적으로 배열의 마이너스 인덱스를 요청하면 어떻게 됩니까?
Variant가 음수이면 -Variant 표현식은 배열에서 선택할 양수 인덱스를 제공합니다.
같은 경우 음수 Fibo 값이 필요하므로 -arrFibo.
사유: