첨부 이미지
그림1
그림2
var Start;
var ItemCode = new Array(50);
var ItemObject = new Array(50);
var ItemHigh = new Array(50);
var ItemLow = new Array(50);
var ItemavgCost = new Array(50);
var Pcon = new Array(50);
var Balnum,PLsum;
var SellID;
var SellNum;
var Nth;
function Main_OnStart()
{
Start = 0;
Main.RefreshAccount(Account1.number);
}
//계좌 변동 알림 이벤트
function Main_OnU*pdateAccount(sAccntNum, sItemCode, lU*pdateID)
{
//계좌에 선물종목이 신규로 편입되면
if (sAccntNum == Account1.number && (lU*pdateID == 30000 || lU*pdateID == 30001))// || lU*pdateID == 30003)) //삭제
{
//Start = 1;
Nth = 0;
Balnum = Account1.GetTheNumberOfBalances()
Main.MessageList("잔고종목수",Balnum);
if (Balnum > 0)
{
Start = 1;
//순번은 1 증가
Nth = Nth+1;
//계좌의 잔고리스트에서 첫번째 잔고 셋팅
Account1.SetBalanceIndex(Nth);//잔고는 순번이 0부터 시작
//셋팅된 잔고의 수량이 0이상이면
if (Account1.Balance.count > 0)
{
//1번째 종목객체 생성요청
Main.ReqMarketData(Account1.Balance.code, 10,0);
//ItemCode의 [Nth]번째 방에 종목코드 저장
ItemCode[Nth] = Account1.Balance.code;
Main.MessageList("종목객체요청",Account1.Balance.code);
}
}
}
}
function Main_OnRcvMarketData(MarketData)
{
Main.MessageList("종목객체수신",MarketData.code);
//수신받은 종목객체의 종목코드와 직전에 요청한 종목과 같은지 확인 후에
if (MarketData.code == ItemCode[Nth])
{
ItemCode[Nth] = MarketData;//ItemCode의 [Nth]방에 수신받은 객체를 저장
ItemHigh[Nth] = 0; //ItemHigh의 [Nth]방의 값을 0으로 셋팅 (이후 최고값 계산해 저장할 변수)
ItemLow[Nth] = 10;
ItemCount[Nth] = 0;
ItemavgCost[Nth] = 0;
Main.MessageList(Nth,"번째","종목객체생성완료 : ",ItemCode[Nth]);
}
}
안녕하세요.
잔고에 종목이 새로 편입되면
아래와 같은 수식으로 종목객체를 생성해야 하는데
잔고에 옵션의 두종목이 있으면 (콜295 245)
0번째 종목객체는 생성이 안되고
1번째의 종목(295)만 생성이 되네요.
두종목 모두 형성될수 있게 하려면
어떻게 해야 하나요.
종목생성이 되어야 잔고조절및 손절에 대한 스팟수식을 테스트 할수 있는데...
295 고가와 잔고가 나오는데,
245는 undefined로 나오네요
답변 1
예스스탁
예스스탁 답변
2015-01-12 17:52:31
안녕하세요
예스스탁입니다.
아래 내용 참고하시기 바랍니다.
동일현상이 발생하시면 02-3453-1060으로 전화주시기 바랍니다.
var Start;
var ItemCode = [];
var ItemObject = [];
var ItemHigh = [];
var ItemLow = [];
var ItemavgCost = [];
var Pcon = new Array(50);
var Balnum,PLsum;
var SellID;
var SellNum;
var Nth;
//스팟 시작
function Main_OnStart()
{
Nth = 0;
Main.RefreshAccount(Account1.number);
//스팟 시작시 잔고에 종목이 있으면 종목객체 생성
var num =Account1.GetTheNumberOfBalances();
if (num > 0)
{
for(var i = 0; i < num; i++)
{
Account1.SetBalanceIndex(i);
Main.MessageList("종목객체생성요청");
Main.ReqMarketData(Account1.Balance.code,0,0);
}
}
}
//계좌 변동 알림 이벤트
function Main_OnUp*dateAccount(sAccntNum, sItemCode, lUp*dateID)
{
//새로운 종목이 추가되면
if (sAccntNum == Account1.number && (lU*pdateID == 30001))
{
//기존 생성된 종목객체에 해당 종목이 있는지 확인
var Same = false;
for(var i = 0; i < ItemObject.Length; i++)
{
if (sItemCode == ItemObject[i].code)
Same = true;
}
//기존에 생성된 적이 있으면
if (Same == true)
{
Main.MessageList("기존에 종목객체 있음");
}
//기존에 생성된 적이 없으면
if (Same == false)
{
Main.MessageList("종목객체생성요청");
Main.ReqMarketData(sItemCode,0,0);
}
}
}
function Main_OnRcvMarketData(MarketData)
{
//수신횟수
Nth = Nth+1;
ItemObject[Nth] = MarketData;//ItemObject의 [Nth]방에 수신받은 객체를 저장
Main.MessageList(Nth,"번째 종목객체수신",ItemObject[Nth]);
}
즐거운 하루되세요
> 파문일기 님이 쓴 글입니다.
> 제목 : 잔고...
> var Start;
var ItemCode = new Array(50);
var ItemObject = new Array(50);
var ItemHigh = new Array(50);
var ItemLow = new Array(50);
var ItemavgCost = new Array(50);
var Pcon = new Array(50);
var Balnum,PLsum;
var SellID;
var SellNum;
var Nth;
function Main_OnStart()
{
Start = 0;
Main.RefreshAccount(Account1.number);
}
//계좌 변동 알림 이벤트
function Main_OnU*pdateAccount(sAccntNum, sItemCode, lU*pdateID)
{
//계좌에 선물종목이 신규로 편입되면
if (sAccntNum == Account1.number && (lU*pdateID == 30000 || lU*pdateID == 30001))// || lU*pdateID == 30003)) //삭제
{
//Start = 1;
Nth = 0;
Balnum = Account1.GetTheNumberOfBalances()
Main.MessageList("잔고종목수",Balnum);
if (Balnum > 0)
{
Start = 1;
//순번은 1 증가
Nth = Nth+1;
//계좌의 잔고리스트에서 첫번째 잔고 셋팅
Account1.SetBalanceIndex(Nth);//잔고는 순번이 0부터 시작
//셋팅된 잔고의 수량이 0이상이면
if (Account1.Balance.count > 0)
{
//1번째 종목객체 생성요청
Main.ReqMarketData(Account1.Balance.code, 10,0);
//ItemCode의 [Nth]번째 방에 종목코드 저장
ItemCode[Nth] = Account1.Balance.code;
Main.MessageList("종목객체요청",Account1.Balance.code);
}
}
}
}
function Main_OnRcvMarketData(MarketData)
{
Main.MessageList("종목객체수신",MarketData.code);
//수신받은 종목객체의 종목코드와 직전에 요청한 종목과 같은지 확인 후에
if (MarketData.code == ItemCode[Nth])
{
ItemCode[Nth] = MarketData;//ItemCode의 [Nth]방에 수신받은 객체를 저장
ItemHigh[Nth] = 0; //ItemHigh의 [Nth]방의 값을 0으로 셋팅 (이후 최고값 계산해 저장할 변수)
ItemLow[Nth] = 10;
ItemCount[Nth] = 0;
ItemavgCost[Nth] = 0;
Main.MessageList(Nth,"번째","종목객체생성완료 : ",ItemCode[Nth]);
}
}
안녕하세요.
잔고에 종목이 새로 편입되면
아래와 같은 수식으로 종목객체를 생성해야 하는데
잔고에 옵션의 두종목이 있으면 (콜295 245)
0번째 종목객체는 생성이 안되고
1번째의 종목(295)만 생성이 되네요.
두종목 모두 형성될수 있게 하려면
어떻게 해야 하나요.
종목생성이 되어야 잔고조절및 손절에 대한 스팟수식을 테스트 할수 있는데...
295 고가와 잔고가 나오는데,
245는 undefined로 나오네요