커뮤니티

잔고 손실 관리 및 매매 금지

프로필 이미지
lucky93
2014-01-20 11:22:50
1275
글번호 222788
답변완료
안녕하세요? 하기 사항 구현할 수 있는 수식 문의 드립니다. 1. 계좌 잔고에서 총 보유자산이 20% 감소시 (즉,장 시작전 잔고 대비 현 보유 잔고가 20% 이상 손실시) 모든 미체결 주문(수동 주문 포함) 취소후 모든 보유 잔고를 시장가 청산 2. 1번 상황 발생하면 이후에는 모든 신규 주문 거절(매매 금지)
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2014-02-12 16:58:56

안녕하세요 예스스탁입니다. 아래 내용 참고하시기 바랍니다. var i1; var X; //스팟 시작시 function Main_OnStart() { //i1에 예수금/예탁총액 저장 i1 = Account1.GetBalanceETCinfo(0); X = 0; Main.SetTimer(1, 5000);//5초 타이머 셋팅 } function Main_OnTimer(nEventID) { //현재 예수금/예탁총액이 스팟시작시값보다 20% 이상 감소했으면 if (nEventID == 1 && Account1.GetBalanceETCinfo(0) <= i1*0.8) { //미체결주문 전체 취소 var num1 = Account1.GetTheNumberOfUnfills(); for(i = 0; i < num1; i++) { Account1.SetUnfillIndex(i) Account1.OrderCancel(Account1.Unfill.orderNum); } //잔고 전체 종목 청산 var num2 = Account1.GetTheNumberOfBalances(); for(i = 0; i < num2; i++) { Account1.SetBalanceIndex(i); if (Account1.Balance.count > 0 && Account1.Balance.position == 2) Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,0,1); if (Account1.Balance.count > 0 && Account1.Balance.position == 1) Account1.OrderBuy(Account1.Balance.code,Account1.Balance.count,0,1); } X = 1; } } 신규주문을 막는것은 해당 주문식의 if문에 조건을 추가해야 합니다. 스팟 실행시 보다 20% 값소하면 X변수의 값이 1로 변경이 됩니다. 해당 값으로 다른 주문식에 X == 0일때만 주문이 되고 조건 추가하셔야 합니다. 즐거운 하루되세요 > lucky93 님이 쓴 글입니다. > 제목 : 잔고 손실 관리 및 매매 금지 > 안녕하세요? 하기 사항 구현할 수 있는 수식 문의 드립니다. 1. 계좌 잔고에서 총 보유자산이 20% 감소시 (즉,장 시작전 잔고 대비 현 보유 잔고가 20% 이상 손실시) 모든 미체결 주문(수동 주문 포함) 취소후 모든 보유 잔고를 시장가 청산 2. 1번 상황 발생하면 이후에는 모든 신규 주문 거절(매매 금지)