public void SendOrderToMarketMANUALCLOSE(Trade trade) { double price = trade.BuyorSell == Trade.BuySell.Buy ? HiSat.LivePrice.Offer : HiSat.LivePrice.Bid; ExcelLink.xlTradeOrder o = new xlTradeOrder() { BS = trade.BuyorSell, Price = price, Volume = trade.TradeVolume, Contract = WebSettings.General.OTS_INST, }; try { e.Connect(); e.WriteOrder(o); e.Disconnect(); OrderSendEvent oe = new OrderSendEvent(); oe.Success = true; oe.Trade = trade; onOrderSend(this, oe); e.StartCheckWhenOrderCompletedTimer(10000); } catch (Exception ex) { OrderSendEvent oe = new OrderSendEvent(); oe.Success = false; oe.Trade = trade; onOrderSend(this, oe); } }
public async Task WHEN_invalidEvent_THEN_sagaShouldIgnoreThatEvent() { // given ISaga newSagaState = await sagaCoordinator. Publish(new OrderCreatedEvent()); ISagaEvent invalidEvent = new OrderSendEvent() { ID = newSagaState.Data.ID }; // then await Assert.ThrowsAsync <SagaInvalidEventForStateException>(() => // when sagaCoordinator. Publish(invalidEvent) ); // then ISaga persistedSaga = await sagaPersistance. Get(newSagaState.Data.ID); persistedSaga.ShouldNotBeNull(); persistedSaga.ExecutionState.CurrentState.ShouldBe(nameof(StateCreated)); persistedSaga.ExecutionState.CurrentStep.ShouldBe(null); // blad nie powinien zmienic stanu sagi persistedSaga.ExecutionState.History.ShouldContain(step => step.StepName == "OrderCreatedEventStep1" && step.CompensationData == null && step.HasSucceeded()); persistedSaga.ExecutionState.History.Count.ShouldBe(3); }
public void SendOrderToMarketGenetic(Trade trade) { if (trade.BuyorSell != Trade.BuySell.None) { double price = WebSettings.TradeApproach.AdjustPriceToStrategy(trade, HiSat.LivePrice.Bid, HiSat.LivePrice.Offer); trade.TradedPrice = price; ExcelLink.xlTradeOrder o = new xlTradeOrder() { BS = trade.BuyorSell, Price = price, Volume = trade.TradeVolume, Contract = trade.InstrumentName, }; e.Connect(); e.WriteOrder(o); e.Disconnect(); OrderSendEvent oe = new OrderSendEvent(); oe.Success = true; oe.Trade = trade; onOrderSend(this, oe); e.StartCheckWhenOrderCompletedTimer(10000); } }
public void SendOrderToMarket(Trade trade) { if (trade.BuyorSell != Trade.BuySell.None) { double price = WebSettings.TradeApproach.AdjustPriceToStrategy(trade, HiSat.LivePrice.Bid, HiSat.LivePrice.Offer); ExcelLink.xlTradeOrder o = new xlTradeOrder() { BS = trade.BuyorSell, Price = price, Volume = trade.TradeVolume, Contract = trade.InstrumentName, }; try { if (ManualTrade.CanCloseTrade(trade)) { WebUpdate.SetManualTradeTrigger(false); e.Connect(); e.WriteOrder(o); e.Disconnect(); OrderSendEvent oe = new OrderSendEvent(); oe.Success = true; oe.Trade = trade; onOrderSend(this, oe); e.StartCheckWhenOrderCompletedTimer(10000); } } catch (Exception ex) { OrderSendEvent oe = new OrderSendEvent(); oe.Success = false; oe.Trade = trade; onOrderSend(this, oe); } } }