public JsonResult SendMarketOrder([FromBody] Params param) { _tcpClient = new TcpClient(param.ApiHost, param.ApiPort);; _apiSocket = new SslStream(_tcpClient.GetStream(), false, new RemoteCertificateValidationCallback(ValidateServerCertificate), null); _apiSocket.AuthenticateAsClient(param.ApiHost); SendAuthorizationRequest(param); List <string> data = new List <string>(); ProtoTradeSide tradeType = new ProtoTradeSide(); if (param.TradeSide.ToUpper() == "BUY") { tradeType = ProtoTradeSide.BUY; } if (param.TradeSide.ToUpper() == "SELL") { tradeType = ProtoTradeSide.SELL; } var msgFactory = new OpenApiMessagesFactory(); var msg = msgFactory.CreateMarketOrderRequest(param.AccountId, param.AccessToken, param.SymbolName, tradeType, param.Volume * 100, param.StopLossInPips, param.TakeProfitInPips, param.Comment); Transmit(msg); byte[] _message = Listen(_apiSocket); var protoMessage = msgFactory.GetMessage(_message); data.Add(OpenApiMessagesPresentation.ToString(protoMessage)); Thread.Sleep(1000); _message = Listen(_apiSocket); protoMessage = msgFactory.GetMessage(_message); data.Add(OpenApiMessagesPresentation.ToString(protoMessage)); return(Json(new { data })); }
public ProtoOAPosition CreatePosition(long positionId, ProtoOAPositionStatus positionStatus, long accountId, ProtoTradeSide tradeSide, string symbolName, long volume, double entryPrice, long swap, long commission, long openTimestamp, string channel = null, string comment = null) { var _obj = new ProtoOAPosition(); _obj.positionId = positionId; _obj.positionStatus = positionStatus; _obj.accountId = accountId; _obj.tradeSide = tradeSide; _obj.symbolName = symbolName; _obj.volume = volume; _obj.entryPrice = entryPrice; _obj.swap = swap; _obj.commission = commission; _obj.openTimestamp = openTimestamp; if (channel != null) { _obj.channel = channel; } if (comment != null) { _obj.comment = comment; } return(_obj); }
public void SendMarketOrderRequest(long testAccountId, string symbol, ProtoTradeSide tradeSide, long volume) { var _msg = outgoingMsgFactory.CreateMarketOrderRequest(testAccountId, authToken, symbol, tradeSide, volume, clientMsgId); if (isDebugIsOn) { Console.WriteLine("SendMarketOrderRequest() Message to be send:\n{0}", OpenApiMessagesPresentation.ToString(_msg)); } writeQueue.Enqueue(Utils.Serialize(_msg)); }
static public string TradeSideToString(ProtoTradeSide tradeSide) { switch (tradeSide) { case ProtoTradeSide.BUY: return("BUY"); case ProtoTradeSide.SELL: return("SELL"); default: return("unknown"); } }
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 ProtoOAPosition CreatePosition(long positionId, ProtoOAPositionStatus positionStatus, long accountId, ProtoTradeSide tradeSide, string symbolName, long volume, double entryPrice, long swap, long commission, long openTimestamp, string channel = null, string comment = null) { var _obj = new ProtoOAPosition(); _obj.positionId = positionId; _obj.positionStatus = positionStatus; _obj.accountId = accountId; _obj.tradeSide = tradeSide; _obj.symbolName = symbolName; _obj.volume = volume; _obj.entryPrice = entryPrice; _obj.swap = swap; _obj.commission = commission; _obj.openTimestamp = openTimestamp; if (channel != null) _obj.channel = channel; if (comment != null) _obj.comment = 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 ProtoMessage CreateStopOrderRequest(long accountId, string accessToken, string symbolName, ProtoTradeSide tradeSide, long volume, double stopPrice, string clientMsgId = null) { var _msg = ProtoOACreateOrderReq.CreateBuilder(); _msg.SetAccountId(accountId); _msg.SetAccessToken(accessToken); _msg.SetSymbolName(symbolName); _msg.SetOrderType(ProtoOAOrderType.OA_STOP); _msg.SetTradeSide(tradeSide); _msg.SetVolume(volume); _msg.SetStopPrice(stopPrice); _msg.SetComment("TradingApiTest.CreateStopOrderRequest"); return(CreateMessage((uint)_msg.PayloadType, _msg.Build().ToByteString(), clientMsgId)); }
public ProtoMessage CreateLimitOrderRequest(long accountId, string accessToken, string symbolName, ProtoTradeSide tradeSide, long volume, double limitPrice, string clientMsgId = null) { var _msg = ProtoOACreateOrderReq.CreateBuilder(); _msg.SetAccountId(accountId); _msg.SetAccessToken(accessToken); _msg.SetSymbolName(symbolName); _msg.SetOrderType(ProtoOAOrderType.OA_LIMIT); _msg.SetTradeSide(tradeSide); _msg.SetVolume(volume); _msg.SetLimitPrice(limitPrice); _msg.SetComment("TradingApiTest.CreateLimitOrderRequest"); DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); _msg.SetExpirationTimestamp((long)(DateTime.UtcNow.AddHours(1) - epoch).TotalMilliseconds); return(CreateMessage((uint)_msg.PayloadType, _msg.Build().ToByteString(), clientMsgId)); }
public ProtoMessage CreateMarketRangeOrderRequest(long accountId, string accessToken, string symbolName, ProtoTradeSide tradeSide, long volume, double baseSlippagePrice, long slippageInPips, string clientMsgId = null) { var _msg = ProtoOACreateOrderReq.CreateBuilder(); _msg.SetAccountId(accountId); _msg.SetAccessToken(accessToken); _msg.SetSymbolName(symbolName); _msg.SetOrderType(ProtoOAOrderType.OA_MARKET_RANGE); _msg.SetTradeSide(tradeSide); _msg.SetVolume(volume); _msg.SetBaseSlippagePrice(baseSlippagePrice); _msg.SetSlippageInPips(slippageInPips); _msg.SetComment("TradingApiTest.CreateMarketRangeOrderRequest"); return(CreateMessage((uint)_msg.PayloadType, _msg.Build().ToByteString(), clientMsgId)); }
public ProtoMessage CreateMarketOrderRequest(long accountId, string accessToken, string symbolName, ProtoTradeSide tradeSide, long volume, int?stopLossInPips = null, int?takeProfitInPips = null, string comment = null, long?positionId = null, string clientMsgId = null) { var _msg = ProtoOACreateOrderReq.CreateBuilder(); _msg.SetAccountId(accountId); _msg.SetAccessToken(accessToken); _msg.SetSymbolName(symbolName); _msg.SetOrderType(ProtoOAOrderType.OA_MARKET); _msg.SetTradeSide(tradeSide); _msg.SetVolume(volume); if (stopLossInPips != null) { _msg.SetRelativeStopLossInPips((int)stopLossInPips); } if (takeProfitInPips != null) { _msg.SetRelativeTakeProfitInPips((int)takeProfitInPips); } if (!string.IsNullOrEmpty(comment)) { _msg.SetComment(comment); } if (positionId != null) { _msg.SetPositionId((long)positionId); } return(CreateMessage((uint)_msg.PayloadType, _msg.Build().ToByteString(), clientMsgId)); }
public ProtoMessage CreateMarketOrderRequest(long accountId, string accessToken, string symbolName, ProtoTradeSide tradeSide, long volume, string clientMsgId = null) { var _msg = ProtoOACreateOrderReq.CreateBuilder(); _msg.SetAccountId(accountId); _msg.SetAccessToken(accessToken); _msg.SetSymbolName(symbolName); _msg.SetOrderType(ProtoOAOrderType.OA_MARKET); _msg.SetTradeSide(tradeSide); _msg.SetVolume(volume); //_msg.SetRelativeStopLossInPips(27); //_msg.SetRelativeTakeProfitInPips(1); _msg.SetComment("TradingApiTest.CreateMarketOrderRequest"); return(CreateMessage((uint)_msg.PayloadType, _msg.Build().ToByteString(), clientMsgId)); }
public ProtoMessage CreateStopOrderRequest(long accountId, string accessToken, string symbolName, ProtoTradeSide tradeSide, long volume, double stopPrice, string clientMsgId = null) { var _msg = new ProtoOACreateOrderReq(); _msg.accountId = accountId; _msg.accessToken = accessToken; _msg.symbolName = symbolName; _msg.orderType = ProtoOAOrderType.OA_STOP; _msg.tradeSide = tradeSide; _msg.volume = volume; _msg.stopPrice = stopPrice; _msg.comment = "TradingApiTest.CreateStopOrderRequest"; return(CreateMessage((uint)_msg.payloadType, Utils.Serialize <ProtoOACreateOrderReq>(_msg), clientMsgId)); }
public ProtoOAPosition.Builder CreatePositionBuilder(long positionId, ProtoOAPositionStatus positionStatus, long accountId, ProtoTradeSide tradeSide, string symbolName, long volume, double entryPrice, long swap, long commission, long openTimestamp, string channel = null, string comment = null) { var _obj = ProtoOAPosition.CreateBuilder(); _obj.SetPositionId(positionId); _obj.SetPositionStatus(positionStatus); _obj.SetAccountId(accountId); _obj.SetTradeSide(tradeSide); _obj.SetSymbolName(symbolName); _obj.SetVolume(volume); _obj.SetEntryPrice(entryPrice); _obj.SetSwap(swap); _obj.SetCommission(commission); _obj.SetOpenTimestamp(openTimestamp); if (channel != null) { _obj.SetChannel(channel); } if (comment != null) { _obj.SetComment(comment); } return(_obj); }
public ProtoOAOrder.Builder CreateOrderBuilder(long orderId, long accountId, ProtoOAOrderType orderType, ProtoTradeSide tradeSide, string symbolName, long requestedVolume, long executedVolume, bool closingOrder, string channel = null, string comment = null) { var _obj = ProtoOAOrder.CreateBuilder(); _obj.SetOrderId(orderId); _obj.SetAccountId(accountId); _obj.SetOrderType(orderType); _obj.SetTradeSide(tradeSide); _obj.SetSymbolName(symbolName); _obj.SetRequestedVolume(requestedVolume); _obj.SetExecutedVolume(executedVolume); _obj.SetClosingOrder(closingOrder); if (channel != null) { _obj.SetChannel(channel); } if (comment != null) { _obj.SetComment(comment); } return(_obj); }
public void SendMarketOrderRequest (long testAccountId, string symbol, ProtoTradeSide tradeSide, long volume) { var _msg = outgoingMsgFactory.CreateMarketOrderRequest (testAccountId, authToken, symbol, tradeSide, volume, clientMsgId); if (isDebugIsOn) Console.WriteLine ("SendMarketOrderRequest() Message to be send:\n{0}", OpenApiMessagesPresentation.ToString (_msg)); writeQueue.Enqueue (Utils.Serialize (_msg)); }
static public string TradeSideToString(ProtoTradeSide tradeSide) { switch (tradeSide) { case ProtoTradeSide.BUY: return "BUY"; case ProtoTradeSide.SELL: return "SELL"; default: return "unknown"; } }
public ProtoMessage CreateStopOrderRequest(long accountId, string accessToken, string symbolName, ProtoTradeSide tradeSide, long volume, double stopPrice, string clientMsgId = null) { var _msg = new ProtoOACreateOrderReq(); _msg.accountId = accountId; _msg.accessToken = accessToken; _msg.symbolName = symbolName; _msg.orderType = ProtoOAOrderType.OA_STOP; _msg.tradeSide = tradeSide; _msg.volume = volume; _msg.stopPrice = stopPrice; _msg.comment = "TradingApiTest.CreateStopOrderRequest"; return CreateMessage((uint)_msg.payloadType, Utils.Serialize<ProtoOACreateOrderReq>(_msg), clientMsgId); }
public ProtoMessage CreateMarketRangeOrderRequest(long accountId, string accessToken, string symbolName, ProtoTradeSide tradeSide, long volume, double baseSlippagePrice, long slippageInPips, string clientMsgId = null) { var _msg = new ProtoOACreateOrderReq(); _msg.accountId = accountId; _msg.accessToken = accessToken; _msg.symbolName = symbolName; _msg.orderType = ProtoOAOrderType.OA_MARKET_RANGE; _msg.tradeSide = tradeSide; _msg.volume = volume; _msg.baseSlippagePrice = baseSlippagePrice; _msg.slippageInPips = slippageInPips; _msg.comment = "TradingApiTest.CreateMarketRangeOrderRequest"; return CreateMessage((uint)_msg.payloadType, Utils.Serialize<ProtoOACreateOrderReq>(_msg), clientMsgId); }
public ProtoMessage CreateMarketRangeOrderRequest(long accountId, string accessToken, string symbolName, ProtoTradeSide tradeSide, long volume, double baseSlippagePrice, long slippageInPips, string clientMsgId = null) { var _msg = new ProtoOACreateOrderReq(); _msg.accountId = accountId; _msg.accessToken = accessToken; _msg.symbolName = symbolName; _msg.orderType = ProtoOAOrderType.OA_MARKET_RANGE; _msg.tradeSide = tradeSide; _msg.volume = volume; _msg.baseSlippagePrice = baseSlippagePrice; _msg.slippageInPips = slippageInPips; _msg.comment = "TradingApiTest.CreateMarketRangeOrderRequest"; return(CreateMessage((uint)_msg.payloadType, Utils.Serialize <ProtoOACreateOrderReq>(_msg), clientMsgId)); }