// 콜백 함수 내에서 사용되어야 함 internal static IList <T> GetMultiData <T>(this AxKHOpenAPI api) where T : EntityBase { var tAttri = typeof(T).GetCustomAttribute <TransactionAttribute>(true); var properties = typeof(T).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetProperty); var cnt = api.GetRepeatCnt(tAttri.TRCode, tAttri.Name); var datacnt = api.GetDataCount(tAttri.Name); var list = new List <T>(); for (int i = 0; i < cnt; i++) { Console.WriteLine("### Loop = " + i); var entity = Activator.CreateInstance <T>(); foreach (var property in properties) { var cAttri = property.GetCustomAttribute <OutputAttribute>(true); if (cAttri == null) { continue; } var result = api.CommGetData(tAttri.TRCode, "", tAttri.Name, i, cAttri.Name).Trim(); property.SetValue(entity, result); Console.WriteLine("{0},{1},{2},{3} : {4}", i, tAttri.TRCode, tAttri.Name, cAttri.Name, result); } list.Add(entity); } return(list); }
// 콜백 함수 내에서 사용되어야 함 internal static TOut GetSingleData <TOut>(this AxKHOpenAPI api, TOut instance = null) where TOut : EntityBase { if (instance == null) { instance = Activator.CreateInstance <TOut>(); } var type = instance.GetType(); var tAttri = type.GetCustomAttribute <TransactionAttribute>(true); foreach (var property in instance.GetOutputProperties()) { //var name = property.GetName<OutputAttribute>(); //if (string.IsNullOrEmpty(name)) if (string.IsNullOrEmpty(property.Name)) { continue; } //var result = api.CommGetData(tAttri.TRCode, "", tAttri.Name, 0, property.Name).Trim(); var result = api.GetCommData(tAttri.TRCode, tAttri.Name + "요청", 0, property.Name.TrimStart('D')).Trim(); //Console.WriteLine("[tAttri.TRCode]=" + tAttri.TRCode); //Console.WriteLine("[tAttri.Name]=" + tAttri.Name+"요청"); Console.WriteLine(property.Name + " => " + result); //axKHOpenAPI1.SetInputValue("종목코드", obj.itemCode); property.SetValue(instance, result); } return(instance); }
public void Init(AxKHOpenAPI axKHOpenAPI, Form1 form) { this.axKHOpenAPI1 = axKHOpenAPI; this.form1 = form; this.axKHOpenAPI1.OnReceiveChejanData += API_OnReceiveChejanData; this.axKHOpenAPI1.OnReceiveRealData += API_OnReceiveRealData; }
public ConditionEventHandler(object sender, AxKHOpenAPI axKHOpenAPI1) { this.axKHOpenAPI1 = axKHOpenAPI1; this.opt10001EventHandler = new Opt10001EventHandler(sender, this.axKHOpenAPI1); initialize(); }
public static void StartSession(AxKHOpenAPI API = null, _DKHOpenAPIEvents_OnEventConnectEventHandler connect_event = null) { if (API != null) { api = API; } else { api = new AxKHOpenAPI(); api.BeginInit(); api.Enabled = true; byte[] bytes = Convert.FromBase64String(@"AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACFTeXN0ZW0uV2luZG93cy5Gb3Jtcy5BeEhvc3QrU3RhdGUBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAJQAAAAIBAAAAAQAAAAAAAAAAAAAAABAAAAACAAEAVgoAACsFAAAAAAAACw=="); using (MemoryStream ms = new MemoryStream(bytes, 0, bytes.Length)) { ms.Write(bytes, 0, bytes.Length); ms.Position = 0; api.OcxState = (AxHost.State)(new BinaryFormatter().Deserialize(ms)); } api.OnEventConnect += new _DKHOpenAPIEvents_OnEventConnectEventHandler((s, e) => { Initialized = true; UserId = api.GetLoginInfo("USER_ID"); UserName = api.GetLoginInfo("USER_NAME"); ServerGubun = api.GetLoginInfo("GetServerGubun"); Account.AccountList = api.GetLoginInfo("ACCLIST").Split(';'); Stock.StockInfo = api.GetCodeListByMarket(null).Split(';').Select(x => (x, api.GetMasterCodeName(x))).ToList(); }); if (connect_event != null) { api.OnEventConnect += connect_event; } dummy.Controls.Add(api); api.EndInit(); } api.CommConnect(); }
public void SetAxKHOpenAPI(AxKHOpenAPI axKHOpenAPI) { this.axKHOpenAPI = axKHOpenAPI; axKHOpenAPI.OnEventConnect += AxKHOpenAPI_OnEventConnect; axKHOpenAPI.OnReceiveTrData += axKHOpenAPI_OnReceiveTrData; //axKHOpenAPI.OnReceiveRealData += axKHOpenAPI_OnReceiveRealData; }
public Opt10001EventHandler(object sender, AxKHOpenAPI axKHOpenAPI1) { this.axKHOpenAPI1 = axKHOpenAPI1; this.axKHOpenAPI1.OnReceiveTrData += axKHOpenAPI1_OnReceiveTrData; db = new MariaDB(); googleSheet = new GoogleSheet(); }
public void SetAPI(AxKHOpenAPI axAPI) { AxAPI = axAPI; axAPI.OnEventConnect += OnEventConnect; axAPI.OnReceiveTrData += OnReceiveTrData; axAPI.OnReceiveRealData += OnReceiveRealData; axAPI.OnReceiveMsg += OnReceiveMsg; }
internal static Connect GetInstance(AxKHOpenAPI axAPI, StreamWriter writer) { if (API == null && axAPI.CommConnect() == 0) { API = new Connect(axAPI, writer); } return(API); }
Connect(AxKHOpenAPI axAPI) { this.axAPI = axAPI; request = Delay.GetInstance(0xCD); request.Run(); Chapter = new 장시작시간 { API = axAPI }; }
internal static int GetCount <T>(this AxKHOpenAPI api) where T : EntityBase { var tAttri = typeof(T).GetCustomAttribute <TransactionAttribute>(true); Console.WriteLine("[tAttri.TRCode]" + tAttri.TRCode); Console.WriteLine("[tAttri.Name]" + tAttri.Name); var cnt = api.GetRepeatCnt(tAttri.TRCode, tAttri.Name); Console.WriteLine("[cnt]" + cnt); var datacnt = api.GetDataCount(tAttri.Name); return(datacnt); }
public override void ReceivedData(AxKHOpenAPI axKHOpenAPI, _DKHOpenAPIEvents_OnReceiveChejanDataEvent e) { FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 구분 : 잔고통보"); //FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 주문/기록시간=>" + axKHOpenAPI.GetChejanData(908)); //시간이 없음 FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 계좌번호=>" + axKHOpenAPI.GetChejanData(9201)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 종목코드, 업종코드=>" + axKHOpenAPI.GetChejanData(9001)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 현재가, 체결가, 실시간종가=>" + axKHOpenAPI.GetChejanData(10)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 보유수량=>" + axKHOpenAPI.GetChejanData(930)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 매입단가=>" + axKHOpenAPI.GetChejanData(931)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 총매입가=>" + axKHOpenAPI.GetChejanData(932)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 주문가능수량=>" + axKHOpenAPI.GetChejanData(933)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 당일순매수량=>" + axKHOpenAPI.GetChejanData(945)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 매도 / 매수구분=>" + axKHOpenAPI.GetChejanData(946)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 당일 총 매도 손익=>" + axKHOpenAPI.GetChejanData(950)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 예수금=>" + axKHOpenAPI.GetChejanData(951)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData (최우선)매도호가=>" + axKHOpenAPI.GetChejanData(27)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData (최우선)매수호가=>" + axKHOpenAPI.GetChejanData(28)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 기준가=>" + axKHOpenAPI.GetChejanData(307)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 손익율=>" + axKHOpenAPI.GetChejanData(8019)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 주식옵션거래단위=>" + axKHOpenAPI.GetChejanData(397)); Balance_Data balance_Data = new Balance_Data(); String dayTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); balance_Data.기록시간 = dayTime; //[0] balance_Data.계좌번호 = axKHOpenAPI.GetChejanData(9201).ToString().Trim(); //[1] balance_Data.종목코드 = axKHOpenAPI.GetChejanData(9001).ToString().Trim(); //[2] balance_Data.현재가 = int.Parse(axKHOpenAPI.GetChejanData(10).ToString().Trim()); //[3] balance_Data.보유수량 = int.Parse(axKHOpenAPI.GetChejanData(930).ToString().Trim()); //[4] balance_Data.매입단가 = int.Parse(axKHOpenAPI.GetChejanData(931).ToString().Trim()); //[5] balance_Data.총매입가 = int.Parse(axKHOpenAPI.GetChejanData(932).ToString().Trim()); //[6] balance_Data.주문가능수량 = int.Parse(axKHOpenAPI.GetChejanData(933).ToString().Trim()); //[7] balance_Data.당일순매수량 = int.Parse(axKHOpenAPI.GetChejanData(945).ToString().Trim()); //[8] balance_Data.매도수구분 = int.Parse(axKHOpenAPI.GetChejanData(946).ToString().Trim()); //[9] balance_Data.당일총매도손익 = int.Parse(axKHOpenAPI.GetChejanData(950).ToString().Trim()); //[10] balance_Data.예수금 = int.Parse(axKHOpenAPI.GetChejanData(951).ToString().Trim()); //[11] balance_Data.매도호가 = int.Parse(axKHOpenAPI.GetChejanData(27).ToString().Trim()); //[12] balance_Data.매수호가 = int.Parse(axKHOpenAPI.GetChejanData(28).ToString().Trim()); //[13] balance_Data.기준가 = int.Parse(axKHOpenAPI.GetChejanData(307).ToString().Trim()); //[14] balance_Data.손익율 = float.Parse(axKHOpenAPI.GetChejanData(8019).ToString().Trim()); //[15] balance_Data.주식옵션거래단위 = axKHOpenAPI.GetChejanData(397).ToString().Trim(); //[16] SendDirectFile(balance_Data); SendDirectDb(balance_Data); }
// 콜백 함수 내에서 사용되어야 함 // 수신된 데이터를 가지고 보유종목에 업데이트를 해주면 된다 //T는 Real_주식체결 Entity이다 internal static T GetRealData <T>(this AxKHOpenAPI api, T instance) where T : EntityRealBase { //Console.WriteLine("GetRealData 진입"); foreach (var property in instance.GetFIDProperties()) { //Console.WriteLine("GetRealData : " + property.Name); var fid = property.GetName <FIDAttribute>(); if (string.IsNullOrEmpty(fid)) { continue; } var result = APIContext.API.GetCommRealData(instance.Code, int.Parse(fid)); property.SetValue(instance, result); } return(instance); }
public static void Init(AxKHOpenAPI api) { _api = api; _api.OnEventConnect += AxKHOpenAPI1_OnEventConnect; _api.OnReceiveTrData += AxKHOpenAPI1_OnReceiveTrData; _api.OnReceiveRealData += AxKHOpenAPI1_OnReceiveRealData; _api.OnReceiveMsg += AxKHOpenAPI1_OnReceiveMsg; _api.OnReceiveChejanData += AxKHOpenAPI1_OnReceiveChejanData; _api.CommConnect(); _timer.Tick += Timer_Tick; _timer.Interval = 200; _timer.Start(); _beginTime = Time(); }
private KiwoomApi() { this.openApi = new AxKHOpenAPI(); ((System.ComponentModel.ISupportInitialize)(this.openApi)).BeginInit(); this.SuspendLayout(); this.initEvent(); this.Controls.Add(this.openApi); ((System.ComponentModel.ISupportInitialize)(this.openApi)).EndInit(); this.ResumeLayout(false); holdings = new BindingList <Holding>(); orders = new List <Order>(); conditionStocks = new List <ConditionStock>(); stocks = new List <Stock>(); }
private void InitializeComponent() { this.axApi = new AxKHOpenAPI(); ((System.ComponentModel.ISupportInitialize)(this.axApi)).BeginInit(); this.SuspendLayout(); // // axApi // this.axApi.Dock = DockStyle.Fill; this.axApi.Enabled = true; this.axApi /*axKHOpenAPI1*/.Location = new System.Drawing.Point(0, 0); this.axApi.Name = "axApi"; this.axApi.Size = new System.Drawing.Size(150, 150); this.axApi.TabIndex = 0; this.Controls.Add(this.axApi); this.Name = "ApiWrapper"; ((System.ComponentModel.ISupportInitialize)(this.axApi)).EndInit(); this.ResumeLayout(false); }
public static void start(AxKHOpenAPI gateway) { m_log = log4net.LogManager.GetLogger("ProgramControl"); m_gateway = gateway; m_server = new HttpServer(SystemInfo.PORT, DirectExecutionCommands.router); m_serverThrd = new Thread(new ThreadStart(m_server.Listen)); if (PlanManager.loadPlans()) { PlanManager.runPlans(); m_serverThrd.Start(); } else { //Info log //exit m_log.Error("계획을 로드하는데 실패함."); systemShutdown(); } }
internal static int RequestData <T>(this AxKHOpenAPI api, T inputInstance, Type outputInstance, string screenNo) where T : EntityBase { Console.WriteLine("진입"); var attri = outputInstance.GetCustomAttribute <TransactionAttribute>(); Console.WriteLine("[Attri]" + attri.TRCode + " " + attri.TypeId); foreach (var property in inputInstance.GetInputProperties()) { ///var id = property.GetName<InputAttribute>(); //원본 ///APIContext.API.SetInputValue(id, value); //원본 var value = property.GetValue(inputInstance)?.ToString(); APIContext.API.SetInputValue(property.Name, value); Console.WriteLine("[SetInputValue:" + property.Name + "]=" + value); //axKHOpenAPI1.SetInputValue("종목코드", obj.itemCode); } //return APIContext.API.CommRqData(attri.Name, attri.TRCode, 0, screenNo); //원본 //return APIContext.API.CommRqData("주식기본정보요청", attri.TRCode, 0, screenNo); return(APIContext.API.CommRqData(attri.Name + "요청", attri.TRCode, 0, screenNo)); }
Connect(AxKHOpenAPI axAPI, StreamWriter server) { TR = new HashSet <TR>(); this.axAPI = axAPI; request = Delay.GetInstance(0xC9); request.Run(); Real = new HashSet <Real> { new 주식체결 { API = axAPI, Server = server }, new 주식호가잔량 { API = axAPI, Server = server }, new 주식시세 { API = axAPI, Server = server }, new 주식우선호가 { API = axAPI, Server = server }, new 장시작시간 { API = axAPI, Server = server }, new 물시세 { API = axAPI, Server = server }, new 물옵션우선호가 { API = axAPI, Server = server }, new 물호가잔량 { API = axAPI, Server = server }, new 옵션시세 { API = axAPI, Server = server }, new 옵션호가잔량 { API = axAPI, Server = server } }; Chejan = new Dictionary <string, Chejan>() { { ((int)ChejanType.주문체결).ToString("D1"), new 주문체결 { API = axAPI } }, { ((int)ChejanType.잔고).ToString("D1"), new 잔고 { API = axAPI } }, { ((int)ChejanType.생잔고).ToString("D1"), new 생잔고 { API = axAPI } } }; }
public KiwoomApi(AxKHOpenAPI openApi) { this.openApi = openApi; this.initEvent(); }
public KiwoomApi() { openApi = new AxKHOpenAPI(); this.initEvent(); }
public override void ReceivedData(AxKHOpenAPI axKHOpenAPI, _DKHOpenAPIEvents_OnReceiveChejanDataEvent e) { /*주문체결 * 9201 계좌번호 * 9203 주문번호 * 9205 관리자사번 * 9001 종목코드, 업종코드 * 912 주문업무분류(JJ: 주식주문, FJ: 선물옵션, JG: 주식잔고, FG: 선물옵션잔고) * 913 주문상태(10:원주문, 11:정정주문, 12:취소주문, 20:주문확인, 21:정정확인, 22:취소확인, 90 - 92:주문거부) * 302 종목명 * 900 주문수량 * 901 주문가격 * 902 미체결수량 * 903 체결누계금액 * 904 원주문번호 * 905 주문구분(+현금내수, -현금매도…) * 906 매매구분(보통, 시장가…) * 907 매도수구분(1:매도, 2:매수) * 908 주문 / 체결시간(HHMMSSMS) * 909 체결번호 * 910 체결가 * 911 체결량 * 10 현재가, 체결가, 실시간종가 * 27(최우선)매도호가 * 28(최우선)매수호가 * 914 단위체결가 * 915 단위체결량 * 938 당일매매 수수료 * 939 당일매매세금 */ FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 구분 : 주문접수--통보"); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 주문/체결시간=>" + axKHOpenAPI.GetChejanData(908)); //[0] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 계좌번호=>" + axKHOpenAPI.GetChejanData(9201)); //[1] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 주문번호=>" + axKHOpenAPI.GetChejanData(9203)); //[2] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 관리자사번=>" + axKHOpenAPI.GetChejanData(9205)); //[3] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 종목코드, 업종코드=>" + axKHOpenAPI.GetChejanData(9001)); //[4] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 주문업무분류=>" + axKHOpenAPI.GetChejanData(912)); //[5] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 주문상태=>" + axKHOpenAPI.GetChejanData(913)); //[6] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 종목명=>" + axKHOpenAPI.GetChejanData(302)); //[7] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 주문수량=>" + axKHOpenAPI.GetChejanData(900)); //[8] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 주문가격=>" + axKHOpenAPI.GetChejanData(901)); //[9] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 미체결수량=>" + axKHOpenAPI.GetChejanData(902)); //[10] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 체결누계금액=>" + axKHOpenAPI.GetChejanData(903)); //[11] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 원주문번호=>" + axKHOpenAPI.GetChejanData(904)); //[12] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 주문구분(+현금내수, -현금매도…)=>" + axKHOpenAPI.GetChejanData(905)); //[13] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 매매구분(보통, 시장가…)=>" + axKHOpenAPI.GetChejanData(906)); //[14] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 매도수구분(1:매도, 2:매수)" + axKHOpenAPI.GetChejanData(907)); //[15] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 체결번호" + axKHOpenAPI.GetChejanData(909)); //[16] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 체결가=>" + axKHOpenAPI.GetChejanData(910)); //[17] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 체결량=>" + axKHOpenAPI.GetChejanData(911)); //[18] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 현재가, 체결가, 실시간종가=>" + axKHOpenAPI.GetChejanData(10)); //[19] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData (최우선)매도호가=>" + axKHOpenAPI.GetChejanData(27)); //[20] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData (최우선)매수호가=>" + axKHOpenAPI.GetChejanData(28)); //[21] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 단위체결가=>" + axKHOpenAPI.GetChejanData(914)); //[22] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 단위체결량=>" + axKHOpenAPI.GetChejanData(915)); //[23] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 당일매매 수수료=>" + axKHOpenAPI.GetChejanData(938)); //[24] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 당일매매세금=>" + axKHOpenAPI.GetChejanData(939)); //[25] /*카페 정보아래는 확인이 필요*/ FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 화면번호=>" + axKHOpenAPI.GetChejanData(920)); //[26] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 터미널번호=>" + axKHOpenAPI.GetChejanData(921)); //[27] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 신용구분=>" + axKHOpenAPI.GetChejanData(922)); //[28] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 대출일=>" + axKHOpenAPI.GetChejanData(923)); //[29] Order_Data order_Data = new Order_Data(); String 현재일자 = DateTime.Now.ToString("yyyy-MM-dd"); String 체결시간TMP = axKHOpenAPI.GetChejanData(908).ToString().Trim(); //[0] //체결시간이 6자리이므로 HHMMSS ==> HH:MM:SS로 바꿔야한다. String 체결시간 = 체결시간TMP.Substring(0, 2) + ":" + 체결시간TMP.Substring(2, 2) + ":" + 체결시간TMP.Substring(4, 2); 체결시간 = 현재일자 + " " + 체결시간; order_Data.체결시간 = 체결시간; order_Data.계좌번호 = axKHOpenAPI.GetChejanData(9201).ToString().Trim(); //[1] order_Data.주문번호 = axKHOpenAPI.GetChejanData(9203).ToString().Trim(); //[2] order_Data.관리자사번 = axKHOpenAPI.GetChejanData(9205).ToString().Trim(); //[3] order_Data.종목코드 = axKHOpenAPI.GetChejanData(9001).ToString().Trim(); //[4] order_Data.주문업무분류 = axKHOpenAPI.GetChejanData(912).ToString().Trim(); //[5] order_Data.주문상태 = axKHOpenAPI.GetChejanData(913).ToString().Trim(); //[6] order_Data.종목명 = axKHOpenAPI.GetChejanData(302).ToString().Trim(); //[7] order_Data.주문수량 = int.Parse(axKHOpenAPI.GetChejanData(900).ToString().Trim()); //[8] order_Data.주문가격 = int.Parse(axKHOpenAPI.GetChejanData(901).ToString().Trim()); //[9] order_Data.미체결수량 = int.Parse(axKHOpenAPI.GetChejanData(902).ToString().Trim()); //[10] order_Data.체결누계금액 = int.Parse(axKHOpenAPI.GetChejanData(903).ToString().Trim()); //[11] order_Data.원주문번호 = axKHOpenAPI.GetChejanData(904).ToString().Trim(); //[12] order_Data.주문구분 = axKHOpenAPI.GetChejanData(905).ToString().Trim(); //[13] order_Data.매매구분 = axKHOpenAPI.GetChejanData(906).ToString().Trim(); //[14] order_Data.매도수구분 = int.Parse(axKHOpenAPI.GetChejanData(907).ToString().Trim()); //[15] order_Data.체결번호 = axKHOpenAPI.GetChejanData(909).ToString().Trim(); //[16] String str체결가 = axKHOpenAPI.GetChejanData(910).ToString().Trim(); //[17] order_Data.체결가 = 0; if (!str체결가.Equals("")) { order_Data.체결가 = int.Parse(str체결가); } String str체결량 = axKHOpenAPI.GetChejanData(911).ToString().Trim();//[18] order_Data.체결량 = 0; if (!str체결량.Equals("")) { order_Data.체결량 = int.Parse(str체결량); } order_Data.현재가 = int.Parse(axKHOpenAPI.GetChejanData(10).ToString().Trim()); //[19] order_Data.매도호가 = int.Parse(axKHOpenAPI.GetChejanData(27).ToString().Trim()); //[20] order_Data.매수호가 = int.Parse(axKHOpenAPI.GetChejanData(28).ToString().Trim()); //[21] String str단위체결가 = axKHOpenAPI.GetChejanData(914).ToString().Trim(); //[22] order_Data.단위체결가 = 0; if (!str단위체결가.Equals("")) { order_Data.단위체결가 = int.Parse(str단위체결가); } String str단위체결량 = axKHOpenAPI.GetChejanData(915).ToString().Trim(); //[23] order_Data.단위체결량 = 0; if (!str단위체결량.Equals("")) { order_Data.단위체결량 = int.Parse(str단위체결량); } order_Data.당일매매수수료 = int.Parse(axKHOpenAPI.GetChejanData(938).ToString().Trim()); //[24] order_Data.당일매매세금 = int.Parse(axKHOpenAPI.GetChejanData(939).ToString().Trim()); //[25] SendDirectFile(order_Data); SendDirectDb(order_Data); }
public ContractionInfoWrapper(AxKHOpenAPI gateway, int[] fids, int infotype) { m_gateway = gateway; m_fids = fids; m_infotype = infotype; }
public KiwoomOpenApiService(){ axKHOpenAPI = class2.getAxKHOpenAPIInstance(); }
public void SetOpenAPI(AxKHOpenAPI _axKHOpenAPI) { this.axKHOpenAPI = _axKHOpenAPI; this.axKHOpenAPI.OnReceiveRealData += AxKHOpenAPI_OnReceiveRealData; }
public override void ReceivedData(AxKHOpenAPI axKHOpenAPI, _DKHOpenAPIEvents_OnReceiveChejanDataEvent e) { /*주문체결 9201 계좌번호 9203 주문번호 9205 관리자사번 9001 종목코드, 업종코드 912 주문업무분류(JJ: 주식주문, FJ: 선물옵션, JG: 주식잔고, FG: 선물옵션잔고) 913 주문상태(10:원주문, 11:정정주문, 12:취소주문, 20:주문확인, 21:정정확인, 22:취소확인, 90 - 92:주문거부) 302 종목명 900 주문수량 901 주문가격 902 미체결수량 903 체결누계금액 904 원주문번호 905 주문구분(+현금내수, -현금매도…) 906 매매구분(보통, 시장가…) 907 매도수구분(1:매도, 2:매수) 908 주문 / 체결시간(HHMMSSMS) 909 체결번호 910 체결가 911 체결량 10 현재가, 체결가, 실시간종가 27(최우선)매도호가 28(최우선)매수호가 914 단위체결가 915 단위체결량 938 당일매매 수수료 939 당일매매세금 */ FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 구분 : 주문접수--통보"); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 주문/체결시간=>" + axKHOpenAPI.GetChejanData(908)); //[0] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 계좌번호=>" + axKHOpenAPI.GetChejanData(9201)); //[1] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 주문번호=>" + axKHOpenAPI.GetChejanData(9203)); //[2] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 관리자사번=>" + axKHOpenAPI.GetChejanData(9205)); //[3] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 종목코드, 업종코드=>" + axKHOpenAPI.GetChejanData(9001)); //[4] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 주문업무분류=>" + axKHOpenAPI.GetChejanData(912)); //[5] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 주문상태=>" + axKHOpenAPI.GetChejanData(913)); //[6] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 종목명=>" + axKHOpenAPI.GetChejanData(302)); //[7] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 주문수량=>" + axKHOpenAPI.GetChejanData(900)); //[8] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 주문가격=>" + axKHOpenAPI.GetChejanData(901)); //[9] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 미체결수량=>" + axKHOpenAPI.GetChejanData(902)); //[10] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 체결누계금액=>" + axKHOpenAPI.GetChejanData(903)); //[11] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 원주문번호=>" + axKHOpenAPI.GetChejanData(904)); //[12] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 주문구분(+현금내수, -현금매도…)=>" + axKHOpenAPI.GetChejanData(905)); //[13] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 매매구분(보통, 시장가…)=>" + axKHOpenAPI.GetChejanData(906)); //[14] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 매도수구분(1:매도, 2:매수)" + axKHOpenAPI.GetChejanData(907)); //[15] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 체결번호" + axKHOpenAPI.GetChejanData(909)); //[16] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 체결가=>" + axKHOpenAPI.GetChejanData(910)); //[17] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 체결량=>" + axKHOpenAPI.GetChejanData(911)); //[18] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 현재가, 체결가, 실시간종가=>" + axKHOpenAPI.GetChejanData(10)); //[19] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData (최우선)매도호가=>" + axKHOpenAPI.GetChejanData(27)); //[20] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData (최우선)매수호가=>" + axKHOpenAPI.GetChejanData(28)); //[21] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 단위체결가=>" + axKHOpenAPI.GetChejanData(914)); //[22] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 단위체결량=>" + axKHOpenAPI.GetChejanData(915)); //[23] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 당일매매 수수료=>" + axKHOpenAPI.GetChejanData(938)); //[24] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 당일매매세금=>" + axKHOpenAPI.GetChejanData(939)); //[25] /*카페 정보아래는 확인이 필요*/ FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 화면번호=>" + axKHOpenAPI.GetChejanData(920)); //[26] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 터미널번호=>" + axKHOpenAPI.GetChejanData(921)); //[27] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 신용구분=>" + axKHOpenAPI.GetChejanData(922)); //[28] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 대출일=>" + axKHOpenAPI.GetChejanData(923)); //[29] Order_Data order_Data = new Order_Data(); String 현재일자 = DateTime.Now.ToString("yyyy-MM-dd"); String 체결시간TMP = axKHOpenAPI.GetChejanData(908).ToString().Trim(); //[0] //체결시간이 6자리이므로 HHMMSS ==> HH:MM:SS로 바꿔야한다. String 체결시간 = 체결시간TMP.Substring(0, 2) + ":" + 체결시간TMP.Substring(2, 2) + ":" + 체결시간TMP.Substring(4, 2); 체결시간 = 현재일자 + " " + 체결시간; order_Data.체결시간 = 체결시간; order_Data.계좌번호 = axKHOpenAPI.GetChejanData(9201).ToString().Trim(); //[1] order_Data.주문번호 = axKHOpenAPI.GetChejanData(9203).ToString().Trim(); //[2] order_Data.관리자사번 = axKHOpenAPI.GetChejanData(9205).ToString().Trim(); //[3] order_Data.종목코드 = axKHOpenAPI.GetChejanData(9001).ToString().Trim(); //[4] order_Data.주문업무분류 = axKHOpenAPI.GetChejanData(912).ToString().Trim(); //[5] order_Data.주문상태 = axKHOpenAPI.GetChejanData(913).ToString().Trim(); //[6] order_Data.종목명 = axKHOpenAPI.GetChejanData(302).ToString().Trim(); //[7] order_Data.주문수량 = int.Parse(axKHOpenAPI.GetChejanData(900).ToString().Trim()); //[8] order_Data.주문가격 = int.Parse(axKHOpenAPI.GetChejanData(901).ToString().Trim()); //[9] order_Data.미체결수량 = int.Parse(axKHOpenAPI.GetChejanData(902).ToString().Trim()); //[10] order_Data.체결누계금액 = int.Parse(axKHOpenAPI.GetChejanData(903).ToString().Trim()); //[11] order_Data.원주문번호 = axKHOpenAPI.GetChejanData(904).ToString().Trim(); //[12] order_Data.주문구분 = axKHOpenAPI.GetChejanData(905).ToString().Trim(); //[13] order_Data.매매구분 = axKHOpenAPI.GetChejanData(906).ToString().Trim(); //[14] order_Data.매도수구분 = int.Parse(axKHOpenAPI.GetChejanData(907).ToString().Trim()); //[15] order_Data.체결번호 = axKHOpenAPI.GetChejanData(909).ToString().Trim(); //[16] order_Data.체결가 = int.Parse(axKHOpenAPI.GetChejanData(910).ToString().Trim()); //[17] order_Data.체결량 = int.Parse(axKHOpenAPI.GetChejanData(911).ToString().Trim()); //[18] order_Data.현재가 = int.Parse(axKHOpenAPI.GetChejanData(10).ToString().Trim()); //[19] order_Data.매도호가 = int.Parse(axKHOpenAPI.GetChejanData(27).ToString().Trim()); //[20] order_Data.매수호가 = int.Parse(axKHOpenAPI.GetChejanData(28).ToString().Trim()); //[21] order_Data.단위체결가 = int.Parse(axKHOpenAPI.GetChejanData(914).ToString().Trim()); //[22] order_Data.단위체결량 = int.Parse(axKHOpenAPI.GetChejanData(915).ToString().Trim()); //[23] order_Data.당일매매수수료 = int.Parse(axKHOpenAPI.GetChejanData(938).ToString().Trim()); //[24] order_Data.당일매매세금 = int.Parse(axKHOpenAPI.GetChejanData(939).ToString().Trim()); //[25] SendDirectFile(order_Data); SendDirectDb(order_Data); }
public AccountEventHandler(object sender, AxKHOpenAPI axKHOpenAPI1) { this.axKHOpenAPI1 = axKHOpenAPI1; }
internal static Connect GetInstance(AxKHOpenAPI axAPI) { if (API == null && axAPI.CommConnect() == 0) { API = new Connect(axAPI); HoldingStock = new Dictionary <string, Holding>(); TR = new HashSet <TR>() { new KOA_CREATE_FO_ORD { API = axAPI }, new KOA_NORMAL_FO_CANCEL { API = axAPI }, new KOA_NORMAL_FO_MOD { API = axAPI }, new KOA_NORMAL_SELL_KP_ORD { API = axAPI }, new KOA_NORMAL_SELL_KQ_ORD { API = axAPI }, new KOA_NORMAL_BUY_KP_ORD { API = axAPI }, new KOA_NORMAL_BUY_KQ_ORD { API = axAPI } }; Real = new HashSet <Real>() { new 주식체결 { API = axAPI }, new 주식호가잔량 { API = axAPI }, new 주식시세 { API = axAPI }, new 주식우선호가 { API = axAPI }, Chapter, new 물시세 { API = axAPI }, new 물옵션우선호가 { API = axAPI }, new 물호가잔량 { API = axAPI }, new 옵션시세 { API = axAPI }, new 옵션호가잔량 { API = axAPI } }; Chejan = new Dictionary <string, Chejan>() { { ((int)ChejanType.주문체결).ToString(), new 주문체결 { API = axAPI } }, { ((int)ChejanType.잔고).ToString(), new 잔고 { API = axAPI } }, { ((int)ChejanType.생잔고).ToString(), new 생잔고 { API = axAPI } } }; } return(API); }
public API() { Kium = new AxKHOpenAPI(); ((System.ComponentModel.ISupportInitialize)(this.Kium)).BeginInit(); }
public void setAxKHOpenAPIInstance(AxKHOpenAPI axKHOpenAPI) { this.axKHOpenAPI = axKHOpenAPI; }
public override void ReceivedData(AxKHOpenAPI axKHOpenAPI, _DKHOpenAPIEvents_OnReceiveChejanDataEvent e) { FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 구분 : 잔고통보"); //FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 주문/기록시간=>" + axKHOpenAPI.GetChejanData(908)); //시간이 없음 FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 계좌번호=>" + axKHOpenAPI.GetChejanData(9201)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 종목코드, 업종코드=>" + axKHOpenAPI.GetChejanData(9001)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 현재가, 체결가, 실시간종가=>" + axKHOpenAPI.GetChejanData(10)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 신용구분=>" + axKHOpenAPI.GetChejanData(917)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 대출일=>" + axKHOpenAPI.GetChejanData(916)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 보유수량=>" + axKHOpenAPI.GetChejanData(930)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 매입단가=>" + axKHOpenAPI.GetChejanData(931)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 총매입가=>" + axKHOpenAPI.GetChejanData(932)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 주문가능수량=>" + axKHOpenAPI.GetChejanData(933)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 당일순매수량=>" + axKHOpenAPI.GetChejanData(945)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 매도 / 매수구분=>" + axKHOpenAPI.GetChejanData(946)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 당일 총 매도 손익=>" + axKHOpenAPI.GetChejanData(950)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 예수금=>" + axKHOpenAPI.GetChejanData(951)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData (최우선)매도호가=>" + axKHOpenAPI.GetChejanData(27)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData (최우선)매수호가=>" + axKHOpenAPI.GetChejanData(28)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 기준가=>" + axKHOpenAPI.GetChejanData(307)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 손익율=>" + axKHOpenAPI.GetChejanData(8019)); /*추가-살아있다.*/ FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 신용금액=>" + axKHOpenAPI.GetChejanData(957)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 신용이자=>" + axKHOpenAPI.GetChejanData(958)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 만기일=>" + axKHOpenAPI.GetChejanData(918)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 당일실현손익(유가)=>" + axKHOpenAPI.GetChejanData(990)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 당일실현손익률(유가) =>" + axKHOpenAPI.GetChejanData(991)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 당일실현손익(신용) =>" + axKHOpenAPI.GetChejanData(992)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 당일실현손익률(신용) =>" + axKHOpenAPI.GetChejanData(993)); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 담보대출수량 =>" + axKHOpenAPI.GetChejanData(959)); TB_CHEJAN_BALANCE balance_Data = new TB_CHEJAN_BALANCE(); String dayTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); balance_Data.acct_num = axKHOpenAPI.GetChejanData(9201).ToString().Trim(); //[1] balance_Data.stock_cd = axKHOpenAPI.GetChejanData(9001).ToString().Trim(); //[2] balance_Data.curr_amt = int.Parse(axKHOpenAPI.GetChejanData(10).ToString().Trim()); //[3] balance_Data.loan_dt = axKHOpenAPI.GetChejanData(916).ToString().Trim(); //[3] balance_Data.credit_gubun = axKHOpenAPI.GetChejanData(917).ToString().Trim(); //[3] balance_Data.possession_qty = int.Parse(axKHOpenAPI.GetChejanData(930).ToString().Trim()); //[4] balance_Data.purchase_amt = int.Parse(axKHOpenAPI.GetChejanData(931).ToString().Trim()); //[5] balance_Data.tot_purchase_amt = int.Parse(axKHOpenAPI.GetChejanData(932).ToString().Trim()); //[6] balance_Data.order_possible_qty = int.Parse(axKHOpenAPI.GetChejanData(933).ToString().Trim()); //[7] balance_Data.today_net_buy_qty = int.Parse(axKHOpenAPI.GetChejanData(945).ToString().Trim()); //[8] balance_Data.order_type = int.Parse(axKHOpenAPI.GetChejanData(946).ToString().Trim()); //[9] balance_Data.today_sell_profit_loss = int.Parse(axKHOpenAPI.GetChejanData(950).ToString().Trim()); //[10] balance_Data.deposit = int.Parse(axKHOpenAPI.GetChejanData(951).ToString().Trim()); //[11] balance_Data.offered_amt = int.Parse(axKHOpenAPI.GetChejanData(27).ToString().Trim()); //[12] balance_Data.bid_amt = int.Parse(axKHOpenAPI.GetChejanData(28).ToString().Trim()); //[13] balance_Data.yesterday_amt = int.Parse(axKHOpenAPI.GetChejanData(307).ToString().Trim()); //[14] balance_Data.profit_loss_rt = float.Parse(axKHOpenAPI.GetChejanData(8019).ToString().Trim()); //[15] balance_Data.profit_loss_rt = float.Parse(axKHOpenAPI.GetChejanData(8019).ToString().Trim()); //[15] balance_Data.credit_gubun = axKHOpenAPI.GetChejanData(917); //[15] balance_Data.loan_dt = axKHOpenAPI.GetChejanData(916); //[15] balance_Data.loan_qty = int.Parse(axKHOpenAPI.GetChejanData(959)); //[15] balance_Data.credit_amt = int.Parse(axKHOpenAPI.GetChejanData(957)); //[15] balance_Data.credit_interest = float.Parse(axKHOpenAPI.GetChejanData(958)); //[15] balance_Data.expiry_dt = axKHOpenAPI.GetChejanData(918); //[15] balance_Data.today_profit_loss_amt = int.Parse(axKHOpenAPI.GetChejanData(990)); //[15] balance_Data.today_profit_loss_rt = float.Parse(axKHOpenAPI.GetChejanData(991)); //[15] balance_Data.credit_today_profit_loss_amt = int.Parse(axKHOpenAPI.GetChejanData(992)); //[15] balance_Data.credit_today_profit_loss_rt = float.Parse(axKHOpenAPI.GetChejanData(993)); //[15] ChejanData chejanData = new ChejanData(); chejanData.insertChejanBalance(balance_Data); }
public TrInfoWrapper(AxKHOpenAPI gateway, string trcode, string reqName) { m_gateway = gateway; m_trcode = trcode; m_reqName = reqName; }