} // end function /// <summary> /// 주식 체결/미체결 메세지 처리 /// </summary> /// <param name="blsSystemError">시스템 에러</param> /// <param name="nMessageCode">응답코드</param> /// <param name="szMessage">메세지 내용</param> void _IXAQueryEvents.ReceiveMessage(bool blsSystemError, string nMessageCode, string szMessage) { try { if (nMessageCode == "00000") { ; } // 03669 :: 비밀번호 오류입니다. (5회중 4회 남았습니다) else if (nMessageCode == "03669") { Log.WriteLine("t0425 :: " + nMessageCode + " :: " + szMessage); mfTrading.fnAutoTrading(false); } else { //Log.WriteLine("t0425 :: " + nMessageCode + " :: " + szMessage); } } catch (Exception ex) { Log.WriteLine(ex.Message); Log.WriteLine(ex.StackTrace); } } // end function
} // end function /// <summary> /// 현물취소주문 메세지 처리 /// </summary> /// <param name="blsSystemError">시스템 에러</param> /// <param name="nMessageCode">응답코드</param> /// <param name="szMessage">메세지 내용</param> void _IXAQueryEvents.ReceiveMessage(bool blsSystemError, string nMessageCode, string szMessage) { try { if (nMessageCode != "00000") { // 00156 :: 모의투자 취소주문 입력이 완료되었습니다. if (nMessageCode == "00156") { ; } // 01218 :: 모의투자 장종료 상태입니다 else if (nMessageCode == "01218") { mfTrading.fnAutoTrading(false); } else { Log.WriteLine("CSPAT00800 :: " + nMessageCode + " :: " + szMessage); } } } catch (Exception ex) { Log.WriteLine(ex.Message); Log.WriteLine(ex.StackTrace); } } // end function
} // end function /// <summary> /// 메세지 처리 /// </summary> /// <param name="blsSystemError">시스템 에러</param> /// <param name="nMessageCode">응답코드</param> /// <param name="szMessage">메세지 내용</param> void _IXAQueryEvents.ReceiveMessage(bool blsSystemError, string nMessageCode, string szMessage) { try { if (nMessageCode == "00000") { ; } // 00310 :: 모의투자 조회가 완료되었습니다 else if (nMessageCode == "00310") { ; } // 00136 :: 조회가 완료되었습니다 else if (nMessageCode == "00136") { ; } // 00020 :: application program exit[TR:CSPAQ] else if (nMessageCode == "00020") { Log.WriteLine("CSPAQ02200 :: " + nMessageCode + " :: " + szMessage); mfMain.fnRestartProgram(); } // 03669 :: 비밀번호 오류입니다. (5회중 4회 남았습니다) else if (nMessageCode == "03669") { Log.WriteLine("CSPAQ02200 :: " + nMessageCode + " :: " + szMessage); mfTrading.fnAutoTrading(false); } // 01796 :: 비밀번호 연속 오류허용횟수를 초과하였습니다. 콜센터로 문의하시기 바랍니다. else if (nMessageCode == "01796") { Log.WriteLine("CSPAQ02200 :: " + nMessageCode + " :: " + szMessage); mfTrading.fnAutoTrading(false); } else { Log.WriteLine("CSPAQ02200 :: " + nMessageCode + " :: " + szMessage); } } catch (Exception ex) { Log.WriteLine(ex.Message); Log.WriteLine(ex.StackTrace); } } // end function
} // end function /// <summary> /// 데이터 응답 처리 /// </summary> /// <param name="szTrCode">호출된 TrCode</param> void _IXAQueryEvents.ReceiveData(string szTrCode) { try { // 시간 값 세팅 string szDate = mTr.GetFieldData("t0167OutBlock", "dt", 0); string szTimeCur = mTr.GetFieldData("t0167OutBlock", "time", 0); // 타임 값이 정상적으로 존재하면.. if (szTimeCur.Length >= 6) { // PC 시간을 서버 시간으로 변경 if (mTimeCur == 0) { if (setting.program_sync_time_yn) { util_system_time.set_system_time(szDate, szTimeCur); } } mDateCur = Convert.ToDouble(szDate); mTimeCur = Convert.ToDouble(szTimeCur.Substring(0, 6)); // 우측 상단에 서버 시간 표기 mfTrading.Text = String.Format("Trading; {0}[ {1:##:##:##} ]", setting.mxRealJif.mlabel, mTimeCur); // 오후 6시에 자동매매 스탑 if (mTimeCur == 180000) { mfTrading.fnAutoTrading(false); } } // 다시 실행가능하도록 초기화 mStateRun = false; mStateRunCount = 0; } catch (Exception ex) { Log.WriteLine(ex.Message); Log.WriteLine(ex.StackTrace); } } // end function
} // end function /// <summary> /// 장운영 정보 실시간 호출 등록/해지 /// 옵션에 따른 자동거래 시작 /// </summary> /// <param name="flag">장운영 정보 실시간 등록 여부</param> public void call_advise(bool flag) { if (flag) { mReal.SetFieldData("InBlock", "jangubun", "0"); mReal.AdviseRealData(); Log.WriteLine("JIF :: 장 운영정보 실시간 접수 등록"); } else { mReal.UnadviseRealData(); Log.WriteLine("JIF :: 장 운영정보 실시간 접수 해제"); } // HTS -> API 연동 등록 setting.mxRealJif.call_hts_2_api(setting.program_hts_2_api_yn); // 자동거래 시작 mfTrading.fnAutoTrading(setting.login_trading_yn); } // end function