커뮤니티

data2 버근가요?

프로필 이미지
몸부림
2011-09-09 12:57:50
679
글번호 42611
답변완료
보조지표를 이용해서 매매시그널을 발생시켜보고 있습니다. data1은 연결선물지수 일봉이고, data2는 주봉입니다. (사실은 긴 식의 일부인데, 문제가 되는 부분만 잘라서 테스트해보아도 결과가 같아서 그 부분만 문의드립니다. ^^) 아래의 식을 사용해보시면 되구요, data2를 적용해보고싶어 식을 만들어보고 있는데, 적용하기도 전에 결과값이 이상해져서 한줄씩 디버깅하며 찾아보다 발견했습니다. 매매신호에 아직 data2는 적용도 안했는데, 변수에 data2 를 사용한 값을 대입만 해도 시뮬레이션 결과값이 차이가 납니다. 왜 그럴까요? (제가 아직 사용에미숙해서 그런건지...알려주셔요~^^) /*** MACD ***/ Input : MACDshortPeriod(12), MACDlongPeriod(26), MACDPeriod(9); Var : MACDvalue(0) , macdosc(0), MACDsignal(0) ; MACDvalue = MACD(MACDshortPeriod, MACDlongPeriod); macdosc = MACDvalue-ema(MACDvalue,MACDPeriod); MACDsignal =ema(MACDvalue,MACDPeriod); /*** data2 MACD ***/ Input : D2_MACDshortPeriod(12), D2_MACDlongPeriod(26), D2_MACDPeriod(9); Var : D2_MACDvalue(0) , D2_macdosc(0), D2_MACDsignal(0) ; D2_MACDvalue = data2(MACD(D2_MACDshortPeriod, D2_MACDlongPeriod)); // 이 줄을 주석에서 제거하니 값이 달라집니다.주석처리해보고 비교해보시면 됩니다. /* D2_macdosc = D2_MACDvalue-ema(D2_MACDvalue,D2_MACDPeriod); D2_MACDsignal =ema(D2_MACDvalue,D2_MACDPeriod); */ If MACDvalue>MACDsignal Then { Buy("LT_Ent", AtMarket, 1); } If MACDvalue<MACDsignal Then ExitLong("MACD_XS",AtMarket,DEF, "LT_Ent",1,1);
시스템
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2011-09-14 18:18:59

