커뮤니티

수식 작성 부탁드립니다.

프로필 이미지
은색
2013-12-30 20:58:00
161
글번호 70938
답변완료
다음 내용을 충족하는 수식 작성 부탁드립니다. <내용> 1. 거래시간은 오전 9시부터 오후 3시까지로 합니다. 2. 오후 1시의 현재 가격이 어제 종가보다 낮으면 일정금액 만큼 매수합니다(투입금액을 조절할 수 있게 수식 작성 바랍니다) 3. 오후 1시의 현재 가격이 어제 종가보다 높으면 현재 보유하고 있는 주식의 10%를 매도합니다. -끝- 감사합니다.
시스템
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2014-01-02 13:26:40

안녕하세요 예스스탁입니다. 1. input : 투입금액(10000000),UpdnPer(1); var : vol(0),vol1(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); } } 2. input : 투입금액(1000000),UpdnPer(1); var : vol(0),vol1(0),Xvol(0),Xcond(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 MarketPosition == 0 and c > DayClose(1) and stime == 130000 Then{ buy("b",OnClose,def,vol); } if MarketPosition == 1 Then{ if CodeCategory == 11 and BasePrice < 50000 Then xvol = int(int(CurrentContracts*0.10)/10)*10; Else xvol = int(CurrentContracts*0.10); if CurrentContracts < CurrentContracts[1] Then Xcond = Xcond+1; if stime == 130000 Then{ if Xcond == 0 and C < DayClose(1) Then ExitLong("bx1",OnClose,def,"",xvol,1); if Xcond == 1 and C < DayClose(1) Then ExitLong("bx2",OnClose,def,"",xvol,1); if Xcond == 2 and C < DayClose(1) Then ExitLong("bx3",OnClose,def,"",xvol,1); if Xcond == 3 and C < DayClose(1) Then ExitLong("bx4",OnClose,def,"",xvol,1); if Xcond == 4 and C < DayClose(1) Then ExitLong("bx5",OnClose,def,"",xvol,1); if Xcond == 5 and C < DayClose(1) Then ExitLong("bx6",OnClose,def,"",xvol,1); if Xcond == 6 and C < DayClose(1) Then ExitLong("bx7",OnClose,def,"",xvol,1); if Xcond == 7 and C < DayClose(1) Then ExitLong("bx8",OnClose,def,"",xvol,1); if Xcond == 8 and C < DayClose(1) Then ExitLong("bx9",OnClose,def,"",xvol,1); if Xcond == 9 and C < DayClose(1) Then ExitLong("bx10"); } } Else Xcond = 0; 3 문의하신 내용이 이전 문의와 같이 추가진입(피라미딩)하고 청산도 분할로 하는 식이시면 1번식을 사용하셔야 합니다. 횟수를 지정할수 없는 내용이라 청산함수의 2라는 옵션이 필요하고 예스트레이더 4.0에만 가능합니다. 만약 문의하신 내용이 1번 매수하고 10%씩 열번에 걸쳐 청산하는 내용이시면 2번식 적용하시면 됩니다. 분할청산은 경우의 수 별로 다 작성해야 하므로 2번식과 같이 나열해 작성해야 합니다. 즐거운 하루되세요 > 은색 님이 쓴 글입니다. > 제목 : 수식 작성 부탁드립니다. > 다음 내용을 충족하는 수식 작성 부탁드립니다. <내용> 1. 거래시간은 오전 9시부터 오후 3시까지로 합니다. 2. 오후 1시의 현재 가격이 어제 종가보다 낮으면 일정금액 만큼 매수합니다(투입금액을 조절할 수 있게 수식 작성 바랍니다) 3. 오후 1시의 현재 가격이 어제 종가보다 높으면 현재 보유하고 있는 주식의 10%를 매도합니다. -끝- 감사합니다.
프로필 이미지

은색

2014-01-02 14:13:30

새해 복 많이 받으십시오^^ 질문에 대해 답을 주셨는데 제가 의도한 바와 약간 다르게 이해 하신 것 같아 재문의 드립니다. 기존에 제가 요청 드린 내용은 다음과 같습니다. <내용> 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% 매도"라는 부분만 수식으로 구현해 주시면 감사하겠습니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식 작성 부탁드립니다. > 안녕하세요 예스스탁입니다. 1. input : 투입금액(10000000),UpdnPer(1); var : vol(0),vol1(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); } } 2. input : 투입금액(1000000),UpdnPer(1); var : vol(0),vol1(0),Xvol(0),Xcond(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 MarketPosition == 0 and c > DayClose(1) and stime == 130000 Then{ buy("b",OnClose,def,vol); } if MarketPosition == 1 Then{ if CodeCategory == 11 and BasePrice < 50000 Then xvol = int(int(CurrentContracts*0.10)/10)*10; Else xvol = int(CurrentContracts*0.10); if CurrentContracts < CurrentContracts[1] Then Xcond = Xcond+1; if stime == 130000 Then{ if Xcond == 0 and C < DayClose(1) Then ExitLong("bx1",OnClose,def,"",xvol,1); if Xcond == 1 and C < DayClose(1) Then ExitLong("bx2",OnClose,def,"",xvol,1); if Xcond == 2 and C < DayClose(1) Then ExitLong("bx3",OnClose,def,"",xvol,1); if Xcond == 3 and C < DayClose(1) Then ExitLong("bx4",OnClose,def,"",xvol,1); if Xcond == 4 and C < DayClose(1) Then ExitLong("bx5",OnClose,def,"",xvol,1); if Xcond == 5 and C < DayClose(1) Then ExitLong("bx6",OnClose,def,"",xvol,1); if Xcond == 6 and C < DayClose(1) Then ExitLong("bx7",OnClose,def,"",xvol,1); if Xcond == 7 and C < DayClose(1) Then ExitLong("bx8",OnClose,def,"",xvol,1); if Xcond == 8 and C < DayClose(1) Then ExitLong("bx9",OnClose,def,"",xvol,1); if Xcond == 9 and C < DayClose(1) Then ExitLong("bx10"); } } Else Xcond = 0; 3 문의하신 내용이 이전 문의와 같이 추가진입(피라미딩)하고 청산도 분할로 하는 식이시면 1번식을 사용하셔야 합니다. 횟수를 지정할수 없는 내용이라 청산함수의 2라는 옵션이 필요하고 예스트레이더 4.0에만 가능합니다. 만약 문의하신 내용이 1번 매수하고 10%씩 열번에 걸쳐 청산하는 내용이시면 2번식 적용하시면 됩니다. 분할청산은 경우의 수 별로 다 작성해야 하므로 2번식과 같이 나열해 작성해야 합니다. 즐거운 하루되세요 > 은색 님이 쓴 글입니다. > 제목 : 수식 작성 부탁드립니다. > 다음 내용을 충족하는 수식 작성 부탁드립니다. <내용> 1. 거래시간은 오전 9시부터 오후 3시까지로 합니다. 2. 오후 1시의 현재 가격이 어제 종가보다 낮으면 일정금액 만큼 매수합니다(투입금액을 조절할 수 있게 수식 작성 바랍니다) 3. 오후 1시의 현재 가격이 어제 종가보다 높으면 현재 보유하고 있는 주식의 10%를 매도합니다. -끝- 감사합니다.