커뮤니티

시스템식 부탁드립니다.

프로필 이미지
백기사
2012-08-30 23:19:12
262
글번호 54235
답변완료
매매전략 - 개별 주식에 적용함 전일 상한가 간 종목 중 종목의 시가갭을 보고 상방 공략과 하방 공략의 두 가지 중 자동 선택하여 조건부 매수 매도하는 전략 매수조건 1 - 시가갭 +5% 이상 띄울 시 * 1차 매수: 전일 상한가 종목이 다음날 시가갭 +5%이상을 띄우며 시작 시 시가로 시장가에 매수. 전체투입액의 20% * 2차 매수: 1차 매수가에서 -7% 하락 시 추가 매수. 전체투입액의 80% 매수조건 2 - 시가갭 +5% 이하 띄울 시 *1차 매수: 최근 3일간 중 최고점 대비 -7% 시 매수. 전체투입액의 50% *2차 매수: 최근 3일간 중 최고점 대비 -10% 시 매수. 전체투입액의 50% 매도조건1 - 1차 매수만 되었을 시 * 1차 매도: 매수가 대비 +3% 상승 시 절반 매도(수익챙기기관점) * 2차 매도: 최고가 대비 -3% 하락 시 절반 매도(수익길게보기관점) 매도조건2 - 2차 매수까지 되었을 시(익절탈출 의도) * 매수 평단가 대비 +1% 상승 시 전량 매도 *************************************** 분봉에 적용하는게 나을지 틱차트에 적용하는게 나을지 좀 알려주세요... 틱차트는 5000까지만 지원하니 1~2일 정도 이하로만 표시가 되던데 매수 후 5000틱봉이 지나도 매수했던 포인트를 기억하고 이전에 매수가 되었던 가격에서 조건 만족 시 매도가 되는지 좀 알려주시기 바랍니다. 010-3512-8271 감사합니다. 잘 부탁드립니다~~
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2012-08-31 14:44:12

