커뮤니티

예스스팟 단독의 STOPLOSS 기능 구현

프로필 이미지
호빗츠
2020-12-01 12:15:50
2666
글번호 225377
답변완료
YES SPOT 으로 주문, 청산(손절, 익절)하는 일반적인 방법은 확장차트객체를 생성하고 system을 설정한뒤, 확장차트의 systeminfo를 spot에서 셋팅하여 system 이 STOPLOSS 및 TAKEPROFIT을 실행하도록 할 수 있다(11월 24일자 답변)고 알고 있습니다. [질문] 이 방법 외에 SPOT 내에서 단독으로 주문도 실행하고, STOPLOSS와 TAKEPROFIT을 하는 방법은 없는지요?? 즉, system을 통하지 않고 spot 자체내에서만의 STOPLOSS 및 TAKEPROFIT에 관한 것입니다.
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-01-20 16:35:09

안녕하세요 예스스탁입니다. 아래와 같이 직전 잔고에서 값확인해서 청산하는 방법이 있습니다. 만약 차트와 연계하는 전략일 경우에 스팟에서 익절과 손절이 발생해도 차트의 시스템은 감지하지 못합니다. 그러므로 스팟에서 손/익절이 발생해도 차트의 신호상은 포지션이 유지되고 다음에 청산신호가 발생하므로 스팟에서 손/익절할 경우에는 다음발생하는 차트의 청산신호에서는 주문을 내지 않게 하셔야 합니다. 식작성에 참고하시기 바랍니다. 스크립트객체설정 계좌객체 추가 --> 속성에서 객체명은 Account1, 주문낼 계좌번호 지정 종목객체 추가 --> 속성에서 객체명은 MarketData1, 손익절 감시할 종목을 지정 function Main_OnStart() { //1번 타이머 5초 간격 셋팅 Main.SetTimer(1, 5000); } //타이머동작 function Main_OnTimer(nEventID) { //1번 타이머 if (nEventID == 1) { Account1.SetBalance(Main.GetOrderCode(MarketData1.code), 0); //매도포지션 손절,익절 체크 if (Account1.Balance.count > 0 && Account1.Balance.position == 1) { //if (Account1.Balance.current >= Account1.Balance.avgUnitCost*1.05) //5% 손절 if (Account1.Balance.current >= Account1.Balance.avgUnitCost + 5)//5포인트(원) 손절 { Main.MessageList("매도포지션 손절조건충족 종목코드:",Account1.Balance.code); Account1.OrderBuy(Account1.Balance.code,Account1.Balance.count,0,1); } //if (Account1.Balance.current <= Account1.Balance.avgUnitCost*0.95) //5% 익절 if (Account1.Balance.current <= Account1.Balance.avgUnitCost - 5) //5포인트(원) 익절 { Main.MessageList("매도포지션 익절조건충족 종목코드:",Account1.Balance.code); Account1.OrderBuy(Account1.Balance.code,Account1.Balance.count,0,1); } } //매수포지션 손절,익절 체크 if (Account1.Balance.count > 0 && Account1.Balance.position == 2) { //if (Account1.Balance.current <= Account1.Balance.avgUnitCost*0.95) //5% 손절 if (Account1.Balance.current <= Account1.Balance.avgUnitCost - 5) //5포인트(원) 손절 { Main.MessageList("매수포지션 손절조건충족 종목코드:",Account1.Balance.code); Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,0,1); } //if (Account1.Balance.current >= Account1.Balance.avgUnitCost*1.05) //5% 익절 if (Account1.Balance.current >= Account1.Balance.avgUnitCost + 5) //5포인트(원) 익절 { Main.MessageList("매수포지션 익절조건충족 종목코드:",Account1.Balance.code); Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,0,1); } } } } 즐거운 하루되세요 > 호빗츠 님이 쓴 글입니다. > 제목 : 예스스팟 단독의 STOPLOSS 기능 구현 > YES SPOT 으로 주문, 청산(손절, 익절)하는 일반적인 방법은 확장차트객체를 생성하고 system을 설정한뒤, 확장차트의 systeminfo를 spot에서 셋팅하여 system 이 STOPLOSS 및 TAKEPROFIT을 실행하도록 할 수 있다(11월 24일자 답변)고 알고 있습니다. [질문] 이 방법 외에 SPOT 내에서 단독으로 주문도 실행하고, STOPLOSS와 TAKEPROFIT을 하는 방법은 없는지요?? 즉, system을 통하지 않고 spot 자체내에서만의 STOPLOSS 및 TAKEPROFIT에 관한 것입니다.