Ejemplo n.º 1
0
        /// <summary>
        /// Wysłanie do systemu nowego zlecenia z podanymi parametrami. W tej wersji metody numer rachunku,
        /// na który zostaje przeznaczone to zlecenie, wybierany jest automatycznie na podstawie typu instrumentu.
        /// <para>Zobacz też metody klasy BosInstrument: Order, Buy, Sell - które od razu określają,
        /// którego instrumentu dane zlecenie ma dotyczyć i ewentualnie prezyzują też stronę transakcji (kupno/sprzedaż)</para>
        /// </summary>
        /// <param name="instrument">Instrument, którego walory chcemy kupić/sprzedać.</param>
        /// <param name="side">Zlecenie kupna (BosOrderSide.Buy) czy sprzedaży (BosOrderSide.Sell).</param>
        /// <param name="price">Limit ceny, jaki wstawiamy do zlecenia (BosPrice.PKC/PCR/PCRO... lub po prostu kwota).</param>
        /// <param name="activationPrice">Ewentualny limit aktywacji zlecenia (null, jeśli aktywowane od razu, bez stop'a).</param>
        /// <param name="quantity">Liczba walorów, jaką zamierzamy kupić/sprzedać.</param>
        /// <param name="minimumQuantity">Minimalna liczba walorów, jaka musi się zrealizować, albo zlecenie będzie anulowane.
        /// Podając tutaj to samo, co w polu "quantity", uzyskujemy zlecenie typu "WuA".</param>
        /// <param name="visibleQuantity">Liczba walorów ujawniana w arkuszu ofert ("WUJ").</param>
        /// <param name="immediateOrCancel">Czy to zlecenie typu "WiA" (to, co nie wykona się natychmiast, jest od razu anulowane).</param>
        /// <param name="expirationDate">Data ważności zlecenia (null, jeśli tylko na bieżącą sesję).</param>
        public static void Create(BosInstrument instrument,
                                  BosOrderSide side, BosPrice price, decimal?activationPrice,
                                  uint quantity, uint?minimumQuantity, uint?visibleQuantity, bool immediateOrCancel, DateTime?expirationDate)
        {
            var account = Bossa.Accounts[instrument.Type];

            Create(account, instrument, side, price, activationPrice,
                   quantity, minimumQuantity, visibleQuantity, immediateOrCancel, expirationDate);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Wysłanie do systemu nowego zlecenia z podanymi parametrami.
        /// <para>Zobacz też metody klasy BosInstrument: Order, Buy, Sell - które od razu określają,
        /// którego instrumentu dane zlecenie ma dotyczyć i ewentualnie prezyzują też stronę transakcji (kupno/sprzedaż)</para>
        /// </summary>
        /// <param name="account">Rachunek, na który zostaje przeznaczone to zlecenie.</param>
        /// <param name="instrument">Instrument, którego walory chcemy kupić/sprzedać.</param>
        /// <param name="side">Zlecenie kupna (BosOrderSide.Buy) czy sprzedaży (BosOrderSide.Sell).</param>
        /// <param name="price">Limit ceny, jaki wstawiamy do zlecenia (BosPrice.PKC/PCR/PCRO... lub po prostu kwota).</param>
        /// <param name="activationPrice">Ewentualny limit aktywacji zlecenia (null, jeśli aktywowane od razu, bez stop'a).</param>
        /// <param name="quantity">Liczba walorów, jaką zamierzamy kupić/sprzedać.</param>
        /// <param name="minimumQuantity">Minimalna liczba walorów, jaka musi się zrealizować, albo zlecenie będzie anulowane.
        /// Podając tutaj to samo, co w polu "quantity", uzyskujemy zlecenie typu "WuA".</param>
        /// <param name="visibleQuantity">Liczba walorów ujawniana w arkuszu ofert ("WUJ").</param>
        /// <param name="immediateOrCancel">Czy to zlecenie typu "WiA" (to, co nie wykona się natychmiast, jest od razu anulowane).</param>
        /// <param name="expirationDate">Data ważności zlecenia (null, jeśli tylko na bieżącą sesję).</param>
        public static void Create(BosAccount account, BosInstrument instrument,
                                  BosOrderSide side, BosPrice price, decimal?activationPrice,
                                  uint quantity, uint?minimumQuantity, uint?visibleQuantity, bool immediateOrCancel, DateTime?expirationDate)
        {
            var data = new OrderData();

            data.AccountNumber              = account.Number;
            data.MainData                   = new OrderMainData();
            data.MainData.CreateTime        = DateTime.Now;
            data.MainData.Instrument        = instrument.Convert();
            data.MainData.Side              = side;
            data.MainData.PriceType         = price.Type;
            data.MainData.PriceLimit        = price.NumValue;
            data.MainData.ActivationPrice   = activationPrice;
            data.MainData.Quantity          = quantity;
            data.MainData.MinimumQuantity   = minimumQuantity;
            data.MainData.VisibleQuantity   = visibleQuantity;
            data.MainData.ImmediateOrCancel = immediateOrCancel;
            data.MainData.ExpirationDate    = expirationDate;
            account.api.Connection.OrderCreate(data);
            // TODO: Zastanawiam się jeszczcze m.in. co z ClientId, TradeDate... i czy w ogóle byłby sens
            // od razu tworzyć taki nowy obiekt BosOrder (zamiast zaczekać aż sam się doda przy OrderUpdate).
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Wysłanie do systemu nowego zlecenia z podanymi parametrami (pozostałe przyjmują
 /// domyślną wartość null/false, a numer rachunku wyznaczany jest na podstawie typu instrumentu).
 /// <para>Zobacz też metody klasy BosInstrument: Order, Buy, Sell - które od razu określają,
 /// którego instrumentu dane zlecenie ma dotyczyć i ewentualnie prezyzują też stronę transakcji (kupno/sprzedaż)</para>
 /// </summary>
 /// <param name="instrument">Instrument, którego walory chcemy kupić/sprzedać.</param>
 /// <param name="side">Zlecenie kupna (BosOrderSide.Buy) czy sprzedaży (BosOrderSide.Sell).</param>
 /// <param name="price">Limit ceny, jaki wstawiamy do zlecenia (BosPrice.PKC/PCR/PCRO... lub po prostu kwota).</param>
 /// <param name="quantity">Liczba walorów, jaką zamierzamy kupić/sprzedać.</param>
 public static void Create(BosInstrument instrument, BosOrderSide side, BosPrice price, uint quantity)
 {
     Create(instrument, side, price, null, quantity, null, null, false, null);
 }
Ejemplo n.º 4
0
 /// <summary>
 /// Wysłanie do systemu nowego zlecenia z podanymi parametrami (pozostałe przyjmują
 /// domyślną wartość null/false, a numer rachunku wyznaczany jest na podstawie typu instrumentu).
 /// <para>Zobacz też metody klasy BosInstrument: Order, Buy, Sell - które od razu określają,
 /// którego instrumentu dane zlecenie ma dotyczyć i ewentualnie prezyzują też stronę transakcji (kupno/sprzedaż)</para>
 /// </summary>
 /// <param name="instrument">Instrument, którego walory chcemy kupić/sprzedać.</param>
 /// <param name="side">Zlecenie kupna (BosOrderSide.Buy) czy sprzedaży (BosOrderSide.Sell).</param>
 /// <param name="price">Limit ceny, jaki wstawiamy do zlecenia (BosPrice.PKC/PCR/PCRO... lub po prostu kwota).</param>
 /// <param name="activationPrice">Ewentualny limit aktywacji zlecenia (null, jeśli aktywowane od razu, bez stop'a).</param>
 /// <param name="quantity">Liczba walorów, jaką zamierzamy kupić/sprzedać.</param>
 /// <param name="expirationDate">Data ważności zlecenia (null, jeśli tylko na bieżącą sesję).</param>
 public static void Create(BosInstrument instrument,
                           BosOrderSide side, BosPrice price, decimal?activationPrice, uint quantity, DateTime?expirationDate)
 {
     Create(instrument, side, price, activationPrice, quantity, null, null, false, expirationDate);
 }
Ejemplo n.º 5
0
		/// <summary>
		/// Wysłanie do systemu nowego zlecenia na zakup/sprzedaż bieżącego instrumentu.
		/// Skrócona wersja głównej metody "Order(...)", gdzie pozostałe parametry przyjmują wartość null/false.
		/// <para>Zobacz też sąsiednie metody: "Buy(...)" i "Sell(...)" - które od razu precyzują, czy ma to być zlecenie kupna, czy sprzedaży.</para>
		/// </summary>
		/// <param name="side">Zlecenie kupna (BosOrderSide.Buy) czy sprzedaży (BosOrderSide.Sell).</param>
		/// <param name="price">Limit ceny: BosPrice.PKC/PCR/PCRO... lub po prostu kwota.</param>
		/// <param name="activationPrice">Ewentualny limit aktywacji (null, jeśli bez stop'a).</param>
		/// <param name="quantity">Liczba walorów, jaką zamierzamy kupić/sprzedać.</param>
		/// <param name="expirationDate">Data ważności zlecenia (null, jeśli tylko na bieżącą sesję).</param>
		public void Order(BosOrderSide side, BosPrice price, decimal? activationPrice, uint quantity, DateTime? expirationDate)
		{
			Order(side, price, activationPrice, quantity, null, null, false, expirationDate);
		}
Ejemplo n.º 6
0
		/// <summary>
		/// Wysłanie do systemu nowego zlecenia z podanymi parametrami (pozostałe przyjmują 
		/// domyślną wartość null/false, a numer rachunku wyznaczany jest na podstawie typu instrumentu).
		/// <para>Zobacz też metody klasy BosInstrument: Order, Buy, Sell - które od razu określają, 
		/// którego instrumentu dane zlecenie ma dotyczyć i ewentualnie prezyzują też stronę transakcji (kupno/sprzedaż)</para>
		/// </summary>
		/// <param name="instrument">Instrument, którego walory chcemy kupić/sprzedać.</param>
		/// <param name="side">Zlecenie kupna (BosOrderSide.Buy) czy sprzedaży (BosOrderSide.Sell).</param>
		/// <param name="price">Limit ceny, jaki wstawiamy do zlecenia (BosPrice.PKC/PCR/PCRO... lub po prostu kwota).</param>
		/// <param name="quantity">Liczba walorów, jaką zamierzamy kupić/sprzedać.</param>
		public static void Create(BosInstrument instrument, BosOrderSide side, BosPrice price, uint quantity)
		{
			Create(instrument, side, price, null, quantity, null, null, false, null);
		}
Ejemplo n.º 7
0
		/// <summary>
		/// Wysłanie do systemu nowego zlecenia na zakup/sprzedaż bieżącego instrumentu.
		/// <para>Preferowana metoda - zamiast "BosOrder.Create(...)" - bo od razu określa, jakiego instrumentu dotyczy.
		/// Nr rachunku, na który zostaje przeznaczone to zlecenie, wybierany jest automatycznie na podstawie typu instrumentu.</para>
		/// <para>Zobacz też sąsiednie metody: "Buy(...)" i "Sell(...)" - które od razu precyzują, czy ma to być zlecenie kupna, czy sprzedaży.</para>
		/// </summary>
		/// <param name="side">Zlecenie kupna (BosOrderSide.Buy) czy sprzedaży (BosOrderSide.Sell).</param>
		/// <param name="price">Limit ceny, jaki wstawiamy do zlecenia (BosPrice.PKC/PCR/PCRO... lub po prostu kwota).</param>
		/// <param name="activationPrice">Ewentualny limit aktywacji zlecenia (null, jeśli aktywowane od razu, bez stop'a).</param>
		/// <param name="quantity">Liczba walorów, jaką zamierzamy kupić/sprzedać.</param>
		/// <param name="minimumQuantity">Minimalna liczba walorów, jaka musi się zrealizować, albo zlecenie będzie anulowane.
		/// Podając tutaj to samo, co w polu "quantity", uzyskujemy zlecenie typu "WuA".</param>
		/// <param name="visibleQuantity">Liczba walorów ujawniana w arkuszu ofert ("WUJ").</param>
		/// <param name="immediateOrCancel">Czy to zlecenie typu "WiA" (to, co nie wykona się natychmiast, jest od razu anulowane).</param>
		/// <param name="expirationDate">Data ważności zlecenia (null, jeśli tylko na bieżącą sesję).</param>
		public void Order(BosOrderSide side, BosPrice price, decimal? activationPrice,
			uint quantity, uint? minimumQuantity, uint? visibleQuantity, bool immediateOrCancel, DateTime? expirationDate)
		{
			BosOrder.Create(this, side, price, activationPrice,
				quantity, minimumQuantity, visibleQuantity, immediateOrCancel, expirationDate);
		}
Ejemplo n.º 8
0
		/// <summary>
		/// Wysłanie do systemu nowego zlecenia z podanymi parametrami (pozostałe przyjmują 
		/// domyślną wartość null/false, a numer rachunku wyznaczany jest na podstawie typu instrumentu).
		/// <para>Zobacz też metody klasy BosInstrument: Order, Buy, Sell - które od razu określają, 
		/// którego instrumentu dane zlecenie ma dotyczyć i ewentualnie prezyzują też stronę transakcji (kupno/sprzedaż)</para>
		/// </summary>
		/// <param name="instrument">Instrument, którego walory chcemy kupić/sprzedać.</param>
		/// <param name="side">Zlecenie kupna (BosOrderSide.Buy) czy sprzedaży (BosOrderSide.Sell).</param>
		/// <param name="price">Limit ceny, jaki wstawiamy do zlecenia (BosPrice.PKC/PCR/PCRO... lub po prostu kwota).</param>
		/// <param name="activationPrice">Ewentualny limit aktywacji zlecenia (null, jeśli aktywowane od razu, bez stop'a).</param>
		/// <param name="quantity">Liczba walorów, jaką zamierzamy kupić/sprzedać.</param>
		/// <param name="expirationDate">Data ważności zlecenia (null, jeśli tylko na bieżącą sesję).</param>
		public static void Create(BosInstrument instrument,
			BosOrderSide side, BosPrice price, decimal? activationPrice, uint quantity, DateTime? expirationDate)
		{
			Create(instrument, side, price, activationPrice, quantity, null, null, false, expirationDate);
		}
Ejemplo n.º 9
0
		/// <summary>
		/// Wysłanie do systemu nowego zlecenia z podanymi parametrami. W tej wersji metody numer rachunku,
		/// na który zostaje przeznaczone to zlecenie, wybierany jest automatycznie na podstawie typu instrumentu.
		/// <para>Zobacz też metody klasy BosInstrument: Order, Buy, Sell - które od razu określają, 
		/// którego instrumentu dane zlecenie ma dotyczyć i ewentualnie prezyzują też stronę transakcji (kupno/sprzedaż)</para>
		/// </summary>
		/// <param name="instrument">Instrument, którego walory chcemy kupić/sprzedać.</param>
		/// <param name="side">Zlecenie kupna (BosOrderSide.Buy) czy sprzedaży (BosOrderSide.Sell).</param>
		/// <param name="price">Limit ceny, jaki wstawiamy do zlecenia (BosPrice.PKC/PCR/PCRO... lub po prostu kwota).</param>
		/// <param name="activationPrice">Ewentualny limit aktywacji zlecenia (null, jeśli aktywowane od razu, bez stop'a).</param>
		/// <param name="quantity">Liczba walorów, jaką zamierzamy kupić/sprzedać.</param>
		/// <param name="minimumQuantity">Minimalna liczba walorów, jaka musi się zrealizować, albo zlecenie będzie anulowane.
		/// Podając tutaj to samo, co w polu "quantity", uzyskujemy zlecenie typu "WuA".</param>
		/// <param name="visibleQuantity">Liczba walorów ujawniana w arkuszu ofert ("WUJ").</param>
		/// <param name="immediateOrCancel">Czy to zlecenie typu "WiA" (to, co nie wykona się natychmiast, jest od razu anulowane).</param>
		/// <param name="expirationDate">Data ważności zlecenia (null, jeśli tylko na bieżącą sesję).</param>
		public static void Create(BosInstrument instrument,
			BosOrderSide side, BosPrice price, decimal? activationPrice,
			uint quantity, uint? minimumQuantity, uint? visibleQuantity, bool immediateOrCancel, DateTime? expirationDate)
		{
			var account = Bossa.Accounts[instrument.Type];
			Create(account, instrument, side, price, activationPrice,
				quantity, minimumQuantity, visibleQuantity, immediateOrCancel, expirationDate);
		}
Ejemplo n.º 10
0
		/// <summary>
		/// Wysłanie do systemu nowego zlecenia z podanymi parametrami. 
		/// <para>Zobacz też metody klasy BosInstrument: Order, Buy, Sell - które od razu określają, 
		/// którego instrumentu dane zlecenie ma dotyczyć i ewentualnie prezyzują też stronę transakcji (kupno/sprzedaż)</para>
		/// </summary>
		/// <param name="account">Rachunek, na który zostaje przeznaczone to zlecenie.</param>
		/// <param name="instrument">Instrument, którego walory chcemy kupić/sprzedać.</param>
		/// <param name="side">Zlecenie kupna (BosOrderSide.Buy) czy sprzedaży (BosOrderSide.Sell).</param>
		/// <param name="price">Limit ceny, jaki wstawiamy do zlecenia (BosPrice.PKC/PCR/PCRO... lub po prostu kwota).</param>
		/// <param name="activationPrice">Ewentualny limit aktywacji zlecenia (null, jeśli aktywowane od razu, bez stop'a).</param>
		/// <param name="quantity">Liczba walorów, jaką zamierzamy kupić/sprzedać.</param>
		/// <param name="minimumQuantity">Minimalna liczba walorów, jaka musi się zrealizować, albo zlecenie będzie anulowane.
		/// Podając tutaj to samo, co w polu "quantity", uzyskujemy zlecenie typu "WuA".</param>
		/// <param name="visibleQuantity">Liczba walorów ujawniana w arkuszu ofert ("WUJ").</param>
		/// <param name="immediateOrCancel">Czy to zlecenie typu "WiA" (to, co nie wykona się natychmiast, jest od razu anulowane).</param>
		/// <param name="expirationDate">Data ważności zlecenia (null, jeśli tylko na bieżącą sesję).</param>
		public static void Create(BosAccount account, BosInstrument instrument, 
			BosOrderSide side, BosPrice price, decimal? activationPrice,
			uint quantity, uint? minimumQuantity, uint? visibleQuantity, bool immediateOrCancel, DateTime? expirationDate)
		{
			var data = new OrderData();
			data.AccountNumber = account.Number;
			data.MainData = new OrderMainData();
			data.MainData.CreateTime = DateTime.Now;
			data.MainData.Instrument = instrument.Convert();
			data.MainData.Side = side;
			data.MainData.PriceType = price.Type;
			data.MainData.PriceLimit = price.NumValue;
			data.MainData.ActivationPrice = activationPrice;
			data.MainData.Quantity = quantity;
			data.MainData.MinimumQuantity = minimumQuantity;
			data.MainData.VisibleQuantity = visibleQuantity;
			data.MainData.ImmediateOrCancel = immediateOrCancel;
			data.MainData.ExpirationDate = expirationDate;
			account.api.Connection.OrderCreate(data);
			// TODO: Zastanawiam się jeszczcze m.in. co z ClientId, TradeDate... i czy w ogóle byłby sens
			// od razu tworzyć taki nowy obiekt BosOrder (zamiast zaczekać aż sam się doda przy OrderUpdate).
		}
Ejemplo n.º 11
0
 /// <summary>
 /// Wysłanie do systemu nowego zlecenia na zakup/sprzedaż bieżącego instrumentu.
 /// Skrócona wersja głównej metody "Order(...)", gdzie pozostałe parametry przyjmują wartość null/false.
 /// <para>Zobacz też sąsiednie metody: "Buy(...)" i "Sell(...)" - które od razu precyzują, czy ma to być zlecenie kupna, czy sprzedaży.</para>
 /// </summary>
 /// <param name="side">Zlecenie kupna (BosOrderSide.Buy) czy sprzedaży (BosOrderSide.Sell).</param>
 /// <param name="price">Limit ceny: BosPrice.PKC/PCR/PCRO... lub po prostu kwota.</param>
 /// <param name="activationPrice">Ewentualny limit aktywacji (null, jeśli bez stop'a).</param>
 /// <param name="quantity">Liczba walorów, jaką zamierzamy kupić/sprzedać.</param>
 /// <param name="expirationDate">Data ważności zlecenia (null, jeśli tylko na bieżącą sesję).</param>
 public void Order(BosOrderSide side, BosPrice price, decimal?activationPrice, uint quantity, DateTime?expirationDate)
 {
     Order(side, price, activationPrice, quantity, null, null, false, expirationDate);
 }
Ejemplo n.º 12
0
 /// <summary>
 /// Wysłanie do systemu nowego zlecenia na zakup/sprzedaż bieżącego instrumentu.
 /// <para>Preferowana metoda - zamiast "BosOrder.Create(...)" - bo od razu określa, jakiego instrumentu dotyczy.
 /// Nr rachunku, na który zostaje przeznaczone to zlecenie, wybierany jest automatycznie na podstawie typu instrumentu.</para>
 /// <para>Zobacz też sąsiednie metody: "Buy(...)" i "Sell(...)" - które od razu precyzują, czy ma to być zlecenie kupna, czy sprzedaży.</para>
 /// </summary>
 /// <param name="side">Zlecenie kupna (BosOrderSide.Buy) czy sprzedaży (BosOrderSide.Sell).</param>
 /// <param name="price">Limit ceny, jaki wstawiamy do zlecenia (BosPrice.PKC/PCR/PCRO... lub po prostu kwota).</param>
 /// <param name="activationPrice">Ewentualny limit aktywacji zlecenia (null, jeśli aktywowane od razu, bez stop'a).</param>
 /// <param name="quantity">Liczba walorów, jaką zamierzamy kupić/sprzedać.</param>
 /// <param name="minimumQuantity">Minimalna liczba walorów, jaka musi się zrealizować, albo zlecenie będzie anulowane.
 /// Podając tutaj to samo, co w polu "quantity", uzyskujemy zlecenie typu "WuA".</param>
 /// <param name="visibleQuantity">Liczba walorów ujawniana w arkuszu ofert ("WUJ").</param>
 /// <param name="immediateOrCancel">Czy to zlecenie typu "WiA" (to, co nie wykona się natychmiast, jest od razu anulowane).</param>
 /// <param name="expirationDate">Data ważności zlecenia (null, jeśli tylko na bieżącą sesję).</param>
 public void Order(BosOrderSide side, BosPrice price, decimal?activationPrice,
                   uint quantity, uint?minimumQuantity, uint?visibleQuantity, bool immediateOrCancel, DateTime?expirationDate)
 {
     BosOrder.Create(this, side, price, activationPrice,
                     quantity, minimumQuantity, visibleQuantity, immediateOrCancel, expirationDate);
 }