커뮤니티

수식좀 봐주세요.

프로필 이미지
김종인
2016-11-15 22:38:58
114
글번호 104030
답변완료
아래와 같이 현재 잔고의 0번째 종목의 수량과 평균단가를 가져와서 현재 보유수량이 0이면 -> 현재가로 1주 매입 현재 보유수량이 0보다 크면 -> 평균단가 대비 2% 상승시 전량매도 -> 평균단가 대비 10% 하락시 보유수량+1 만큼 추가매수 하려고 합니다. 오늘 아침 실행 전 평균단가 807원이었고 보유수량 7개였습니다. 오늘 자동매매 걸어놓고 회사다녀와서 보니 주가는 평균단가대비 10% 이상 올라 1000원을 넘었습니다. 따라서 보유한 수량 전량 매수 이후에 1주 매입이 이루어져야하는데 거래내역을 보니 1주 매수, 1주매도, 1주매수, 1주매도가 전부네요. 아래 수식 확인부탁드립니다. Input : 하락율(0.9), 상승율(1.03); var : symbol(""),acc(""),AvgPrice(0),Qty(0); acc = GetAccount(0); //계좌번호 symbol = GetPositionSymbol(0,acc); //종목코드 AvgPrice = GetPositionAveragePrice(symbol,acc);//평균단가 Qty = GetPositionQuantity(symbol,acc); //보유수량 MessageLog("종목명 %s 평균단가 %.2f 수량 %.f",symbol,AvgPrice,Qty); if Qty == 0 Then { buy("b",OnClose,def,1); } if Qty > 0 Then { if C >= AvgPrice*상승율 then {ExitLong("bx",atlimit,AvgPrice*상승율); } if C <= AvgPrice*하락율 then { buy("bb",atlimit,AvgPrice*하락율,Qty+1); } }
시스템
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2016-11-16 13:32:35

> 김종인 님이 쓴 글입니다. > 제목 : 수식좀 봐주세요. > 아래와 같이 현재 잔고의 0번째 종목의 수량과 평균단가를 가져와서 현재 보유수량이 0이면 -> 현재가로 1주 매입 현재 보유수량이 0보다 크면 -> 평균단가 대비 2% 상승시 전량매도 -> 평균단가 대비 10% 하락시 보유수량+1 만큼 추가매수 하려고 합니다. 오늘 아침 실행 전 평균단가 807원이었고 보유수량 7개였습니다. 오늘 자동매매 걸어놓고 회사다녀와서 보니 주가는 평균단가대비 10% 이상 올라 1000원을 넘었습니다. 따라서 보유한 수량 전량 매수 이후에 1주 매입이 이루어져야하는데 거래내역을 보니 1주 매수, 1주매도, 1주매수, 1주매도가 전부네요. 아래 수식 확인부탁드립니다. Input : 하락율(0.9), 상승율(1.03); var : symbol(""),acc(""),AvgPrice(0),Qty(0); acc = GetAccount(0); //계좌번호 symbol = GetPositionSymbol(0,acc); //종목코드 AvgPrice = GetPositionAveragePrice(symbol,acc);//평균단가 Qty = GetPositionQuantity(symbol,acc); //보유수량 MessageLog("종목명 %s 평균단가 %.2f 수량 %.f",symbol,AvgPrice,Qty); if Qty == 0 Then { buy("b",OnClose,def,1); } if Qty > 0 Then { if C >= AvgPrice*상승율 then {ExitLong("bx",atlimit,AvgPrice*상승율); } if C <= AvgPrice*하락율 then { buy("bb",atlimit,AvgPrice*하락율,Qty+1); } }
프로필 이미지

김종인

2016-11-17 21:27:03

친절하게 전화로까지 설명해주셔서 감사합니다. 제가 사용하려는 전략은 스팟에서 구현해야하는군요. 어제 오늘 예스스팟 이용법을 공부했는데.... 이제 어떻게 이용하는지는 대략 알겠습니다만 수식작성이 또 어렵네요... 아래와 같이 예스 스팟에서 사용 가능한 수식 부탁드립니다. (1) 차트 객체에서 매수(buy) 신호 발생시 -> 차트 객체 종목의 보유 수량이 0인 경우 시장가로 1개 매수 -> 차트 객체 종목의 보유 수량이 1 이상인 경우 -> 차트 객체 종목의 평균단가가 현재가 대비 10% 이상 하락한 경우 현재 보유수량+1개만큼 시장가로 추가매수 (2) 차트 객체에서 청산(Existlong) 신호 발생시 -> 차트 객체 종목의 평균단가가 현재가 대비 3% 이상 상승시 현재가로 전량매도 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 전화주시기 바랍니다.(02-3453-1060) > > 김종인 님이 쓴 글입니다. > 제목 : 수식좀 봐주세요. > 아래와 같이 현재 잔고의 0번째 종목의 수량과 평균단가를 가져와서 현재 보유수량이 0이면 -> 현재가로 1주 매입 현재 보유수량이 0보다 크면 -> 평균단가 대비 2% 상승시 전량매도 -> 평균단가 대비 10% 하락시 보유수량+1 만큼 추가매수 하려고 합니다. 오늘 아침 실행 전 평균단가 807원이었고 보유수량 7개였습니다. 오늘 자동매매 걸어놓고 회사다녀와서 보니 주가는 평균단가대비 10% 이상 올라 1000원을 넘었습니다. 따라서 보유한 수량 전량 매수 이후에 1주 매입이 이루어져야하는데 거래내역을 보니 1주 매수, 1주매도, 1주매수, 1주매도가 전부네요. 아래 수식 확인부탁드립니다. Input : 하락율(0.9), 상승율(1.03); var : symbol(""),acc(""),AvgPrice(0),Qty(0); acc = GetAccount(0); //계좌번호 symbol = GetPositionSymbol(0,acc); //종목코드 AvgPrice = GetPositionAveragePrice(symbol,acc);//평균단가 Qty = GetPositionQuantity(symbol,acc); //보유수량 MessageLog("종목명 %s 평균단가 %.2f 수량 %.f",symbol,AvgPrice,Qty); if Qty == 0 Then { buy("b",OnClose,def,1); } if Qty > 0 Then { if C >= AvgPrice*상승율 then {ExitLong("bx",atlimit,AvgPrice*상승율); } if C <= AvgPrice*하락율 then { buy("bb",atlimit,AvgPrice*하락율,Qty+1); } }
프로필 이미지

