本文整理汇总了C#中SecurityManager类的典型用法代码示例。如果您正苦于以下问题:C# SecurityManager类的具体用法?C# SecurityManager怎么用?C# SecurityManager使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
SecurityManager类属于命名空间,在下文中一共展示了SecurityManager类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: QCAlgorithm
/********************************************************
* CLASS CONSTRUCTOR
*********************************************************/
/// <summary>
/// Initialise the Algorithm
/// </summary>
public QCAlgorithm()
{
//Initialise the Algorithm Helper Classes:
//- Note - ideally these wouldn't be here, but because of the DLL we need to make the classes shared across
// the Worker & Algorithm, limiting ability to do anything else.
Securities = new SecurityManager();
Transacions = new SecurityTransactionManager(Securities);
Portfolio = new SecurityPortfolioManager(Securities, Transacions);
//Initialise Data Manager
DataManager = new DataManager();
//Initialise Error and Order Holders:
Errors = new List<string>();
//Initialise Algorithm RunMode to Automatic:
_runMode = RunMode.Automatic;
//Initialise to unlocked:
_locked = false;
//Initialise Start and End Dates:
_startDate = new DateTime();
_endDate = new DateTime();
}
示例2: FundsAreSettledImmediately
public void FundsAreSettledImmediately()
{
var securities = new SecurityManager(TimeKeeper);
var transactions = new SecurityTransactionManager(securities);
var portfolio = new SecurityPortfolioManager(securities, transactions);
var model = new ImmediateSettlementModel();
var config = CreateTradeBarConfig();
var security = new Security(SecurityExchangeHoursTests.CreateUsEquitySecurityExchangeHours(), config);
portfolio.SetCash(1000);
Assert.AreEqual(1000, portfolio.Cash);
Assert.AreEqual(0, portfolio.UnsettledCash);
var timeUtc = Noon.ConvertToUtc(TimeZones.NewYork);
model.ApplyFunds(portfolio, security, timeUtc, "USD", 1000);
Assert.AreEqual(2000, portfolio.Cash);
Assert.AreEqual(0, portfolio.UnsettledCash);
model.ApplyFunds(portfolio, security, timeUtc, "USD", -500);
Assert.AreEqual(1500, portfolio.Cash);
Assert.AreEqual(0, portfolio.UnsettledCash);
model.ApplyFunds(portfolio, security, timeUtc, "USD", 1000);
Assert.AreEqual(2500, portfolio.Cash);
Assert.AreEqual(0, portfolio.UnsettledCash);
}
示例3: EachTradeableDay
/// <summary>
/// Define an enumerable Date Range:
/// </summary>
/// <param name="securities">Securities we have in portfolio</param>
/// <param name="from">start date</param>
/// <param name="thru">end date</param>
/// <returns>Enumerable Date Range:</returns>
public static IEnumerable<DateTime> EachTradeableDay(SecurityManager securities, DateTime from, DateTime thru)
{
for (var day = from.Date; day.Date <= thru.Date; day = day.AddDays(1)) {
if (Time.TradableDate(securities, day)) {
yield return day;
}
}
}
示例4: SecurityManager_CreateMockX509Certificate_Will_Create_Mock_Certificate_Test
public void SecurityManager_CreateMockX509Certificate_Will_Create_Mock_Certificate_Test()
{
SecurityManager manager = new SecurityManager();
MockX509Certificate cert = manager.CreateMockX509Certificate();
Confirm.Different(null, cert.PrivateKey);
Confirm.Different(null, cert.PublicKey);
}
示例5: SecurityTransactionManager
/// <summary>
/// Initialise the transaction manager for holding and processing orders.
/// </summary>
public SecurityTransactionManager(SecurityManager security)
{
//Private reference for processing transactions
_securities = security;
//Internal storage for transaction records:
_transactionRecord = new Dictionary<DateTime, decimal>();
}
示例6: SellOnThursdaySettleOnTuesday
public void SellOnThursdaySettleOnTuesday()
{
var securities = new SecurityManager(TimeKeeper);
var transactions = new SecurityTransactionManager(securities);
var portfolio = new SecurityPortfolioManager(securities, transactions);
// settlement at T+3, 8:00 AM
var model = new DelayedSettlementModel(3, TimeSpan.FromHours(8));
var config = CreateTradeBarConfig(Symbols.SPY);
var security = new Security(SecurityExchangeHoursTests.CreateUsEquitySecurityExchangeHours(), config, new Cash(CashBook.AccountCurrency, 0, 1m), SymbolProperties.GetDefault(CashBook.AccountCurrency));
portfolio.SetCash(3000);
Assert.AreEqual(3000, portfolio.Cash);
Assert.AreEqual(0, portfolio.UnsettledCash);
// Sell on Thursday
var timeUtc = Noon.AddDays(3).ConvertToUtc(TimeZones.NewYork);
model.ApplyFunds(portfolio, security, timeUtc, "USD", 1000);
portfolio.ScanForCashSettlement(timeUtc);
Assert.AreEqual(3000, portfolio.Cash);
Assert.AreEqual(1000, portfolio.UnsettledCash);
// Friday, still unsettled
timeUtc = timeUtc.AddDays(1);
portfolio.ScanForCashSettlement(timeUtc);
Assert.AreEqual(3000, portfolio.Cash);
Assert.AreEqual(1000, portfolio.UnsettledCash);
// Saturday, still unsettled
timeUtc = timeUtc.AddDays(1);
portfolio.ScanForCashSettlement(timeUtc);
Assert.AreEqual(3000, portfolio.Cash);
Assert.AreEqual(1000, portfolio.UnsettledCash);
// Sunday, still unsettled
timeUtc = timeUtc.AddDays(1);
portfolio.ScanForCashSettlement(timeUtc);
Assert.AreEqual(3000, portfolio.Cash);
Assert.AreEqual(1000, portfolio.UnsettledCash);
// Monday, still unsettled
timeUtc = timeUtc.AddDays(1);
portfolio.ScanForCashSettlement(timeUtc);
Assert.AreEqual(3000, portfolio.Cash);
Assert.AreEqual(1000, portfolio.UnsettledCash);
// Tuesday at 7:55 AM, still unsettled
timeUtc = timeUtc.AddDays(1).AddHours(-4).AddMinutes(-5);
portfolio.ScanForCashSettlement(timeUtc);
Assert.AreEqual(3000, portfolio.Cash);
Assert.AreEqual(1000, portfolio.UnsettledCash);
// Tuesday at 8 AM, now settled
timeUtc = timeUtc.AddMinutes(5);
portfolio.ScanForCashSettlement(timeUtc);
Assert.AreEqual(4000, portfolio.Cash);
Assert.AreEqual(0, portfolio.UnsettledCash);
}
示例7: ScheduleManager
/// <summary>
/// Initializes a new instance of the <see cref="ScheduleManager"/> class
/// </summary>
/// <param name="securities">Securities manager containing the algorithm's securities</param>
/// <param name="timeZone">The algorithm's time zone</param>
public ScheduleManager(SecurityManager securities, DateTimeZone timeZone)
{
_securities = securities;
DateRules = new DateRules(securities);
TimeRules = new TimeRules(securities, timeZone);
// used for storing any events before the event schedule is set
_preInitializedEvents = new List<ScheduledEvent>();
}
示例8: SecurityTransactionManager
/********************************************************
* CLASS CONSTRUCTOR
*********************************************************/
/// <summary>
/// Initialise the Algorithm Transaction Class
/// </summary>
public SecurityTransactionManager(SecurityManager security)
{
//Private reference for processing transactions
this.Securities = security;
//Initialise the Order Caches:
this.ProcessedOrders = new Dictionary<int, Order>();
this.OutstandingOrders = new Dictionary<int, Order>();
}
示例9: SecurityTransactionManager
/********************************************************
* CLASS CONSTRUCTOR
*********************************************************/
/// <summary>
/// Initialise the Algorithm Transaction Class
/// </summary>
public SecurityTransactionManager(SecurityManager security)
{
//Private reference for processing transactions
this.Securities = security;
//Initialise the Order Cache -- Its a mirror of the TransactionHandler.
this._orders = new ConcurrentDictionary<int, Order>();
//Temporary Holding Queue of Orders to be Processed.
this.OrderQueue = new ConcurrentQueue<Order>();
}
示例10: TestCashFills
public void TestCashFills()
{
// this test asserts the portfolio behaves according to the Test_Cash algo, see TestData\CashTestingStrategy.csv
// also "https://www.dropbox.com/s/oiliumoyqqj1ovl/2013-cash.csv?dl=1"
const string fillsFile = "TestData\\test_cash_fills.xml";
const string equityFile = "TestData\\test_cash_equity.xml";
var fills = XDocument.Load(fillsFile).Descendants("OrderEvent").Select(x => new OrderEvent(
x.Get<int>("OrderId"),
SymbolMap[x.Get<string>("Symbol")],
DateTime.MinValue,
x.Get<OrderStatus>("Status"),
x.Get<int>("FillQuantity") < 0 ? OrderDirection.Sell
: x.Get<int>("FillQuantity") > 0 ? OrderDirection.Buy
: OrderDirection.Hold,
x.Get<decimal>("FillPrice"),
x.Get<int>("FillQuantity"),
0m)
).ToList();
var equity = XDocument.Load(equityFile).Descendants("decimal")
.Select(x => decimal.Parse(x.Value, CultureInfo.InvariantCulture))
.ToList();
Assert.AreEqual(fills.Count + 1, equity.Count);
// we're going to process fills and very our equity after each fill
var subscriptions = new SubscriptionManager(TimeKeeper);
var securities = new SecurityManager(TimeKeeper);
var security = new Security(SecurityExchangeHours, subscriptions.Add(CASH, Resolution.Daily, TimeZones.NewYork, TimeZones.NewYork), new Cash(CashBook.AccountCurrency, 0, 1m), SymbolProperties.GetDefault(CashBook.AccountCurrency));
security.SetLeverage(10m);
securities.Add(CASH, security);
var transactions = new SecurityTransactionManager(securities);
var portfolio = new SecurityPortfolioManager(securities, transactions);
portfolio.SetCash(equity[0]);
for (int i = 0; i < fills.Count; i++)
{
// before processing the fill we must deduct the cost
var fill = fills[i];
var time = DateTime.Today.AddDays(i);
TimeKeeper.SetUtcDateTime(time.ConvertToUtc(TimeZones.NewYork));
// the value of 'CASH' increments for each fill, the original test algo did this monthly
// the time doesn't really matter though
security.SetMarketPrice(new IndicatorDataPoint(CASH, time, i + 1));
portfolio.ProcessFill(fill);
Assert.AreEqual(equity[i + 1], portfolio.TotalPortfolioValue, "Failed on " + i);
}
}
示例11: EnsureCurrencyDataFeedAddsSubscription
public void EnsureCurrencyDataFeedAddsSubscription()
{
const int quantity = 100;
const decimal conversionRate = 1 / 100m;
var cash = new Cash("JPY", quantity, conversionRate);
var subscriptions = new SubscriptionManager(TimeKeeper);
var abcConfig = subscriptions.Add(Symbols.SPY, Resolution.Minute, TimeZone, TimeZone);
var securities = new SecurityManager(TimeKeeper);
securities.Add(Symbols.SPY, new Security(SecurityExchangeHours, abcConfig, 1m));
cash.EnsureCurrencyDataFeed(securities, subscriptions, MarketHoursDatabase.AlwaysOpen);
Assert.AreEqual(1, subscriptions.Subscriptions.Count(x => x.Symbol == Symbols.USDJPY));
Assert.AreEqual(1, securities.Values.Count(x => x.Symbol == Symbols.USDJPY));
}
示例12: AdminServer
private AdminServer()
{
_disposed = false;
_isRunning = false;
_securityManager = new SecurityManager();
_gameServerManager = new GameServerManager();
_connectionManager = new ConnectionManager();
_messageEngine = new MessageEngine();
_gameServerMonitor = new GameServerMonitor();
_automationManager = new AutomationManager();
_strategyManager = new StrategyManager();
_scheduledTaskManager = new ScheduledTaskManager();
_FTPClient = new FTPClient();
_batchTaskManager = new BatchTaskManager();
_paysysManager = new PaysysManager();
_ibShopManager = new IBShopManager();
}
示例13: SecurityTransactionManager
/// <summary>
/// Initialise the transaction manager for holding and processing orders.
/// </summary>
public SecurityTransactionManager(SecurityManager security)
{
//Private reference for processing transactions
_securities = security;
//Initialise the Order Cache -- Its a mirror of the TransactionHandler.
_orders = new ConcurrentDictionary<int, Order>();
//Temporary Holding Queue of Orders to be Processed.
_orderQueue = new ConcurrentQueue<Order>();
// Internal order events storage.
_orderEvents = new ConcurrentDictionary<int, List<OrderEvent>>();
//Interal storage for transaction records:
_transactionRecord = new Dictionary<DateTime, decimal>();
}
示例14: NotifiesWhenSecurityAddedViaIndexer
public void NotifiesWhenSecurityAddedViaIndexer()
{
var timeKeeper = new TimeKeeper(new DateTime(2015, 12, 07));
var manager = new SecurityManager(timeKeeper);
var security = new Security(SecurityExchangeHours.AlwaysOpen(TimeZones.NewYork), CreateTradeBarConfig(), new Cash(CashBook.AccountCurrency, 0, 1m), SymbolProperties.GetDefault(CashBook.AccountCurrency));
manager.CollectionChanged += (sender, args) =>
{
if (args.NewItems.OfType<object>().Single() != security)
{
Assert.Fail("Expected args.NewItems to have exactly one element equal to security");
}
else
{
Assert.IsTrue(args.Action == NotifyCollectionChangedAction.Add);
Assert.Pass();
}
};
manager[security.Symbol] = security;
}
示例15: NotifiesWhenSecurityRemoved
public void NotifiesWhenSecurityRemoved()
{
var timeKeeper = new TimeKeeper(new DateTime(2015, 12, 07));
var manager = new SecurityManager(timeKeeper);
var security = new Security(SecurityExchangeHours.AlwaysOpen(TimeZones.NewYork), CreateTradeBarConfig());
manager.Add(security.Symbol, security);
manager.CollectionChanged += (sender, args) =>
{
if (args.OldItems.OfType<object>().Single() != security)
{
Assert.Fail("Expected args.NewItems to have exactly one element equal to security");
}
else
{
Assert.IsTrue(args.Action == NotifyCollectionChangedAction.Remove);
Assert.Pass();
}
};
manager.Remove(security.Symbol);
}