지표: Price prediction by Nearest Neighbor

 

Price prediction by Nearest Neighbor:

이 지표는 k-NN이라고도 하는 가장 가까운 이웃 클러스터링 기법을 사용하여 역사상 가장 유사한 패턴을 검색하고 과거 가격을 현재 패턴 미래 가격의 예측으로 사용합니다.

Price prediction by Nearest Neighbor

Author: Vladimir

 

파이의 수는 이렇게 설정하는 것이 좋습니다.

pi = 4*MathArctan(1);
제가 아이디어를 얻은 적이 있어서 이제 여러분에게 전달해드리려고 합니다.
 
Prival:

파이의 수는 이렇게 설정하는 것이 좋습니다.

제가 한 번 팁을 얻었으니 이제 여러분에게 전달해드리겠습니다.
고마워요, 명심하겠습니다. 그건 그렇고, 파이를 사용하지 않습니다. 제가 실수로 그 줄을 넣었습니다.
 

MQL5 언어에는 수학 상수 섹션도 있습니다:

값을 포함하는 특수 상수는 일부 수학 표현식을 위해 예약되어 있습니다. 이러한 상수는 수학 함수를 사용하여 값을 계산하는 대신 mql5 프로그램 어디에서나 사용할 수 있습니다.

상수

설명

M_E

e

2.71828182845904523536

M_LOG2E

log2(e)

1.44269504088896340736

M_LOG10E

log10(e)

0.434294481903251827651

M_LN2

ln(2)

0.693147180559945309417

M_LN10

ln(10)

2.30258509299404568402

M_PI

pi

3.14159265358979323846

 
Rosh:

MQL5에는 수학 상수 섹션도 있습니다:


필요한 사항
 
Rosh:

MQL5에는 수학 상수 섹션도 있습니다:


이 상수는 가능한 최대 정확도로 설정되어 있습니까? 이 항목을 사용한 이유는 최대 정밀도가 필요했기 때문입니다. 그렇지 않으면 오류가 누적되기 때문입니다.
 
Prival:
이 상수는 가능한 최대 정밀도로 설정되어 있나요? 이 항목을 사용한 이유는 정확히 최대 정밀도를 가져야 하기 때문입니다. 그렇지 않으면 오류가 누적되기 때문입니다.

이 값을 가져와서 확인해야 합니다. 다음은 100500의 5 배를 제공하는 스크립트입니다.

#property copyright "저작권 © 2010 유진 로구노프(lea)"
#property version "1.00"

int CalcDifference(double approx, double exact) {
   double diff = MathAbs(approx - exact);
   if (diff == 0.0) {
      return 100500;
   }
   else {
      return (int)(-MathLog10(diff));
   }
}

void OnStart() {
   PrintFormat("%d", CalcDifference(MathExp(1.0), M_E));
   PrintFormat("%d", CalcDifference(MathLog10(MathExp(1)), M_LOG10E));
   PrintFormat("%d", CalcDifference(MathLog(2.0), M_LN2));
   PrintFormat("%d", CalcDifference(MathLog(10.0), M_LN10));
   PrintFormat("%d", CalcDifference(MathArctan(1.0) * 4.0, M_PI));
}

추신 상수의 소수점 오른쪽 소수점 이하 16 자리의 오류로 인해 알고리즘이 잘못된 결과를 생성하는 경우 상수가 아닌 것이 분명합니다. 어쨌든 따옴표가 필터링되는 경우 이러한 계산 정확도가 필요한 이유는 무엇입니까?

 
lea:

이걸 가지고 가서 확인해야겠어요. 다음은 스크립트입니다. 100500의 5배를 제공합니다.

추신 : 상수의 소수점 오른쪽 소수점 이하 16 자리의 오류로 인해 알고리즘이 잘못된 결과를 생성하는 경우 상수가 아닌 것이 분명합니다. 어차피 따옴표가 필터링된다면 왜 그런 계산 정확도가 필요할까요?

프로그래머로서 반복 알고리즘에 대해 적어도 한 번은 반복 알고리즘이 무엇이며 어떤 용도로 사용되는지 읽어 보는 것이 좋습니다. 그리고 반올림 http://dic.academic.ru/dic.nsf/enc_mathematics/1999/ИТЕРАЦИОННЫЙ 수학자들은이 반올림을 처리하는 방법 (안정적인 알고리즘을 제시하기 위해)에 대해 퍼즐을 풀고 있으며, 여기서는 쉽고 강제적이지 않으며 그 이유는 ...

Z.Y. 조언 해 주셔서 감사합니다. 나는 이미 2 주를 확인하기 위해 https://www.mql5.com/ko/code/8309 이제 나는이 갈퀴를 밟지 않을 것입니다.

З.З.Ы 그래서 이미 확인에 지쳤고, 다섯 명은 이미 편집증이되고 있습니다 ...

 
Prival:

프로그래머로서 반복 알고리즘, 그것이 무엇이며 무엇을 먹는지에 대해 평생 한 번 읽어 보는 것이 좋습니다. 그리고 반올림 http://dic.academic.ru/dic.nsf/enc_mathematics/1999/ИТЕРАЦИОННЫЙ 수학자들은이 반올림을 처리하는 방법 (안정적인 알고리즘을 제시하기 위해)에 대해 퍼즐을 풀고, 여기서는 쉽고 강제적이지 않으며 그 이유는 ...

나는 작년에 그것에 대해 모두 읽어야했습니다. 게다가 나는 불안정성을 암시하고있었습니다 (상수에 관한 것이 아니라고 말함으로써).

유형 때문에 정확성이 부족하다고 느끼면 http://gmplib.org/ (물론 계산 속도가 떨어질 것입니다)와 같은 것을 추천 할 수 있습니다.

H.S.Y. 나는 이미 확인에 지쳤고, 5에서는 편집증이됩니다....

때로는 시간이 많이 걸리더라도 항상 가능한 모든 것을 확인해야합니다. 그렇지 않으면 놀라움이있을 수 있습니다.

 
lea:

저는 지난 1년 동안 그것에 대해 읽어왔습니다. 게다가 (상수에 관한 것이 아니라고 말함으로써) 불안정성을 암시했습니다.

유형 때문에 정확도가 부족하다고 느끼면 http://gmplib.org/ 같은 것을 추천 할 수 있습니다 (물론 계산 속도가 떨어집니다).

시간이 많이 걸리더라도 항상 가능한 모든 것을 확인해야 합니다. 그렇지 않으면 깜짝 놀랄 일이 생길 수 있습니다.

당신은 내가 무엇을 프로그래밍했는지 전혀 모르고 조언을 제공합니다. 그리고 당신은 유치원에 다닐 때 프로그래밍을 시작한 사람 (프로필로 판단)을 가르칩니다.

당신은 개발자가 아니고 내가 질문하지 않았지만 코드를 확인하는 방법을 가르치기 시작했습니다. 모든 상수가 얼마나 정확하게 설정되었는지 결과를 알려주세요. 조언 없이도 확인할 수 있고 시간을 절약하고 싶을 뿐입니다.

 
매우 좋음