/*
* QUANTCONNECT.COM - Democratizing Finance, Empowering Individuals.
* Lean Algorithmic Trading Engine v2.0. Copyright 2014 QuantConnect Corporation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
using System;
using System.ComponentModel;
namespace QuantConnect.Data.Auxiliary
{
///
/// Flag system for quote conditions
///
[Flags]
public enum QuoteConditionFlags : long
{
///
/// No Condition
///
None = 0,
///
/// This condition is used for the majority of quotes to indicate a normal trading environment.
///
[Description("This condition is used for the majority of quotes to indicate a normal trading environment.")]
Regular = 1L << 0,
///
/// This condition is used to indicate that the quote is a Slow Quote on both the Bid and Offer
/// sides due to a Set Slow List that includes High Price securities.
///
[Description("This condition is used to indicate that the quote is a Slow Quote on both the Bid and Offer " +
"sides due to a Set Slow List that includes High Price securities.")]
Slow = 1L << 1,
///
/// While in this mode, auto-execution is not eligible, the quote is then considered manual and non-firm in the Bid and Offer and
/// either or both sides can be traded through as per Regulation NMS.
///
[Description("While in this mode, auto-execution is not eligible, the quote is then considered manual and non-firm in the Bid and Offer and " +
"either or both sides can be traded through as per Regulation NMS.")]
Gap = 1L << 2,
///
/// This condition can be disseminated to indicate that this quote was the last quote for a security for that Participant.
///
[Description("This condition can be disseminated to indicate that this quote was the last quote for a security for that Participant.")]
Closing = 1L << 3,
///
/// This regulatory Opening Delay or Trading Halt is used when relevant news influencing the security is being disseminated.
/// Trading is suspended until the primary market determines that an adequate publication or disclosure of information has occurred.
///
[Description("This regulatory Opening Delay or Trading Halt is used when relevant news influencing the security is being disseminated." +
"Trading is suspended until the primary market determines that an adequate publication or disclosure of information has occurred.")]
NewsDissemination = 1L << 4,
///
/// This condition is used to indicate a regulatory Opening Delay or Trading Halt due to an expected news announcement,
/// which may influence the security. An Opening Delay or Trading Halt may be continued once the news has been disseminated.
///
[Description("This condition is used to indicate a regulatory Opening Delay or Trading Halt due to an expected news announcement, " +
"which may influence the security. An Opening Delay or Trading Halt may be continued once the news has been disseminated.")]
NewsPending = 1L << 5,
///
/// The condition is used to denote the probable trading range (bid and offer prices, no sizes) of a security that is not Opening Delayed or
/// Trading Halted. The Trading Range Indication is used prior to or after the opening of a security.
///
[Description("The condition is used to denote the probable trading range (bid and offer prices, no sizes) of a security that is not Opening Delayed or" +
"Trading Halted. The Trading Range Indication is used prior to or after the opening of a security.")]
TradingRangeIndication = 1L << 6,
///
/// This non-regulatory Opening Delay or Trading Halt is used when there is a significant imbalance of buy or sell orders.
///
[Description("This non-regulatory Opening Delay or Trading Halt is used when there is a significant imbalance of buy or sell orders.")]
OrderImbalance = 1L << 7,
///
/// This condition is disseminated by each individual FINRA Market Maker to signify either the last quote of the day or
/// the premature close of an individual Market Maker for the day.
///
[Description("This condition is disseminated by each individual FINRA Market Maker to signify either the last quote of the day or" +
"the premature close of an individual Market Maker for the day.")]
ClosedMarketMaker = 1L << 8,
///
/// This quote condition indicates a regulatory Opening Delay or Trading Halt due to conditions in which
/// a security experiences a 10 % or more change in price over a five minute period.
///
[Description("This quote condition indicates a regulatory Opening Delay or Trading Halt due to conditions in which " +
"a security experiences a 10 % or more change in price over a five minute period.")]
VolatilityTradingPause = 1L << 9,
///
/// This quote condition suspends a Participant's firm quote obligation for a quote for a security.
///
[Description("This quote condition suspends a Participant's firm quote obligation for a quote for a security.")]
NonFirmQuote = 1L << 10,
///
/// This condition can be disseminated to indicate that this quote was the opening quote for a security for that Participant.
///
[Description("This condition can be disseminated to indicate that this quote was the opening quote for a security for that Participant.")]
OpeningQuote = 1L << 11,
///
/// This non-regulatory Opening Delay or Trading Halt is used when events relating to one security will affect the price and performance of
/// another related security. This non-regulatory Opening Delay or Trading Halt is also used when non-regulatory halt reasons such as
/// Order Imbalance, Order Influx and Equipment Changeover are combined with Due to Related Security on CTS.
///
[Description("This non-regulatory Opening Delay or Trading Halt is used when events relating to one security will affect the price and performance of " +
"another related security. This non-regulatory Opening Delay or Trading Halt is also used when non-regulatory halt reasons such as " +
"Order Imbalance, Order Influx and Equipment Changeover are combined with Due to Related Security on CTS.")]
DueToRelatedSecurity = 1L << 12,
///
/// This quote condition along with zero-filled bid, offer and size fields is used to indicate that trading for a Participant is no longer
/// suspended in a security which had been Opening Delayed or Trading Halted.
///
[Description("This quote condition along with zero-filled bid, offer and size fields is used to indicate that trading for a Participant is no longer " +
"suspended in a security which had been Opening Delayed or Trading Halted.")]
Resume = 1L << 13,
///
/// This quote condition is used when matters affecting the common stock of a company affect the performance of the non-common
/// associated securities, e.g., warrants, rights, preferred, classes, etc.
///
[Description("This quote condition is used when matters affecting the common stock of a company affect the performance of the non-common " +
"associated securities, e.g., warrants, rights, preferred, classes, etc.")]
InViewOfCommon = 1L << 14,
///
/// This non-regulatory Opening Delay or Trading Halt is used when the ability to trade a security by a Participant is temporarily
/// inhibited due to a systems, equipment or communications facility problem or for other technical reasons.
///
[Description("This non-regulatory Opening Delay or Trading Halt is used when the ability to trade a security by a Participant is temporarily " +
"inhibited due to a systems, equipment or communications facility problem or for other technical reasons.")]
EquipmentChangeover = 1L << 15,
///
/// This non-regulatory Opening Delay or Trading Halt is used to indicate an Opening Delay or Trading Halt for a security whose price
/// may fall below $1.05, possibly leading to a sub-penny execution.
///
[Description("This non-regulatory Opening Delay or Trading Halt is used to indicate an Opening Delay or Trading Halt for a security whose price" +
" may fall below $1.05, possibly leading to a sub-penny execution.")]
SubPennyTrading = 1L << 16,
///
/// This quote condition is used to indicate that an Opening Delay or a Trading Halt is to be in effect for the rest
/// of the trading day in a security for a Participant.
///
[Description("This quote condition is used to indicate that an Opening Delay or a Trading Halt is to be in effect for the rest " +
"of the trading day in a security for a Participant.")]
NoOpenNoResume = 1L << 17,
///
/// This quote condition is used to indicate that a Limit Up-Limit Down Price Band is applicable for a security.
///
[Description("This quote condition is used to indicate that a Limit Up-Limit Down Price Band is applicable for a security.")]
LimitUpLimitDownPriceBand = 1L << 18,
///
/// This quote condition is used to indicate that a Limit Up-Limit Down Price Band that is being disseminated " +
/// is a ‘republication’ of the latest Price Band for a security.
///
[Description("This quote condition is used to indicate that a Limit Up-Limit Down Price Band that is being disseminated " +
"is a ‘republication’ of the latest Price Band for a security.")]
RepublishedLimitUpLimitDownPriceBand = 1L << 19,
///
/// This indicates that the market participant is in a manual mode on both the Bid and Ask. While in this mode,
/// automated execution is not eligible on the Bid and Ask side and can be traded through pursuant to Regulation NMS requirements.
///
[Description("This indicates that the market participant is in a manual mode on both the Bid and Ask. While in this mode, " +
"automated execution is not eligible on the Bid and Ask side and can be traded through pursuant to Regulation NMS requirements.")]
Manual = 1L << 20,
///
/// For extremely active periods of short duration. While in this mode, the UTP participant will enter quotations on a “best efforts” basis.
///
[Description("For extremely active periods of short duration. While in this mode, the UTP participant will enter quotations on a “best efforts” basis.")]
FastTrading = 1L << 21,
///
/// A halt condition used when there is a sudden order influx. To prevent a disorderly market, trading is temporarily suspended by the UTP participant.
///
[Description("A halt condition used when there is a sudden order influx. To prevent a disorderly market, trading is temporarily suspended by the UTP participant.")]
OrderInflux = 1L << 22
}
}