커뮤니티

수식 문의합니다

프로필 이미지
팡팡
2021-11-16 22:30:21.0
1805
글번호 225587
답변완료
많은 도움 받고 있습니다. 종목에 관계 없이 매수, 매도한 잔고를 5초마다 합산해서 -50만원에 손절, 50만원에 익절 하는식 원합니다. 예시는 매도포지션 일때 청산식인데 매도와 매수한 가격을 합산하여 청산하는 식 원합니다. 예시) 옵션매도포지션 전체 손익계산 var num = A1.GetTheNumberOfBalances(); var PLsum = 0; for(var i = 0; i < num; i++) { //잔고셋팅 A1.SetBalanceIndex(i); //매도포지션이고 옵션종목이고 if (A1.Balance.position == 1 && (A1.Balance.code.substring(0,1) == "2" || A1.Balance.code.substring(0,1) == "3")) { //각 옵션매도종목의 (평균단가-현재가)*수량*50만원을 누적 PLsum = PLsum + ((A1.Balance.avgUnitCost - A1.Balance.current)*A1.Balance.count)*250000; } } //손익이 +50만원이상이거나 -50만원 이하이면 if (PLsum >= 100000 || PLsum <= -100000) { for(var i = 0; i < num; i++) { //잔고셋팅 A1.SetBalanceIndex(i); //매도포지션이고 옵션종목이고 if (A1.Balance.position == 1 && (A1.Balance.code.substring(0,1) == "2" || A1.Balance.code.substring(0,1) == "3")) { A1.OrderBuy(A1.Balance.code, A1.Balance.count, 0,1); } } }
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-12-15 15:58:41.0

안녕하세요 예스스탁입니다. 문의하신 내용은 계좌의 손익이므로 계좌의 자산총액을 가져와 이용하시면 됩니다. 아래 내용 참고하시기 바랍니다. 영문 업데이트가 게시판 금칙어이므로 수식에 Up*date와 같이 *이 추가되어 있습니다. 삭제하고 사용하셔야 합니다. var Initial, Exit; //스팟시작 function Main_OnStart() { //시작시점 자산총액 저장 Initial = Account1.GetBalanceETCinfo(100); Exit = false; //타이머 동작 5초 Main.SetTimer(1, 5000); } //타이머 동작 function Main_OnTimer(nEventID) { if (nEventID == 1) { //계좌 재조회 Account1.Refresh(); RF = true; } } //계좌변동 function Main_OnUp*dateAccount(sAccntNum, sItemCode, lUp*dateID)//*삭제 { //RF는 true이고 Exit은 false이고 계좌변동아이디는 계좌재조회(2000) if (RF == true && Exit == false && lUp*dateID == 20000)//*삭제 { //false RF = false; //현재 자산총액이 시작시 자산총액대비 50만원이상 증가했거나 감소했으면 if (Account1.GetBalanceETCinfo(100) >= initial+500000 || Account1.GetBalanceETCinfo(100) <= initial-500000) { //Exit변수 true Exit = true; //계좌 전종목 청산 var num = Account1.GetTheNumberOfBalances(); if (num > 0) { for(var i = 0; i < num; i++) { Account1.SetBalance(i); if (Account1.Balance.count > 0 && Account1.Balance.position == 1) { Account1.OrderBuy(Account1.Balance.code,Account1.Balance.count,Account1.Balance.current,0); } if (Account1.Balance.count > 0 && Account1.Balance.position == 2) { Account1.OrderBuy(Account1.Balance.code,Account1.Balance.count,Account1.Balance.current,0); } } } } } } 즐거운 하루되세요 > 팡팡 님이 쓴 글입니다. > 제목 : 수식 문의합니다 > 많은 도움 받고 있습니다. 종목에 관계 없이 매수, 매도한 잔고를 5초마다 합산해서 -50만원에 손절, 50만원에 익절 하는식 원합니다. 예시는 매도포지션 일때 청산식인데 매도와 매수한 가격을 합산하여 청산하는 식 원합니다. 예시) 옵션매도포지션 전체 손익계산 var num = A1.GetTheNumberOfBalances(); var PLsum = 0; for(var i = 0; i < num; i++) { //잔고셋팅 A1.SetBalanceIndex(i); //매도포지션이고 옵션종목이고 if (A1.Balance.position == 1 && (A1.Balance.code.substring(0,1) == "2" || A1.Balance.code.substring(0,1) == "3")) { //각 옵션매도종목의 (평균단가-현재가)*수량*50만원을 누적 PLsum = PLsum + ((A1.Balance.avgUnitCost - A1.Balance.current)*A1.Balance.count)*250000; } } //손익이 +50만원이상이거나 -50만원 이하이면 if (PLsum >= 100000 || PLsum <= -100000) { for(var i = 0; i < num; i++) { //잔고셋팅 A1.SetBalanceIndex(i); //매도포지션이고 옵션종목이고 if (A1.Balance.position == 1 && (A1.Balance.code.substring(0,1) == "2" || A1.Balance.code.substring(0,1) == "3")) { A1.OrderBuy(A1.Balance.code, A1.Balance.count, 0,1); } } }