커뮤니티
시스템식 부탁드립니다.
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
감사합니다.
잘 부탁드립니다~~