public FundPositionTx(ITransaction transaction, TransactionSide txSide, PositionsTxValueTypes valueType) : this() { this.ParentTransaction = transaction; this.TxSide = txSide; this.ValueType = valueType; }
public void Add(DateTime datetime, TransactionSide side, double qty, Instrument instrument, double price, string text) { Side side2; switch (side) { case TransactionSide.Buy: side2 = Side.Buy; break; case TransactionSide.Sell: side2 = Side.Sell; break; default: throw new ArgumentException(string.Format("Unknown TransactionSide - {0} ", side)); } SmartQuant.Instruments.Transaction transaction = new SmartQuant.Instruments.Transaction(datetime, side2, qty, instrument.instrument, price); transaction.Currency = CurrencyManager.Currencies[instrument.instrument.Currency]; if (text != null) { transaction.Text = text; } this.portfolio.Add(transaction); }
/// <summary> /// Gets a list of transactions. Multisend transaction is not available in this API. /// Query Window: Default query window is latest 24 hours; The maximum start - end query window is 3 months. /// </summary> /// <returns></returns> public TransactionsResponse GetTransactions(string address, TransactionSide transactionSide = TransactionSide.All, TxType txType = TxType.All, string txAsset = "", long blockHeight = 0, string symbol = "", long limit = 0, long offset = 0, int startTime = 0, int endTime = 0) { //Call specific settings string urlPattern = "{0}/transactions?address={1}"; string url = string.Format(urlPattern, _env.HttpsApiAddress, address); StringBuilder sbQueyrFilter = new StringBuilder(); if (transactionSide != TransactionSide.All) { sbQueyrFilter.AppendFormat("&side={0}", transactionSide.ToString()); } if (txType != TxType.All) { sbQueyrFilter.AppendFormat("&txType={0}", txType.ToString()); } if (!string.IsNullOrWhiteSpace(txAsset)) { sbQueyrFilter.AppendFormat("&txAsset={0}", txAsset); } if (blockHeight > 0) { sbQueyrFilter.AppendFormat("&blockHeight={0}", blockHeight); } if (endTime > 0) { sbQueyrFilter.AppendFormat("&endTime={0}", endTime); } if (limit > 0) { sbQueyrFilter.AppendFormat("&limit={0}", limit); } if (offset > 0) { sbQueyrFilter.AppendFormat("&offset={0}", offset); } if (startTime > 0) { sbQueyrFilter.AppendFormat("&startTime={0}", startTime); } if (sbQueyrFilter.Length > 0) { url = string.Format("{0}{1}", url, sbQueyrFilter); } int callsPerMinuteAllowed = 60; //Generic items for calls var response = GetStringResponse(url, urlPattern, callsPerMinuteAllowed, 60); //Call specific processing of returned values var ret = JsonConvert.DeserializeObject <TransactionsResponse>(response); return(ret); }
public void Add(DateTime datetime, TransactionSide side, double qty, Instrument instrument, double price) { this.Add(datetime, side, qty, instrument, price, null); }
public async Task <TransactionsResponse> GetTransactionsAsync(string address, TransactionSide transactionSide = TransactionSide.All, TxType txType = TxType.All, string txAsset = "", long blockHeight = 0, string symbol = "", long limit = 0, long offset = 0, int startTime = 0, int endTime = 0) { var br = await Task.Run(() => { return(GetTransactions(address, transactionSide, txType, txAsset, blockHeight, symbol, limit, offset, startTime, endTime)); }); return(br); }