커뮤니티

신용매도방법 질문입니다

프로필 이미지
아테사
2019-12-05 22:32:57
3314
글번호 225107
답변완료
일전에 매도하는방법을 이렇게 답변주셨는데 function Main_이벤트 { var num = Account1.GetTheNumberOfBalances(); for (var i = 0; i < num; i++) { Account1.SetBalance(i); if (Account1.Balance.count > 0 && Account1.Balance.loanKind == 0) { Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,0,1); } if (Account1.Balance.count > 0 && Account1.Balance.loanKind == 1) { Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,1,Account1.Balance.loanDate); } if (Account1.Balance.count > 0 && Account1.Balance.loanKind == 3) { Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,3,Account1.Balance.loanDate); } } } 위방법 말고, 먼저 현금으로 산 수량을 매도시키고, 신용으로 산 수량을 매도시키면 안되나요? 계좌에는 서로 섞여서 매수가 진행되는지 아니면 현금으로 산놈들 따로 신용으로 산놈들 따로 되서 매도가 가능할까요 복잡하네요 ㅠㅜㅜㅜ function inc150_OnRiseSignal(Signal){ var slbn, sbn; if (Signal.signalKind == 1){ Main.OrderBuy(A1.number,ind150.code(A1.GetBalanceETCinfo(20)- A1.GetBalanceETCinfo(18))/d150.Ask(3),ind150.Ask(3),3,3); //(최대주문가능금-현금가능금/ 매수호가) 로 나눈 값으로 매수 slbn=A1.count; //slbn : 신용으로 산 수량 Main.OrderBuy(A1.number,ind150.code,A1.GetBalanceETCinfo(18)/d150.Ask(3),ind150.Ask(3),3); sbn= A1.count-albn; // sbn : 신용으로 산수량을 제외한 수량(현금잔고) } if (Signal.signalKind == 3){ Main.OrderSell(A1.number,d150.code,sbn,Bid(3),1); Main.OrderSell(A1.number,d150.code,slbn,Bid(3),1,3,0); Main.MessageLog("매도 "+Signal.signalKind); } 이렇게 구분해서 했는데.. 매수하고 매도할때 어떻게 해야할지 모르겠네요 도와주시면 감사합니다 ㅠㅜㅜㅜ
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-12-30 15:10:17

안녕하세요 예스스탁입니다. 현금과 신용은 잔고에서 별도로 잡히게 됩니다. 매도에서 루프를 돌면서 현금일때와 신용일때 구분해서 매도하게 하시면 됩니다. 아래 내용 참고하셔서 수정보완해 사용하시기 바랍니다. function inc150_OnRiseSignal(Signal) { var slbn, sbn; //Buy if (Signal.signalKind == 1) { Account1.OrderBuy(ind150.code, Math.flor((Account1.GetBalanceETCinfo(20)-Account1.GetBalanceETCinfo(18))/d150.Ask(3)),0,3); Account1.OrderBuy(ind150.code, Math.flor(Account1.GetBalanceETCinfo(18)/d150.Ask(3)),0); } //Exitlong if (Signal.signalKind == 2) { var num = Account1.GetTheNumberOfBalances(); for (var i = 0; i < num; i++) { Account1.SetBalance(i); //현금일때 if (Account1.Balance.count > 0 && Account1.Balance.loanKind == 0) { Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,0,1); } //튜통융자 if (Account1.Balance.count > 0 && Account1.Balance.loanKind == 1) { Account1.OrderSell(Account1.Balance.code, Account1.Balance.count,d150.Bid(3),0,1,Account1.Balance.loanDate); } //자기융자 if (Account1.Balance.count > 0 && Account1.Balance.loanKind == 3) { Account1.OrderSell(Account1.Balance.code, Account1.Balance.count,d150.Bid(3),0,3,Account1.Balance.loanDate); } } } } 새해 좋은 일만 가득하시길 기원합니다. > 아테사 님이 쓴 글입니다. > 제목 : 신용매도방법 질문입니다 > 일전에 매도하는방법을 이렇게 답변주셨는데 function Main_이벤트 { var num = Account1.GetTheNumberOfBalances(); for (var i = 0; i < num; i++) { Account1.SetBalance(i); if (Account1.Balance.count > 0 && Account1.Balance.loanKind == 0) { Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,0,1); } if (Account1.Balance.count > 0 && Account1.Balance.loanKind == 1) { Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,1,Account1.Balance.loanDate); } if (Account1.Balance.count > 0 && Account1.Balance.loanKind == 3) { Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,3,Account1.Balance.loanDate); } } } 위방법 말고, 먼저 현금으로 산 수량을 매도시키고, 신용으로 산 수량을 매도시키면 안되나요? 계좌에는 서로 섞여서 매수가 진행되는지 아니면 현금으로 산놈들 따로 신용으로 산놈들 따로 되서 매도가 가능할까요 복잡하네요 ㅠㅜㅜㅜ function inc150_OnRiseSignal(Signal){ var slbn, sbn; if (Signal.signalKind == 1){ Main.OrderBuy(A1.number,ind150.code(A1.GetBalanceETCinfo(20)- A1.GetBalanceETCinfo(18))/d150.Ask(3),ind150.Ask(3),3,3); //(최대주문가능금-현금가능금/ 매수호가) 로 나눈 값으로 매수 slbn=A1.count; //slbn : 신용으로 산 수량 Main.OrderBuy(A1.number,ind150.code,A1.GetBalanceETCinfo(18)/d150.Ask(3),ind150.Ask(3),3); sbn= A1.count-albn; // sbn : 신용으로 산수량을 제외한 수량(현금잔고) } if (Signal.signalKind == 3){ Main.OrderSell(A1.number,d150.code,sbn,Bid(3),1); Main.OrderSell(A1.number,d150.code,slbn,Bid(3),1,3,0); Main.MessageLog("매도 "+Signal.signalKind); } 이렇게 구분해서 했는데.. 매수하고 매도할때 어떻게 해야할지 모르겠네요 도와주시면 감사합니다 ㅠㅜㅜㅜ