예스스탁 예스스탁 답변

2016-11-18 15:38:35

안녕하세요 예스스탁입니다. 아래 내용 참고하시기 바랍니다. 스크립트 객체설정 차트객체 추가 --> 객체명 Chart1, 신호적용된 차트와 동일아이디 지정 계좌객체 추가 --> 객체명 Account1, 주문낼 계좌번호 지정 function Chart1_OnRiseSignal(Signal) { //buy발생 if (Signal.signalKind == 1) { //신호종목 잔고 셋팅 Account1.SetBalance(Main.GetOrderCode(Signal.code),0); //보유수량이 없으면 if (Account1.Balance.count == 0) { //1주 시장가로 매수 Account1.OrderBuy(Main.GetOrderCode(Signal.code), 1, 0,1); } //보유수량이 있다면 if (Account1.Balance.count > 0) { //보유수량+1주 시장가로 매수 Account1.OrderBuy(Main.GetOrderCode(Signal.code), Account1.Balance.count +1, 0,1); } } //exitlong발생 if (Signal.signalKind == 1) { //신호종목 잔고 셋팅 Account1.SetBalance(Main.GetOrderCode(Signal.code),0); //수량이 0이상이고 현재가가 평단가 +3% 이상이면 if (Account1.Balance.count > 0 && Account1.Balance.current > Account1.Balance.avgUnitCost*1.03) { //전량 현재가로 매도 Account1.OrderSell(Main.GetOrderCode(Signal.code), Account1.Balance.count, Account1.Balance.current,0) } } } 즐거운 하루되세요 > 김종인 님이 쓴 글입니다. > 제목 : Re : Re : 스팟 수식으로 부탁드려요 > 친절하게 전화로까지 설명해주셔서 감사합니다. 제가 사용하려는 전략은 스팟에서 구현해야하는군요. 어제 오늘 예스스팟 이용법을 공부했는데.... 이제 어떻게 이용하는지는 대략 알겠습니다만 수식작성이 또 어렵네요... 아래와 같이 예스 스팟에서 사용 가능한 수식 부탁드립니다. (1) 차트 객체에서 매수(buy) 신호 발생시 -> 차트 객체 종목의 보유 수량이 0인 경우 시장가로 1개 매수 -> 차트 객체 종목의 보유 수량이 1 이상인 경우 -> 차트 객체 종목의 평균단가가 현재가 대비 10% 이상 하락한 경우 현재 보유수량+1개만큼 시장가로 추가매수 (2) 차트 객체에서 청산(Existlong) 신호 발생시 -> 차트 객체 종목의 평균단가가 현재가 대비 3% 이상 상승시 현재가로 전량매도 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 전화주시기 바랍니다.(02-3453-1060) > > 김종인 님이 쓴 글입니다. > 제목 : 수식좀 봐주세요. > 아래와 같이 현재 잔고의 0번째 종목의 수량과 평균단가를 가져와서 현재 보유수량이 0이면 -> 현재가로 1주 매입 현재 보유수량이 0보다 크면 -> 평균단가 대비 2% 상승시 전량매도 -> 평균단가 대비 10% 하락시 보유수량+1 만큼 추가매수 하려고 합니다. 오늘 아침 실행 전 평균단가 807원이었고 보유수량 7개였습니다. 오늘 자동매매 걸어놓고 회사다녀와서 보니 주가는 평균단가대비 10% 이상 올라 1000원을 넘었습니다. 따라서 보유한 수량 전량 매수 이후에 1주 매입이 이루어져야하는데 거래내역을 보니 1주 매수, 1주매도, 1주매수, 1주매도가 전부네요. 아래 수식 확인부탁드립니다. Input : 하락율(0.9), 상승율(1.03); var : symbol(""),acc(""),AvgPrice(0),Qty(0); acc = GetAccount(0); //계좌번호 symbol = GetPositionSymbol(0,acc); //종목코드 AvgPrice = GetPositionAveragePrice(symbol,acc);//평균단가 Qty = GetPositionQuantity(symbol,acc); //보유수량 MessageLog("종목명 %s 평균단가 %.2f 수량 %.f",symbol,AvgPrice,Qty); if Qty == 0 Then { buy("b",OnClose,def,1); } if Qty > 0 Then { if C >= AvgPrice*상승율 then {ExitLong("bx",atlimit,AvgPrice*상승율); } if C <= AvgPrice*하락율 then { buy("bb",atlimit,AvgPrice*하락율,Qty+1); } }