커뮤니티

30분단위 매매 (추가질문)

프로필 이미지
새로운세상
2011-02-10 17:42:05
891
글번호 35630
답변완료
안녕하세요... 일전에 30분단위 매매와 관련하여 문의를 드렸는데, 몇가지 내용을 변경하여 작성해보니 잘 안돼서 다시 문의드립니다. (참고1 : 이전 질문 및 예스스탁의 답변 / 게시글 16978번) (참고2 : 16978번 재질문과 답변부분이 사라진 관계로 한가지 추가하여 말씀드리면 장개시후 첫 30분에서는 진입이 일어나지 않도록 부탁드립니다) --------------------------------- 주데이타 data1 연결선물 1분봉, data2 연결선물 30분봉입니다. (실전에서는 주데이타를 1초봉으로 사용할 예정인데, 만약 1분봉일 때와 수식이 달라진다면 두가지 수식 모두 부탁드리겠습니다) 09:00~09:30 장개시후 30분간은 매매없슴 (연초개장일 및 수능일 감안 : dayindex 사용) 09:30~10:00 1) 09:30에 data1의 시가가 data2 첫봉 30분간 고가저가의 1/2 이상에서 형성되었으면 09:30에 매수, 1/2 미만에서 형성되었으면 09:30분에 매도 2) 단, 09:00~09:30기간 data2의 abs(시가-종가)>abs(고가-저가)/2인 경우만 진입 진입이 없었다면 매매없이 다음 30분후로 넘어감 3) 매수매도 진입후 진입가대비 0.2% 수익이 확보되면 익절 4) 손절1 : 진입후 진입가대비 0.1% 손실이 나거나 or 손절2 : 매수후 가격이 09:00~09:30 data2 고저의 1/2 이하로 형성될 때 매도후 가격이 09:00~09:30 data2 고저의 1/2 이상으로 형성될 때 5) 진입이 있을 경우 30분 단위로 거래는 1회만 발생 즉, 진입후 익절이던 손절이던 청산이 되었으면 다음 기간이 올 때까지 진입금지 6) 진입후 청산이 발생하지 않았다면 25분 간격으로 포지션 청산 여기서는 09:55 에 청산을 의미함 7) 09:55~10:00 무포지션 유지, 즉 이시간대에는 매매없슴 위와 같은 방식으로 30분단위로 매매가 새로 시작됨. (시간대만 다를 뿐 내용은 상기와 동일합니다) // 09:00~09:30 기간에 형셩된 data2의 시가,종가,고가,저가는 무시하고, // 09:30~10:00에 새로 형성된 data2의 시가,종가,고가,저가를 기준으로하여 ((--> 30분단위로 시고종저가 새로 형성됨, 이부분도 반드시 감안하여 주시기 바랍니다.)) 10:00~10:30 1) 10:00에 data1의 시가가 data2 09:30~10:00 30분간 고가저가의 1/2 이상에서 형성되었으면 10:00에 매수, 1/2 미만에서 형성되었으면 10:00에 매도 2) 단, 09:30~10:00기간 data2의 abs(시가-종가)>abs(고가-저가)/2인 경우만 진입 진입이 없었다면 매매없이 다음 30분후로 넘어감 3) 매수매도 진입후 진입가대비 0.2% 수익이 확보되면 익절 4) 손절1 : 진입후 진입가대비 0.1% 손실이 나거나 or 손절2 : 매수후 가격이 09:30~10:00 data2 고저의 1/2 이하로 형성될 때 매도후 가격이 09:30~10:00 data2 고저의 1/2 이상으로 형성될 때 5) 진입이 있을 경우 30분 단위로 거래는 1회만 발생 즉, 진입후 익절이던 손절이던 청산이 되었으면 다음 기간이 올 때까지 진입금지 6) 진입후 청산이 발생하지 않았다면 25분 간격으로 포지션 청산 여기서는 10:25 에 청산을 의미함 7) 10:25~10:30 무포지션 유지, 즉 이시간대에는 매매없슴 이렇게 30분단위로 14:30까지 거래를 하고 싶습니다. (위의 내용대로라고 하면 최종종료시간은 14:25분이 되겠습니다) ------------------------------- 유사한 질문을 다시 드리게 되서 죄송스럽지만, 몇가지 내용을 바꿔서 시도해보니 매매신호가 자꾸 이상하게 나와서 다시 질문드리게 되었습니다. 그럼 부탁드리겠습니다. 감사합니다...
시스템
답변 4
프로필 이미지

예스스탁 예스스탁 답변

2011-02-11 10:03:06

