예스스탁
예스스탁 답변
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);
}
이렇게 구분해서 했는데.. 매수하고 매도할때 어떻게 해야할지 모르겠네요
도와주시면 감사합니다 ㅠㅜㅜㅜ