커뮤니티

부탁드립니다.

프로필 이미지
쌀사비팔
2013-11-01 16:15:40
149
글번호 69140
답변완료
아래 식을 만들어 주셨는데요... 한가지 수정 부탁드립니다. 적용을 해보니까요... 1분봉에서 매매하는데, 1분봉 기준으로 청산이 되어버리네요. 청산은 일봉기준입니다. *청산은 일봉의 종가가 이평선(20,60) 이격 99.5미만이면, 다음봉(익일 첫봉이 됩니다.)에 청산합니다. ---------------------------------------------------------- 1. input : P(60); var : cnt(0),sum(0),mav(0),dis(0); sum = 0; for cnt = 0 to P-1{ sum = sum+DayClose(cnt); } mav = sum/P; dis = C/mav*100; if MarketPosition == 0 And ExitDate(1) != sdate and C < dayopen And dis >= 100 and dis <= 102.5 Then buy("b",AtMarket); if MarketPosition == 1 Then{ if countif(dis < 99.5,2) == 2 Then ExitLong("bx1",AtMarket); if C >= EntryPrice*1.10 Then ExitLong("bx2",AtMarket); if highest(h,BarsSinceEntry) >= EntryPrice*1.05 Then ExitLong("bx3",AtStop,highest(h,BarsSinceEntry)-(highest(h,BarsSinceEntry)-EntryPrice)*0.3); } 2. input : P(20); var : cnt(0),sum(0),mav(0),dis(0); sum = 0; for cnt = 0 to P-1{ sum = sum+DayClose(cnt); } mav = sum/P; dis = C/mav*100; if MarketPosition == 0 And ExitDate(1) != sdate and C < dayopen And dis >= 100 and dis <= 102.5 Then buy("b",AtMarket); if MarketPosition == 1 Then{ if dis < 99.5 Then ExitLong("bx1",AtMarket); if C >= EntryPrice*1.10 Then ExitLong("bx2",AtMarket); if highest(h,BarsSinceEntry) >= EntryPrice*1.05 Then ExitLong("bx3",AtStop,highest(h,BarsSinceEntry)-(highest(h,BarsSinceEntry)-EntryPrice)*0.3); } > 현물, 분봉사용합니다. 2가지 부탁드립니다. 1번. <매수> -주가가 당일 시초가보다 이하이고(즉, 당일 음봉 중), -60일(일봉) 이평선 이격도 100~102.5이면 다음 첫봉에 매수 -오늘 청산되었다면 매수 금지 <청산> -일 종가가 60일(일봉) 이평선 이격도 99.5미만이 2회이면 다음 첫봉에 청산 -매수가대비 +10%이상 상승시 다음 첫봉에 청산 -매수가 대비 +5%이상 상승 후, 매수가와 최고상승가(+100%로 가정) 대비 +30%로 하락하면 청산 2번. <매수> -주가가 당일 시초가보다 이하이고(즉, 당일 음봉 중), -20일(일봉) 이평선 이격도 100~102.5이면 다음 첫봉에 매수 -오늘 청산되었다면 매수 금지 <청산> -일 종가가 20일(일봉) 이평선 이격도 99.5미만(1회)이면 다음 첫봉에 정산 -매수가 대비 10%이상 상승시 다음 첫봉에 청산 -매수가 대비 +5%이상 상승 후, 매수가와 최고상승가(+100%로 가정) 대비 +30%로 하락하면 청산
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-11-01 16:34:06

