커뮤니티

행복; 지표식 작성 바랍니다

프로필 이미지
행복한가방
2022-01-08 19:38:59
1273
글번호 155261
답변완료
한국의 금융산업 발전을 위해 불철주야 애쓰시는 귀하의 노고를 높이 평가합니다 지표식 관련입니다 <질문> - 주기; 7분봉 - 오늘로부터 영업일 기준 9일 전(달력으로는 2021년 12월 27일) dayindex == 0 부터 - 양봉과 음봉에 따른 거래량을 누적하는 지표를 그리고자 합니다 그래서 <<아래>>와 같이 작성하였는데 2021년 12월 27일부터가 아니고 그 이전부터 그려집니다 ==============<< 아래 시작 >>============================= input : n(9); var : cnt(0); Array : DD[100](0); if Bdate != bdate[1] Then { dd[0] = DateToJulian(bDate); For cnt = 1 to 99 { DD[cnt] = DD[cnt-1][1]; } } If sDate >= JulianToDate( dd[n] ) Then{ If Close > Open Then Var1 = Volume; Else if Close < Open Then Var1 = - Volume; Else Var1 = 0; Var2 = Var2 + Var1; Plot1(Var2); } ==============<< 아래 끝 >>============================= 어디가 잘못되었는지요? 수식 작성바랍니다 수고하십시요^^
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-01-10 15:06:30

안녕하세요 예스스탁입니다. 1 dd[0]은 당일 달짜의 줄리안데이트값입니다. 이것을 sDate >= JulianToDate( dd[n] )와 같이 비교하면 현재봉 날짜가 항상 n일전 날자보다 같거나 크크이므로 항상 만족하게 됩니다. 2 수식은 현재시점을 기준으로 과거로 돌아가 해당시점부터 그려올수가 없습니다. 즉 오늘날짜를 인식하고 7일전 값을 저장해서 안다고 해도 과거 n일전으로 돌아가 수식이 동작하지 않습니다. 그러므로 과거 특정시점부터 그려오기 위해서는 날짜를 계산해 SDATE가 해당 날짜 이상일때부터 값을 누적해 그리게 할수 밖에 없습니다. IF SDATE >= 20211227 then 3 20211227을 계산하고자 하시면 봉의 날짜(sdate)가 아닌 컴퓨터날짜의 오늘날짜(currentdate)를 이용해 날짜를 산정해서 지정하셔야 합니다. 하지만 수식으로는 토요일과 일요일만 배제가 가능하고 일반공휴일은 알수가 없어 중간에 공휴일이 있는것은 수식으로 인지가 되지 않습니다. 아랜느 20211231은 직접 지정해 배제하게 작성했습니다. var : cnt(0); value1 = DateToJulian(CurrentDate); Value3 = 0; For cnt = 1 to 30 { Value2 = JulianToDate(value1-cnt); if (DayOfWeek(Value2) >= 1 and DayOfWeek(Value2) <= 5) and Value2 != 20211230 Then { value3 = Value3+1; if Value3 == 9 Then Value4 = Value2; } } if sDate >= Value4 Then { If Close > Open Then Var1 = Volume; Else if Close < Open Then Var1 = - Volume; Else Var1 = 0; Var2 = Var2 + Var1; Plot1(Var2); } 즐거운 하루되세요 > 행복한가방 님이 쓴 글입니다. > 제목 : 행복; 지표식 작성 바랍니다 > 한국의 금융산업 발전을 위해 불철주야 애쓰시는 귀하의 노고를 높이 평가합니다 지표식 관련입니다 <질문> - 주기; 7분봉 - 오늘로부터 영업일 기준 9일 전(달력으로는 2021년 12월 27일) dayindex == 0 부터 - 양봉과 음봉에 따른 거래량을 누적하는 지표를 그리고자 합니다 그래서 <<아래>>와 같이 작성하였는데 2021년 12월 27일부터가 아니고 그 이전부터 그려집니다 ==============<< 아래 시작 >>============================= input : n(9); var : cnt(0); Array : DD[100](0); if Bdate != bdate[1] Then { dd[0] = DateToJulian(bDate); For cnt = 1 to 99 { DD[cnt] = DD[cnt-1][1]; } } If sDate >= JulianToDate( dd[n] ) Then{ If Close > Open Then Var1 = Volume; Else if Close < Open Then Var1 = - Volume; Else Var1 = 0; Var2 = Var2 + Var1; Plot1(Var2); } ==============<< 아래 끝 >>============================= 어디가 잘못되었는지요? 수식 작성바랍니다 수고하십시요^^