한때 퀀트투자를 진행하면서 금요일에 일어나는 변화에 대한 통계데이타 취합해서 유의미한 데이터를 만든적이 있는데 이 당시 차트상에 금요일마다 표기를 해서 눈에 보이는 가시적인 데이터를 확인하고자 한적이 있었습니다.
금요일은 한주의 마지막날을 가르키는 의미로 지정했었는데 영웅문에는 요일별로 차트에 표기하는 함수를 제공해주지 않습니다. 그래서 직접 표기하려고 시도했는데 정확히는 주 마감일을 표시하고 싶었으나 그 부분까지는 성공하지 못하고 금요일 표기로 만족했어야 했네요.
영웅문 차트에 금요일마다 표식을 지정하는 수식은 아래와 같습니다.
vD = date%100;
vM = floor(date/100)%100;
vY=floor(date/10000);
T = if(vM ==1 || vM ==5, 0,
if(vM ==8, 1,
if(vM ==3 || vM ==11, 2,
if(vM ==2 || vM == 6, 3,
if(vM ==9 || vM == 12, 4,
if(vM ==4 || vM == 7, 5, 6))))));
vY= if(vM < 3, vY- 1, vY);
a=(vY+ floor(vY/4) - floor(vY/100) + floor(vY/400) + T + vD) % 7;
if( a == 5, 1, 0)
vD : 일, vM : 월, vY : 년
일월년 값을 저장할 변수를 선언해주고 일월년 데이터를 넣어줍니다.
20230131 이라는 날짜 정보가 있다면 이 값들을 나누기의 나머지 연산과 나누기 연산등을 통해 각 값을 저장해주는 과정입니다.
이후 진행되는 과정은 Sakamoto's methods 라는 방식이라고는 하나 깊게 들어가지 않았으며 이런 방식으로 일월년 데이터를 추출해서 요일을 산출하는 산식이 있어서 그것을 활용해주었습니다.
이렇게 년월일을 지정하는 변수를 선언해주고 간단한 조작으로 해당값을 뽑아주었습니다.
수식관리자
차트 메뉴를 통해 수식관리자 화면으로 진입합니다. 요일 표기는 신호검색을 통해 진행해야 합니다.
좌측 신호검색 탭으로 진입해 새로만들기를 눌러 수식을 작성해줍니다.
지표변수는 따로 설정할 필요는 없습니다.
수식검증을 통해 오류가 없는지 확인하고 작업저장 버튼을 통해 수식을 저장해 줍니다.
저장된 수식을 차트에 적용하기 위해서는 신호검색적용으로 들어가셔서 셋팅해주셔야 합니다.
차트 메뉴에 신호검색적용으로 타고 들어가줍니다.
저장되어 있는 수식중 방금 작성했었던 #금요일 표기 수식을 선택해줍니다.
위 과정까지 진행하시면 주식차트 일봉 기준 금요일마다 다이아몬드 표기가 되는 것을 확인하실 수 있습니다.
만약 한주의 마감이 금요일이 아닌 수요일, 목요일인 경우 표기가 되지 않고 5일마다 표기되어야 하는 다이아몬드가 듬성듬성 표기되는 것을 확인하실 수 있게 됩니다.
Sakamoto's methods 를 깊게 파고들어서 만든 수식은 아니며 또한 금요일이라는 특정 요일을 표기해냈다는 것에 의의를 둔 수식입니다. 이를 또 어떻게 활용할지는 개개인의 몫이며 이렇게 수식을 만들수도 있구나라는 생각을 하게 만드는 과정이었습니다. 잘 활용하실수 있기를 바랍니다.
참고문서
https://en.wikipedia.org/wiki/Determination_of_the_day_of_the_week
https://kimtaeyang.tistory.com/2