안녕하세요 예스스탁입니다. input : N(30),loss(10),Profit(5); var1 = TimeToMinutes(stime)%N; if dayindex == 0 Then value99 = TimeToMinutes(stime); if dayindex == 0 or var1 < var1[1] Then{ value1 = H; value2 = L; value3 = value1[1]; value4 = value2[1]; Condition1 = False; if Condition1 == false and TimeToMinutes(stime) >= value99+30 and MarketPosition == 0 and stime < 143000 Then{ if C > (value3+value4)/2 Then{ buy("b"); Condition1 = true; } if c < (value3+value4)/2 Then{ sell("s"); Condition1 = true; } } } if H > value1 Then value1 = H; if L < value2 Then value2 = L; if MarketPosition == 1 and C < (value3+value4)/2 Then exitlong("bx"); if MarketPosition == -1 and C > (value3+value4)/2 Then ExitShort("sx"); SetStopLoss(0.1,PercentStop); SetStopProfittarget(0.2,PercentStop); if crossup(var1,25) Then{ exitlong(); ExitShort(); } 즐거운 하루되세요 > 새로운세상 님이 쓴 글입니다. > 제목 : 30분단위 매매 (추가질문) > 안녕하세요... 일전에 30분단위 매매와 관련하여 문의를 드렸는데, 몇가지 내용을 변경하여 작성해보니 잘 안돼서 다시 문의드립니다. (참고1 : 이전 질문 및 예스스탁의 답변 / 게시글 16978번) (참고2 : 16978번 재질문과 답변부분이 사라진 관계로 한가지 추가하여 말씀드리면 장개시후 첫 30분에서는 진입이 일어나지 않도록 부탁드립니다) --------------------------------- 주데이타 data1 연결선물 1분봉, data2 연결선물 30분봉입니다. (실전에서는 주데이타를 1초봉으로 사용할 예정인데, 만약 1분봉일 때와 수식이 달라진다면 두가지 수식 모두 부탁드리겠습니다) 09:00~09:30 장개시후 30분간은 매매없슴 (연초개장일 및 수능일 감안 : dayindex 사용) 09:30~10:00 1) 09:30에 data1의 시가가 data2 첫봉 30분간 고가저가의 1/2 이상에서 형성되었으면 09:30에 매수, 1/2 미만에서 형성되었으면 09:30분에 매도 2) 단, 09:00~09:30기간 data2의 abs(시가-종가)>abs(고가-저가)/2인 경우만 진입 진입이 없었다면 매매없이 다음 30분후로 넘어감 3) 매수매도 진입후 진입가대비 0.2% 수익이 확보되면 익절 4) 손절1 : 진입후 진입가대비 0.1% 손실이 나거나 or 손절2 : 매수후 가격이 09:00~09:30 data2 고저의 1/2 이하로 형성될 때 매도후 가격이 09:00~09:30 data2 고저의 1/2 이상으로 형성될 때 5) 진입이 있을 경우 30분 단위로 거래는 1회만 발생 즉, 진입후 익절이던 손절이던 청산이 되었으면 다음 기간이 올 때까지 진입금지 6) 진입후 청산이 발생하지 않았다면 25분 간격으로 포지션 청산 여기서는 09:55 에 청산을 의미함 7) 09:55~10:00 무포지션 유지, 즉 이시간대에는 매매없슴 위와 같은 방식으로 30분단위로 매매가 새로 시작됨. (시간대만 다를 뿐 내용은 상기와 동일합니다) // 09:00~09:30 기간에 형셩된 data2의 시가,종가,고가,저가는 무시하고, // 09:30~10:00에 새로 형성된 data2의 시가,종가,고가,저가를 기준으로하여 ((--> 30분단위로 시고종저가 새로 형성됨, 이부분도 반드시 감안하여 주시기 바랍니다.)) 10:00~10:30 1) 10:00에 data1의 시가가 data2 09:30~10:00 30분간 고가저가의 1/2 이상에서 형성되었으면 10:00에 매수, 1/2 미만에서 형성되었으면 10:00에 매도 2) 단, 09:30~10:00기간 data2의 abs(시가-종가)>abs(고가-저가)/2인 경우만 진입 진입이 없었다면 매매없이 다음 30분후로 넘어감 3) 매수매도 진입후 진입가대비 0.2% 수익이 확보되면 익절 4) 손절1 : 진입후 진입가대비 0.1% 손실이 나거나 or 손절2 : 매수후 가격이 09:30~10:00 data2 고저의 1/2 이하로 형성될 때 매도후 가격이 09:30~10:00 data2 고저의 1/2 이상으로 형성될 때 5) 진입이 있을 경우 30분 단위로 거래는 1회만 발생 즉, 진입후 익절이던 손절이던 청산이 되었으면 다음 기간이 올 때까지 진입금지 6) 진입후 청산이 발생하지 않았다면 25분 간격으로 포지션 청산 여기서는 10:25 에 청산을 의미함 7) 10:25~10:30 무포지션 유지, 즉 이시간대에는 매매없슴 이렇게 30분단위로 14:30까지 거래를 하고 싶습니다. (위의 내용대로라고 하면 최종종료시간은 14:25분이 되겠습니다) ------------------------------- 유사한 질문을 다시 드리게 되서 죄송스럽지만, 몇가지 내용을 바꿔서 시도해보니 매매신호가 자꾸 이상하게 나와서 다시 질문드리게 되었습니다. 그럼 부탁드리겠습니다. 감사합니다...
프로필 이미지

