using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace AutoSeller { class CybosHelper { CPUTILLib.CpCybos m_CPCybos = new CPUTILLib.CpCybos(); CPFORETRADELib.CpForeTdUtil m_CPUtil = new CPFORETRADELib.CpForeTdUtil(); DSCBO1Lib.CpConclusion m_CpConclusion = new DSCBO1Lib.CpConclusion(); bool m_bInitialized = false; public CybosHelper() { short iResult = m_CPUtil.TradeInit(); switch(iResult) { case -1: Util.Log(Util.LOG_TYPE.ERROR, "[TradeInit] 오류"); break; case 0: m_bInitialized = true; Util.Log(Util.LOG_TYPE.VERVOSE, "[TradeInit] 로그인 되었습니다"); break; case 1: Util.Log(Util.LOG_TYPE.ERROR, "[TradeInit] 업무 키 입력 잘못됨"); break; case 2: Util.Log(Util.LOG_TYPE.ERROR, "[TradeInit] 계좌 비밀번호가 잘못되었습니다"); break; case 3: Util.Log(Util.LOG_TYPE.ERROR, "[TradeInit] 취소되었습니다"); break; } string strAccount = m_CPUtil.AccountNumber[0]; m_CpConclusion.Received += CpConclusion_Received; m_CpConclusion.Subscribe(); } public string[] GetAccounts() { return m_CPUtil.AccountNumber; } private void CpConclusion_Received() { string strCodeName = m_CpConclusion.GetHeaderValue(2); int iCount = m_CpConclusion.GetHeaderValue(3); int iPrice = m_CpConclusion.GetHeaderValue(4); string strBuyOrSell = m_CpConclusion.GetHeaderValue(12); string strType = m_CpConclusion.GetHeaderValue(14); string strCancel = m_CpConclusion.GetHeaderValue(16); int iBookValue = m_CpConclusion.GetHeaderValue(21); } public int GetLimitRemainCountTrade() { return m_CPCybos.GetLimitRemainCount(CPUTILLib.LIMIT_TYPE.LT_TRADE_REQUEST); } public int GetLimitRemainCountRQ() { return m_CPCybos.GetLimitRemainCount(CPUTILLib.LIMIT_TYPE.LT_NONTRADE_REQUEST); } public int GetLimitRemainCountSB() { return m_CPCybos.GetLimitRemainCount(CPUTILLib.LIMIT_TYPE.LT_SUBSCRIBE); } public bool IsConnected() { return (m_CPCybos.IsConnect==1); } } }