예스스탁
예스스탁 답변
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에 관한 것입니다.