public virtual void Execute(IContext ctx, ISecurity source) { int barsCount = source.Bars.Count; for (int i = 0; (i < barsCount); i++) { IPosition le = source.Positions.GetLastActiveForSignal("LE"); if (le == null) { if (/*условия для лонга*/) source.Positions.BuyAtMarket(i, 1.0, "LE"); } else { le.CloseAtStop(i + 1, /*цена стопа*/, "LX"); } IPosition se = source.Positions.GetLastActiveForSignal("SE"); if (se == null) { if (/*условия для шорта*/) source.Positions.SellAtMarket(i, 1.0, "SE"); } else { se.CloseAtStop(i + 1, /*цена стопа*/, "SX"); } } }