커뮤니티

Data2() 사용 시 도움 부탁드립니다.

프로필 이미지
영화사랑
2022-10-07 01:06:39
818
글번호 162799
답변완료

첨부 이미지

항상 도움 주셔서 늘 고맙습니다. 아래 수식에서 NumOfDay가 첫봉에서 값이 3개씩 증가하는데, 원하는 것은 1씩 증가하는 것입니다. 해결책이 있을까요? 꼭 부탁드립니다. // 1분봉 차트사용 // 종목: 중앙에너비스 // 시뮬레이션 기간: 2021/1203 ~ 2022/02/04 Var: NumOfDay(0); Var: KorMarketLow(0), KorMarket1DayBefore(0); if barIndex == 1 then { ClearDebug(); } if BDate[1] != Bdate then { NumOfDay = NumOfDay + 1; } var1 = Ma(C, 5); Var2 = Ma(C, 10); if var1[1] < var2[1] and var1 > Var2 then { buy("b1", atmarket); var3 = NumOfDay; } if sDate != NextBarSdate Then { KorMarket1DayBefore = Data2(C[1]); KorMarketLow = Data2(L); } else { KorMarketLow = iff(KorMarketLow > Data2(L), Data2(L), KorMarketLow); } if KorMarket1DayBefore/KorMarketLow > 1.03 then { exitlong("o1", onClose); } if sDate == 20220127 and ((sTime > 111000 and sTime < 112700) or sTime == 90000) Then { MessageLog("KQ[1][%.0f] KQ_L[%.0f] KQ_Lowest[%.0f] [%.3f] NumOfDay[%.0f]", KorMarket1DayBefore, Data2(L), KorMarketLow, KorMarket1DayBefore/KorMarketLow, NumOfDay); } // NumOfDay 는, 매일 첫봉에서 1씩 증가하는 변수임. // 위와 같이 Data2 로 코스닥 지수 데이터(1분봉)를 사용할 경우에, 매일 첫봉에서 1씩 증가하는 것이 아니라 3개씩 증가하는 현상이 있음. // NumOfDay를 사용하여 시스템을 만들려고 하는데, 1씩 증가하지 않고 3씩 증가하여 고민임. // 해결책이 있으면 좋겠습니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-10-07 15:18:08

안녕하세요 예스스탁입니다. 참조데이타를 사용하는 수식을 작성하실 경우에 변수선언에 유의하셔야 합니다. Var: NumOfDay(0); 경우 어떤 데이타를 기준으로 값이 저장되고 이전값 참조를 하는지 지정되어 있지 않으므로 각 봉 완성시마다 변수에 값이 저장되게 됩니다. Var: NumOfDay(0,data1); 위와 같이 선언에 데이타번호를 지정해 주시면 해당 변수는 data1기준으로 값저장 및 이전값 참조가 됩니다. 위와 동일한 관점으로 아래 변수도 데이타번호를 지정해 주시면 됩니다. Var: KorMarketLow(0), KorMarket1DayBefore(0); 즐거운 하루되세요 > 영화사랑 님이 쓴 글입니다. > 제목 : Data2() 사용 시 도움 부탁드립니다. > 항상 도움 주셔서 늘 고맙습니다. 아래 수식에서 NumOfDay가 첫봉에서 값이 3개씩 증가하는데, 원하는 것은 1씩 증가하는 것입니다. 해결책이 있을까요? 꼭 부탁드립니다. // 1분봉 차트사용 // 종목: 중앙에너비스 // 시뮬레이션 기간: 2021/1203 ~ 2022/02/04 Var: NumOfDay(0); Var: KorMarketLow(0), KorMarket1DayBefore(0); if barIndex == 1 then { ClearDebug(); } if BDate[1] != Bdate then { NumOfDay = NumOfDay + 1; } var1 = Ma(C, 5); Var2 = Ma(C, 10); if var1[1] < var2[1] and var1 > Var2 then { buy("b1", atmarket); var3 = NumOfDay; } if sDate != NextBarSdate Then { KorMarket1DayBefore = Data2(C[1]); KorMarketLow = Data2(L); } else { KorMarketLow = iff(KorMarketLow > Data2(L), Data2(L), KorMarketLow); } if KorMarket1DayBefore/KorMarketLow > 1.03 then { exitlong("o1", onClose); } if sDate == 20220127 and ((sTime > 111000 and sTime < 112700) or sTime == 90000) Then { MessageLog("KQ[1][%.0f] KQ_L[%.0f] KQ_Lowest[%.0f] [%.3f] NumOfDay[%.0f]", KorMarket1DayBefore, Data2(L), KorMarketLow, KorMarket1DayBefore/KorMarketLow, NumOfDay); } // NumOfDay 는, 매일 첫봉에서 1씩 증가하는 변수임. // 위와 같이 Data2 로 코스닥 지수 데이터(1분봉)를 사용할 경우에, 매일 첫봉에서 1씩 증가하는 것이 아니라 3개씩 증가하는 현상이 있음. // NumOfDay를 사용하여 시스템을 만들려고 하는데, 1씩 증가하지 않고 3씩 증가하여 고민임. // 해결책이 있으면 좋겠습니다.