커뮤니티

참조데이터 사용시 지표가 이상합니다,

프로필 이미지
********
2013-12-06 12:07:57
289
글번호 208625
답변완료
아래는 샘플로 만든 지표와 그 결과치 입니다. ### 첫번째 ==> 참조데이터를 사용하지 않은 경우의 지표와 지표값 Input : Period(5); var : AsksMA(0),BidsMA(0), bb(0,data1); BidsMa = ma(bids,Period); bb = ma(bidsma,5); AsksMA = ma(asks,Period); Plot1(BidsMA, "매수잔량이평1"); Plot2(bb, "매수잔량이평2"); Plot3(AsksMA, "매도잔량이평"); if (sdate==20131205 and stime>150000) or (sdate==20131206 and stime<091000) then { messagelog("%.0f %.2f",sdate,bb);# # Print("xx1.txt","%.0f %.2f",sdate,bb); } # 2013-12-05 15:03:00 20131205 8452.24 # 2013-12-05 15:15:00 20131205 8276.08 # 2013-12-06 9:00:00 20131206 8289.20 # 2013-12-06 9:03:00 20131206 8474.08 # 2013-12-06 9:06:00 20131206 8902.68 # 2013-12-06 9:09:00 20131206 9582.04 ### 두번째 ==> 참조데이터를 사용하는 경우의 지표와 지표값 Input : Period(5); var : AsksMA(0),BidsMA(0), aa(0,data2),bb(0,data1); BidsMa = ma(bids,Period); bb = ma(bidsma,5); AsksMA = ma(asks,Period); Plot1(BidsMA, "매수잔량이평1"); Plot2(bb, "매수잔량이평2"); Plot3(AsksMA, "매도잔량이평"); if (sdate==20131205 and stime>150000) or (sdate==20131206 and stime<091000) then { messagelog("%.2f %.2f",sdate,bb); # Print("xx2.txt","%.0f %.2f",sdate,bb); } # 2013-12-05 15:03:00 20131205 8452.24 # 2013-12-05 15:15:00 20131205 8276.08 # 2013-12-05 15:15:00 20131205 8100.96 # 2013-12-05 15:15:00 20131205 7913.80 # 2013-12-05 15:15:00 20131205 7738.28 # 2013-12-06 9:00:00 20131206 7794.64 # 2013-12-06 9:00:00 20131206 7982.88 # 2013-12-06 9:03:00 20131206 8354.92 # 2013-12-06 9:06:00 20131206 8959.04 # 2013-12-06 9:09:00 20131206 9770.28 첫번째는 챠트에 생성된 지표라 보시면 되고, 두번째는 시스템 내에서의 상황이라 보시면 됩니다. 첫번째와 두번째를 비교해보면, 기초 지표값 bidsma, asksma 값은 변동되지 않으나, 기초 지표값의 이평값들이 처음 15:03분 값은 동일하나 이후 부터는 달라집니다. 09:00분 에서의 데이터 값들이 크게 차이가 발생해서, 엉뚱하게 시스템에서 매수/매도가 발생하는 경우가 생깁니다. 이들값의 이평값은 이렇게, 참조데이터를 걸쳐 놓고/않놓고에 따라 값이 차이가 발생하는것 같습니다. 이로 인해 시스템내에서 신호가 달리 발생하고 있어 문의드립니다. 문제를 해결해 주시기 바랍니다.
예스트레이더 (iM증권)
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2013-12-06 18:50:25

