커뮤니티

청산 관련 문의입니다.

프로필 이미지
깜피
2009-01-06 22:24:19
890
글번호 19291
답변완료

첨부 이미지

아래식에서 특정명칭의 매수주문이 나간 후, 일정% 이상의 수익 발생시 매수청산을 하고 싶은데 청산신호가 발생하지 않습니다. 저는 문제점을 못찾겠네요. 그리고 print함수를 써보니까 MACD, MACD_OSC, STO_K,RSI들의 값이 제가 생각했던거하고 다르게 나옵니다. 차트에서 볼때는 MACD, MACD_OSC,STO_K가 소숫점으로 나오는데 print해보니까 MACD는 상당히 큰수고 MACD_OSC,STO_K,RSI는 챠트에 나오는 값하고 다른것 같습니다. 캡쳐해서 같이 올릴테니 검토 부탁드릴께요. 차트하고 프린트값이 단위수라던가 내용이 틀리게 나오는게 정상이라면 죄송합니다. 각종 지표를 이용하는 것이 처음이라 사실 지표들의 뜻도 잘 모르거든요..-_-!! MACD_OSC같은 경우 그림에서 봉으로 표현되는 부분으로 생각했는데, 실제 Print해서 보니까 파란선이 MACD_OSC값하고 맞아떨어지고 차트에서 지표속성에 들어가보면 또 봉이 맞는것 같고..... 저는 봉의 상승하락 등을 기준을 잡고 식을 짠거였거든요. 제가 잘 모르는 부분을 좀 짚어주세요.... 감사합니다.^^ -------------------------------------------------------------------------------- Input:shortPeriod(12), longPeriod(26), Period(9), ev(1); var :set(0),ev_1(0),MACDV(0),MACDS(0),MACDO(0), STO_K(0); MACDV = MACD(shortPeriod, longPeriod); MACDS = ema(MACDV,Period); MACDO = MACD_OSC(shortPeriod, longPeriod, Period); STO_K = StochasticsK(12,5); var1=RSI(Period); ev_1 = ev; if MACDO <=-0.1 and (var1 <= 30 ) and STO_K<=20 Then { if MarketPosition() == 0 and CurrentEntries ==0 Then buy("a0",OnClose, def,ev_1); if MarketPosition() == 1 and CurrentEntries ==1 Then buy("a1",OnClose, def,ev_1); } //a0과 a1 매수됐을 때 a1은 2% 상승시 익절. If IsEntryName("a1") == True Then SetStopProfitTarget(2, PercentStop); //<-- 2% 상승해도 청산하지 않음. SetStopendofday(1500); print("데이터1.csv",",시가,%.2f,고가,%.2f,저가,%.2f,종가,%.2f,MACD,%.3f,MACD_OSC,%.3f,STO_K,%.2f,RSI,%.2f",O,H,L,C,V,MACD(12,26),MACD_OSC(12,26,9),StochasticsK(12,5),RSI(9));
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2009-01-07 10:12:36

안녕하세요 예스스탁입니다. 지표로 보시는 값과 프린트문의 값을 같아야 합니다. 작성하신 print문에 표시하고자 하시는 데이터와 지정한 데이터가 다릅니다. 거래량이 들어가면서 밀려서 표시됩니다. 수정한 print문입니다. 파일도 첨부해 드립니다. print("데이터3.csv",",시가,%.2f,고가,%.2f,저가,%.2f,종가,%.2f,MACD,%.3f,MACD_OSC,%.3f,STO_K,%.2f,RSI,%.2f", O,H,L,C,MACD(12,26),MACD_OSC(12,26,9),StochasticsK(12,5),RSI(9)); 또한 수식에서 If IsEntryName("a1") == True Then SetStopProfitTarget(2, PercentStop); //<-- 2% 상승해도 청산하지 않음. 은 발동하지 않습니다. 피라미딩된 상황에서 IsEntryName은 항상 첫번째 진입명만을 가져오므로 전체에서 IsEntryName("a1") == True 가 되는 봉은 없습니다. 2번 진입후 2번&#51760; 진입가에서 2% 수익시 청산 하고자 하시면 식을 아래와 같이 변경하셔야 합니다. If MarketPosition() == 1 and CurrentEntries() == 2 Then exitlong("x",atlimit,EntryPrice*1.02); 즐거운 하루되세요 > 깜피 님이 쓴 글입니다. > 제목 : 청산 관련 문의입니다. > 아래식에서 특정명칭의 매수주문이 나간 후, 일정% 이상의 수익 발생시 매수청산을 하고 싶은데 청산신호가 발생하지 않습니다. 저는 문제점을 못찾겠네요. 그리고 print함수를 써보니까 MACD, MACD_OSC, STO_K,RSI들의 값이 제가 생각했던거하고 다르게 나옵니다. 차트에서 볼때는 MACD, MACD_OSC,STO_K가 소숫점으로 나오는데 print해보니까 MACD는 상당히 큰수고 MACD_OSC,STO_K,RSI는 챠트에 나오는 값하고 다른것 같습니다. 캡쳐해서 같이 올릴테니 검토 부탁드릴께요. 차트하고 프린트값이 단위수라던가 내용이 틀리게 나오는게 정상이라면 죄송합니다. 각종 지표를 이용하는 것이 처음이라 사실 지표들의 뜻도 잘 모르거든요..-_-!! MACD_OSC같은 경우 그림에서 봉으로 표현되는 부분으로 생각했는데, 실제 Print해서 보니까 파란선이 MACD_OSC값하고 맞아떨어지고 차트에서 지표속성에 들어가보면 또 봉이 맞는것 같고..... 저는 봉의 상승하락 등을 기준을 잡고 식을 짠거였거든요. 제가 잘 모르는 부분을 좀 짚어주세요.... 감사합니다.^^ -------------------------------------------------------------------------------- Input:shortPeriod(12), longPeriod(26), Period(9), ev(1); var :set(0),ev_1(0),MACDV(0),MACDS(0),MACDO(0), STO_K(0); MACDV = MACD(shortPeriod, longPeriod); MACDS = ema(MACDV,Period); MACDO = MACD_OSC(shortPeriod, longPeriod, Period); STO_K = StochasticsK(12,5); var1=RSI(Period); ev_1 = ev; if MACDO <=-0.1 and (var1 <= 30 ) and STO_K<=20 Then { if MarketPosition() == 0 and CurrentEntries ==0 Then buy("a0",OnClose, def,ev_1); if MarketPosition() == 1 and CurrentEntries ==1 Then buy("a1",OnClose, def,ev_1); } //a0과 a1 매수됐을 때 a1은 2% 상승시 익절. If IsEntryName("a1") == True Then SetStopProfitTarget(2, PercentStop); //<-- 2% 상승해도 청산하지 않음. SetStopendofday(1500); print("데이터1.csv",",시가,%.2f,고가,%.2f,저가,%.2f,종가,%.2f,MACD,%.3f,MACD_OSC,%.3f,STO_K,%.2f,RSI,%.2f",O,H,L,C,V,MACD(12,26),MACD_OSC(12,26,9),StochasticsK(12,5),RSI(9));