java : 바이 낸스와 다른 EMA (지수 이동 평균)
나는 거래 쌍의 1 분 간격 칸델 스틱을 검색하기 위해를 사용하여 Java 프로그램을 작성하고 있습니다. Java 클래스를 사용하여 지난 10 일 동안의 EMA (Exponential Moving Average)를 계산하고 싶습니다.
Binance JAVA API 웹 소켓 구현은 최신 심도 이벤트를 가져옵니다. 여기에는 다음을 호출하여 EMA 계산을 업데이트하는 데 사용하는 현재 종가도 포함됩니다. EMA # 업데이트 방법.
그러나 Binance의 그래프에 표시된 EMA가 내 code에서 얻은 것과 일치하지 않는다는 것을 알았습니다. 또한 Binance에 표시된 값과 비교하여 (다소) 동일한 값을 제공하기 전에 값이 '정착'되는 데 약간의 시간이 필요하다는 것을 알았습니다.
TradingView에서 EMA (바이 낸스에서와 동일한 EMA 값을 표시 함)를 계산했지만 EMA 클래스에서 사용되는 것과는 다릅니다. 그러나이 공식을 사용하더라도 Binance의 값과는 매우 다릅니다.
누군가가 문제가 무엇이며 동일한 가치를 얻는 방법을 파악하도록 도와 줄 수 있습니까?
업데이트 1 : code 제공
업데이트 2
ta-lib.org/hdr_dev.html과 같은 오픈 소스 라이브러리로 결과를 교차 확인할 수 있다고 생각합니다.
Cheok Yan Cheng 2021-03-01 02:02:19
제안 해 주셔서 감사합니다. 그러나 EMA 값에는 여전히 약간의 차이가 있습니다. 내 code를 실행하여 더 많은 도움을 주시겠습니까?
RazorAlliance192 2021-03-01 02:02:19
EMA 계산에 충분한 히스토리 데이터를 사용하고 있습니까? 가치를 안정시키기 위해서는 에마 룩 백의 약 3 배가되어야합니다. 예를 들어, ema의 길이가 10 인 경우 10 번째 캔들에서 첫 번째 값을 받게되지만 ema는 30 번째 캔들 주변에서만 '안정적'으로 간주됩니다.
e2e4 2021-03-01 02:02:19
@ e2e4 저는 Binance API가 돌려 보내는 최대 한도, 즉 1 분 간격으로 1000 개의 촛대에 기록 데이터를 올렸습니다. 내 프로그램을 실행할 때 값은 Binance가 보여주는 것과 동일합니다. 그러나 30 초 후 값이 약간 다르고 1 ~ 2 분 후에 값이 많이 달라집니다 (마지막 업데이트의 35) - 기타 이평선 돌파 전략 이미지 참조).
실전 투자 전략 (35) - 기타 이평선 돌파 전략
지난 포스팅에서는 단순 이평선 전략의 성과를 확인한 바 있습니다. 이번 포스팅에서는 단순 이평선에서 파생된 지수 이평선 전략과 적응형 이평선 전략의 성과를 확인 해보겠습니다.
1. 지수 이평선 전략
단순 이평선이 최근 n일간의 가격 중 특정 가격에 가중치를 두지 않고, 동일하게 평균을 낸 컨셉이라면, 지수 이평선은 최근의 가격 변화에 좀 더 가중치를 두고 계산한 방식 입니다.
지수 이평선의 계산식은 아래와 같습니다.
그러면 대체 왜 최근의 가격에 더 가중치를 둘까요?
그 이유는 최근의 가격 변화가 오래 전의 가격보다 더 중요한 정보를 담고 있다는 전제 때문 입니다.
예를 들자면, 어떤 학생의 수학 성적의 추세를 볼 때, 최근 3개월 간의 성적과 3년 전의 성적 중 어떤 것이 더 의미가 클까요?
바로 가까운 미래의 움직임은 최근의 데이터와 가격이 더 잘 반영한다고 볼 수 있으므로, 오래 전 데이터보다 최근의 가격에 더 가중치를 두자는 컨셉 입니다. 일종의 추세 추종형 철학이 녹아있는 지표라고 할 수 있습니다.
따라서, 똑같이 이동 평균선 돌파 전략을 구사한다고 하면, 단순 이평선 돌파 전략보다 지수 이평선 돌파 전략의 신호가 더 빠르게 잡히는 장점 이 있습니다.
'오 그러면, 35) - 기타 이평선 돌파 전략 단순 이평선보다 훨씬 더 좋겠네? '
라고 생각하실 수 있겠지만, 사실은 꼭 그렇지도 않습니다.
그 이유는 신호가 빠르게 잡힌다는게 장점으로 작용할 수도 있겠지만, 단점으로 작용할 수도 있기 때문 입니다.
소위 말하는 잘못된 신호 (휩소)가 나타나면 지수 이평선 신호는 괜히 쓸데없이 일찍 들어가고, 쓸데없이 일찍 빠져나오는 소위 전문 용어로 '삑사리' 가 나게 되는 것이죠.
이런 경우에는 오히려 단순 35) - 기타 이평선 돌파 전략 이평선보다 못한 결과가 발생하는데요
따라서, 결론은 ' 딱히 지수 이평선 전략이 단순보다 항상 좋다는 보장 없다 '입니다.
지난 포스팅 에서 소개한 단순 이평선 포트폴리오를 대상으로 단순 이평선 ---> 지수 이평선으로만 조건을 바꾸어 시뮬레이션 한 결과입니다.
단순 이평선 전략과 비교해볼까요?
대충 보면 지수 이평선 전략이 약간 더 나은 것 같은데, 큰 차이는 아닙니다.
시장이란게 원래 이렇습니다. 뭔가 업그레이드하고 복잡한 걸 쓰면 더 잘 먹힐 것 같고 엄청나게 업그레이드 될 것 같지만, 꼭 그렇지도 않습니다
2. 적응형 이평선 전략 (Kaufmann's adaptive moving average)
단순 이평선이나 지수 이평선 모두 특정한 n일 값은 고정되어 있습니다.
그런데 적응형 이평선에서는 똑같은 n일 이평선이라도, 시장의 변동성에 따라 고정된 n일 이평선 값에 미세한 조정값이 추가 됩니다.
이동 평균선을 추세 추종의 지표로 이용시, 노이즈가 적고 안정된 추세를 보일 경우에는 35) - 기타 이평선 돌파 전략 최근의 가격을 충실히 따라가면 되지만, 오르락 내리락 등락이 심한 경우 최근의 가격은 믿기가 힘들겠지요?
적응형 이평선에는 여러 종류가 있지만 가장 35) - 기타 이평선 돌파 전략 대표적인 것이 유명한 기술적 분석가 Perry Kauffmann이 자신의 유명한 저서인 'Trading systems and method'에서 언급한 Kaufmann's adaptive moving average 입니다.
Kaufmann's adaptive moving average에서는 최근의 가격의 움직임에 노이즈가 적을 때(안정적, 추세적, 작은 변동성)일 경우에는 기본 이평선 시그널에 최근의 가격의 움직임을 적극 반영하고, 노이즈가 클 때 (불안정, 비추세적, 큰 변동성)일 때는 최근의 가격의 움직임을 덜 반영함으로써 좀 더 시장의 움직임을 정확하게 추적하기 위해 노력 합니다.
그렇다면 가격의 움직임의 노이즈를 판단하는 기준은 무엇일까요? 이전 포스팅에서도 35) - 기타 이평선 돌파 전략 설명드린 efficiency ratio라는 지표를 이용 하여 가격의 노이즈를 정량합니다. Efficiency ratio는 0~1 사이의 값을 가지는데, 1에 가까울수록 안정적, 추세적이고, 0에 가까울수록 불안정하고 비추세적입니다. Efficiency ratio를 이용하여 조정계수라는 값을 산출하여 이동평균선의 값을 보정하는 원리입니다.
이거 참 말로만 설명하려니 어려운데요, 자세한 수식은 여기 를 참고하시면 잘 나와 있습니다. 방금 설명드린 개념만 잘 이해하셨다면 수식을 이해하는데도 큰 무리는 없으리라 생각합니다.
어떻습니까? 엄청날 것 같죠? 시뮬레이션 결과를 확인해 볼까요?
어떻습니까? 뭐 단순 이평선이랑 비슷한 수준이네요.
적응형 이평선 전략의 전제 조건은 일반적으로 변동성이 커지면 추세 추종에 불리하다는 전제인데,
이것은 사실이지만, '일반적'이라는 단어가 문제 입니다.
'일반적이다'라는 의미는 부정적으로 얘기하면 '안 그럴 때도 꽤 있을 수 있다'는 의미이죠?
'일반적'이라는 것이 통계적으로 딱 떨어진다는 의미도 아니고, 일정한 확률로 35) - 기타 이평선 돌파 전략 항상 그렇다는 것도 아닌 '상당히 두리뭉실'한 개념이기 때문입니다.
시장에서도 이런 속성이 언제 잘 나타날지, 언제 잘 안먹힐지 예측이 불가능합니다.
경우에 따라서는 변동성이 커지는데도, 추세적으로 시장이 움직이는 경우도 허다합니다.
이런 상황에서는 괜히 쓸데없이 고퀄의 지표를 이용해서 삽질한 격 이 됩니다.
따라서, 단순 이평선 전략은 '변동성과 추세'에 대해 어떠한 가정도 하지 않았지만, 적응형 이평선 전략은 변동성이 커지면 반드시 시장의 주기가 감소하도록 설정이 되어 있기 때문에 전략 자체는 단순 이평선 전략이 더 간단하고 허접해보이지만, 항상 적응형 35) - 기타 이평선 돌파 전략 이평선 전략이 낫다는 보장은 없습니다.
시장의 움직임이 적응형 이평선 전략의 전제조건에 잘 맞도록 움직여 주는 경우에는 적응형 이평선 전략이 우월한 성과를 보여주겠지만, 그렇지 않고 자기 멋대로 움직이는 경우에는 단순 이평선 전략이 차라리 나은 것 이지요.
전략이 복잡할수록 이런 위험성은 더 커지게 되는데요, 단순한 전략이 실제로는 그렇게 단순하지 않다는 철학은 사실 상당히 심오하고, 이를 깊이 깨닫기 위해서는, 깨나 백테스트 좀 돌려봐야 합니다.
그래서 행여나, 제 블로그를 보시는 분들 가운데,
'아니 뭔 전략이 그렇게 단순 무식하게 모멘텀 스코어 딱 하나만 써? 없어 보이게? 미분 방정식 같은 것도 집어 넣고, 각종 신호처리, 시계열 분석 기반 최첨단 필터도 집어 넣어야 알파고 시대에 살아남는거 아냐?'
라고 생각하실 지 모르겠으나, 복잡한 전략이 꼭 좋다는 보장은 없다는 점, 그리고 여기에는 분명한 이유가 있다는 점을 아셨으면 좋겠습니다.
3. 딱히 영양가도 없는 걸 왜 소개하냐?
'아니 대체 그런 맥빠진 결론을 낼 거면 대체 왜 이런 걸 소개하냐? 시장에서 좀 잘 먹히는 걸 알려달라고! 이건 시간 낭비잖아?'
굳이 별 의미없어 보이는 내용까지 알려드리는 이유는
여러분이 시장에서 어떤 전략이 잘 먹히는지 알기 위해서는 반드시, 어떤 전략이 잘 안먹히는지도 잘 알아야 하기 때문 입니다.
그래야만 '절대적인 수익 전략'으로 현혹시키는 사기꾼들의 농간에 당하지 않을 수 있습니다.
이런 검증 과정을 통해서, 왜 우리의 상식과 직관과 다르게 성과가 생각보다 잘 나오지 않는지를 분석할 수 있고 이는 좀 더 좋은 전략을 개발하는 중요한 밑거름이 됩니다.
그래서, 역 설적으로 좋은 전략을 개발하기 위해서는 반드시 이런 무수한 실패의 결과물도 많이 만들어 보아야 하고, 이를 통해 오히려 더 많은 것들을 배울 수가 있습니다 .
앞으로 소개해드릴 전략 중에도 별 영양가 없어 보이는 것들이 상당히 많이 있는데요,
의미 없다고 무시하지 마시고, 의미 없어보이는 결과에서 '의미 있는 것'을 많이 발견하시기 바랍니다.
1. 네이버 카페 ' 실전주식투자 연구소' (클릭) 으로 오시면, 본 블로그의 모든 내용을 순서대로 확인하실 수 있고, 다양한 실전 투자 정보도 얻을 수 있습니다~
개별 주식을 이용한 단기 매매 기법, 뉴지스탁을 통한 완전 자동 투자 매매 구현에 관한 폭넓 은 노하우를 다루고 있으니, 많은 성원 부탁 드립니다~
첫 번째 강의는 수강 신청없이 무료로 시청 가능 합니다 (아래 링크 클릭 --> 1번 방송 클릭)
'systrader79 칼럼 > 실전 투자 전략' 카테고리의 다른 글
실전 투자 전략 (39) - 역추세 전략, RSI(2) system (3) | 2017.04.04 |
---|---|
실전 투자 전략 (38) - 채널 돌파 전략 (0) | 2017.04.01 |
실전 투자 전략 (37) - 채널 돌파 전략의 개요 (1) | 2017.03.30 |
실전 투자 전략 (36) - 모멘텀 전략 (0) | 2017.03.29 |
실전 투자 전략 (35) - 기타 이평선 돌파 전략 (4) | 2017.03.28 |
실전 투자 전략 (35) - 단순 이평선 돌파 전략 (1) | 2017.03.26 |
실전 투자 전략 (34) - Techinical trading 기법 시리즈를 시작하며 (1) | 2017.03.17 |
실전 투자 전략 (33) - MPAA 전략 stress test (4) | 2017.02.28 |
실전 투자 전략 (32) - 동적 자산 배분 전략의 몰락? (2) | 2017.02.27 |
- 실전 투자 전략 (37) - 채널 돌파 전략의 개요
- 실전 투자 전략 (36) - 모멘텀 전략
- 실전 투자 전략 (35) - 단순 이평선 돌파 전략
- 실전 투자 전략 (34) - Techinical trading 기법 시리즈를 시작하며
소액결제 현금화 2017.03.29 11:31 더보기
오늘도 아주 잘보고 갑니다 감사합니다 항상.
답글
j9k 2018.01.29 00:57 더보기
잘 봤습니다. 근데 위의 글을 보면 지수이동평균이 단순이동평균에 비하여 최근값에 가중치가 높게 계산되어서 더 민감하게 움직이는 지표라고 표현한 부분이 있는데 저도 최초에는 그렇게 생각했지만 실제 이동평균을 계산하여 비교하면 같은 속도로 이동하는 지표였습니다. 또 지수이동평균 쪽이 과거 가격 정보가 계속 보존되는 특성 때문인지 좀 더 안정적인 모습을 보이는 특성이 있었습니다. 다만 이러한 특성 때문에 해외 연구에서도 지수이동평균이 약간 더 나은 이동평균으로 소개되고 여러 백테스트 결과에서도 지수이동평균이 나은 모습을 보인다고 하는데 말씀하신 것처럼 크게 나은 지표는 아니고 미세한 수준 정도로 보입니다. 지수이동평균을 계산할 때 단순이동평균과 같은 비중으로 최근가격에 가중치를 주면 과거 가격 정보 탓인지 오히려 이동평균이 많이 느려지게 되는 것을 볼 수 있는데 아마도 지수이동평균을 만든 분은 이렇게 더 느려지는 현상을 없얘고 단순이동평균과 같은 속도로 움직이게 하기 위하여 최근 가격에 좀 더 가중치를 주는 방식으로 조정을 한 것으로 보입니다.
답글
j9k 2018.03.11 09:41 더보기
위 댓글에서 지수이동평균과 일반이동평균의 이동속도가 거의 같다고 했는데 다시 보니 일정부분 잘못된 것이었습니다. 짧은 기간만 보면 지수이동평균과 일반이동평균이 유사해 보이는데 기간을 수십일 대 이상으로 늘리니 가중이동평균과 지수이동평균의 변화하는 속도는 가중이동평균이 더 빠르지만 추세가 바뀌어 선이 변화하는 지점(변곡하는 지점)은 이 둘이 거의 비슷한 시기였고 지수이동평균이 일반이동평균보다 빠르더군요. 제 실수를 인정하고 갑니다.
건곤대 2019.03.30 12:22 더보기
어떻게 포스트 그레스에 이동 평균 지수를 계산?
나는 포스트 그레스에 지수 이동 평균 (EMA)를 구현하기 위해 노력하고있어,하지만 난 설명서를 35) - 기타 이평선 돌파 전략 확인하고 그것에 대해 생각하는 더 나는 더 나는 혼란보십시오.
여기에 수행해야합니다 정확히 무엇을 마지막으로 계산 된 요소의 결과를 유지, 애그리 게이터 (aggregator)에 대한 완벽한 것 같다. 그러나 애그리 게이터 (aggregator)은 하나 개의 결과를 생성합니다 (로 축소, 또는 배) 여기에서 우리는 (맵으로) 결과 목록 (열)가 필요합니다. 내가 어떻게 프로 시저 및 함수 작업을 확인되었지만, AFAIK 그들은 하나 개의 출력이 아닌 열을 생산하고 있습니다. 나는 프로 시저 및 함수를 많이 봐 왔지만,이 같은 일을 특히 정말, 관계 대수이 상호 작용을하지 어떻게 EMA를 알아낼 수 없습니다.
나는 운이 지금까지 Internets 검색이 없었다. 그러나 EMA에 대한 정의는 내가이되는 NoSQL로 이동하는 내 상황에서 과도한 될 것입니다 때문에 포스트 그레스의 작품은, 간단하고 효율적이다 무언가로이 정의를 번역 할 수 있습니다 희망, 매우 간단합니다.
PD : 여기에 당신은 예를 볼 수 있습니다 https://docs.google.com/spreadsheet/ccc?key=0AvfclSzBscS6dDJCNWlrT3NYdDJxbkh3cGJ2S2V0cVE
1.당신은 당신의 자신의 집계 함수를 정의하고 각 단계가 아니라 하나의 값으로 집계 출력을 얻을 수있는 창 사양을 사용할 수 있습니다.
당신은 당신의 자신의 집계 함수를 정의하고 각 단계가 아니라 하나의 값으로 집계 출력을 얻을 수있는 창 사양을 사용할 수 있습니다.
따라서 집합 상태의 피스이고, 각 행에 대해 그 상태를 변경하는 함수를 변환하고, 임의로 마무리 함수 출력값로 상태 변환. 이 같은 간단한 경우에, 단지 기능이 충분해야 변환.
이 숫자는 질문에 추가 스프레드 시트에 일치하는 것.
또한, 당신은 문에서 매개 변수로 알파를 전달하는 기능을 정의 할 수 있습니다 :
당신이 그 중 하나의 이름으로 매개 변수를 참조 할 수 있지만 또한,이 기능은, 실제로는 전혀 plpgsql에있을 필요는 없지만 단지 SQL 함수가 될 수 있도록 간단합니다 :
라이트코인 상승형 삼각 패턴 … 잠재적 강세 역전 가능성
[뉴욕 = 장도선 특파원] 라이트코인(LTC)이 일간차트에서 상승형 삼각(ascending triangle) 패턴을 형성, 잠재적 가격 추세 역전이 임박했을 수도 있음을 시사하는 것으로 분석됐다.
1일(현지시간) 뉴스BTC에 따르면 LTC는 지난 6월 중순 약 42달러까지 하락, 일간차트에서 저점을 찍은 뒤 반등해 비교적 안정적 흐름을 유지하고 있다. LTC는 최근 60달러를 넘어섰다 다시 후퇴했지만 상승형 삼각 패턴 내에 머물며 추세 지지선을 방어하고 있다.
LTC는 뉴욕 시간 1일 오후 1시 46분 코인마켓캡에서 24시간 전 대비 4.21% 오른 55.99달러를 가리켰다.
뉴스BTC는 현재 57달러에 자리잡고 있는 LTC의 50일 지수이동평균(EMA)을 가까운 저항선으로 지목한다. LTC가 이 레벨을 돌파할 경우 또다른 주요 저항선 60달러까지 상승도 가능할 것으로 분석됐다.
0 개 댓글