안녕하세요? 예스스탁입니다. 내용 올려 주셔서 감사합니다. 확인 후에 추가 답변 드리겠습니다. 감사합니다. > HI_yo***** 님이 쓴 글입니다. > 제목 : 참조데이터 사용시 지표가 이상합니다, > 아래는 샘플로 만든 지표와 그 결과치 입니다. ### 첫번째 ==> 참조데이터를 사용하지 않은 경우의 지표와 지표값 Input : Period(5); var : AsksMA(0),BidsMA(0), bb(0,data1); BidsMa = ma(bids,Period); bb = ma(bidsma,5); AsksMA = ma(asks,Period); Plot1(BidsMA, "매수잔량이평1"); Plot2(bb, "매수잔량이평2"); Plot3(AsksMA, "매도잔량이평"); if (sdate==20131205 and stime>150000) or (sdate==20131206 and stime<091000) then { messagelog("%.0f %.2f",sdate,bb);# # Print("xx1.txt","%.0f %.2f",sdate,bb); } # 2013-12-05 15:03:00 20131205 8452.24 # 2013-12-05 15:15:00 20131205 8276.08 # 2013-12-06 9:00:00 20131206 8289.20 # 2013-12-06 9:03:00 20131206 8474.08 # 2013-12-06 9:06:00 20131206 8902.68 # 2013-12-06 9:09:00 20131206 9582.04 ### 두번째 ==> 참조데이터를 사용하는 경우의 지표와 지표값 Input : Period(5); var : AsksMA(0),BidsMA(0), aa(0,data2),bb(0,data1); BidsMa = ma(bids,Period); bb = ma(bidsma,5); AsksMA = ma(asks,Period); Plot1(BidsMA, "매수잔량이평1"); Plot2(bb, "매수잔량이평2"); Plot3(AsksMA, "매도잔량이평"); if (sdate==20131205 and stime>150000) or (sdate==20131206 and stime<091000) then { messagelog("%.2f %.2f",sdate,bb); # Print("xx2.txt","%.0f %.2f",sdate,bb); } # 2013-12-05 15:03:00 20131205 8452.24 # 2013-12-05 15:15:00 20131205 8276.08 # 2013-12-05 15:15:00 20131205 8100.96 # 2013-12-05 15:15:00 20131205 7913.80 # 2013-12-05 15:15:00 20131205 7738.28 # 2013-12-06 9:00:00 20131206 7794.64 # 2013-12-06 9:00:00 20131206 7982.88 # 2013-12-06 9:03:00 20131206 8354.92 # 2013-12-06 9:06:00 20131206 8959.04 # 2013-12-06 9:09:00 20131206 9770.28 첫번째는 챠트에 생성된 지표라 보시면 되고, 두번째는 시스템 내에서의 상황이라 보시면 됩니다. 첫번째와 두번째를 비교해보면, 기초 지표값 bidsma, asksma 값은 변동되지 않으나, 기초 지표값의 이평값들이 처음 15:03분 값은 동일하나 이후 부터는 달라집니다. 09:00분 에서의 데이터 값들이 크게 차이가 발생해서, 엉뚱하게 시스템에서 매수/매도가 발생하는 경우가 생깁니다. 이들값의 이평값은 이렇게, 참조데이터를 걸쳐 놓고/않놓고에 따라 값이 차이가 발생하는것 같습니다. 이로 인해 시스템내에서 신호가 달리 발생하고 있어 문의드립니다. 문제를 해결해 주시기 바랍니다.
프로필 이미지

예스스탁 예스스탁 답변

2013-12-09 17:13:31

