첨부 이미지
그림1
항상 도움 주셔서 늘 고맙습니다.
아래 수식에서 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씩 증가하여 고민임.
// 해결책이 있으면 좋겠습니다.