Saturday 10 February 2018

단순 이동 평균 자바


단순 이동 평균 - SMA. 이동 평균 단순 이동 - SMA. A 단순 이동 평균은 여러 기간에 대해 보안의 마감 가격을 추가하여 다른 기간 수에 대해 계산할 수 있다는 점에서 사용자 정의 할 수 있습니다. 이 총계를 기간별 보안 비용의 평균값으로 나눈 시간의 합계로 나누십시오. 단순 이동 평균은 변동성을 완화시키고 보안의 가격 추세를보다 쉽게 ​​볼 수 있습니다. 단순 이동 평균이 , 이는 보안의 가격이 상승하고 있음을 의미합니다. 아래로 향하면 보안의 가격이 하락하고 있음을 의미합니다. 이동 평균의 시간이 길수록 단순한 이동 평균이 더 짧음 단기 이동 평균은 변동성이 크지 만 그것의 독서는 근원 자료에 더 가깝습니다. 분석적 중요성. 이동 평균은 현재의 가격 추세와 확립 된 tre의 변화 가능성을 확인하는 데 사용되는 중요한 분석 도구입니다 간단한 이동 평균을 분석에 사용하는 가장 간단한 방법은 보안이 상승 추세인지 또는 하락 추세인지를 빠르게 식별하는 것입니다. 약간 더 복잡한 분석 도구이기는하지만 다른 인기있는 간단한 이동 평균을 비교하는 것입니다 시간 프레임 단기 단기 이동 평균이 장기 평균보다 높으면 상승 경향이 있습니다. 반면 단기 평균보다 장기 평균은 추세에서 하향 움직임을 나타냅니다. 인기 거래 패턴. 간단한 이동 평균을 사용하는 두 가지 인기있는 거래 패턴에는 죽음의 십자가와 십자가가 포함됩니다. 50 일 이동 평균이 200 일 이동 평균을 밑돌면 죽음의 십자가가 생깁니다 이것은 곰 같은 신호로 간주되어 추가 손실이 저장됩니다 황금의 십자가는 단기 이동 평균이 장기 이동 평균보다 높을 때 발생합니다. 높은 거래량으로 보강되면 더 많은 이익이 창출 될 것입니다. 본질적으로 배열이 있습니다. 위의 배열은 지나치게 단순화되어 있습니다. 실제 코드에서 밀리 초당 1 값을 수집하고 특정 시점 이전에 가장 가까운 피크를 찾기 위해 쓴 알고리즘의 출력을 처리해야합니다. 내 논리가 실패합니다. 위의 예에서 0 36은 실제 피크이지만 내 알고리즘은 거꾸로 보며 가장 마지막 숫자 0 25를 피크로 봅니다. 그 이전에는 0 24로 감소했습니다. 목표는이 값을 가져 와서 알고리즘을 적용하는 것입니다. 그것들은 조금 더 부드럽게 만들어서 더 선형적인 값을 가지게합니다. 예를 들어 jaggedy가 아닌 내 결과가 마음에 드는군요. 나는 지수로 이동 평균 필터를 적용해라. 나는 이것을 어떻게 할 수 있는가? 열심히 수학적 방정식을 읽으려면 코드를 더 잘 처리 할 수 ​​있습니다. 배열에서 값을 처리하고 지수 이동 평균 계산을 적용하여 어떻게 할 수 있습니까? 2 월 8 일 12시 20 분 27 초로 지정합니다. 지수 이동 평균을 계산하려면 어떤 상태를 유지해야하고 튜닝 매개 변수가 필요합니다. 이것은 Java 5 이상을 사용한다고 가정 할 때 약간의 클래스를 필요로합니다. 원하는 감쇄 매개 변수를 사용하여 초기화하려면 0에서 1 사이의 값을 가져야하고 평균을 필터로 사용해야합니다. 일부 수학적 재발에 대한 페이지를 읽는다면 코드로 변환 할 때 알아야 할 점은 수학자가 배열에 인덱스를 쓰고 아래 첨자로 시퀀스를 쓰는 것을 좋아한다는 것입니다. 다른 도움이되는 몇 가지 표기법도 있습니다. 그러나 EMA는 오래된 값 하나만 기억하면되므로 매우 간단합니다 복잡한 상태 배열은 필요하지 않습니다. 대답 2 월 8 일 12시 20 분 42 초. TKKocheran 일들이 간단 할 때 좋지 않음 새로운 순서로 시작하면 새로운 평균을 구하십시오. 평균 순서의 처음 몇 단어가 경계 효과로 인한 비트이지만 다른 이동 평균과의 차이점도 얻을 수 있습니다. 그러나 좋은 장점은 프로그램의 나머지 부분을 방해하지 않으면 서 이동 평균 논리를 평균과 실험으로 래핑 할 수 있다는 것입니다 많은 Donal Fellows 2 월 9 일 12시 0 분 06. 귀하의 질문을 이해하는 데 어려움을 겪고 있습니다. 하지만 어쨌든 대답하려고 노력할 것입니다 .1 귀하의 알고리즘이 0 36 대신 0 25를 찾았다면 잘못된 것입니다. 항상 증가하거나 감소하는 단조로운 증가 또는 감소 모든 데이터를 평균화하지 않으면 데이터 포인트 --- 제시 할 때 --- 비선형 적입니다. 두 포인트 사이의 최대 값을 실제로 찾으려면 그런 다음 배열을 tmin에서 tmax로 슬라이스하고 그 부분 배열의 최대 값을 찾습니다 .2 이제 이동 평균의 개념은 매우 간단합니다. 다음 목록이 있다고 가정하십시오. 1 4, 1 5, 1 4, 1 5, 1 5 I 두 숫자의 평균을 취하여이를 부드럽게 할 수 있습니다. 1 45, 1 45, 1 45, 1 5 첫 번째 숫자는 1 5 및 1 4 초의 평균이고 첫 번째 숫자는 두 번째 새 목록의 평균입니다. 1 5 3 1 2 3 4 5 3 1 2 3 1 2 3 4 5 3 4 5 3 1 2 3 4 5 4 5 6 5 6 7 8 9 9 9 9 9 9 9 9 9 9 9 9 9 1 2 3 1 2 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 4 5 4, 또는 n 데이터가 훨씬 더 매끄럽지 않은지 확인하십시오. 근무 중 이동 평균을 확인하는 좋은 방법은 Google Finance로 이동하여 주식을 선택하는 것입니다. 테슬라 모터스는 매우 변동이 심한 TSLA를 사용하고 차트 하단의 기술을 클릭하십시오. 주어진 기간 및 지수 이동 평균을 사용하여 차이를 비교합니다. 지수 이동 평균은 이것에 대한 또 다른 정교화이지만 이전 데이터를 새 데이터보다 가중치를 줄입니다. 이는 뒤쪽으로 스무딩을 바이어스하는 방법입니다. 위키 백과 항목을 읽어보십시오. 그래서, 이것은 답보다 더 많은 코멘트입니다, 작은 코멘트 박스는 단지 작은 행운입니다. 행운을 빌어 요. 만약 당신이 수학에 어려움을 겪는다면, 지수 대신 간단한 이동 평균을 취할 수 있습니다. 마지막 x 항을 x로 나눈 값. 검증되지 않은 의사 코드. 두 번째 데이터 점에있을 때 마지막 5 항의 평균을 명확하게 나타낼 수 있으므로 데이터의 시작과 끝 부분을 처리해야합니다. 더 효율적인 방법이 있습니다 영형 이 이동 평균 합계를 계산하는 것은 가장 오래된 것이지만 가장 최근의 것이지만, 이것은 무엇이 일어나고 있는지에 대한 개념을 얻는 것입니다. 답변 2 월 8 일 12시 20 분 41. Java에서 간단한 이동 평균 구현. 몇 차례에 걸쳐 간단한 메트릭 시간당 히트 수 또는 시간별 오류와 같은 Java 응용 프로그램에서 단순 메트릭을 계산하는 것은 그리 어려운 일은 아니지만 단지 여분의 작업 일뿐 아니라 오히려 그 시간을 문제 영역에서 보냈습니다. Java에서 메트릭에 대해 널리 사용되는 솔루션을 찾습니다. 메트릭을 찾았지만 너무 복잡하고 잘 문서화되지 않은 것처럼 보였습니다. 실제로 제가 원했던 것은 이동 평균을 계산하는 것이 었습니다. 나는이 문제에 대해 더 많은 것을 생각하고 그것을 어렵지 않게 결정했습니다. 문제 여기 내 솔루션입니다. 이것은 창 업데이트 빈도 크기의 배열을 생성 한 다음 스레드가 업데이트 빈도에서 배열의 다음 인덱스로 카운트를 설정합니다. 간격의 카운트는 단순히 배열입니다. i - 배열 i 1 가장 오래된 카운트에서 가장 오래된 카운트를 뺀 값입니다. 10 분 간격 동안 가장 오래된 카운트 i 1은 정확히 10 분입니다. 이동중인 평균을 코드에 추가하려면 먼저 AtomicLong을 사용하여 카운터가 필요합니다. 이 카운터는 당신이 컴퓨팅에 관심이있는 이벤트, 예를 들어 REST 서비스에 대한 POST 요청에 기초하여 증가합니다. 카운터에 대한 액세스를 구현에 제공해야하며 GetCount 인터페이스를 통해이를 수행해야합니다. 5 분 창으로 이동 평균을 생성합니다. 매 초마다 업데이트됩니다. 현재 평균을 얻으려면 간단히 getAverage 메서드를 호출하십시오. 주요 구현 세부 정보는 배열 크기가 업데이트 빈도로 창을 나눔으로써 결정되는 방식입니다. 따라서 빈번한 업데이트 빈도가있는 큰 창이 상당한 양을 소비 할 수 있습니다 of memory이 예에서 배열 크기는 합리적입니다. 그러나 1 초 간격으로 24 시간 이동 평균을 작성하면 크기는 86400입니다. 시간주기는 288의 5 분 배열 크기 일 수 있습니다. 창 및 업데이트 빈도를 선택하는 또 다른 고려 사항은 빈도로 나눌 수있는 창이 있어야합니다. 예를 들어, 6 초의 업데이트 빈도로 2 분의 창은 정상이지만 7 초 업데이트 윈도우 모듈 계수 업데이트 빈도가 0이 아니면 IllegalArgumentException이 던져진다. 이 구현에는 이동 평균 당 하나의 스레드가 필요하며 이는 그리 효율적이지 않다. 더 좋은 해결책은 여러 스레드에서 스레드를 공유하는 것이다. 평균 업데이트 나는 여기서 스레드를 공유하도록 코드를 업데이트했습니다. 거의 초기 상태 문제가 있습니다. 전체 창에 대해 아직 데이터가 없습니다. 예를 들어, 5 분의 창과 15 초의 데이터가있는 경우이 구현은 null을 반환합니다. 우리가 5 분의 데이터를 가질 때까지 또 다른 접근법은 평균을 추정하는 것입니다. 우리가 30 초 동안 10의 카운트를 가지고 있다고 가정하면, 평균을 2 분 안에 40으로 추정 할 수 있습니다. 그러나 signif의 위험이 있습니다 불완전한 데이터를 외삽하여 icant 에러 예를 들어, 2 초 동안 20 히트의 버스트가 발생했다면, 2 분당 1200을 예상 할 수 있습니다. 이는 대체로 꺼져 있습니다.

No comments:

Post a Comment