예스스탁
예스스탁 답변
2023-02-17 11:40:10
안녕하세요.
예스스탁 입니다.
질문 내용을 구체적으로 작성해주셔서 감사합니다.
배열변수 RR에 저장된 값을 사용하여 단순이동평균을 구하는 수식을 작성드립니다.
Input 입력변수의 Period를 사용하셔서 기간을 변경하실 수 있습니다.
즐거운 하루 보내세요.
Input : N(3), Period(5);
var : 비율(0,Data1),dd(0,data1),cnt(0,data1),hh(0,Data1),ll(0,Data1);
var : sum(0,Data1),mav(0,Data1);
Array : RR[100](0,Data1);
비율 = data2(c)/c*100;
if data1(Bdate != Bdate[1]) Then
{
dd = dd+1;
hh = 비율;
ll = 비율;
For cnt = 99 DownTo 1
{
RR[cnt] = RR[cnt-1];
}
}
if hh > 비율 Then
hh = 비율;
if ll < 비율 Then
ll = 비율;
RR[0] = ll-hh;
# 지정한 Period 기간 값이 저장 되었다면 (5일을 입력하면, 5번째 데이터가 존재하면)
if RR[Period-1] > 0 Then
{
Sum = 0;
For cnt = 0 to Period-1
{
Sum = Sum + RR[cnt]; # 0~4번 방(1~5일 차) 데이터 누적 합산
}
Mav = Sum / Period; # 5일 데이터 누적 합산한 값을 5일로 나누어 단순이평 계산
}
Plot1(RR[0],"당일 Range");
Plot2(Mav,"단순이동평균");
> 퀀트드래곤 님이 쓴 글입니다.
> 제목 : Data1과 Data2의 분봉 데이터로 만든 지표의 Range 산출 방식_재질문
> 안녕하세요
질문을 드렸었는데 식이 구현이 잘 안되어서 다시 요청드렸으나 두번째도 반영이 잘 안되어서요
제가 직접 아주조금 수정을 하고 나머지 부분만 마저 부탁드리고싶어서 질문 남겼습니다ㅜㅜ
아래의 식은 5분봉 data1, data2로 만든 지표 입니다(두 차트의 비율을 분봉으로 구한 공식)
답변주신 내용대로 이 비율의 고점과 저점을 빼줌으로써 당일의 그 범위를 아래와같이 구할수 있게 되었습니다(물론 당일의 최종 비율은 종가가 되어야 알 수 있습니다.)
그런데 여기서 이 종가때 구해진 값들로 이평선을 만들고 싶은데 그게 잘 구현이 안되네요.
즉, 요약하자면
1) Data1, Data2의 5분봉 데이터는 종가가 되어야 그 비율의 범위값(Range)을 구할수있음
2) 그 종가에 나온 범위값들의 평균(이평선)을 구하길 원함
ex) 편의상 2일 이평이라고 치고
2/12 종가에 측정된 범위값(Range)는 0.76
2/13 종가에 측정된 범위값(Range)는 0.59
2/14 종가에 측정된 범위값(Range)는 0.75
2/15 종가에 측정된 범위값(Range)는 0.89
만약 이렇다고 가정하면
12일과 13일의 평균은 13일의 종가가 끝난다음에 알수있으니까
14일 차트에 12일 값 0.76과 13일 값 0.59의 평균인 0.675가 나오게 되고
15일 차트에 13일 값 0.59와 14일 값 0.75의 평균인 0.67이 나오게 되고
16일 차트에 14일 값 0.75와 15일 값 0.89의 편균인 0.82가 나오게 되는
방식으로 부탁드립니다.
아래의 코딩은 당일의 Range를 종가에 구현이 되는것까지는 완료가 되었는데
n일 이평은 구현이 계속 안되어서 안되는 부분은 지운 후에
설명을 추가하여 다시 요청드립니다~
바쁘실텐데 번번히 요청드려 죄송합니다..
----------------------------------------------------------------------
input : N(3);
var : 비율(0,Data1),dd(0,data1),cnt(0,data1),hh(0,Data1),ll(0,Data1);
var : sum(0,Data1),mav(0,Data1);
Array : RR[100](0,Data1);
비율 = data2(c)/c*100;
if data1(Bdate != Bdate[1]) Then
{
dd = dd+1;
hh = 비율;
ll = 비율;
For cnt = 99 DownTo 1
{
RR[cnt] = RR[cnt-1];
}
}
if hh > 비율 Then
hh = 비율;
if ll < 비율 Then
ll = 비율;
RR[0] = ll-hh;
Plot1(RR[0],"당일 Range");