private void button11_Click(object sender, EventArgs e) { try { String strategyName = textStrategyCommand.Text; String command = textCommand.Text; String detailCommand = textDetailCommand.Text; DialogResult dr = MessageBox.Show(this, String.Format("{0}|{1}|{2}|, right?", strategyName, command, detailCommand), "", MessageBoxButtons.YesNoCancel); if (dr == DialogResult.Yes) { StringPacket sp = new StringPacket(); sp.Encode(Const.COMMAND_HANDLE_STRATEGY_COMMAND); sp.Encode(strategyName); sp.Encode(command); sp.Encode(detailCommand); ScheduleManager.Ins().AddCommand(sp); } } catch (System.Exception ex) { logger.Warn(ex.ToString()); } }
public void EncodeStringPacket(ref StringPacket sp) { int count = GetCount(); sp.Encode(count); foreach (String code in _longPOrders.Keys) { if (_shortPOrders.ContainsKey(code)) { double bidPrice = _longPOrders[code].GetMax(); double askPrice = _shortPOrders[code].GetMin(); Boolean bLegal = true; if (bidPrice >= askPrice) { bLegal = false; } sp.Encode(code); sp.Encode(askPrice); sp.Encode(bidPrice); sp.Encode(bLegal.ToString()); } else { double bidPrice = _longPOrders[code].GetMax(); double askPrice = double.MinValue; Boolean bLegal = true; sp.Encode(code); sp.Encode(askPrice); sp.Encode(bidPrice); sp.Encode(bLegal.ToString()); } } foreach (String code in _shortPOrders.Keys) { if (!_longPOrders.ContainsKey(code)) { double bidPrice = double.MaxValue; double askPrice = _shortPOrders[code].GetMin(); Boolean bLegal = true; sp.Encode(code); sp.Encode(askPrice); sp.Encode(bidPrice); sp.Encode(bLegal.ToString()); } } }
public static void Error(String log) { MLog.Ins().Error(log); // Error라면 무조건 죽인다. 이 편이 속편하다. 작은 기회에 연연하지 말자 AccountManager.Ins().SafetyPinOn(); //Email EmailErrorOut(log); //WebErrorOut(log); if (_dtLastUpdated.AddMilliseconds(500) > DateTime.Now) { _log += String.Format("!!! {0}\r\n", log); return; } else { UpdateDelayedLog_Raw(); } StringPacket packet = new StringPacket(); packet.Encode(log); Object[] pList = { packet, System.EventArgs.Empty }; if (CommandForm.IsReady) { CommandForm.Ins().BeginInvoke(new System.EventHandler(CommandForm.Ins().Error), pList); } }
private void button1_Click(object sender, EventArgs e) { //새로고침 try { StringPacket sp = new StringPacket(); sp.Encode(Const.COMMAND_HANDLE_LEGAL_PRICE_CHECKER); sp.Encode(Const.LOAD_PRODUCTS); ScheduleManager.Ins().AddCommand(sp); } catch (System.Exception ex) { logger.Warn(ex.ToString()); } }
private void button2_Click(object sender, EventArgs e) { //Feed try { StringPacket sp = new StringPacket(); sp.Encode(Const.COMMAND_FEED_RMD); String rmdText = textJsonText.Text; _logs.Add(rmdText); sp.Encode(rmdText); ScheduleManager.Ins().AddCommand(sp); } catch (System.Exception ex) { logger.Warn(ex.ToString()); } }
private void button1_Click(object sender, EventArgs e) { try { // 주문하기 String strategyName = _strategyName; StringPacket sp = new StringPacket(); sp.Encode(Const.COMMAND_HANDLE_STRATEGY_COMMAND); sp.Encode(strategyName); sp.Encode(StrategyCommand.REQUEST_ELW_OOR_ORDERS); ScheduleManager.Ins().AddCommand(sp); } catch (System.Exception ex) { logger.Error(ex.ToString()); Util.KillWithNotice(ex.ToString()); } }
private void button2_Click(object sender, EventArgs e) { //change try { String jsonText = GetJsonText(); if (jsonText.Length == 0) { return; } StringPacket sp = new StringPacket(); sp.Encode(Const.COMMAND_SIM_KRX_POLICY_CHANGE); sp.Encode(jsonText); ScheduleManager.Ins().AddCommand(sp); } catch (System.Exception ex) { logger.Warn(ex.ToString()); } }
public static void GetSweepUnitRow(SweepUnit_OE_WithFuture bes, ref StringPacket sp) { sp.Encode(bes.OT.KOI.Code); sp.Encode(bes.GetSignedContractedCountOfRealOrdersFO()); sp.Encode(bes._State.ToString()); sp.Encode(bes.RealOrders.Count); for (int i = 0; i < bes.RealOrders.Count; ++i) { POrder o = bes.RealOrders[i] as POrder; sp.Encode(o.Code); sp.Encode(o.GetSignedReqCount()); sp.Encode(o.ReqPrice); sp.Encode(o.GetSignedContractedCount()); sp.Encode(o.GetState()); } }
void GiveOverviewDataToUI(StringPacket sp) { String subTarget = sp.Decode(); if (subTarget.CompareTo(StrategyCommand.EDOOR_OVERVIEW) == 0) { EDoor_Overview_DataForUI data = new EDoor_Overview_DataForUI(); // 스케줄러 상태를 구한다. data.IsSchedulerOn = ScheduleManager.Ins().IsStart; // 에이전트 상태를 구한다. data.IsAgentOn = _agent.IsStart(); // Enter, Monitor, Rebalance 각 상태의 수량을 구한다. data.EnterCount = _monitorController.GetStateCount(EDoorEachMonitorEnterState.EnteringState); data.MonitorCount = _monitorController.GetStateCount(EDoorEachMonitorEnterState.MonitorState); data.RebalanceCount = _monitorController.GetStateCount(EDoorEachMonitorEnterState.RebalanceState); // 진행중인 Sweeper, 완료된 Sweeper 수량을 구한다. data.LiveSweeperCount = _sweeperController.GetLiveCount(); data.DoneSweeperCount = _sweeperController.GetDoneCount(); // BlockAfterCancel data.BlockAfterCancel = _monitorController.BlockAfterCancel; // EnterCountState(10 or Max) data.EnterTen = _monitorController.EnterTen; String jsonText = Util.GetJsonText(typeof(EDoor_Overview_DataForUI), data); StringPacket spRet = new StringPacket(); spRet.Encode(StrategyCommand.STR_OVERVIEW); spRet.Encode(StrategyCommand.EDOOR_OVERVIEW); spRet.Encode(jsonText); StrategyUIChannel.Ins().UpdateUI(GetStrategyName(), spRet); } else { logger.Warn("Invalid"); } }
public void AddCommand(String line) { if (line.ToUpper().CompareTo("QUIT") == 0) { ScheduleManager.KillProcess(); } line = line.Trim(); if (line.Length == 0) { return; } line = line.Replace(" ", "|"); StringPacket sp = new StringPacket(); sp.Encode(line); ScheduleManager.Ins().AddCommand(sp); }
public void EncodeStringPacket(ref StringPacket sp) { List<ElwArbSweepUnit> liveEoss = new List<ElwArbSweepUnit>(); foreach (String key in _lives.Keys) { List<ElwArbSweepUnit> arr = _lives[key]; foreach (ElwArbSweepUnit eos in arr) { liveEoss.Add(eos); } } sp.Encode(liveEoss.Count); foreach (ElwArbSweepUnit eos in liveEoss) { eos.EncodeStringPacket(ref sp); } List<ElwArbSweepUnit> doneEoss = new List<ElwArbSweepUnit>(); foreach (String key in _dones.Keys) { List<ElwArbSweepUnit> arr = _dones[key]; foreach (ElwArbSweepUnit eos in arr) { doneEoss.Add(eos); } } sp.Encode(doneEoss.Count); foreach (ElwArbSweepUnit eos in doneEoss) { eos.EncodeStringPacket(ref sp); } }
private void cb3_CheckedChanged(object sender, EventArgs e) { Boolean blockAfterCancel = cb3.Checked; try { String strategyName = this.StrategyName; StringPacket sp = new StringPacket(); sp.Encode(Const.COMMAND_HANDLE_STRATEGY_COMMAND); sp.Encode(strategyName); sp.Encode(StrategyCommand.EDOOR_CHANGE_BLOCK_AFTER_CANCEL); sp.Encode(blockAfterCancel.ToString()); ScheduleManager.Ins().AddCommand(sp); logger.Info("Request Command IN"); } catch (System.Exception ex) { logger.Warn(ex.ToString()); } RequestOverviewPacketToStrategy(StrategyCommand.EDOOR_OVERVIEW); }
void listBox1_MouseDoubleClick(object sender, MouseEventArgs e) { if (listBox1.SelectedItems.Count > 0) { String strategyName = listBox1.SelectedItems[0] as String; textStrategyCommand.Text = strategyName; { StringPacket sp = new StringPacket(); sp.Encode(Const.COMMAND_GET_STRATEGY_INPUT); sp.Encode(strategyName); ScheduleManager.Ins().AddCommand(sp); } { StringPacket sp = new StringPacket(); sp.Encode(Const.COMMAND_GET_STRATEGY_OUTPUT); sp.Encode(strategyName); ScheduleManager.Ins().AddCommand(sp); } } }
private void button6_Click(object sender, EventArgs e) { try { // 퇴출 String strategyName = textStrategyCommand.Text; if (strategyName.Length == 0) { logger.Warn("Check input"); return; } DialogResult dr = MessageBox.Show(this, "전략을 종료하겠습니까?", "", MessageBoxButtons.YesNoCancel); if (dr == DialogResult.Yes) { StringPacket sp = new StringPacket(); sp.Encode(Const.COMMAND_HANDLE_STRATEGY_COMMAND); sp.Encode(strategyName); sp.Encode(StrategyCommand.FINISH); ScheduleManager.Ins().AddCommand(sp); } } catch (System.Exception ex) { logger.Warn(ex.ToString()); } }
void RefreshSweeper() { try { String strategyName = this._strategyName; StringPacket sp = new StringPacket(); sp.Encode(Const.COMMAND_HANDLE_STRATEGY_COMMAND); sp.Encode(strategyName); sp.Encode(StrategyCommand.DOOR_REFRESH_SWEEPER); ScheduleManager.Ins().AddCommand(sp); logger.Info("Request Command IN"); } catch (System.Exception ex) { logger.Warn(ex.ToString()); } }
public void EncodeStringPacket(ref StringPacket sp) { sp.Encode(_KospiOptionInfo.Code); // 1. LiveEOS를 Encoding // 2. DoneEOS를 Encoding sp.Encode(_lives.Count); foreach (ElwArbSweepUnit eos in _lives) { eos.EncodeStringPacket(ref sp); } sp.Encode(_dones.Count); foreach (ElwArbSweepUnit eos in _dones) { eos.EncodeStringPacket(ref sp); } // 3. RLiveEOS를 Encoding // 4. RDoneEOS를 Encoding _eaer.EncodeStringPacket(ref sp); }
void GiveSweeperInfoToUI() { try { Door_Sweeper_DataForUI data = _sweeperController.GetSweeperData(); String jsonText = Util.GetJsonText(typeof(Door_Sweeper_DataForUI), data); StringPacket spRet = new StringPacket(); spRet.Encode(StrategyCommand.STR_OVERVIEW); spRet.Encode(StrategyCommand.DOOR_REFRESH_SWEEPER); spRet.Encode(jsonText); StrategyUIChannel.Ins().UpdateUI(GetStrategyName(), spRet); } catch (System.Exception ex) { logger.Error(ex.ToString()); Util.KillWithNotice(ex.ToString()); } }
void LoadProducts() { // 새로고침 try { StringPacket sp = new StringPacket(); sp.Encode(Const.COMMAND_HANDLE_ADMIN_COMMAND); sp.Encode(Const.LOAD_PRODUCTS); ScheduleManager.Ins().AddCommand(sp); } catch (System.Exception ex) { logger.Warn(ex.ToString()); } }
private void button3_Click(object sender, EventArgs e) { //과거 스위퍼 정리 try { String strategyName = this._strategyName; StringPacket sp = new StringPacket(); sp.Encode(Const.COMMAND_HANDLE_STRATEGY_COMMAND); sp.Encode(strategyName); sp.Encode(StrategyCommand.DOOR_REMOVE_OLD_ROUND_SWEEPER); ScheduleManager.Ins().AddCommand(sp); logger.Info("Request Command IN"); } catch (System.Exception ex) { logger.Error(ex.ToString()); Util.KillWithNotice(ex.ToString()); } }
private void button5_Click(object sender, EventArgs e) { try { StringPacket sp = new StringPacket(); sp.Encode(Const.COMMAND_HANDLE_ADMIN_COMMAND); sp.Encode(Const.SYSTEM_ADMIN_FUTURE_MODIFIED_ON); ScheduleManager.Ins().AddCommand(sp); logger.Info("선물On 했습니다."); } catch (System.Exception ex) { logger.Warn(ex.ToString()); } }
private void button6_Click(object sender, EventArgs e) { // cancel signal try { String strategyName = this._strategyName; StringPacket sp = new StringPacket(); sp.Encode(Const.COMMAND_HANDLE_STRATEGY_COMMAND); sp.Encode(strategyName); sp.Encode(StrategyCommand.DOOR_CANCEL_SIGNAL); ScheduleManager.Ins().AddCommand(sp); logger.Info("Request Command IN"); } catch (System.Exception ex) { logger.Warn(ex.ToString()); } }
void UpdateMinOrderCountFlag() { //주문수량 조절(10개 or 최대한) try { Boolean minCountEnter = radioButton1.Checked; String strategyName = this._strategyName; StringPacket sp = new StringPacket(); sp.Encode(Const.COMMAND_HANDLE_STRATEGY_COMMAND); sp.Encode(strategyName); sp.Encode(StrategyCommand.DOOR_CHANGE_MIN_ENTER_COUNT); sp.Encode(minCountEnter.ToString()); ScheduleManager.Ins().AddCommand(sp); logger.Info("Request Command IN"); } catch (System.Exception ex) { logger.Error(ex.ToString()); Util.KillWithNotice(ex.ToString()); } }
void RequestChangeEnterTen() { //주문수량 조절(10개 or 최대한) try { Boolean enterTen = radioButton1.Checked; String strategyName = this.StrategyName; StringPacket sp = new StringPacket(); sp.Encode(Const.COMMAND_HANDLE_STRATEGY_COMMAND); sp.Encode(strategyName); sp.Encode(StrategyCommand.EDOOR_CHANGE_ENTER_TEN); sp.Encode(enterTen.ToString()); ScheduleManager.Ins().AddCommand(sp); logger.Info("Request Command IN"); } catch (System.Exception ex) { logger.Warn(ex.ToString()); } }
void GiveOverviewDataToUI(StringPacket sp) { String subTarget = sp.Decode(); if (subTarget.CompareTo(StrategyCommand.DOOR_OVERVIEW) == 0) { Door_Overview_DataForUI data = new Door_Overview_DataForUI(); data.IsSchedulerOn = ScheduleManager.Ins().IsStart; data.IsAgentOn = _agent.IsStart(); data.MonitorState = _monitorController.GetStateString(); data.SweeperCount = _sweeperController.GetLiveCount(); data.OutOrderCount = GetOutOrderCount(); data.EnterAfterCancel = _monitorController.EnterAfterCancel; data.EnterMinCount = _monitorController.EnterMinCount; String jsonText = Util.GetJsonText(typeof(Door_Overview_DataForUI), data); StringPacket spRet = new StringPacket(); spRet.Encode(StrategyCommand.STR_OVERVIEW); spRet.Encode(StrategyCommand.DOOR_OVERVIEW); spRet.Encode(jsonText); StrategyUIChannel.Ins().UpdateUI(GetStrategyName(), spRet); } else { logger.Warn("Invalid"); } }
void RequestOverviewPacketToStrategy(String subTarget) { try { String strategyName = this.StrategyName; StringPacket sp = new StringPacket(); sp.Encode(Const.COMMAND_HANDLE_STRATEGY_COMMAND); sp.Encode(strategyName); sp.Encode(StrategyCommand.STR_OVERVIEW); sp.Encode(subTarget); ScheduleManager.Ins().AddCommand(sp); logger.Info("Request Command IN"); } catch (System.Exception ex) { logger.Warn(ex.ToString()); } }
public void EncodeStringPacket(ref StringPacket sp) { sp.Encode(CurID); sp.Encode(OptionOrderGoal.Code); sp.Encode(ElwOrderGoal.Code); sp.Encode(_state.ToString()); sp.Encode(GetSignedEnteredOptionCount()); sp.Encode(GetSignedEnteredElwCount()); sp.Encode(0); // pnl 사용 안함 sp.Encode(GetSignedBookValue()); sp.Encode(GetExposureOptionBase_Double()); }
public StringPacket GetContractPacket(String 체결상태) { StringPacket packet = new StringPacket(); //0. DT Real packet.Encode(1); // 1 //1. 주문번호 packet.Encode(_orderNumber); //2. 주문처리유형 packet.Encode(체결상태); // 체결상태 //3. 계좌번호 packet.Encode(_pOrder.TargetAccount.AccountName); //4. 종목코드 packet.Encode(_pOrder.Code); //5. 현물잔고유형코드 packet.Encode(""); //6. 대출상세분류코드 packet.Encode(""); //7. 대출일 packet.Encode(""); //8. 매매구분 if (_pOrder.LongShort == TradingDirection.Long) { packet.Encode(2); } else { packet.Encode(1); } //9. 호가구분 packet.Encode("00"); //10, 정정취소가능수량 packet.Encode(_pOrder.ReqCount - CurTotalContractedCount); //11. 주문가격 packet.Encode(_pOrder.ReqPrice); //12. 주문수량 packet.Encode(_pOrder.ReqCount); //13. 전체체결수량 packet.Encode(CurTotalContractedCount); //14. 원주문번호 packet.Encode(0); //15. 원주문미체결수량 packet.Encode(0); //16. 원주문정정취소수량 packet.Encode(0); //17. 종목코드1 packet.Encode(""); //18. 매매구분1 packet.Encode(""); //19. 미결제수량1 packet.Encode(""); //20. 청산가능수량1 packet.Encode(""); //21. 종목코드2 packet.Encode(""); //22. 매매구분2 packet.Encode(""); //23. 미결제수량2 packet.Encode(""); //24. 청산가능수량2 packet.Encode(""); //25. 매입금액1 packet.Encode(""); //26. 매입금액2 packet.Encode(""); //27. 매매손익 packet.Encode(""); //28. 전체매매손익 packet.Encode(""); //29. 거래단위 packet.Encode(""); //30. 시간 packet.Encode(""); //31. 전략코드 packet.Encode(""); //32. 그룹ID packet.Encode(""); //33. 주문회차 packet.Encode(""); //34. 정상,정정,취소 packet.Encode("0"); //35. 체결가격 packet.Encode(""); //36. 체결수량 packet.Encode(""); //37. 평균단가 packet.Encode(_pOrder.ReqPrice); //38. 원주문회차번호 //39. 접속분류코드 //40. 통신매체코드 //41. 종목명 //42. 계좌명 //43. 비밀번호 //44. 신용거래코드 return packet; }
private void button14_Click(object sender, EventArgs e) { try { String strategyName = textStrategyCommand.Text; StringPacket sp = new StringPacket(); sp.Encode(Const.COMMAND_HANDLE_STRATEGY_COMMAND); sp.Encode(strategyName); sp.Encode(StrategyCommand.PAY_OFF); ScheduleManager.Ins().AddCommand(sp); } catch (System.Exception ex) { logger.Warn(ex.ToString()); } }
void UpdateModifiedList() { ArrayList codes = new ArrayList(); foreach (TreeNode tn in treeView1.Nodes) { if (tn.Checked) { codes.Add(tn.Text.Substring(0, 8)); } foreach (TreeNode tn2 in tn.Nodes) { if (tn2.Checked) { codes.Add(tn2.Text.Substring(0, 7)); } } } StringPacket sp = new StringPacket(); sp.Encode(Const.COMMAND_HANDLE_ADMIN_COMMAND); sp.Encode(Const.SYSTEM_ADMIN_UPDATE_MODIFIED_LIST); sp.Encode(codes.Count); foreach (String code in codes) { sp.Encode(code); } ScheduleManager.Ins().AddCommand(sp); }
private void button8_Click(object sender, EventArgs e) { // 기존 주문 취소 try { long id = Convert.ToInt64(textSelectedSweeperID.Text); String strategyName = this._strategyName; StringPacket sp = new StringPacket(); sp.Encode(Const.COMMAND_HANDLE_STRATEGY_COMMAND); sp.Encode(strategyName); sp.Encode(StrategyCommand.DOOR_CANCEL_ORDERS); sp.Encode("" + id); ScheduleManager.Ins().AddCommand(sp); logger.Info("Request Command IN"); } catch (System.Exception ex) { logger.Error(ex.ToString()); Util.KillWithNotice(ex.ToString()); } }