public ProtoOAOrder CreateOrder(long orderId, long accountId, ProtoOAOrderType orderType, ProtoTradeSide tradeSide, string symbolName, long requestedVolume, long executedVolume, bool closingOrder, string channel = null, string comment=null) { var _obj = new ProtoOAOrder(); _obj.orderId = orderId; _obj.accountId = accountId; _obj.orderType = orderType; _obj.tradeSide = tradeSide; _obj.symbolName = symbolName; _obj.requestedVolume = requestedVolume; _obj.executedVolume = executedVolume; _obj.closingOrder = closingOrder; if (channel != null) _obj.channel = channel; if (comment != null) _obj.comment = comment; return _obj; }
static public string OpenApiOrderTypeToString(ProtoOAOrderType orderType) { switch (orderType) { case ProtoOAOrderType.Limit: return("LIMIT"); case ProtoOAOrderType.Market: return("MARKET"); case ProtoOAOrderType.MarketRange: return("MARKET RANGE"); case ProtoOAOrderType.Stop: return("STOP"); default: return("unknown"); } }
static public string OpenApiOrderTypeToString(ProtoOAOrderType orderType) { switch (orderType) { case ProtoOAOrderType.LIMIT: return("LIMIT"); case ProtoOAOrderType.MARKET: return("MARKET"); case ProtoOAOrderType.MARKET_RANGE: return("MARKET RANGE"); case ProtoOAOrderType.STOP: return("STOP"); default: return("unknown"); } }
//public ProtoOASpotSubscription GetSpotSubscription(byte[] obj = null) //{ // return ProtoOASpotSubscription.CreateBuilder().MergeFrom(obj).Build(); //} #endregion #region Creating new Proto Model objects with parameters specified public ProtoOAOrder.Builder CreateOrderBuilder(long orderId, long accountId, ProtoOAOrderType orderType, ProtoOATradeSide tradeSide, int symbolId, long requestedVolume, long executedVolume, bool closingOrder, string channel = null, string comment = null) { var _obj = ProtoOAOrder.CreateBuilder(); var _objTradeData = ProtoOATradeData.CreateBuilder(); _objTradeData.SetTradeSide(tradeSide); _objTradeData.SetSymbolId(symbolId); _objTradeData.SetVolume(requestedVolume); _obj.SetOrderId(orderId); // _obj.SetAccountId(accountId); _obj.SetOrderType(orderType); _obj.SetTradeData(_objTradeData); _obj.SetExecutedVolume(executedVolume); _obj.SetClosingOrder(closingOrder); //if (channel != null) // _obj.SetChannel(channel); //if (comment != null) // _obj.SetComment(comment); return(_obj); }
public ProtoOAOrder CreateOrder(long orderId, long accountId, ProtoOAOrderType orderType, ProtoTradeSide tradeSide, string symbolName, long requestedVolume, long executedVolume, bool closingOrder, string channel = null, string comment = null) { var _obj = new ProtoOAOrder(); _obj.orderId = orderId; _obj.accountId = accountId; _obj.orderType = orderType; _obj.tradeSide = tradeSide; _obj.symbolName = symbolName; _obj.requestedVolume = requestedVolume; _obj.executedVolume = executedVolume; _obj.closingOrder = closingOrder; if (channel != null) { _obj.channel = channel; } if (comment != null) { _obj.comment = comment; } return(_obj); }
public static ProtoMessage New_Order_Req(long ctidTraderAccountId, long symbolId, ProtoOAOrderType orderType, ProtoOATradeSide tradeSide, long volume, double limitPrice = 0, double stopPrice = 0, ProtoOATimeInForce timeInForce = ProtoOATimeInForce.GoodTillCancel, long expirationTimestamp = 0, double stopLoss = 0, double takeProfit = 0, string comment = "", double baseSlippagePrice = 0, int slippageInPoints = 0, string label = "", long positionId = 0, string clientOrderId = "", long relativeStopLoss = 0, long relativeTakeProfit = 0, bool guaranteedStopLoss = false, bool trailingStopLoss = false, ProtoOAOrderTriggerMethod stopTriggerMethod = ProtoOAOrderTriggerMethod.Trade) { ProtoOANewOrderReq message = new ProtoOANewOrderReq { payloadType = ProtoOAPayloadType.ProtoOaNewOrderReq, ctidTraderAccountId = ctidTraderAccountId, symbolId = symbolId, orderType = orderType, tradeSide = tradeSide, Volume = volume }; if (limitPrice > 0) { message.limitPrice = limitPrice; } if (stopPrice > 0) { message.stopPrice = stopPrice; } if (timeInForce > 0) { message.timeInForce = timeInForce; } if (expirationTimestamp > 0) { message.expirationTimestamp = expirationTimestamp; } if (stopLoss > 0) { message.stopLoss = stopLoss; } if (takeProfit > 0) { message.takeProfit = takeProfit; } if (comment != "") { message.Comment = comment; } if (baseSlippagePrice > 0) { message.baseSlippagePrice = baseSlippagePrice; } if (slippageInPoints > 0) { message.slippageInPoints = slippageInPoints; } if (label != "") { message.Label = label; } if (positionId > 0) { message.positionId = positionId; } if (clientOrderId != "") { message.clientOrderId = clientOrderId; } if (relativeStopLoss != 0) { message.relativeStopLoss = relativeStopLoss; } if (relativeTakeProfit != 0) { message.relativeTakeProfit = relativeTakeProfit; } if (guaranteedStopLoss) { message.guaranteedStopLoss = true; } if (trailingStopLoss) { message.trailingStopLoss = true; } if (stopTriggerMethod != ProtoOAOrderTriggerMethod.Trade) { message.stopTriggerMethod = stopTriggerMethod; } Log.Info("ProtoOANewOrderReq:: " + $"ctidTraderAccountId: {ctidTraderAccountId}; " + $"symbolId: {symbolId}; " + $"orderType: {orderType}; " + $"tradeSide: {tradeSide}; " + $"volume: {volume}; " + $"limitPrice: {limitPrice}; " + $"stopPrice: {stopPrice}; " + $"timeInForce: {timeInForce}; " + $"expirationTimestamp: {expirationTimestamp} ({EpochToString(expirationTimestamp)}; " + $"stopLoss: {stopLoss}; " + $"takeProfit: {takeProfit}; " + $"comment: {comment}; " + $"baseSlippagePrice: {baseSlippagePrice}; " + $"slippageInPoints: {slippageInPoints}; " + $"label: {label}; " + $"positionId: {positionId}; " + $"clientOrderId: {clientOrderId}; " + $"relativeStopLoss: {relativeStopLoss}; " + $"relativeTakeProfit: {relativeTakeProfit}; " + $"guaranteedStopLoss: {guaranteedStopLoss}; " + $"trailingStopLoss: {trailingStopLoss}; " + $"stopTriggerMethod: {stopTriggerMethod}"); InnerMemoryStream.SetLength(0); Serializer.Serialize(InnerMemoryStream, message); return(Encode((uint)message.payloadType, InnerMemoryStream.ToArray())); }
static public string OpenApiOrderTypeToString(ProtoOAOrderType orderType) { switch (orderType) { case ProtoOAOrderType.OA_LIMIT: return "LIMIT"; case ProtoOAOrderType.OA_MARKET: return "MARKET"; case ProtoOAOrderType.OA_MARKET_RANGE: return "MARKET RANGE"; case ProtoOAOrderType.OA_PROTECTION: return "PROTECTION"; case ProtoOAOrderType.OA_STOP: return "STOP"; default: return "unknown"; } }