안녕하세요 예스스탁입니다. 수식에서 참조종목을 이용할 경우 변수선언에 유의하셔야 합니다. 참조종목을 이용하는 수식에서 변수선언을 할때 일반적으로 (0),(false)로 선언할 경우 어떤 데이터를 따라 값을 계산해야 할지 지정이 되지 않았으므로 전체 데이터의 글로벌주기로 값을 계산하게 됩니다. 사용하시는 차트의 경우 일봉완성시 한번 주봉완성시 한번으로 중복으로 계산이 되어 할당되게 됩니다. 그러므로 참조종목을 이용하실 경우 변수를 선언하실때 선언에 해당 변수가 따라가야할 데이터를 명시해 주시면 해당 데이터의 주기로만 식을 계산하게 됩니다. 아래와 같이 변수선언을 해주시면 주석처리 여부와 관계없이 시스템리포트의 값이 동일한 것을 확인하실 수 있습니다. /*** MACD ***/ Input : MACDshortPeriod(12), MACDlongPeriod(26), MACDPeriod(9); Var : MACDvalue(0,data1) , macdosc(0,data1), MACDsignal(0,data1); MACDvalue = MACD(MACDshortPeriod, MACDlongPeriod); macdosc = MACDvalue-ema(MACDvalue,MACDPeriod); MACDsignal =ema(MACDvalue,MACDPeriod); /*** data2 MACD ***/ Input : D2_MACDshortPeriod(12), D2_MACDlongPeriod(26), D2_MACDPeriod(9); Var : D2_MACDvalue(0,data2) , D2_macdosc(0,data2), D2_MACDsignal(0,data2) ; D2_MACDvalue = data2(MACD(D2_MACDshortPeriod, D2_MACDlongPeriod)); // 이 줄을 주석에서 제거하니 값이 달라집니다.주석처리해보고 비교해보시면 됩니다. /* D2_macdosc = D2_MACDvalue-ema(D2_MACDvalue,D2_MACDPeriod); D2_MACDsignal =ema(D2_MACDvalue,D2_MACDPeriod); */ If MACDvalue>MACDsignal Then { Buy("LT_Ent", AtMarket, 1); } If MACDvalue<MACDsignal Then ExitLong("MACD_XS",AtMarket,DEF, "LT_Ent",1,1); 즐거운 하루되세요 > 몸부림 님이 쓴 글입니다. > 제목 : data2 버근가요? > 보조지표를 이용해서 매매시그널을 발생시켜보고 있습니다. data1은 연결선물지수 일봉이고, data2는 주봉입니다. (사실은 긴 식의 일부인데, 문제가 되는 부분만 잘라서 테스트해보아도 결과가 같아서 그 부분만 문의드립니다. ^^) 아래의 식을 사용해보시면 되구요, data2를 적용해보고싶어 식을 만들어보고 있는데, 적용하기도 전에 결과값이 이상해져서 한줄씩 디버깅하며 찾아보다 발견했습니다. 매매신호에 아직 data2는 적용도 안했는데, 변수에 data2 를 사용한 값을 대입만 해도 시뮬레이션 결과값이 차이가 납니다. 왜 그럴까요? (제가 아직 사용에미숙해서 그런건지...알려주셔요~^^) /*** MACD ***/ Input : MACDshortPeriod(12), MACDlongPeriod(26), MACDPeriod(9); Var : MACDvalue(0) , macdosc(0), MACDsignal(0) ; MACDvalue = MACD(MACDshortPeriod, MACDlongPeriod); macdosc = MACDvalue-ema(MACDvalue,MACDPeriod); MACDsignal =ema(MACDvalue,MACDPeriod); /*** data2 MACD ***/ Input : D2_MACDshortPeriod(12), D2_MACDlongPeriod(26), D2_MACDPeriod(9); Var : D2_MACDvalue(0) , D2_macdosc(0), D2_MACDsignal(0) ; D2_MACDvalue = data2(MACD(D2_MACDshortPeriod, D2_MACDlongPeriod)); // 이 줄을 주석에서 제거하니 값이 달라집니다.주석처리해보고 비교해보시면 됩니다. /* D2_macdosc = D2_MACDvalue-ema(D2_MACDvalue,D2_MACDPeriod); D2_MACDsignal =ema(D2_MACDvalue,D2_MACDPeriod); */ If MACDvalue>MACDsignal Then { Buy("LT_Ent", AtMarket, 1); } If MACDvalue<MACDsignal Then ExitLong("MACD_XS",AtMarket,DEF, "LT_Ent",1,1);
프로필 이미지

몸부림

2011-09-14 14:28:44

