protected override int Start() { if (!isInitialize) { Init(); } // should introduce event and directly buy or sell // should create new object for decision making. while (true) { RefreshRates(); beat.Add(new Quote(Bid, Ask)); PrintReport(beat); if (beat.LastDelta >= threshold) { if (IsNoOpenOrder()) { Console.WriteLine("No Open Order"); order = Buy(1); order.ChangeStopLossInPoints(100); order.ChangeTakeProfitInPoints(20); } else { if (IsAlreadyOpenBuy()) return 1; order.Close(); order = Buy(1); order.ChangeStopLossInPoints(100); order.ChangeTakeProfitInPoints(20); } } else if (Math.Abs(beat.LastDelta) >= threshold) { if (IsNoOpenOrder()) { Console.WriteLine("No Open Order"); order = Sell(1); order.ChangeStopLossInPoints(100); order.ChangeTakeProfitInPoints(20); } else { if (IsAlreadyOpenSell()) return 1; order.Close(); order = Sell(1); order.ChangeStopLossInPoints(100); order.ChangeTakeProfitInPoints(20); } } Thread.Sleep(500); } return 1; }