커뮤니티

수식 작성 부탁드립니다.

프로필 이미지
은색
2014-01-02 14:15:41
169
글번호 70976
답변완료
새해 복 많이 받으십시오^^ 34136번 질문에 대한 '답변' 형식으로 다시금 질문을 드렸는데 혹시나 해서 다시금 질문드립니다. 양해부탁드립니다. 수식을 주셨는데, 제가 의도한 바와 약간 다르게 이해 하신 것 같아 재문의 드립니다. 기존에 제가 요청 드린 내용은 다음과 같습니다. <내용> 1. 거래시간은 오전 9시부터 오후 3시까지로 합니다. 2. 오후 1시의 현재 가격이 어제 종가보다 낮으면 일정금액 만큼 매수합니다(투입금액을 조절할 수 있게 수식 작성 바랍니다) 3. 오후 1시의 현재 가격이 어제 종가보다 높으면 현재 보유하고 있는 주식의 10%를 매도합니다. -끝- 위 내용은 오후 1시 가격을 기준으로 거래를 하기 때문에 결국 하루에 한 번 밖에 거래가 일어나지 않습니다. 따라서 제가 볼 때 하루에 한 번 위와 같은 내용으로 거래를 한다면 그리 어려운 식이 아니지 않을까 하는 생각이 들어 질문드립니다. 즉, 오후 1시 가격을 기준으로 어제 종가보다 낮으면 매수, 높으면 보유 주식의 10% 매도 입니다. 이렇게 되면 청산횟수나 추가진입 등과 관련해 큰 무리는 없을 것 같은데 혹시 제가 생각하지 못하는 부분이 있는 건지 살펴주시기 바랍니다. 또한 추가진입과 관련해 어제 매수했는데, 오늘도 어제 종가 보다 낮아 매수를 하게 될 경우 이미 기존에 매수한 수량이 있기 때문에 marketposition == 0 이라는 조건을 두면 안 될 것 같습니다. 좀 더 정확한 의미 전달을 위해 예를 들면 다음과 같습니다. 삼성전자를 예로 들고 쉽게 하기 위해서 제가 삼성전자 주식 10주를 보유하고 있다고 가정하겠습니다. 요청 드린 수식으로 최초 거래를 시작한 첫 날, 오늘의 1시 현재가격이 전날 종가 보다 낮으면 저는 정해놓은 금액만큼 매수합니다. 예를 들어 정해놓은 금액이 200만원이라면 삼성전자 주식 1주를 매수하게 됩니다. 이렇게 되면 저는 11주의 주식을 보유한 상태로 오늘 거래를 종료합니다. 이튿 날(즉 거래 시작후 둘 째날입니다)이 되어서 다시 거래를 할 때 둘째날 오후1시 가격이 어제 종가(즉, 거래 첫째 날)의 가격 보다 높다면 이제 매도를 합니다. 이때는 보유 주식의 10%를 매도하므로 결국 1.1주를 매도해야 하는데 소수점 거래가 안되니까 결국 1주를 매도합니다. 이런 식으로 하루에 한 번 매수 혹은 매도를 하게 될 경우 제가 볼 때는 특별히 복잡한 수식이 필요치 않을 것 같습니다. 혹시라도 제가 놓치는 부분이 있다면 알려주시기 바랍니다. 덧붙여 이미 말씀하신대로 해당 내용이 의외로 구현이 어려운 식이라면 "오후 1시의 현재 가격이 어제 종가보다 높으면 현재 보유하고 있는 주식의 10% 매도"라는 부분만 수식으로 구현해 주시면 감사하겠습니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2014-01-02 20:38:39

