public async Task <BinanceOrder> BinancePostOrdersAsync(BinanceOrder order) { BinanceOrder binanceOrder = null; try { ProcessLogBroadcast?.Invoke(MessageType.General, $"[Binance] Post Order Information."); ServerTime serverTime = await UpdateTimeServerAsync(); Request request = new Request(_connectionAdapter.Authentication.EndpointUrl, "POST", $"/api/v3/order?"); if (order.OrderType == OrderType.Market) { request.RequestQuery = $"timestamp={serverTime.ServerTimeLong}&symbol={order.Symbol.ToUpper()}" + $"&side={order.OrderSide.ToString().ToUpper()}" + $"&type={order.OrderType.ToString().ToUpper()}&quantity={order.OrderSize}"; } else { request.RequestQuery = $"timestamp={serverTime.ServerTimeLong}&symbol={order.Symbol.ToUpper()}" + $"&side={order.OrderSide.ToString().ToUpper()}&type={order.OrderType.ToString().ToUpper()}" + $"&quantity={order.OrderSize}&price={ order.LimitPrice}&timeInForce=GTC"; } string json = await _connectionAdapter.RequestAsync(request); binanceOrder = JsonSerializer.Deserialize <BinanceOrder>(json); ProcessLogBroadcast?.Invoke(MessageType.JsonOutput, $"UpdateAccountsAsync JSON:\r\n{json}"); } catch (Exception e) { ProcessLogBroadcast?.Invoke(MessageType.Error, $"Method: BinancePostOrdersAsync\r\nException Stack Trace: {e.StackTrace}"); } return(binanceOrder); }
public async Task <BinanceOrder> BinanceCancelOrdersAsync(BinanceOrder binanceOrder) { try { ProcessLogBroadcast?.Invoke(MessageType.General, $"Cancelling order."); ServerTime serverTime = await UpdateTimeServerAsync(); Request request = new Request(_connectionAdapter.Authentication.EndpointUrl, "DELETE", $"/api/v3/order?") { RequestQuery = $"symbol={binanceOrder.Symbol}&orderId={binanceOrder.ID}×tamp={serverTime.ServerTimeLong}" }; string json = await _connectionAdapter.RequestAsync(request); if (!string.IsNullOrEmpty(json)) { binanceOrder = JsonSerializer.Deserialize <BinanceOrder>(json); } ProcessLogBroadcast?.Invoke(MessageType.JsonOutput, $"BinanceCancelOrdersAsync JSON:\r\n{json}"); } catch (Exception e) { ProcessLogBroadcast?.Invoke(MessageType.Error, $"Method: BinanceCancelOrdersAsync\r\nException Stack Trace: {e.StackTrace}"); } return(binanceOrder); }
public static long NowTicks() { float num = 0f; ServerTime value = ServerTimes.Value; return(DateTime.UtcNow.Ticks + value.localOffset + (long)(1E+07f * num)); }
/// <summary> /// 系统初始化 /// </summary> private void Init() { #region 查询返修信息 DateTime dtBegin, dtEnd; ServerTime.GetMonthlyBalance(ServerTime.Time, out dtBegin, out dtEnd); dateTimePickerET.Value = dtBegin.AddDays(1).Date; RefreshDataGridViewOfRepairInfo(); #endregion string[] productType = null; if (!m_productInfoServer.GetAllProductType(out productType, out error)) { MessageDialog.ShowErrorMessage(error); return; } List <string> lstProductType = productType.ToList(); lstProductType.RemoveAll(p => p.Contains(" FX")); cmbOldCVTType.Items.Clear(); cmbNewCVTType.Items.Clear(); cmbOldCVTType.Items.AddRange(lstProductType.ToArray()); cmbNewCVTType.Items.AddRange(lstProductType.ToArray()); cmbOldCVTType.SelectedIndex = 0; cmbNewCVTType.SelectedIndex = 0; }
private bool IsEndOfWeek() { var isEow = ServerTime.DayOfWeek == DayOfWeek.Friday && ServerTime.ToUniversalTime().Hour > 20 || (!TradeOnBOW && IsBeginningOfWeek()); if(isEow) Log = new Exception(new { isEow } + ""); return isEow; }
public void CanConvertDateTimeFromServerTimeZoneToStandardUserTimeZone() { var service = new ServerTime(); var serverDateTimeBeforeSaving = new DateTime(2014, 02, 22, 13, 24, 00); var parsedTimeBeforeSaving = service.ConvertServerTimeToStandardUserTime(serverDateTimeBeforeSaving); Assert.AreEqual(14, parsedTimeBeforeSaving.Hour); Assert.AreEqual(24, parsedTimeBeforeSaving.Minute); var serverDateTimeInSaving = new DateTime(2014, 09, 22, 13, 24, 00); var parsedTimeInSaving = service.ConvertServerTimeToStandardUserTime(serverDateTimeInSaving); Assert.AreEqual(15, parsedTimeInSaving.Hour); Assert.AreEqual(24, parsedTimeInSaving.Minute); var serverDateTimeAfterSaving = new DateTime(2014, 12, 22, 13, 24, 00); var parsedTimeAfterSaving = service.ConvertServerTimeToStandardUserTime(serverDateTimeAfterSaving); Assert.AreEqual(14, parsedTimeAfterSaving.Hour); Assert.AreEqual(24, parsedTimeAfterSaving.Minute); var serverDateTimeBreakingPOint = new DateTime(2013, 10, 01, 10, 24, 00); var parsedTimeBreakingPOint = service.ConvertServerTimeToStandardUserTime(serverDateTimeBreakingPOint); Assert.AreEqual(12, parsedTimeBreakingPOint.Hour); Assert.AreEqual(24, parsedTimeBreakingPOint.Minute); }
private void StrategyShortPut() => UseAccountManager(am => { var puts = OpenPuts().ToList(); var distanceOk = (from curPut in CurrentPut from openPut in puts.OrderBy(p => p.contract.Strike).Take(1).ToList() let strikeAvg = curPut.strikeAvg let openPutPrice = openPut.price.Abs() let openPutStrike = openPut.contract.Strike where curPut.option.LastTradeDateOrContractMonth == openPut.contract.LastTradeDateOrContractMonth && strikeAvg + openPutPrice > openPutStrike select true ).IsEmpty(); var hasOptions = puts.Count + am.UseOrderContracts(OrderContracts => (from put in CurrentPut join oc in OrderContracts.Where(o => !o.isDone & o.order.Action == "SELL") on put.instrument equals oc.contract.Instrument select true )).Concat().Count(); var hasSellOrdes = am.UseOrderContracts(OrderContracts => (from oc in OrderContracts.Where(o => !o.isDone && o.contract.IsPut && !o.contract.IsCombo && o.order.Action == "SELL") select true )).Concat().Count(); if(distanceOk && hasOptions < TradeCountMax) { TradeConditionsEval() .DistinctUntilChanged(td => td) .Where(td => td.HasUp()) .Take(1) .ForEach(_ => { var pos = -puts.Select(p => p.position.Abs()).DefaultIfEmpty(TradingRatio.ToInt()).Max(); CurrentPut?.ForEach(p => { Log = new Exception($"{nameof(TradeConditionsTrigger)}:{nameof(am.OpenTrade)}:{new { p.option, pos, Thread.CurrentThread.ManagedThreadId }}"); am.OpenTrade(p.option, pos, p.ask, 0.2, true, ServerTime.AddMinutes(5)); }); }); } });
public void UpdateStatus(int id, int status, String repairer, String comment) { SqlCommand cmd; cmd = cnn.CreateCommand(); if (status == 3) { cmd.CommandText = "UPDATE [PTR].[dbo].[FailRecord] SET [status] = @stt,[TimeResume]=@now, [Repairer]=@repairer,[Comment]=@comment WHERE [RecordId] = @id"; cmd.Parameters.AddWithValue("@now", ServerTime.current()); cmd.Parameters.AddWithValue("@id", id); cmd.Parameters.AddWithValue("@stt", status); cmd.Parameters.AddWithValue("@repairer", repairer); cmd.Parameters.AddWithValue("@comment", comment); cmd.ExecuteNonQuery(); cmd = cnn.CreateCommand(); cmd.CommandText = "UPDATE [PTR].[dbo].[FailRecord] SET [Duration] = DATEDIFF(MINUTE,[TimeStop],[TimeResume]) WHERE [RecordId] = @id"; cmd.Parameters.AddWithValue("@id", id); cmd.ExecuteNonQuery(); } else { cmd.CommandText = "UPDATE [PTR].[dbo].[FailRecord] SET [status] = @stt, [Repairer]=@repairer WHERE [RecordId] = @id"; cmd.Parameters.AddWithValue("@id", id); cmd.Parameters.AddWithValue("@stt", status); cmd.Parameters.AddWithValue("@repairer", repairer); cmd.ExecuteNonQuery(); } }
public void CanConvertToServerTimeZoneFromStandardUser() { var service = new ServerTime(); var dateToConvertBeforeSaving = new DateTime(2014, 02, 22, 15, 24, 00); var parsedTimeBeforeSaving = service.ConvertUserStandardTimeToServerTime(dateToConvertBeforeSaving); Assert.AreEqual(14, parsedTimeBeforeSaving.Hour); Assert.AreEqual(24, parsedTimeBeforeSaving.Minute); var dateToConvertInSaving = new DateTime(2014, 09, 22, 15, 24, 00); var parsedTimeInSaving = service.ConvertUserStandardTimeToServerTime(dateToConvertInSaving); Assert.AreEqual(13, parsedTimeInSaving.Hour); Assert.AreEqual(24, parsedTimeInSaving.Minute); var dateToConvertAfterSaving = new DateTime(2014, 12, 22, 15, 24, 00); var parsedTimeAfterSaving = service.ConvertUserStandardTimeToServerTime(dateToConvertAfterSaving); Assert.AreEqual(14, parsedTimeAfterSaving.Hour); Assert.AreEqual(24, parsedTimeAfterSaving.Minute); var dateToConvertBreakingPOint = new DateTime(2013, 10, 01, 10, 24, 00); var parsedTimeBreakingPOint = service.ConvertUserStandardTimeToServerTime(dateToConvertBreakingPOint); Assert.AreEqual(8, parsedTimeBreakingPOint.Hour); Assert.AreEqual(24, parsedTimeBreakingPOint.Minute); }
// Update is called once per frame void Update() { if (!Channel.GetNetwork().IsClient()) { DateTime now = new DateTime(); now = DateTime.Now; TimeSpan duration = now - last_clientupdate; if (duration > TimeSpan.FromMilliseconds(100)) { float time = Time.time; last_clientupdate = now; network_data.move_player m = new network_data.move_player(); IDictionaryEnumerator i = Channel.FirstEntity(); while (i.MoveNext()) { GameObject g = (GameObject)i.Value; m.set((int)i.Key, Channel.GetChannel()); m.position = ((GameObject)i.Value).transform.localPosition; m.velocity = ((GameObject)i.Value).GetComponent <ship>().GetVelocity(); m.rotation = ((GameObject)i.Value).transform.localRotation; m.time = time; byte[] data1 = network_utils.nData.Instance.SerializeMsg <network_data.move_player>(m); foreach (KeyValuePair <int, GameObject> gg in ShipList) { gg.Value.GetComponent <channel>().SendToChannel(ref data1); } } } } ServerTime.Update(Time.deltaTime); }
private void btnDelete_Click(object sender, EventArgs e) { try { string strDateNy = ServerTime.GetMonthlyString(Convert.ToDateTime(dgv_Main.CurrentRow.Cells["Date"].Value)); string strNowNy = ServerTime.GetMonthlyString(ServerTime.Time); if (strDateNy != strNowNy) { MessageDialog.ShowPromptMessage("不能跨月删除发票"); return; } if (MessageBox.Show("您是否确定要删除发票号为【" + dgv_Main.CurrentRow.Cells["InvoiceCode"].Value.ToString() + "】的发票?", "消息", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { if (m_findVoice.DeleteInvoiceInfo(dgv_Main.CurrentRow.Cells["InvoiceCode"].Value.ToString(), out m_err)) { MessageBox.Show("删除成功!", "提示"); } else { MessageBox.Show("删除失败 " + m_err, "提示"); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } dgv_Main.DataSource = GetProviderName(m_findVoice.GetInvoiceInfo(dtp_Start.Value, dtp_End.Value)); dgv_Mx.DataSource = null; }
public async Task <List <BinanceFill> > UpdateBinanceFillsAsync(Product product) { try { ProcessLogBroadcast?.Invoke(MessageType.General, $"Updating Fills Information."); ServerTime serverTime = await UpdateTimeServerAsync(); Request request = new Request(_connectionAdapter.Authentication.EndpointUrl, "GET", $"/api/v3/myTrades?") { RequestQuery = $"symbol={product.ID}&recvWindow=5000×tamp={serverTime.ServerTimeLong}&limit=10" }; string json = await _connectionAdapter.RequestAsync(request); if (!string.IsNullOrEmpty(json)) { BinanceFill = JsonSerializer.Deserialize <List <BinanceFill> >(json); } ProcessLogBroadcast?.Invoke(MessageType.JsonOutput, $"UpdateAccountsAsync JSON:\r\n{json}"); } catch (Exception e) { ProcessLogBroadcast?.Invoke(MessageType.Error, $"Method: UpdateFillsAsync\r\nException Stack Trace: {e.StackTrace}"); } return(BinanceFill); }
private IEnumerator TickTime() { while (true) { ServerTime.Update(Time.deltaTime); yield return(new WaitForEndOfFrame()); } }
private void CmdMovePlayer(GameObject ply, int t) { if (ServerTime.CheckSynchronization(t) && base.GetComponent <CharacterClassManager>().curClass == 3 && Vector3.Distance(base.GetComponent <PlyMovementSync>().position, ply.transform.position) < 3f) { base.GetComponent <PlayerStats>().HurtPlayer(new PlayerStats.HitInfo(40f, "SCP:106", "SCP:106"), ply); this.CallRpcMovePlayer(ply); } }
private void btnOK_Click(object sender, EventArgs e) { //if (ServerTime.Time.Day >= 25 && dtpBeginDate.Value.Month < ServerTime.Time.Month) //{ // MessageDialog.ShowPromptMessage("每月25号之后不允许对上个月的考勤再做统计!"); // return; //} if (MessageBox.Show("节假日、异常登记等所有信息是否都已经处理完成?", "消息", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { DataTable dtResult = m_dayBookServer.GetDayBookViewByDate(dtpBeginDate.Value.ToString(), dtpEndDate.Value.ToString()); try { for (int j = 0; j < dtResult.Rows.Count; j++) //循环在职需要考勤的员工 { string workID = dtResult.Rows[j]["员工编号"].ToString(); HR_AttendanceSetting attendanceSet = m_attendanceSchemeServer.GetAttendanceSettingByWorkID(workID); string[] schemeCode = attendanceSet.SchemeCode.Split(' '); string mode = m_attendanceSchemeServer.GetAttendanceSchemeByCode(schemeCode[0]).AttendanceMode; DateTime starTime, endTime; starTime = dtpBeginDate.Value; endTime = dtpEndDate.Value; if (mode.Contains("非自然")) { ServerTime.GetMonthlyBalance(dtpBeginDate.Value, out starTime, out endTime); endTime = endTime.AddDays(-1); } if (!m_attendanceServer.AddAttendanceSummary(workID, starTime, endTime, out m_error)) { MessageDialog.ShowPromptMessage(m_error); return; } } if (!m_attendanceServer.AddAttendanceSummaryByAllowOverTime(out m_error)) { MessageDialog.ShowPromptMessage(m_error); return; } MessageDialog.ShowPromptMessage("人员考勤统计已经完成"); } catch (Exception) { throw; } } else { return; } }
private void btnSelect_Click(object sender, EventArgs e) { DateTime startTime = ServerTime.StartTime(dtpStart.Value); DateTime endTime = ServerTime.EndTime(dtpEnd.Value); DataTable tempTable = m_serverDeliveryInSpection.SelectFinalInspectionList(startTime, endTime); customDataGridView1.DataSource = tempTable; }
public override void Log(LogWriter logWriter, DBInputOutput.DBWriter dbWriter = null, int assetid = -1) { DateTime dTime = ServerTime.GetRealTime(); if (dbWriter != null) { dbWriter.InsertOrderLog(dTime, OrderId, "CancelFailed", 0, "", assetid); } logWriter.WriteLine(dTime.ToString(DateTimeFormat) + " | Order cancel failed. OrderId: " + OrderId); }
public override void Log(LogWriter logWriter, DBInputOutput.DBWriter dbWriter = null, int assetid = -1) { DateTime dTime = ServerTime.GetRealTime(); if (dbWriter != null) { dbWriter.InsertOrderLog(dTime, OrderId, "Failed", Cookie, Reason, assetid); } logWriter.WriteLine(dTime.ToString(DateTimeFormat) + " | Order failed. Cookie: {0}; OrderId: {1}; Reason: {2}", Cookie, OrderId, Reason); }
public string Serialize() { PacketContainer cont = new PacketContainer() { type = (int)type, data = data, created = ServerTime.GetCurrentUnixTimestampMillis() }; return(JsonConvert.SerializeObject(cont)); }
void ScanRatesLengthByM1Wave(Func <TradingMacro, WaveRange> wave) { if (BarPeriod != BarsPeriodType.t1) { throw new Exception("ScanRatesLengthByM1Wave is only supported for BarsPeriodType." + BarsPeriodType.t1); } TradingMacroM1(wave) .Select(wr => ServerTime.AddMinutes(-wr.TotalMinutes)) .SelectMany(date => UseRatesInternal(rates => rates.SkipWhile(r => r.StartDate < date).Count())) .ForEach(count => BarsCountCalc = count.Max(BarsCount)); }
public static void Get() { if (time == null) { Debug.Log("Script not attached to anything"); GameObject obj = new GameObject("TimeHolder"); localInstance = obj.AddComponent <ServerTime>(); Debug.Log("Automatically Attached Script to a GameObject"); } time.StartCoroutine(time.ServerRequest()); }
private void Awake() { if (localInstance != null && localInstance != this) { Destroy(this.gameObject); } else { localInstance = this; } }
public override void Log(LogWriter logWriter, DBInputOutput.DBWriter dbWriter = null, int assetid = -1) { DateTime dTime = ServerTime.GetRealTime(); if (dbWriter != null) { dbWriter.InsertPosition(dTime, Symbol, assetid, Amount, Planned, AvgPrice); } logWriter.WriteLine(dTime.ToString(DateTimeFormat) + " | Update position. Symbol: {0}; Amount: {1}; Planned: {2}", Symbol, Amount, Planned); }
private void HandleInformTimer(object sender, ElapsedEventArgs e) { //dbWriter.InsertGeneral("Listening", "Listener"); dbWriter.InsertSts(ServerTime.GetRealTime(), "Listener", "Listening"); if (IsEndOfWork()) { //dbWriter.InsertGeneral("Work Ended", "Listener"); dbWriter.InsertSts(Stocks.ServerTime.GetRealTime(), "Listener", "Work Ended"); DisconnectStockServer(); Environment.Exit(0); } }
public void ThrowsExceptionIfCurrentUserDoesNotHaveAccess() { var contactRepository = new LocalRepository <Contact>(); var userRepository = new LocalRepository <InsideUser>(); var emailSender = new Mock <IEmailSender>(); var serverTime = new ServerTime(); var client = new Client(); client.Name = "Kund"; client.Id = 8; var client2 = new Client(); client2.Name = "Kund 2"; client2.Id = 18; var contact = new Contact(); contact.LeadType = "Chat"; contact.Id = 14; contact.Date = new DateTime(2014, 6, 13, 14, 22, 9); contact.Client = client; contact.ClientId = 8; var currentUser = new InsideUser(); currentUser.Email = "*****@*****.**"; currentUser.Name = "Linus Lind"; currentUser.Id = "currentUserId"; currentUser.Client = client2; currentUser.ClientId = 18; contactRepository.Add(contact); userRepository.Add(currentUser); var controller = new SocialController( contactRepository, userRepository, emailSender.Object, serverTime); GenericIdentity genericIdentity = new GenericIdentity("user"); genericIdentity.AddClaim(new Claim(ClaimTypes.NameIdentifier, "currentUserId")); controller.User = new ClaimsPrincipal( new GenericPrincipal(genericIdentity, null)); var results = controller.SendContact(14, "*****@*****.**", "08 123 456", "Message\non two rows") as UnauthorizedResult; Assert.IsInstanceOfType(results, typeof(UnauthorizedResult)); }
public override void Log(LogWriter logWriter, DBInputOutput.DBWriter dbWriter = null, int assetid = -1) { DateTime dTime = ServerTime.GetRealTime(); if (dbWriter != null) { dbWriter.InsertOrderLog(dTime, OrderId, "UpdateOrder", Cookie, "", assetid, (int)State, (int)Action, (int)Type, Price, Amount, Stop, Filled); } logWriter.WriteLine(dTime.ToString(DateTimeFormat) + " | Update order. Symbol: {0}; State: {1}; Action: {2}; Type: {3}; Price: {4}; Amount: {5}; Stop: {6}; Filled: {7}; " + "Datetime: {8}; OrderId: {9}; Cookie: {10}", Symbol, State, Action, Type, Price, Amount, Stop, Filled, Datetime, OrderId, Cookie); }
/// <summary> /// Сохранить текущее портфолио в БД /// </summary> /// <returns></returns> public async Task SaveCurrentPortfolioBDAsync() { var portfolio = await GetPortfolioCurrencyAsync(Tinkoff.Trading.OpenApi.Models.Currency.Rub); _context.PortfolioHistory.Add(new PortfolioHistory() { balance = (double)portfolio.Balance, currency = CurrencyEnum.Rub, time = ServerTime.GetDate() }); await _context.SaveChangesAsync(); }
protected override List <Order> PreparePlaceOrders() { WriteToLogDB("PreparePlaceOrders", "Started"); Bar bar = DatabaseReader.SelectLastPrice(Symbol); double lastPrice = bar.Close; double buyPrice = RoundToStep(lastPrice - 0.02); double sellPrice = RoundToStep(lastPrice + 0.02); int buyVol = 0; int sellVol = 0; if (CurrentState.Position == 0) { buyVol = ContractsToTrade; sellVol = ContractsToTrade; } else if (CurrentState.Position < 0) { buyVol = ContractsToTrade; sellVol = ContractsToTrade - Math.Abs(CurrentState.Position); } else { buyVol = ContractsToTrade - Math.Abs(CurrentState.Position); sellVol = ContractsToTrade; } if (buyPrice >= sellPrice || (buyPrice <= 0 && buyVol != 0) || (sellPrice <= 0 && sellVol != 0)) { throw new SmartException(ExceptionImportanceLevel.HIGH, "PreparePlaceOrders", "ContrTrendStrat", "buyPrice = " + buyPrice + ", sellPrice = " + sellPrice); } WriteToLogDB("PreparePlaceOrders", "Buy: Price = " + buyPrice + ", Volume = " + buyVol + "; Sell: Price = " + sellPrice + ", Volume = " + sellVol); List <Order> placeOrders = new List <Order>(); DateTime dTime = ServerTime.GetRealTime(); DatabaseWriter.InsertDecision(dTime, Symbol, ActionEnum.BUY, buyPrice, buyVol, 0); DatabaseWriter.InsertDecision(dTime, Symbol, ActionEnum.SELL, sellPrice, sellVol, 0); if (buyVol > 0) { placeOrders.Add(new Order(Symbol, GenerateCookie(), "", buyVol, 0, buyPrice, 0, ActionEnum.BUY, OrderTypeEnum.LIMIT)); } if (sellVol > 0) { placeOrders.Add(new Order(Symbol, GenerateCookie(), "", sellVol, 0, sellPrice, 0, ActionEnum.SELL, OrderTypeEnum.LIMIT)); } WriteToLogDB("PreparePlaceOrders", "Finished"); return(placeOrders); }
public bool IsAlive() { if (!tcpclient.Connected) { return(false); } if (!stillOk) { return(false); } long currentTime = ServerTime.GetCurrentUnixTimestampMillis(); return((currentTime - lastHeartBeat) < PurgeTimout); }
public UserControlAttendanceDaybook(PlatformManagement.FunctionTreeNodeInfo nodeInfo) { InitializeComponent(); m_authorityFlag = nodeInfo.Authority; DateTime dtStart, dtEnd; ServerTime.GetMonthlyBalance(ServerTime.Time, out dtStart, out dtEnd); dtpSelectStar.Value = dtStart; dtpSelectEnd.Value = dtEnd.AddDays(-1); RefreshDataGridView(); }