새로운세상

2011-02-11 10:50:56

안녕하세요... 수식 부분에서 몇가지 확인차 재질문 드립니다. 1) 30분봉을 data2로 굳이 사용할 필요가 없는 것인지요? 2) 1분봉이나 1초봉 둘 다 사용 가능한 것인지요? 3) 수식내용중 (2)번이 빠진 상태입니다. (2) 단, 이전 30분기간 data2의 abs(시가-종가)>abs(고가-저가)/2인 경우만 진입 진입이 없었다면 매매없이 다음 30분후로 넘어감 4) 질문 내용중 "30분단위로 시고종저가 새로 형성됨"이라고 하였는데 이부분에 관한 수식이 없는 것 같습니다. 현재 수식은 아래와 같은데, 이 수식대로라면 이전 30분봉뿐 아니라 그전의 값들도 영향을 미칠 것으로 생각됩니다. 또한 이전 30분간의 시가, 종가에 대한 부분이 누락된 것 같습니다. if H > value1 Then value1 = H; if L < value2 Then value2 = L; 말씀드린 것처럼 30분단위 거래시점을 기준으로 이전 30분봉간의 시고종저만을 기준으로 하고 싶습니다. (그 이전의 시고종저는 무시) 5) 지난 수식에서 익절,손절1 부분만 수정이 된 상태 같은데, 이번에 드린 질문은 이전 작성된 내용과 다르게 시고종저 및 추가된 부분 등이 있으니 다시 한번 내용을 체크해 주시기 바랍니다. 이상 내용을 참고하시어 다시 한번 수식을 살펴봐주시면 감사하겠습니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 30분단위 매매 (추가질문) > 안녕하세요 예스스탁입니다. input : N(30),loss(10),Profit(5); var1 = TimeToMinutes(stime)%N; if dayindex == 0 Then value99 = TimeToMinutes(stime); if dayindex == 0 or var1 < var1[1] Then{ value1 = H; value2 = L; value3 = value1[1]; value4 = value2[1]; Condition1 = False; if Condition1 == false and TimeToMinutes(stime) >= value99+30 and MarketPosition == 0 and stime < 143000 Then{ if C > (value3+value4)/2 Then{ buy("b"); Condition1 = true; } if c < (value3+value4)/2 Then{ sell("s"); Condition1 = true; } } } if H > value1 Then value1 = H; if L < value2 Then value2 = L; if MarketPosition == 1 and C < (value3+value4)/2 Then exitlong("bx"); if MarketPosition == -1 and C > (value3+value4)/2 Then ExitShort("sx"); SetStopLoss(0.1,PercentStop); SetStopProfittarget(0.2,PercentStop); if crossup(var1,25) Then{ exitlong(); ExitShort(); } 즐거운 하루되세요 > 새로운세상 님이 쓴 글입니다. > 제목 : 30분단위 매매 (추가질문) > 안녕하세요... 일전에 30분단위 매매와 관련하여 문의를 드렸는데, 몇가지 내용을 변경하여 작성해보니 잘 안돼서 다시 문의드립니다. (참고1 : 이전 질문 및 예스스탁의 답변 / 게시글 16978번) (참고2 : 16978번 재질문과 답변부분이 사라진 관계로 한가지 추가하여 말씀드리면 장개시후 첫 30분에서는 진입이 일어나지 않도록 부탁드립니다) --------------------------------- 주데이타 data1 연결선물 1분봉, data2 연결선물 30분봉입니다. (실전에서는 주데이타를 1초봉으로 사용할 예정인데, 만약 1분봉일 때와 수식이 달라진다면 두가지 수식 모두 부탁드리겠습니다) 09:00~09:30 장개시후 30분간은 매매없슴 (연초개장일 및 수능일 감안 : dayindex 사용) 09:30~10:00 1) 09:30에 data1의 시가가 data2 첫봉 30분간 고가저가의 1/2 이상에서 형성되었으면 09:30에 매수, 1/2 미만에서 형성되었으면 09:30분에 매도 2) 단, 09:00~09:30기간 data2의 abs(시가-종가)>abs(고가-저가)/2인 경우만 진입 진입이 없었다면 매매없이 다음 30분후로 넘어감 3) 매수매도 진입후 진입가대비 0.2% 수익이 확보되면 익절 4) 손절1 : 진입후 진입가대비 0.1% 손실이 나거나 or 손절2 : 매수후 가격이 09:00~09:30 data2 고저의 1/2 이하로 형성될 때 매도후 가격이 09:00~09:30 data2 고저의 1/2 이상으로 형성될 때 5) 진입이 있을 경우 30분 단위로 거래는 1회만 발생 즉, 진입후 익절이던 손절이던 청산이 되었으면 다음 기간이 올 때까지 진입금지 6) 진입후 청산이 발생하지 않았다면 25분 간격으로 포지션 청산 여기서는 09:55 에 청산을 의미함 7) 09:55~10:00 무포지션 유지, 즉 이시간대에는 매매없슴 위와 같은 방식으로 30분단위로 매매가 새로 시작됨. (시간대만 다를 뿐 내용은 상기와 동일합니다) // 09:00~09:30 기간에 형셩된 data2의 시가,종가,고가,저가는 무시하고, // 09:30~10:00에 새로 형성된 data2의 시가,종가,고가,저가를 기준으로하여 ((--> 30분단위로 시고종저가 새로 형성됨, 이부분도 반드시 감안하여 주시기 바랍니다.)) 10:00~10:30 1) 10:00에 data1의 시가가 data2 09:30~10:00 30분간 고가저가의 1/2 이상에서 형성되었으면 10:00에 매수, 1/2 미만에서 형성되었으면 10:00에 매도 2) 단, 09:30~10:00기간 data2의 abs(시가-종가)>abs(고가-저가)/2인 경우만 진입 진입이 없었다면 매매없이 다음 30분후로 넘어감 3) 매수매도 진입후 진입가대비 0.2% 수익이 확보되면 익절 4) 손절1 : 진입후 진입가대비 0.1% 손실이 나거나 or 손절2 : 매수후 가격이 09:30~10:00 data2 고저의 1/2 이하로 형성될 때 매도후 가격이 09:30~10:00 data2 고저의 1/2 이상으로 형성될 때 5) 진입이 있을 경우 30분 단위로 거래는 1회만 발생 즉, 진입후 익절이던 손절이던 청산이 되었으면 다음 기간이 올 때까지 진입금지 6) 진입후 청산이 발생하지 않았다면 25분 간격으로 포지션 청산 여기서는 10:25 에 청산을 의미함 7) 10:25~10:30 무포지션 유지, 즉 이시간대에는 매매없슴 이렇게 30분단위로 14:30까지 거래를 하고 싶습니다. (위의 내용대로라고 하면 최종종료시간은 14:25분이 되겠습니다) ------------------------------- 유사한 질문을 다시 드리게 되서 죄송스럽지만, 몇가지 내용을 바꿔서 시도해보니 매매신호가 자꾸 이상하게 나와서 다시 질문드리게 되었습니다. 그럼 부탁드리겠습니다. 감사합니다...
프로필 이미지