안녕하세요 예스스탁입니다. 문의하신 전략의 내용은 충분히 인지하고 있습니다. 우리트레이더에서 구현하는데 가장 문제가 되는 부분은 청산입니다. 1시에 조건만족하면 계속 매수하고자 하시면 다만 해당 전략을 구현할때 청산함수의 수량옵션의 2이라는 값이 필요합니다. 청산함수(exitlong,exitshort)의 기본체계가 하나의 진입신호당 1회입니다. 문의하신 내용은 매수가 여러번 될 수가 있고 청산이 현재 보유 수량의 10%씩 분할로 청산하는데 오늘(D) 1시에 전일종가보다 낮아 100주를 매수하고 D+1일 1시에 전일종가보다 커서 10주(10%)를 청산하고 D+2일 1시에 전일종가보다 커서 10주(10%)를 청산하고 D+3일 1시에 전일종가보다 커서 10주(10%)를 청산한다고 가정하면 청산함수가 진입횟수당 1회이므로 D+1일만 발동하고 나머지 날은 발동하지 않습니다. 이런 이유로 분할로 진입하고 분할로 청산할때는 그 경우의 수만큼 청산함수를 써줘야 하는데 모든 경우의 수를 고려해서 식을 작성하기에는 어려운 내용입니다. (추가진입이 해서 진입신호가 2번일때, 3번일때..., 중간에 분할청산이 발동했는지 여부등등) 4.0버전에 제공되고 있는 청산함수의 수량옵션2가 하나의 청산함수가 진입신호의 횟수와 관계없이 조건만 만족하면 무제한으로 동작하게 하는 옵션입니다. 문의하신 전략과 같은 내용이 구현이 어려워 추가한 기능으로 4.0버전에만 제공이 되고 있습니다 이전에 올려드린 식중 2번식은 한번 매수하고 10번에 나눠서 분할청산할경우를 위해 올려드린식일 뿐입니다. 문의하신 내용을 구현한 식은 1번식입니다. 예스트레이더4.0에만 적용하실수 있습니다. 도움을 드리지 못해 죄송합니다. #매수와 청산에서 전일종가대비가 부등호가 반대로 되어 있어 수정했습니다. input : 투입금액(10000000); var : vol(0),Xvol(0); if CodeCategory == 1 Then{ if BasePrice < 50000 Then vol = int(int(투입금액/C)/10)*10; Else vol = int(투입금액/C); } if CodeCategory == 2 Then vol = int(투입금액/C); if stime == 130000 Then{ if MarketPosition >= 0 and c < DayClose(1) Then buy("b",OnClose,def,vol); if MarketPosition == 1 Then{ if CodeCategory == 11 and BasePrice < 50000 Then xvol = int(int(CurrentContracts*0.05)/10)*10; Else xvol = int(CurrentContracts*0.05); if C > DayClose(1) Then ExitLong("bx",OnClose,def,"",xvol,2); } } 즐거운 하루되세요 > 은색 님이 쓴 글입니다. > 제목 : 수식 작성 부탁드립니다. > 새해 복 많이 받으십시오^^ 34136번 질문에 대한 '답변' 형식으로 다시금 질문을 드렸는데 혹시나 해서 다시금 질문드립니다. 양해부탁드립니다. 수식을 주셨는데, 제가 의도한 바와 약간 다르게 이해 하신 것 같아 재문의 드립니다. 기존에 제가 요청 드린 내용은 다음과 같습니다. <내용> 1. 거래시간은 오전 9시부터 오후 3시까지로 합니다. 2. 오후 1시의 현재 가격이 어제 종가보다 낮으면 일정금액 만큼 매수합니다(투입금액을 조절할 수 있게 수식 작성 바랍니다) 3. 오후 1시의 현재 가격이 어제 종가보다 높으면 현재 보유하고 있는 주식의 10%를 매도합니다. -끝- 위 내용은 오후 1시 가격을 기준으로 거래를 하기 때문에 결국 하루에 한 번 밖에 거래가 일어나지 않습니다. 따라서 제가 볼 때 하루에 한 번 위와 같은 내용으로 거래를 한다면 그리 어려운 식이 아니지 않을까 하는 생각이 들어 질문드립니다. 즉, 오후 1시 가격을 기준으로 어제 종가보다 낮으면 매수, 높으면 보유 주식의 10% 매도 입니다. 이렇게 되면 청산횟수나 추가진입 등과 관련해 큰 무리는 없을 것 같은데 혹시 제가 생각하지 못하는 부분이 있는 건지 살펴주시기 바랍니다. 또한 추가진입과 관련해 어제 매수했는데, 오늘도 어제 종가 보다 낮아 매수를 하게 될 경우 이미 기존에 매수한 수량이 있기 때문에 marketposition == 0 이라는 조건을 두면 안 될 것 같습니다. 좀 더 정확한 의미 전달을 위해 예를 들면 다음과 같습니다. 삼성전자를 예로 들고 쉽게 하기 위해서 제가 삼성전자 주식 10주를 보유하고 있다고 가정하겠습니다. 요청 드린 수식으로 최초 거래를 시작한 첫 날, 오늘의 1시 현재가격이 전날 종가 보다 낮으면 저는 정해놓은 금액만큼 매수합니다. 예를 들어 정해놓은 금액이 200만원이라면 삼성전자 주식 1주를 매수하게 됩니다. 이렇게 되면 저는 11주의 주식을 보유한 상태로 오늘 거래를 종료합니다. 이튿 날(즉 거래 시작후 둘 째날입니다)이 되어서 다시 거래를 할 때 둘째날 오후1시 가격이 어제 종가(즉, 거래 첫째 날)의 가격 보다 높다면 이제 매도를 합니다. 이때는 보유 주식의 10%를 매도하므로 결국 1.1주를 매도해야 하는데 소수점 거래가 안되니까 결국 1주를 매도합니다. 이런 식으로 하루에 한 번 매수 혹은 매도를 하게 될 경우 제가 볼 때는 특별히 복잡한 수식이 필요치 않을 것 같습니다. 혹시라도 제가 놓치는 부분이 있다면 알려주시기 바랍니다. 덧붙여 이미 말씀하신대로 해당 내용이 의외로 구현이 어려운 식이라면 "오후 1시의 현재 가격이 어제 종가보다 높으면 현재 보유하고 있는 주식의 10% 매도"라는 부분만 수식으로 구현해 주시면 감사하겠습니다.