안녕하세요? 예스스탁입니다. 추가 답변 드립니다. 내용 확인해 보았는데, 참조데이터를 이용할 경우 글로벌 주기를 이용하기 때문에 발생된 문제로 파악되었습니다. 첫번째 식은 data2를 사용하지 않는 경우이고 두번째 식은 data2를 사용하는 경우인데, 이때 첫 번째 식은 주차트의 주기만을 이용해서 봉을 계산하게 되지만, data2는 참조데이터까지 포함해서 봉의 수를 계산하게 됩니다. 주차트와 참조차트의 주기와 봉이 일치하는 경우에는 문제가 발생되지 않지만, 주차트는 있는데 참조차트의 데이터가 없거나 이와 반대인 경우에 주차트와 참조차트의 주기를 모두 계산에 포함시키게 됩니다. 따라서 참조데이터를 사용하는 경우에는 모든 var변수 선언에서 어떤 데이터의 축을 이용할 것인지를 명시해 주는 방법으로 해결하실 수 있습니다. 두 번째 예제로 작성하신 식을 수정한다면 아래와 같이 수정해서 사용하시면 됩니다. Input : Period(5); var : AsksMA(0,data1),BidsMA(0,data1), aa(0,data2),bb(0,data1); BidsMa = ma(bids,Period); bb = ma(bidsma,5); AsksMA = ma(asks,Period); Plot1(BidsMA, "매수잔량이평1"); Plot2(bb, "매수잔량이평2"); Plot3(AsksMA, "매도잔량이평"); 일반적으로는 위와 같이 var선언에서만 처리해 주어도 정상적으로 나오게 되지만, 내장 변수를 사용한다던가 할 경우에는 var선언 없이 사용되는 경우도 있으므로 참조데이터를 이용하는 경우에는 아래 식처럼 변수 할당에서도 각각 어떤 데이터를 사용하는지 지정해 주는 것이 좋습니다. Input : Period(5); var : AsksMA(0,data1),BidsMA(0,data1), aa(0,data2),bb(0,data1); BidsMa = data1(ma(bids,Period)); bb = data1(ma(bidsma,5)); AsksMA = data1(ma(asks,Period)); Plot1(BidsMA, "매수잔량이평1"); Plot2(bb, "매수잔량이평2"); Plot3(AsksMA, "매도잔량이평"); 감사합니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 참조데이터 사용시 지표가 이상합니다, > 안녕하세요? 예스스탁입니다. 내용 올려 주셔서 감사합니다. 확인 후에 추가 답변 드리겠습니다. 감사합니다. > HI_yo***** 님이 쓴 글입니다. > 제목 : 참조데이터 사용시 지표가 이상합니다, > 아래는 샘플로 만든 지표와 그 결과치 입니다. ### 첫번째 ==> 참조데이터를 사용하지 않은 경우의 지표와 지표값 Input : Period(5); var : AsksMA(0),BidsMA(0), bb(0,data1); BidsMa = ma(bids,Period); bb = ma(bidsma,5); AsksMA = ma(asks,Period); Plot1(BidsMA, "매수잔량이평1"); Plot2(bb, "매수잔량이평2"); Plot3(AsksMA, "매도잔량이평"); if (sdate==20131205 and stime>150000) or (sdate==20131206 and stime<091000) then { messagelog("%.0f %.2f",sdate,bb);# # Print("xx1.txt","%.0f %.2f",sdate,bb); } # 2013-12-05 15:03:00 20131205 8452.24 # 2013-12-05 15:15:00 20131205 8276.08 # 2013-12-06 9:00:00 20131206 8289.20 # 2013-12-06 9:03:00 20131206 8474.08 # 2013-12-06 9:06:00 20131206 8902.68 # 2013-12-06 9:09:00 20131206 9582.04 ### 두번째 ==> 참조데이터를 사용하는 경우의 지표와 지표값 Input : Period(5); var : AsksMA(0),BidsMA(0), aa(0,data2),bb(0,data1); BidsMa = ma(bids,Period); bb = ma(bidsma,5); AsksMA = ma(asks,Period); Plot1(BidsMA, "매수잔량이평1"); Plot2(bb, "매수잔량이평2"); Plot3(AsksMA, "매도잔량이평"); if (sdate==20131205 and stime>150000) or (sdate==20131206 and stime<091000) then { messagelog("%.2f %.2f",sdate,bb); # Print("xx2.txt","%.0f %.2f",sdate,bb); } # 2013-12-05 15:03:00 20131205 8452.24 # 2013-12-05 15:15:00 20131205 8276.08 # 2013-12-05 15:15:00 20131205 8100.96 # 2013-12-05 15:15:00 20131205 7913.80 # 2013-12-05 15:15:00 20131205 7738.28 # 2013-12-06 9:00:00 20131206 7794.64 # 2013-12-06 9:00:00 20131206 7982.88 # 2013-12-06 9:03:00 20131206 8354.92 # 2013-12-06 9:06:00 20131206 8959.04 # 2013-12-06 9:09:00 20131206 9770.28 첫번째는 챠트에 생성된 지표라 보시면 되고, 두번째는 시스템 내에서의 상황이라 보시면 됩니다. 첫번째와 두번째를 비교해보면, 기초 지표값 bidsma, asksma 값은 변동되지 않으나, 기초 지표값의 이평값들이 처음 15:03분 값은 동일하나 이후 부터는 달라집니다. 09:00분 에서의 데이터 값들이 크게 차이가 발생해서, 엉뚱하게 시스템에서 매수/매도가 발생하는 경우가 생깁니다. 이들값의 이평값은 이렇게, 참조데이터를 걸쳐 놓고/않놓고에 따라 값이 차이가 발생하는것 같습니다. 이로 인해 시스템내에서 신호가 달리 발생하고 있어 문의드립니다. 문제를 해결해 주시기 바랍니다.