예스스탁 예스스탁 답변

2011-02-11 10:52:42

안녕하세요 예스스탁입니다. 죄송합니다. 식을 잘못 붙여드렸습니다. 추가하신 내용 모두 포함된 식입니다. 아래식을 사용하시면 됩니다. 해당 식은 식안에서 직전30분의 시고저종을 모두 계산되게 되어 있으므로 data2는 필요하지 않습니다. 장시작전에 차트의 조회갯수를 5000으로 조회하신 후에 시스템을 적용해 놓으시면 됩니다.1초봉도 사용가능합니다. 시뮬레이션은 초봉은 제공되지 않으니 1분봉에서 테스트하시면 됩니다. input : N(30),loss(0.1),Profit(0.2); var1 = TimeToMinutes(stime)%N; if dayindex == 0 Then value99 = TimeToMinutes(stime); if dayindex == 0 or var1 < var1[1] Then{ value1 = H; value2 = L; value3 = value1[1]; value4 = value2[1]; value11 = O; value12 = C; value21 = value11[1]; value22 = value12[1]; Condition1 = False; } if Condition1 == false and TimeToMinutes(stime) >= value99+30 and MarketPosition == 0 and stime < 143000 Then{ if C > (value3+value4)/2 and abs(value21-value22) > abs(value3-value4)/2 Then{ buy("b"); Condition1 = true; } if c < (value3+value4)/2 and abs(value21-value22) > abs(value3-value4)/2 Then{ sell("s"); Condition1 = true; } } if H > value1 Then value1 = H; if L < value2 Then value2 = L; value12 = C; if MarketPosition == 1 and C < (value3+value4)/2 Then exitlong("bx"); if MarketPosition == -1 and C > (value3+value4)/2 Then ExitShort("sx"); SetStopLoss(loss,PercentStop); SetStopProfittarget(Profit,PercentStop); if crossup(var1,25) Then{ exitlong(); ExitShort(); } 즐거운 하루되세요 > 새로운세상 님이 쓴 글입니다. > 제목 : Re : Re : 30분단위 매매 (추가질문) > 안녕하세요... 수식 부분에서 몇가지 확인차 재질문 드립니다. 1) 30분봉을 data2로 굳이 사용할 필요가 없는 것인지요? 2) 1분봉이나 1초봉 둘 다 사용 가능한 것인지요? 3) 수식내용중 (2)번이 빠진 상태입니다. (2) 단, 이전 30분기간 data2의 abs(시가-종가)>abs(고가-저가)/2인 경우만 진입 진입이 없었다면 매매없이 다음 30분후로 넘어감 4) 질문 내용중 "30분단위로 시고종저가 새로 형성됨"이라고 하였는데 이부분에 관한 수식이 없는 것 같습니다. 현재 수식은 아래와 같은데, 이 수식대로라면 이전 30분봉뿐 아니라 그전의 값들도 영향을 미칠 것으로 생각됩니다. 또한 이전 30분간의 시가, 종가에 대한 부분이 누락된 것 같습니다. if H > value1 Then value1 = H; if L < value2 Then value2 = L; 말씀드린 것처럼 30분단위 거래시점을 기준으로 이전 30분봉간의 시고종저만을 기준으로 하고 싶습니다. (그 이전의 시고종저는 무시) 5) 지난 수식에서 익절,손절1 부분만 수정이 된 상태 같은데, 이번에 드린 질문은 이전 작성된 내용과 다르게 시고종저 및 추가된 내용 등이 있으니 체크 부탁드립니다. 이상 내용을 참고하시어 다시 한번 수식을 살펴봐주시면 감사하겠습니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 30분단위 매매 (추가질문) > 안녕하세요 예스스탁입니다. input : N(30),loss(10),Profit(5); var1 = TimeToMinutes(stime)%N; if dayindex == 0 Then value99 = TimeToMinutes(stime); if dayindex == 0 or var1 < var1[1] Then{ value1 = H; value2 = L; value3 = value1[1]; value4 = value2[1]; Condition1 = False; if Condition1 == false and TimeToMinutes(stime) >= value99+30 and MarketPosition == 0 and stime < 143000 Then{ if C > (value3+value4)/2 Then{ buy("b"); Condition1 = true; } if c < (value3+value4)/2 Then{ sell("s"); Condition1 = true; } } } if H > value1 Then value1 = H; if L < value2 Then value2 = L; if MarketPosition == 1 and C < (value3+value4)/2 Then exitlong("bx"); if MarketPosition == -1 and C > (value3+value4)/2 Then ExitShort("sx"); SetStopLoss(0.1,PercentStop); SetStopProfittarget(0.2,PercentStop); if crossup(var1,25) Then{ exitlong(); ExitShort(); } 즐거운 하루되세요 > 새로운세상 님이 쓴 글입니다. > 제목 : 30분단위 매매 (추가질문) > 안녕하세요... 일전에 30분단위 매매와 관련하여 문의를 드렸는데, 몇가지 내용을 변경하여 작성해보니 잘 안돼서 다시 문의드립니다. (참고1 : 이전 질문 및 예스스탁의 답변 / 게시글 16978번) (참고2 : 16978번 재질문과 답변부분이 사라진 관계로 한가지 추가하여 말씀드리면 장개시후 첫 30분에서는 진입이 일어나지 않도록 부탁드립니다) --------------------------------- 주데이타 data1 연결선물 1분봉, data2 연결선물 30분봉입니다. (실전에서는 주데이타를 1초봉으로 사용할 예정인데, 만약 1분봉일 때와 수식이 달라진다면 두가지 수식 모두 부탁드리겠습니다) 09:00~09:30 장개시후 30분간은 매매없슴 (연초개장일 및 수능일 감안 : dayindex 사용) 09:30~10:00 1) 09:30에 data1의 시가가 data2 첫봉 30분간 고가저가의 1/2 이상에서 형성되었으면 09:30에 매수, 1/2 미만에서 형성되었으면 09:30분에 매도 2) 단, 09:00~09:30기간 data2의 abs(시가-종가)>abs(고가-저가)/2인 경우만 진입 진입이 없었다면 매매없이 다음 30분후로 넘어감 3) 매수매도 진입후 진입가대비 0.2% 수익이 확보되면 익절 4) 손절1 : 진입후 진입가대비 0.1% 손실이 나거나 or 손절2 : 매수후 가격이 09:00~09:30 data2 고저의 1/2 이하로 형성될 때 매도후 가격이 09:00~09:30 data2 고저의 1/2 이상으로 형성될 때 5) 진입이 있을 경우 30분 단위로 거래는 1회만 발생 즉, 진입후 익절이던 손절이던 청산이 되었으면 다음 기간이 올 때까지 진입금지 6) 진입후 청산이 발생하지 않았다면 25분 간격으로 포지션 청산 여기서는 09:55 에 청산을 의미함 7) 09:55~10:00 무포지션 유지, 즉 이시간대에는 매매없슴 위와 같은 방식으로 30분단위로 매매가 새로 시작됨. (시간대만 다를 뿐 내용은 상기와 동일합니다) // 09:00~09:30 기간에 형셩된 data2의 시가,종가,고가,저가는 무시하고, // 09:30~10:00에 새로 형성된 data2의 시가,종가,고가,저가를 기준으로하여 ((--> 30분단위로 시고종저가 새로 형성됨, 이부분도 반드시 감안하여 주시기 바랍니다.)) 10:00~10:30 1) 10:00에 data1의 시가가 data2 09:30~10:00 30분간 고가저가의 1/2 이상에서 형성되었으면 10:00에 매수, 1/2 미만에서 형성되었으면 10:00에 매도 2) 단, 09:30~10:00기간 data2의 abs(시가-종가)>abs(고가-저가)/2인 경우만 진입 진입이 없었다면 매매없이 다음 30분후로 넘어감 3) 매수매도 진입후 진입가대비 0.2% 수익이 확보되면 익절 4) 손절1 : 진입후 진입가대비 0.1% 손실이 나거나 or 손절2 : 매수후 가격이 09:30~10:00 data2 고저의 1/2 이하로 형성될 때 매도후 가격이 09:30~10:00 data2 고저의 1/2 이상으로 형성될 때 5) 진입이 있을 경우 30분 단위로 거래는 1회만 발생 즉, 진입후 익절이던 손절이던 청산이 되었으면 다음 기간이 올 때까지 진입금지 6) 진입후 청산이 발생하지 않았다면 25분 간격으로 포지션 청산 여기서는 10:25 에 청산을 의미함 7) 10:25~10:30 무포지션 유지, 즉 이시간대에는 매매없슴 이렇게 30분단위로 14:30까지 거래를 하고 싶습니다. (위의 내용대로라고 하면 최종종료시간은 14:25분이 되겠습니다) ------------------------------- 유사한 질문을 다시 드리게 되서 죄송스럽지만, 몇가지 내용을 바꿔서 시도해보니 매매신호가 자꾸 이상하게 나와서 다시 질문드리게 되었습니다. 그럼 부탁드리겠습니다. 감사합니다...
프로필 이미지