안녕하세요 예스스탁입니다. 최대한 짧은 주기에 적용하시면 됩니다. 차트에서 이전일의 데이터가 없으면 그이전에 신호발생한 내역을 알수 없으므로 해당 부분은 따로 수식에서 처리할 수 없습니다. 매수가 없어지면 해당 진입에 대한 매도도 발생하지 못합니다. 이용에 참고하시기 바랍니다. input : 투입금액(10000000); var : 상한가(0), UpLimit(0); var : up1(0), up2(0), up3(0), up4(0), up5(0),up6(0); var : PredayUpLimit(0),xvol(0); #상한가 계산 if date != date[1] Then PredayUpLimit = 상한가[1];#전일 상한가 if date >= 19981207 then { if date < 20050328 && CodeCategory() == 2 then UpLimit = (BP[0] * 1.12); Else UpLimit = (BP[0] * 1.15); if CodeCategory() == 2 then { if date >= 20030721 then { up1 = int(UpLimit/100+0.00001)*100; up2 = int(UpLimit/100+0.00001)*100; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/5+0.00001)*5; } else { up1 = int(UpLimit/1000+0.00001)*1000; up2 = int(UpLimit/500+0.00001)*500; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/10+0.00001)*10; } } Else { up1 = int(UpLimit/1000+0.00001)*1000; up2 = int(UpLimit/500+0.00001)*500; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/5+0.00001)*5; } if CodeCategory() == 1 || CodeCategory() == 2 then { If BP >= 500000 Then 상한가 = up1; Else If BP >= 100000 Then 상한가 = iff(up2>=500000, up1, up2); Else If BP >= 50000 Then 상한가 = iff(up3>=100000, up2, up3); Else If BP >= 10000 Then 상한가 = iff(up4>=50000, up3, up4); Else If BP >= 5000 Then 상한가 = iff(up5>=10000, up4, up5); Else 상한가 = iff(up6>=5000, up5, up6); } else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF 상한가 = up6; } } #수량계산 if CodeCategory == 1 Then #코스피 { if BasePrice < 50000 Then { Var11 = int(int((투입금액*0.2)/C)/10)*10; Var12 = int(int((투입금액*0.8)/C)/10)*10; Var21 = int(int((투입금액*0.5)/C)/10)*10; Var22 = int(int((투입금액*0.5)/C)/10)*10; } Else { Var11 = int((투입금액*0.2)/C); Var12 = int((투입금액*0.8)/C); Var21 = int((투입금액*0.5)/C); Var22 = int((투입금액*0.5)/C); } } if CodeCategory == 2 or CodeCategory == 8 Then#코스닥 { Var11 = int((투입금액*0.2)/C); Var12 = int((투입금액*0.8)/C); Var21 = int((투입금액*0.5)/C); Var22 = int((투입금액*0.5)/C); } #매수조건1 #1차매수 : 당일 상한가이고 다음말 시초가가 당일 종가대비 5% 이상이면 다음날 시초가에 1차매수 #2차매수 : 위 1차매수가격에서 7% 하락하면 2차 매수 if MarketPosition == 0 and dayhigh >= 상한가 and stime == 150000 and NextBarOpen >= C*1.05 Then buy("b1",AtMarket,def,var11); if MarketPosition == 1 and IsEntryName("b1") == true and CurrentEntries == 1 then buy("b11",atlimit,EntryPrice*0.93,var12); #매수조건2 #1차매수 : 전일상한가이고 시가갭이 5% 미만이면 최근 3일간최고가에서 7%하락하면 1차매수 #2차매수 : 위 1차매수후 최근 3일간 최고가에서 10%하락하면 2차매수 if dayhigh(1) >= PredayUpLimit and dayopen < DayClose(1)*1.05 Then{ if MarketPosition == 0 Then buy("b2",atlimit,max(dayhigh(1),dayhigh(2),dayhigh(3))*0.93,var21); if MarketPosition == 1 and IsEntryName("b2") == true and CurrentEntries == 1 Then buy("b22",atlimit,max(dayhigh(1),dayhigh(2),dayhigh(3))*0.90,var21); } if MarketPosition == 1 Then{ #청산수량계산 if CurrentContracts > CurrentContracts[1] Then{ if CodeCategory == 1 Then{ if BasePrice < 50000 Then xvol = int(int(CurrentContracts*0.5)/10)*10; Else xvol = int(CurrentContracts*0.5); } if CodeCategory == 2 or CodeCategory == 8 Then#코스닥 xvol = int(CurrentContracts*0.5); } #1차 진입만 된 경우 if MaxEntries == 1 Then{ if CurrentContracts == MaxContracts Then ExitLong("bx1",atlimit,EntryPrice*1.03,"",xvol,1); if CurrentContracts < MaxContracts Then ExitLong("bx2",AtStop,highest(H,BarsSinceEntry)*0.97); } #2차까지 진입 된 경우 if MaxEntries == 2 Then{ ExitLong("bx3",atlimit,AvgEntryPrice*1.01); } } 즐거운 하루되세요 > 백기사 님이 쓴 글입니다. > 제목 : 시스템식 부탁드립니다. > 매매전략 - 개별 주식에 적용함 전일 상한가 간 종목 중 종목의 시가갭을 보고 상방 공략과 하방 공략의 두 가지 중 자동 선택하여 조건부 매수 매도하는 전략 매수조건 1 - 시가갭 +5% 이상 띄울 시 * 1차 매수: 전일 상한가 종목이 다음날 시가갭 +5%이상을 띄우며 시작 시 시가로 시장가에 매수. 전체투입액의 20% * 2차 매수: 1차 매수가에서 -7% 하락 시 추가 매수. 전체투입액의 80% 매수조건 2 - 시가갭 +5% 이하 띄울 시 *1차 매수: 최근 3일간 중 최고점 대비 -7% 시 매수. 전체투입액의 50% *2차 매수: 최근 3일간 중 최고점 대비 -10% 시 매수. 전체투입액의 50% 매도조건1 - 1차 매수만 되었을 시 * 1차 매도: 매수가 대비 +3% 상승 시 절반 매도(수익챙기기관점) * 2차 매도: 최고가 대비 -3% 하락 시 절반 매도(수익길게보기관점) 매도조건2 - 2차 매수까지 되었을 시(익절탈출 의도) * 매수 평단가 대비 +1% 상승 시 전량 매도 *************************************** 분봉에 적용하는게 나을지 틱차트에 적용하는게 나을지 좀 알려주세요... 틱차트는 5000까지만 지원하니 1~2일 정도 이하로만 표시가 되던데 매수 후 5000틱봉이 지나도 매수했던 포인트를 기억하고 이전에 매수가 되었던 가격에서 조건 만족 시 매도가 되는지 좀 알려주시기 바랍니다. 010-3512-8271 감사합니다. 잘 부탁드립니다~~