안녕하세요 예스스탁입니다. 익일 첫봉 시가에서 청산을 하려면 전일의 마지막봉의 시간을 지정해서 조건을 파악해 신호를 발생해야 합니다. 마지막봉은 시간으로만 지정이 가능하며 1분봉에서 주식은 일간 마지막봉이 15시입니다. 만약 거래가 없어 15시 봉이 없으면 신호발생하지 않습니다. 이용에 참고하시기 바랍니다. 당일 전일이 이틀간 모두 99.5 미만이면 다음날 시가에 청산입니다. 1-1. input : P(60); var : cnt(0),sum(0),mav(0),dis(0),sum1(0),mav1(0),dis1(0); sum = 0; sum1 = 0; for cnt = 0 to P-1{ sum = sum+DayClose(cnt); sum1 = sum1+DayClose(cnt+1); } mav = sum/P; dis = C/mav*100; dis1 = dayClose(1)/mav1*100; if MarketPosition == 0 And ExitDate(1) != sdate and C < dayopen And dis >= 100 and dis <= 102.5 Then buy("b",AtMarket); if MarketPosition == 1 Then{ if stime == 150000 and dis < 99.5 and dis1 < 99.5 Then ExitLong("bx1",AtMarket); if C >= EntryPrice*1.10 Then ExitLong("bx2",AtMarket); if highest(h,BarsSinceEntry) >= EntryPrice*1.05 Then ExitLong("bx3",AtStop,highest(h,BarsSinceEntry)-(highest(h,BarsSinceEntry)-EntryPrice)*0.3); } 2-1. input : P(20); var : cnt(0),sum(0),mav(0),dis(0); sum = 0; for cnt = 0 to P-1{ sum = sum+DayClose(cnt); } mav = sum/P; dis = C/mav*100; if MarketPosition == 0 And ExitDate(1) != sdate and C < dayopen And dis >= 100 and dis <= 102.5 Then buy("b",AtMarket); if MarketPosition == 1 Then{ if stime == 150000 and dis < 99.5 Then ExitLong("bx1",AtMarket); if C >= EntryPrice*1.10 Then ExitLong("bx2",AtMarket); if highest(h,BarsSinceEntry) >= EntryPrice*1.05 Then ExitLong("bx3",AtStop,highest(h,BarsSinceEntry)-(highest(h,BarsSinceEntry)-EntryPrice)*0.3); } 거래가 별로 없어 전일 15시 봉이 없으면 신호가 발생하지 않으므로 아래와 같이 작성해 사용하셔도 됩니다. 아래식은 다음날 첫봉 완성시에 포지션이 있으면 이전일의 이격도로 조건파악해 청산합니다. 1-2 input : P(60); var : cnt(0),sum(0),mav(0),dis(0),sum1(0),mav1(0),dis1(0),sum2(0),mav2(0),dis2(0); sum = 0; sum1 = 0; for cnt = 0 to P-1{ sum = sum+DayClose(cnt); sum1 = sum1+DayClose(cnt+1); sum2 = sum2+DayClose(cnt+2); } mav = sum/P; mav1 = sum1/P; mav2 = sum2/P; dis = C/mav*100; dis1 = DayClose(1)/mav1*100; dis2 = DayClose(2)/mav1*100; if MarketPosition == 0 And ExitDate(1) != sdate and C < dayopen And dis >= 100 and dis <= 102.5 Then buy("b",AtMarket); if MarketPosition == 1 Then{ if sdate > EntryDate and dayindex == 0 and dis1 < 99.5 and dis2 < 99.5 Then ExitLong("bx1",AtMarket); if C >= EntryPrice*1.10 Then ExitLong("bx2",AtMarket); if highest(h,BarsSinceEntry) >= EntryPrice*1.05 Then ExitLong("bx3",AtStop,highest(h,BarsSinceEntry)-(highest(h,BarsSinceEntry)-EntryPrice)*0.3); } 2-2 input : P(20); var : cnt(0),sum(0),mav(0),dis(0),sum1(0),mav1(0),dis1(0); sum = 0; sum1 = 0; for cnt = 0 to P-1{ sum = sum+DayClose(cnt); sum1 = sum1+DayClose(cnt+1); } mav = sum/P; mav1 = sum1/P; dis = C/mav*100; dis1 = DayClose(1)/mav1*100; if MarketPosition == 0 And ExitDate(1) != sdate and C < dayopen And dis >= 100 and dis <= 102.5 Then buy("b",AtMarket); if MarketPosition == 1 Then{ if sdate > EntryDate and dayindex == 0 and dis1 < 99.5 Then ExitLong("bx1",AtMarket); if C >= EntryPrice*1.10 Then ExitLong("bx2",AtMarket); if highest(h,BarsSinceEntry) >= EntryPrice*1.05 Then ExitLong("bx3",AtStop,highest(h,BarsSinceEntry)-(highest(h,BarsSinceEntry)-EntryPrice)*0.3); } 즐거운 하루되세요 > 쌀사비팔 님이 쓴 글입니다. > 제목 : 부탁드립니다. > 아래 식을 만들어 주셨는데요... 한가지 수정 부탁드립니다. 적용을 해보니까요... 1분봉에서 매매하는데, 1분봉 기준으로 청산이 되어버리네요. 청산은 일봉기준입니다. *청산은 일봉의 종가가 이평선(20,60) 이격 99.5미만이면, 다음봉(익일 첫봉이 됩니다.)에 청산합니다. ---------------------------------------------------------- 1. input : P(60); var : cnt(0),sum(0),mav(0),dis(0); sum = 0; for cnt = 0 to P-1{ sum = sum+DayClose(cnt); } mav = sum/P; dis = C/mav*100; if MarketPosition == 0 And ExitDate(1) != sdate and C < dayopen And dis >= 100 and dis <= 102.5 Then buy("b",AtMarket); if MarketPosition == 1 Then{ if countif(dis < 99.5,2) == 2 Then ExitLong("bx1",AtMarket); if C >= EntryPrice*1.10 Then ExitLong("bx2",AtMarket); if highest(h,BarsSinceEntry) >= EntryPrice*1.05 Then ExitLong("bx3",AtStop,highest(h,BarsSinceEntry)-(highest(h,BarsSinceEntry)-EntryPrice)*0.3); } 2. input : P(20); var : cnt(0),sum(0),mav(0),dis(0); sum = 0; for cnt = 0 to P-1{ sum = sum+DayClose(cnt); } mav = sum/P; dis = C/mav*100; if MarketPosition == 0 And ExitDate(1) != sdate and C < dayopen And dis >= 100 and dis <= 102.5 Then buy("b",AtMarket); if MarketPosition == 1 Then{ if dis < 99.5 Then ExitLong("bx1",AtMarket); if C >= EntryPrice*1.10 Then ExitLong("bx2",AtMarket); if highest(h,BarsSinceEntry) >= EntryPrice*1.05 Then ExitLong("bx3",AtStop,highest(h,BarsSinceEntry)-(highest(h,BarsSinceEntry)-EntryPrice)*0.3); } > 현물, 분봉사용합니다. 2가지 부탁드립니다. 1번. <매수> -주가가 당일 시초가보다 이하이고(즉, 당일 음봉 중), -60일(일봉) 이평선 이격도 100~102.5이면 다음 첫봉에 매수 -오늘 청산되었다면 매수 금지 <청산> -일 종가가 60일(일봉) 이평선 이격도 99.5미만이 2회이면 다음 첫봉에 청산 -매수가대비 +10%이상 상승시 다음 첫봉에 청산 -매수가 대비 +5%이상 상승 후, 매수가와 최고상승가(+100%로 가정) 대비 +30%로 하락하면 청산 2번. <매수> -주가가 당일 시초가보다 이하이고(즉, 당일 음봉 중), -20일(일봉) 이평선 이격도 100~102.5이면 다음 첫봉에 매수 -오늘 청산되었다면 매수 금지 <청산> -일 종가가 20일(일봉) 이평선 이격도 99.5미만(1회)이면 다음 첫봉에 정산 -매수가 대비 10%이상 상승시 다음 첫봉에 청산 -매수가 대비 +5%이상 상승 후, 매수가와 최고상승가(+100%로 가정) 대비 +30%로 하락하면 청산