private void SetCorridorExitImpl(Trade trade, TradeLevelBy buy, TradeLevelBy sell) { if (trade.IsBuy) { var level = TradeLevelFuncs[buy](); if (InPips(level - trade.Open) > 5) { LevelBuyCloseBy = buy; } } else { var level = TradeLevelFuncs[TradeLevelBy.PriceLow0](); if (InPips(-level + trade.Open) > 5) { LevelSellCloseBy = TradeLevelBy.PriceLow0; } } }
public void SetTradeLevel(TradeLevelBy level, bool isBuy) { Action setLevels = () => CorridorStats.Rates.Where(r => !r.PriceAvg1.IsNaN()) .Take(1) .ForEach(rate => { IsTradingActive = false; if (isBuy) { LevelBuyBy = level; BuyLevel.Rate = TradeLevelFuncs[level](); } else { LevelSellBy = level; SellLevel.Rate = TradeLevelFuncs[level](); } RaiseShowChart(); }); }
TradeOpenAction SetCorridorExit(TradeLevelBy buy, TradeLevelBy sell) { return(trade => Task.Delay(100).ContinueWith(_ => SetCorridorExitImpl(trade, buy, sell))); }