수고하십니다.
엑셀로 만든 분할 지정가표를 이용하여, 잔고를 확인한 후에
스팟에서 지정가로 3번 분할 매도 주문을 내는 방법이 궁금합니다.
매일 아침 8시에
(1)계좌의 전 종목 잔고를 확인한 후
(2)엑셀에 지정된 3 단계 금액대로 매도주문을 내고 싶습니다.
잘 부탁드립니다.
답변 1
예스스탁
예스스탁 답변
2018-05-09 16:23:53
안녕하세요
예스스탁입니다.
올리신 내용만으로는 판단이 되지 않습니다.
어떤 수식을 작성해 드려야 할지 알수 없습니다.
엑셀에 특정 가격 3개를 가져와 매도가격으로 사용하는 수식입니다.
참고하셔서 수정보완해 사용하시기 바랍니다
스크립트 객체설정
계좌객체 --> 속성에서 객체명은 Account1, 주문낼 계좌번호 지정
엑셀객체 --> 속성에서 객체명은 Excel1, 특정 엑셀파일로 지정
//스팟시작
function Main_OnStart()
{
//5초 타이머
Main.SetTimer(1, 5000);
}
function Main_OnTimer(nEventID)
{
//시간계산
var d = new Date();
var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
//타이머 동작시 8시 이후이면
if (HHMMSS >= 80000)
{
//타이머 종료
Main.KillTimer(1)
//연결된 엑셀의 sheet1의 A1셀에서 값을 가져와 P1에 저장
var P1 = Excel1.GetData(1,"A1");
//연결된 엑셀의 sheet1의 A2셀에서 값을 가져와 P1에 저장
var P2 = Excel1.GetData(1,"A2");
//연결된 엑셀의 sheet1의 A3셀에서 값을 가져와 P1에 저장
var P3 = Excel1.GetData(1,"A3");
//보유종목수
var num = Account1.GetTheNumberOfBalances();
//종목수 만큼 루프
for (var i = 0; i < num;i++)
{
//차례대로 각 종목에 대한 잔고셋팅
Account1.SetBalance(i);
//잔고가 있으면
if (Account1.Balance.count > 0)
{
//수량 3분
var V1 = Math.floor(Account1.Balance.count*(1/3));
var V2 = Math.floor(Account1.Balance.count*(1/3));
var V3 = Account1.Balance.count-V1-V2;
//엑셀에서 가져온 값으로 3분할 매도주문
Account1.OrderSell(Account1.Balance.code, V1, P1,0);
Account1.OrderSell(Account1.Balance.code, V2, P2,0);
Account1.OrderSell(Account1.Balance.code, V3, P3,0);
}
}
}
}
즐거운 하루되세요
> 여세우 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 수고하십니다.
엑셀로 만든 분할 지정가표를 이용하여, 잔고를 확인한 후에
스팟에서 지정가로 3번 분할 매도 주문을 내는 방법이 궁금합니다.
매일 아침 8시에
(1)계좌의 전 종목 잔고를 확인한 후
(2)엑셀에 지정된 3 단계 금액대로 매도주문을 내고 싶습니다.
잘 부탁드립니다.