커뮤니티

스팟 문의드립니다.

프로필 이미지
수다리
2018-01-21 17:48:59
2959
글번호 224316
답변완료
아래식을 이용해서 수정하고 싶습니다. 한 계좌에서 해외선물 여러종목을 동시에 매매할껀데요 계좌의 감시를 하다가 여려 종목들의 합산 수익이 20만원이 되면 모든종목청산 합산손실이 -20만원이면 모든종목청산을 하고 싶습니다. 아래식을 이용해서 위 전략을 작성할수 있나요 아래식을 이용하면 종목당 틱가치나 틱단위가 서로 달라서 문제가 있을것 같은데요... 도움 부탁드리겠습니다. function Main_OnStart() { Main.MessageList("계좌감시 시작"); //타이머 셋팅 Main.SetTimer(1, 5000); //스팟시작시 잔고가 있으면 true if (Account1.GetTheNumberOfBalances() >= 1) Exit = true; else// 아니면 false Exit = false; } function Main_OnTimer(nEventID) { var num = Account1.GetTheNumberOfBalances(); //Exit은 true이고 계좌에 1종목이상 있음 if (Exit == true && num >= 1) { var sum1 = 0; var sum2 = 0; var PL = 0; for (var i = 0; i < num; i++) { Account1.SetBalance(i); if (Account1.Balance.count > 0 && Account1.Balance.position == 2) { sum1 = sum1 + Account1.Balance.avgUnitCost * Account1.Balance.count; //평단가 곱하기 수량 sum2 = sum2 + Account1.Balance.current * Account1.Balance.count; //현재가 곱하기 수량 PL = PL + (sum2-sum1); //손익 } if (Account1.Balance.count > 0 && Account1.Balance.position == 1) { sum1 = sum1 + Account1.Balance.avgUnitCost * Account1.Balance.count; sum2 = sum2 + Account1.Balance.current * Account1.Balance.count; PL = PL + (sum1-sum2); } } //전체종목의 손익이 -이고 평단가기준 총평가금액의 10% 이상이면 전체종목 청산 //Exit은 false로 if (PL < 0 && Math.abs(PL) >= sum1*0.10) { Exit = false; for (var i = 0; i < num; i++) { Account1.SetBalance(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); } } } } } function Main_OnUp*dateAccount(sAccntNum, sItemCode, lUp*dateID)//*제거 { //잔고에 새로운 종목이 추가되면 true로 변경하고 타이머 셋팅 if (Exit == false && sAccntNum == Account1.number && lUp*dateID == 30001)//*제거 { Exit = true; } }
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-02-06 14:13:51

안녕하세요 예스스탁입니다. 문의하신 내용은 가능하지 않습니다. 국내선물의 경우도 마찬가지이지만 해외선물도 계좌 잔고에 해당 종목이 틱가치가 제공되지 않습니다. 국내 선물이나 옵션의 경우에는 1포인트당 모두 25만원이기에 당일 손익을 원화로 계산이 가능하지만 해외선물은 각 종목의 한틱의 값도 다르고 환율정보도 없어 수식에서 계산이 되지않습니다. 도움을 드리지 못해 죄송합니다. 즐거운 하루되세요 > 수다리 님이 쓴 글입니다. > 제목 : 스팟 문의드립니다. > 아래식을 이용해서 수정하고 싶습니다. 한 계좌에서 해외선물 여러종목을 동시에 매매할껀데요 계좌의 감시를 하다가 여려 종목들의 합산 수익이 20만원이 되면 모든종목청산 합산손실이 -20만원이면 모든종목청산을 하고 싶습니다. 아래식을 이용해서 위 전략을 작성할수 있나요 아래식을 이용하면 종목당 틱가치나 틱단위가 서로 달라서 문제가 있을것 같은데요... 도움 부탁드리겠습니다. function Main_OnStart() { Main.MessageList("계좌감시 시작"); //타이머 셋팅 Main.SetTimer(1, 5000); //스팟시작시 잔고가 있으면 true if (Account1.GetTheNumberOfBalances() >= 1) Exit = true; else// 아니면 false Exit = false; } function Main_OnTimer(nEventID) { var num = Account1.GetTheNumberOfBalances(); //Exit은 true이고 계좌에 1종목이상 있음 if (Exit == true && num >= 1) { var sum1 = 0; var sum2 = 0; var PL = 0; for (var i = 0; i < num; i++) { Account1.SetBalance(i); if (Account1.Balance.count > 0 && Account1.Balance.position == 2) { sum1 = sum1 + Account1.Balance.avgUnitCost * Account1.Balance.count; //평단가 곱하기 수량 sum2 = sum2 + Account1.Balance.current * Account1.Balance.count; //현재가 곱하기 수량 PL = PL + (sum2-sum1); //손익 } if (Account1.Balance.count > 0 && Account1.Balance.position == 1) { sum1 = sum1 + Account1.Balance.avgUnitCost * Account1.Balance.count; sum2 = sum2 + Account1.Balance.current * Account1.Balance.count; PL = PL + (sum1-sum2); } } //전체종목의 손익이 -이고 평단가기준 총평가금액의 10% 이상이면 전체종목 청산 //Exit은 false로 if (PL < 0 && Math.abs(PL) >= sum1*0.10) { Exit = false; for (var i = 0; i < num; i++) { Account1.SetBalance(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); } } } } } function Main_OnUp*dateAccount(sAccntNum, sItemCode, lUp*dateID)//*제거 { //잔고에 새로운 종목이 추가되면 true로 변경하고 타이머 셋팅 if (Exit == false && sAccntNum == Account1.number && lUp*dateID == 30001)//*제거 { Exit = true; } }