public void TradeCorridorTurnOnIfManual(TradeDirections tds)
        {
            var bsl = new[] { BuyLevel, SellLevel };

            if (tds.HasNone())
            {
                if (!IsTurnOnOnly)
                {
                    bsl.ForEach(sr => sr.CanTrade = false);
                }
            }
            else if (CanTriggerTradeDirection() && !TradeConditionsHaveTurnOff())
            {
                var                  cps         = new[] { CurrentEnterPrice(true), CurrentEnterPrice(false) };
                var                  canTradeAny = bsl.Any(sr => sr.CanTrade);
                Func <bool>          isIn        = () => cps.All(cp => cp.Between(bsl[1].Rate, bsl[0].Rate));
                Func <SuppRes, int>  tradeCount  = sr => sr.IsBuy ? tds.HasUp() ? 0 : 1 : tds.HasDown() ? 0 : 1;
                Func <SuppRes, bool> canTrade    = sr => sr.IsBuy ? tds.HasUp() : tds.HasDown();
                if (!canTradeAny && bsl.All(sr => sr.InManual /* && isIn()*/))
                {
                    bsl
                    .Where(sr => sr.HasRateCanTradeChanged)
                    .ForEach(sr => {
                        sr.ResetPricePosition();
                        sr.CanTrade    = canTrade(sr);
                        sr.TradesCount = TradeCountStart;
                    });
                }
            }
        }
Example #2
0
 public static bool IsUpper(this TradeDirections td)
 {
     return(td == TradeDirections.Upper);
 }
Example #3
0
 public static bool IsDowner(this TradeDirections td)
 {
     return(td == TradeDirections.Downer);
 }
Example #4
0
 public static bool IsAuto(this TradeDirections td)
 {
     return(td.HasFlag(TradeDirections.Auto));
 }
Example #5
0
 public static bool HasDown(this TradeDirections td)
 {
     return(td.HasFlag(TradeDirections.Down));
 }
Example #6
0
 public static bool HasUp(this TradeDirections td)
 {
     return(td.HasFlag(TradeDirections.Up));
 }
Example #7
0
 public static bool HasAny(this TradeDirections td)
 {
     return(td.HasUp() || td.HasDown());
 }
Example #8
0
 public static bool HasNone(this TradeDirections td)
 {
     return(!td.HasUp() && !td.HasDown());
 }