커뮤니티

문의드립니다.

프로필 이미지
정거장
2023-01-26 15:30:46.0
1239
글번호 225766
답변완료
한국투자 증권에서 나스닥, 항생위주로 거래합니다. 해당 종목에서 수동으로 진입한 후 평가손익이 100만원(달러기준 1000) 이상일 경우 손익 /손절 하거나 평균체결가 대비 40틱 이상일 경우 손익 / 손절하는 수식 부탁드립니다.
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-03-16 17:22:25.0

안녕하세요 예스스탁입니다. 1 스팟수식 답변은 식작성의 가이드입니다. 아래 내용 참고하시기 수정보완해 사용하시기 바랍니다. 익절손절은 틱수로 작성해 드립니다. 2 주문을 위해서는 각종목의 종목객체가 필요합니다. 스팟시작시 보유종목에 대해 모두 종목객체를 생성하고 이후 신규로 편입된 종목은 잔고에 편입시 종목객체를 만들게 됩니다. n초 간격으로 감시를 해서 현재가가 평단가대비 +- 익절틱/손절틱에 도달하면 청산주문을 집행하게 됩니다. 3 영문 업데이트가 게시판 금칙어입니다. 중간에 *이 삽입되어 있으므로 삭제하셔야 합니다. 스크립트객체화면 계좌객체추가 --> 속성에서 객체명은 Account1, 계좌번호 지정 var 익절틱수 = 40; var 손절틱수 = 40; var List = [], MK = [],Process = []; var req; var step,AddMK; function Main_OnStart() { step = 0; //스팟 시작시 보유종목이 있으면 //보유종목에 대해 종목객체 생성 var num = Account1.GetTheNumberOfBalances(); if (num > 0) { step = 1; for (i = 0; i < num; i++) { Account1.SetBalanceIndex(i); List.push(Account1.Balance.code); } Main.MessageList("보유종목:", List); if (List.length > 0) { req = 0; Main.ReqMarketData(List[req]); Main.MessageList("종목객체요청:", List[req]); } } else { //스팟 시작시 보유종목이 없으면 //다음 단계로 넘어가 새로운 종목이 편입되길 기다림 Main.MessageList("보유종목 없음"); step = 2; } Main.SetTimer(1, 5000);//5초 타이머 } function Main_OnRcvMarketData(MarketData) { if (step == 1) { MK[req] = MarketData; Process[req] = 0; Main.MessageList(MK[req].code, MK[req].current); req = req+1; if (req < List.length) { Main.ReqMarketData(List[req]); Main.MessageList("종목객체요청:", List[req]); } else { //스팟 시작시 보유종목에 대해 종목객체 생성이 모우 완료되면 //다음단계로 넘어감 Main.MessageList("end"); step = 2; } } if (AddMK == true) { Main.MessageList("AddMK:",MarketData.code, MarketData.current); MK.push(MarketData); Process.push(0); AddMK = false; } } function Main_OnUp*dateAccount(sAccntNum, sItemCode, lUp*dateID)//*제거 { //신규 종목이 편입되면 if (sAccntNum == Account1.number && lUp*dateID == 30001) //*제거 { Main.MessageList("신규종목 잔고편입",sItemCode); //신규 편입종목이 기존 생성한 종목객체가 없으면 var add = true; if (MK.length > 0) { for (i = 0; i < MK.length; i++) { if (MK[i].code == sItemCode) { add = false; } } } //새로요청 if (add == true) { AddMK = true; Main.ReqMarketData(sItemCode); } } //종목이 전량 체결되어 잔고에서 삭제되면 if (sAccntNum == Account1.number && lUp*dateID == 30003)//*제거 { //종목객체 중 같은 이름을 찾아서 for (i = 0; i < MK.length; i++) { if (MK[i].code == sItemCode) { //해다 종목의 Process는 0 Process[i] = 0; } } } } //지정한 타이머 간격으로 function Main_OnTimer(nEventID) { var num = Account1.GetTheNumberOfBalances(); //보유종목이 있고 생성한 종목객체가 있을때 if (nEventID == 1 && MK.length > 0 && num > 0 ) { //전체종목 익절 손절 도달을 체크 for (var i = 0; i < MK.length; i++) { Account1.SetBalanceItem(MK[i].code,0); if (MK[i].code == Account1.Balance.code && Account1.Balance.count > 0 && Process[i] == 0) { //평단가 var AP = Account1.Balance.avgUnitCost; //1틱값 var SC = MK[i].tickSize; //매도포지션이면 if (Account1.Balance.position == 1) { Main.MessageList(MK[i].code,"|매도포지션 : 현재가",MK[i].current,"|평단가:",AP,"|익절가:",AP-SC*익절틱수,"|손절가:",AP+SC*손절틱수); //익절도달 전량 매도3호가로 청산(매수주문) if (MK[i].current <= Account1.Balance.avgUnitCost - MK[i].tickSize*익절틱수) { Main.MessageList(MK[i].code,"|매도포지션 : 손절도달"); Process[i] = 1; Account1.OrderBuy(Account1.Balance.code, Account1.Balance.count, MK[i].Ask(3), 2); } //손절도달 전량 매도3호가로 청산(매수주문) if (MK[i].current >= Account1.Balance.avgUnitCost + MK[i].tickSize*손절틱수) { Main.MessageList(MK[i].code,"|매도포지션 : 익절도달"); Process[i] = 1; Account1.OrderBuy(Account1.Balance.code, Account1.Balance.count, MK[i].Ask(3), 2); } } //매수포지션이면 if (Account1.Balance.position == 2) { Main.MessageList(MK[i].code,"|매수포지션 : 현재가",MK[i].current,"|평단가:",AP,"|익절가:",AP+SC*익절틱수,"|손절가:",AP-SC*손절틱수); //익절도달 전량 매수3호가로 청산(매도주문) if (MK[i].current >= Account1.Balance.avgUnitCost + MK[i].tickSize*익절틱수) { Main.MessageList(MK[i].code,"|매수포지션 : 익절도달"); Process[i] = 1; Account1.OrderSell(Account1.Balance.code, Account1.Balance.count, MK[i].Bid(3), 2); } //손절도달 전량 매수3호가로 청산(매도주문) if (MK[i].current <= Account1.Balance.avgUnitCost - MK[i].tickSize*손절틱수) { Main.MessageList(MK[i].code,"|매수포지션 : 손절도달"); Process[i] = 1; Account1.OrderSell(Account1.Balance.code, Account1.Balance.count, MK[i].Bid(3), 2); } } } } } } 즐거운 하루되세요 > 정거장 님이 쓴 글입니다. > 제목 : 문의드립니다. > 한국투자 증권에서 나스닥, 항생위주로 거래합니다. 해당 종목에서 수동으로 진입한 후 평가손익이 100만원(달러기준 1000) 이상일 경우 손익 /손절 하거나 평균체결가 대비 40틱 이상일 경우 손익 / 손절하는 수식 부탁드립니다.