답변완료
스팟 수식문의드립니다.
var JCODE;
var Highest = 0;
var Lowest = 0;
function Main_OnStart()
{
Highest = 0;//highest는 0
Lowest = 0;//lowest는 0
JCODE = Main.GetOrderCode(Chart1.GetCode(1));
Account1.SetBalance(Main.GetOrderCode(Chart1.GetCode(1)), 0);
}
//계좌에 종목이 추가되면
function Main_OnUp*dateAccount(sAccntNum, sItemCode, lUp*dateID)
{
Account1.SetBalanceItem(Main.GetOrderCode(Chart1.GetCode(1)), 0); //선물종목의 잔고객체 생성
if (Account1.Balance.count > 0) //잔고객체가 생성되면
{
Highest = Account1.Balance.avgUnitCost; //Highest는 초기값으로 해당 종목의 평균가 저장
Lowest = Account1.Balance.avgUnitCost; //lowest는 초기값으로 해당 종목의 평균가 저장
JCODE = Main.GetOrderCode(Chart1.GetCode(1));
Account1.SetBalance(Main.GetOrderCode(Chart1.GetCode(1)), 0);
Account1.Refresh()
Main.MessageLog("계좌변동발생"+"최고가"+Highest+"최저가"+Lowest+"현재가"+Account1.Balance.current+"코드"+JCODE);
}
}
//==============================================================================================================
//종목의 시세가 업데이터 되면
function Main_OnUp*dateMarket(sItemCode, lUp*dateID)
{
//Start가 1이 된 상태(선물이 계좌에 신규편입되고 잔고객체생성 완료)에서 선물종목 가격이 변경되면
if (sItemCode == JCODE && lUp*dateID == 20001 && Highest != 0 && Lowest != 0)
{
//현재 시세가 highest보다 크면 highest에 현재 시세 저장(잔고편입이후의 최고가 계산)
if (Account1.Balance.current > Highest)
{
Highest = Account1.Balance.current;
Main.MessageLog("진입이후 최고가 갱신"+Highest);
}
//현재 시세가 lowest보다 작으면 lowest에 현재 시세 저장(잔고편입이후의 최저가 계산)
if (Account1.Balance.current < Lowest)
{
Lowest = Account1.Balance.current;
Main.MessageLog("진입이후 최저가 갱신"+Lowest);
}
}
}
위의 수식 온업데이트 마켓에서
종목객체 Marketdata1을 추가없이 sItemCode == JCODE 라고 넣으면 작동을 안합니다.
종목객체 Marketdata1을 추가하고 sItemCode == Main.GetOrderCode(Chart1.GetCode(1))를 넣으면 실행이 됩니다.
종목객체 Marketdata1를 추가하는거랑 sItemCode == Main.GetOrderCode(Chart1.GetCode(1))는 관계가 없는거 아닌가요?
저는 종목객체 Marketdata1를 추가하지 않고 chart1의 종목을 바꿀때마다 자동으로 바뀌게 사용하고 싶은데 어떻게 표현해야하나요?
2019-10-05
3343
글번호 225029