새로운세상

2011-02-11 11:21:32

번거롭게 자꾸 질문드려서 죄송스럽지만, 제가 이해를 못하는 부분이 있어서 다시 질문드립니다. if H > value1 Then value1 = H; if L < value2 Then value2 = L; value12 = C; 이부분인데, 수식대로라면 이전 30분기간의 고저가 그이전에 있었던 30분기간들의 고저를 경신하였을 때 새롭게 고저를 value값에 주게 되는데, 만약 이전 30분기간의 고저가 그이전에 있었던 30분기간들의 고저를 경신하지 못하였을 경우 위의 수식은 이전 30분기간의 고저가 아닌 그이전 30분기간들중의 고저값을 갖고 있게 되는 것이 아닌지요? 그리고 셋째줄에 있는 수식에서 value11 = 0; value12 = C; 이렇게만 작성하면 이전 30분기간중의 시종만을 받게 되는 것인지요? 질문의 요지는 위와 같이 수식이 작성되었을 경우, 바로 이전 30분기간중의 시고종저값에 의하여(그이전 값들은 무시되고) 진입과 청산이 일어나는가 하는 것입니다. 부탁드리겠습니다. 감사합니다... > 예스스탁 님이 쓴 글입니다. > 제목 : Re : Re : Re : 30분단위 매매 (추가질문) > 안녕하세요 예스스탁입니다. 죄송합니다. 식을 잘못 붙여드렸습니다. 추가하신 내용 모두 포함된 식입니다. 아래식을 사용하시면 됩니다. 해당 식은 식안에서 직전30분의 시고저종을 모두 계산되게 되어 있으므로 data2는 필요하지 않습니다. 장시작전에 차트의 조회갯수를 5000으로 조회하신 후에 시스템을 적용해 놓으시면 됩니다.1초봉도 사용가능합니다. 시뮬레이션은 초봉은 제공되지 않으니 1분봉에서 테스트하시면 됩니다. input : N(30),loss(0.1),Profit(0.2); var1 = TimeToMinutes(stime)%N; if dayindex == 0 Then value99 = TimeToMinutes(stime); if dayindex == 0 or var1 < var1[1] Then{ value1 = H; value2 = L; value3 = value1[1]; value4 = value2[1]; value11 = O; value12 = C; value21 = value11[1]; value22 = value12[1]; Condition1 = False; } if Condition1 == false and TimeToMinutes(stime) >= value99+30 and MarketPosition == 0 and stime < 143000 Then{ if C > (value3+value4)/2 and abs(value21-value22) > abs(value3-value4)/2 Then{ buy("b"); Condition1 = true; } if c < (value3+value4)/2 and abs(value21-value22) > abs(value3-value4)/2 Then{ sell("s"); Condition1 = true; } } if H > value1 Then value1 = H; if L < value2 Then value2 = L; value12 = C; if MarketPosition == 1 and C < (value3+value4)/2 Then exitlong("bx"); if MarketPosition == -1 and C > (value3+value4)/2 Then ExitShort("sx"); SetStopLoss(loss,PercentStop); SetStopProfittarget(Profit,PercentStop); if crossup(var1,25) Then{ exitlong(); ExitShort(); } 즐거운 하루되세요 > 새로운세상 님이 쓴 글입니다. > 제목 : Re : Re : 30분단위 매매 (추가질문) > 안녕하세요... 수식 부분에서 몇가지 확인차 재질문 드립니다. 1) 30분봉을 data2로 굳이 사용할 필요가 없는 것인지요? 2) 1분봉이나 1초봉 둘 다 사용 가능한 것인지요? 3) 수식내용중 (2)번이 빠진 상태입니다. (2) 단, 이전 30분기간 data2의 abs(시가-종가)>abs(고가-저가)/2인 경우만 진입 진입이 없었다면 매매없이 다음 30분후로 넘어감 4) 질문 내용중 "30분단위로 시고종저가 새로 형성됨"이라고 하였는데 이부분에 관한 수식이 없는 것 같습니다. 현재 수식은 아래와 같은데, 이 수식대로라면 이전 30분봉뿐 아니라 그전의 값들도 영향을 미칠 것으로 생각됩니다. 또한 이전 30분간의 시가, 종가에 대한 부분이 누락된 것 같습니다. if H > value1 Then value1 = H; if L < value2 Then value2 = L; 말씀드린 것처럼 30분단위 거래시점을 기준으로 이전 30분봉간의 시고종저만을 기준으로 하고 싶습니다. (그 이전의 시고종저는 무시) 5) 지난 수식에서 익절,손절1 부분만 수정이 된 상태 같은데, 이번에 드린 질문은 이전 작성된 내용과 다르게 시고종저 및 추가된 내용 등이 있으니 체크 부탁드립니다. 이상 내용을 참고하시어 다시 한번 수식을 살펴봐주시면 감사하겠습니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 30분단위 매매 (추가질문) > 안녕하세요 예스스탁입니다. input : N(30),loss(10),Profit(5); var1 = TimeToMinutes(stime)%N; if dayindex == 0 Then value99 = TimeToMinutes(stime); if dayindex == 0 or var1 < var1[1] Then{ value1 = H; value2 = L; value3 = value1[1]; value4 = value2[1]; Condition1 = False; if Condition1 == false and TimeToMinutes(stime) >= value99+30 and MarketPosition == 0 and stime < 143000 Then{ if C > (value3+value4)/2 Then{ buy("b"); Condition1 = true; } if c < (value3+value4)/2 Then{ sell("s"); Condition1 = true; } } } if H > value1 Then value1 = H; if L < value2 Then value2 = L; if MarketPosition == 1 and C < (value3+value4)/2 Then exitlong("bx"); if MarketPosition == -1 and C > (value3+value4)/2 Then ExitShort("sx"); SetStopLoss(0.1,PercentStop); SetStopProfittarget(0.2,PercentStop); if crossup(var1,25) Then{ exitlong(); ExitShort(); } 즐거운 하루되세요 > 새로운세상 님이 쓴 글입니다. > 제목 : 30분단위 매매 (추가질문) > 안녕하세요... 일전에 30분단위 매매와 관련하여 문의를 드렸는데, 몇가지 내용을 변경하여 작성해보니 잘 안돼서 다시 문의드립니다. (참고1 : 이전 질문 및 예스스탁의 답변 / 게시글 16978번) (참고2 : 16978번 재질문과 답변부분이 사라진 관계로 한가지 추가하여 말씀드리면 장개시후 첫 30분에서는 진입이 일어나지 않도록 부탁드립니다) --------------------------------- 주데이타 data1 연결선물 1분봉, data2 연결선물 30분봉입니다. (실전에서는 주데이타를 1초봉으로 사용할 예정인데, 만약 1분봉일 때와 수식이 달라진다면 두가지 수식 모두 부탁드리겠습니다) 09:00~09:30 장개시후 30분간은 매매없슴 (연초개장일 및 수능일 감안 : dayindex 사용) 09:30~10:00 1) 09:30에 data1의 시가가 data2 첫봉 30분간 고가저가의 1/2 이상에서 형성되었으면 09:30에 매수, 1/2 미만에서 형성되었으면 09:30분에 매도 2) 단, 09:00~09:30기간 data2의 abs(시가-종가)>abs(고가-저가)/2인 경우만 진입 진입이 없었다면 매매없이 다음 30분후로 넘어감 3) 매수매도 진입후 진입가대비 0.2% 수익이 확보되면 익절 4) 손절1 : 진입후 진입가대비 0.1% 손실이 나거나 or 손절2 : 매수후 가격이 09:00~09:30 data2 고저의 1/2 이하로 형성될 때 매도후 가격이 09:00~09:30 data2 고저의 1/2 이상으로 형성될 때 5) 진입이 있을 경우 30분 단위로 거래는 1회만 발생 즉, 진입후 익절이던 손절이던 청산이 되었으면 다음 기간이 올 때까지 진입금지 6) 진입후 청산이 발생하지 않았다면 25분 간격으로 포지션 청산 여기서는 09:55 에 청산을 의미함 7) 09:55~10:00 무포지션 유지, 즉 이시간대에는 매매없슴 위와 같은 방식으로 30분단위로 매매가 새로 시작됨. (시간대만 다를 뿐 내용은 상기와 동일합니다) // 09:00~09:30 기간에 형셩된 data2의 시가,종가,고가,저가는 무시하고, // 09:30~10:00에 새로 형성된 data2의 시가,종가,고가,저가를 기준으로하여 ((--> 30분단위로 시고종저가 새로 형성됨, 이부분도 반드시 감안하여 주시기 바랍니다.)) 10:00~10:30 1) 10:00에 data1의 시가가 data2 09:30~10:00 30분간 고가저가의 1/2 이상에서 형성되었으면 10:00에 매수, 1/2 미만에서 형성되었으면 10:00에 매도 2) 단, 09:30~10:00기간 data2의 abs(시가-종가)>abs(고가-저가)/2인 경우만 진입 진입이 없었다면 매매없이 다음 30분후로 넘어감 3) 매수매도 진입후 진입가대비 0.2% 수익이 확보되면 익절 4) 손절1 : 진입후 진입가대비 0.1% 손실이 나거나 or 손절2 : 매수후 가격이 09:30~10:00 data2 고저의 1/2 이하로 형성될 때 매도후 가격이 09:30~10:00 data2 고저의 1/2 이상으로 형성될 때 5) 진입이 있을 경우 30분 단위로 거래는 1회만 발생 즉, 진입후 익절이던 손절이던 청산이 되었으면 다음 기간이 올 때까지 진입금지 6) 진입후 청산이 발생하지 않았다면 25분 간격으로 포지션 청산 여기서는 10:25 에 청산을 의미함 7) 10:25~10:30 무포지션 유지, 즉 이시간대에는 매매없슴 이렇게 30분단위로 14:30까지 거래를 하고 싶습니다. (위의 내용대로라고 하면 최종종료시간은 14:25분이 되겠습니다) ------------------------------- 유사한 질문을 다시 드리게 되서 죄송스럽지만, 몇가지 내용을 바꿔서 시도해보니 매매신호가 자꾸 이상하게 나와서 다시 질문드리게 되었습니다. 그럼 부탁드리겠습니다. 감사합니다...