답변완료
결과값이 다릅니다.
우선 5069번의 마지막 질문에 답변 부탁드리겠습니다.
추가 질문 드립니다.
아래 두식은 보시면 아시겠지만, MACD를 지표식과 강조식으로 표현했습니다.
(아래 두식은 일부만 추출한것이 아니고 식의 전부입니다.)
로직은 MACD OSC가 0을 교차하면 배열에 그 시점의 고가와 저가를 넣게됩니다.
그 시점을 눈으로 쉽게 확인하기 위해 강조식으로 다시 만들어 본차트에 적용시켰습니다.
그런데 결과가 다른 부분이 있어 원인을 알고 싶어 문의 드립니다.
2011/08/02 09:33:00 MACD OSC가 0을 상향돌파하기전 강조에는 돌파되었다고 표시됨.
2011/08/02 11:06:00 MACD OSC가 0을 상향돌파한 다음봉에 돌파되었다고 표시됨.
2011/07/01 11:27:00 MACD OSC가 0을 돌파하지 않았음에도 돌파되었다고 표시됨.
2011/07/01 11:30:00 11:27:00증상과 동일
***사용된 MACD 지표식
value = MACD(shortPeriod, longPeriod); // shortPeriod:12 longPeriod:24
macdosc = value-ema(value,Period); // Period : 9
Plot1(value, "MACD");
Plot2(ema(value,Period), "MACDSignal");
counter = 0;
If CrossUp(macdosc,0) OR CrossDown(macdosc,0) Then
{
For counter = 0 to 49
{
MV[ 0 , 50 - Counter ] = MV[ 0 , 49 - Counter ];
MV[ 1 , 50 - Counter ] = MV[ 1 , 49 - Counter ];
MV[ 2 , 50 - Counter ] = MV[ 2 , 49 - Counter ];
}
MV[ 0 , 0 ] = Index;
MV[ 1, 0 ] = High;
MV[ 2, 0 ] = Low;
MessageLog("%.2f, %.2f, %.2f", macdosc, MV[ 1 , 0 ],MV[ 2 , 0 ]);
}
if macdosc > 0 then plot3(mscdosc, "MACDOscillator", RED);
else Plot3(value1, "MACDOscillator", BLUE);
PlotBaseLine1(0, "기준선1");
*** 위 식의 강조식
value = MACD(shortPeriod, longPeriod); // shortPeriod:12 longPeriod:24
macdosc = value-ema(value,Period); // Period : 9
Plot1(value, "MACD");
Plot2(ema(value,Period), "MACDSignal");
counter = 0;
If CrossUp(macdosc,0) OR CrossDown(macdosc,0) Then
{
For counter = 0 to 49
{
MV[ 0 , 50 - Counter ] = MV[ 0 , 49 - Counter ];
MV[ 1 , 50 - Counter ] = MV[ 1 , 49 - Counter ];
MV[ 2 , 50 - Counter ] = MV[ 2 , 49 - Counter ];
}
MV[ 0 , 0 ] = Index;
MV[ 1, 0 ] = High;
MV[ 2, 0 ] = Low;
MessageLog("%.2f, %.2f, %.2f", macdosc, MV[ 1 , 0 ],MV[ 2 , 0 ]);
}
if crossup(macdosc,0) then PlotPaintBar(close,open,"aa",yellow);
if crossdown(macdosc,0) then PlotPaintBar(close,open,"aa",cyan);
2011-08-03
1115
글번호 205217
예스트레이더 (iM증권)
답변완료
시스템식과 지표간 결과값 차이에 대한 건..
수고하십니다.
바로 본론으로 들어가겠습니다.
-시스템식에 들어간 지표식
MV = Iff(DataCompress >= 2 and DataCompress < 5, Volume, Ticks);
R = Sign( C - C[1] ) * MV;
VP = ma(R,P2);
TV = ma(MV,P2);
if TV <> 0 then VZO = (VP / TV) * 100;
if dayindex < 2 then
{
MessageLog("%.2f, %.2f, %.2f, %.2f, %.2f, %.2f, %.2f, %.2f, %.2f, %.2f, %.2f, %.2f, %.2f, %.2f",R[13],R[12],R[11],R[10],R[9],R[8],R[7],R[6],R[5],R[4],R[3],R[2],R[1],R);
}
증상은 이렇습니다.
동시만기일(2011/6/9)이 되면 선물과 옵션은 2시50분에 종료하지만, 타종목 참조에 있는 외국인선물순매수수량은 3시 15분까지 표시가 됩니다.
그렇게 되면 챠트에서는 6월9일 2시50분이후부터 다음날 장 시작까지는 공백이 되게 됩니다.(그림1)
(추가로 확인해보니 장종료와 다음날 장시작 사이에 공백이 차이나는 날 2011/6/11, 2011/6/22에도 왜곡이 생깁니다. 그림4)
1. 위에 나와있는 식은 지표용이지만, 시스템식에 넣어서 사용할때와 지표자체로 사용했을때의 결과값이 다르게 나와 살펴보니 그림1의 공백으로 인해 값의
왜곡이 생기게 됩니다.(그림2)
2. 혹시나 해서 누적값과는 상관없는 messagelog("1111")로 대체해 넣어보니 그림3처럼 나옵니다.
원인을 알고 싶습니다.
**시스템식에 사용된 위 지표식은 변수선언부 바로 밑에 위치해 놓아도 증상은 동일합니다.
2011-07-29
1332
글번호 205195
예스트레이더 (iM증권)