아...글쿤요. 함 해보겠습니다. 감사합니다~~^^ =================================================================== > 예스스탁 님이 쓴 글입니다. > 제목 : Re : data2 버근가요? > 안녕하세요 예스스탁입니다. 수식에서 참조종목을 이용할 경우 변수선언에 유의하셔야 합니다. 참조종목을 이용하는 수식에서 변수선언을 할때 일반적으로 (0),(false)로 선언할 경우 어떤 데이터를 따라 값을 계산해야 할지 지정이 되지 않았으므로 전체 데이터의 글로벌주기로 값을 계산하게 됩니다. 사용하시는 차트의 경우 일봉완성시 한번 주봉완성시 한번으로 중복으로 계산이 되어 할당되게 됩니다. 그러므로 참조종목을 이용하실 경우 변수를 선언하실때 선언에 해당 변수가 따라가야할 데이터를 명시해 주시면 해당 데이터의 주기로만 식을 계산하게 됩니다. 아래와 같이 변수선언을 해주시면 주석처리 여부와 관계없이 시스템리포트의 값이 동일한 것을 확인하실 수 있습니다. /*** MACD ***/ Input : MACDshortPeriod(12), MACDlongPeriod(26), MACDPeriod(9); Var : MACDvalue(0,data1) , macdosc(0,data1), MACDsignal(0,data2); MACDvalue = MACD(MACDshortPeriod, MACDlongPeriod); macdosc = MACDvalue-ema(MACDvalue,MACDPeriod); MACDsignal =ema(MACDvalue,MACDPeriod); /*** data2 MACD ***/ Input : D2_MACDshortPeriod(12), D2_MACDlongPeriod(26), D2_MACDPeriod(9); Var : D2_MACDvalue(0,data2) , D2_macdosc(0,data2), D2_MACDsignal(0,data2) ; D2_MACDvalue = data2(MACD(D2_MACDshortPeriod, D2_MACDlongPeriod)); // 이 줄을 주석에서 제거하니 값이 달라집니다.주석처리해보고 비교해보시면 됩니다. /* D2_macdosc = D2_MACDvalue-ema(D2_MACDvalue,D2_MACDPeriod); D2_MACDsignal =ema(D2_MACDvalue,D2_MACDPeriod); */ If MACDvalue>MACDsignal Then { Buy("LT_Ent", AtMarket, 1); } If MACDvalue<MACDsignal Then ExitLong("MACD_XS",AtMarket,DEF, "LT_Ent",1,1); 즐거운 하루되세요 > 몸부림 님이 쓴 글입니다. > 제목 : data2 버근가요? > 보조지표를 이용해서 매매시그널을 발생시켜보고 있습니다. data1은 연결선물지수 일봉이고, data2는 주봉입니다. (사실은 긴 식의 일부인데, 문제가 되는 부분만 잘라서 테스트해보아도 결과가 같아서 그 부분만 문의드립니다. ^^) 아래의 식을 사용해보시면 되구요, data2를 적용해보고싶어 식을 만들어보고 있는데, 적용하기도 전에 결과값이 이상해져서 한줄씩 디버깅하며 찾아보다 발견했습니다. 매매신호에 아직 data2는 적용도 안했는데, 변수에 data2 를 사용한 값을 대입만 해도 시뮬레이션 결과값이 차이가 납니다. 왜 그럴까요? (제가 아직 사용에미숙해서 그런건지...알려주셔요~^^) /*** MACD ***/ Input : MACDshortPeriod(12), MACDlongPeriod(26), MACDPeriod(9); Var : MACDvalue(0) , macdosc(0), MACDsignal(0) ; MACDvalue = MACD(MACDshortPeriod, MACDlongPeriod); macdosc = MACDvalue-ema(MACDvalue,MACDPeriod); MACDsignal =ema(MACDvalue,MACDPeriod); /*** data2 MACD ***/ Input : D2_MACDshortPeriod(12), D2_MACDlongPeriod(26), D2_MACDPeriod(9); Var : D2_MACDvalue(0) , D2_macdosc(0), D2_MACDsignal(0) ; D2_MACDvalue = data2(MACD(D2_MACDshortPeriod, D2_MACDlongPeriod)); // 이 줄을 주석에서 제거하니 값이 달라집니다.주석처리해보고 비교해보시면 됩니다. /* D2_macdosc = D2_MACDvalue-ema(D2_MACDvalue,D2_MACDPeriod); D2_MACDsignal =ema(D2_MACDvalue,D2_MACDPeriod); */ If MACDvalue>MACDsignal Then { Buy("LT_Ent", AtMarket, 1); } If MACDvalue<MACDsignal Then ExitLong("MACD_XS",AtMarket,DEF, "LT_Ent",1,1);