Example #1
0
        //After CLose time set hard stop losses at last position entry price with Buffer
        override protected bool ExcuteRuleLogic()
        {
            if (MarketInfo.IsBotTradingOpen())
            {
                //SellLimitOrdersTrader.SetBollingerBandDefault(Bot.MarketData.GetSeries());

                //Price moves TriggerOrderPlacementPips UP from open then look to set SELL LimitOrders
                if (BotState.OpenPrice + SellLimitOrdersTrader.EntryTriggerOrderPlacementPips < Bot.Symbol.Bid)
                {
                    if (SellLimitOrdersTrader.IsOutSideBollingerBand())
                    {
                        SellLimitOrdersTrader.PlaceSellLimitOrders();
                        BotState.OrdersPlaced = true;
                        ExecuteOnceOnly();
                        return(true);
                    }
                }
                //Price moves 5pts DOWN from open then look to set BUY LimitOrders
                else if (BotState.OpenPrice - BuyLimitOrdersTrader.EntryTriggerOrderPlacementPips > Bot.Symbol.Ask)
                {
                    if (BuyLimitOrdersTrader.IsOutSideBollingerBand())
                    {
                        BuyLimitOrdersTrader.PlaceBuyLimitOrders();
                        BotState.OrdersPlaced = true;
                        ExecuteOnceOnly();
                        return(true);
                    }
                }
            }
            return(false);
        }
 //If it is after CloseTime and remaining pending orders have not been closed then close all pending orders
 override protected bool ExcuteRuleLogic()
 {
     if (!BotState.IsPendingOrdersClosed && BotState.IsAfterCloseTime)
     {
         SellLimitOrdersTrader.CancelAllPendingOrders();
         BotState.IsPendingOrdersClosed = true;
         ExecuteOnceOnly();
         return(true);
     }
     return(false);
 }
Example #3
0
 //Get the Opening price for the trading period
 override protected bool ExcuteRuleLogic()
 {
     if (BotState.IsOpenTime)
     {
         //Price moves TriggerOrderPlacementPips UP from open then look to set SELL LimitOrders
         if (BotState.OpenPrice + SellLimitOrdersTrader.EntryTriggerOrderPlacementPips < Bot.Symbol.Bid)
         {
             SellLimitOrdersTrader.PlaceSellLimitOrders();
             BotState.OrdersPlaced = true;
             ExecuteOnceOnly();
             return(true);
         }
         //Price moves 5pts DOWN from open then look to set BUY LimitOrders
         else if (BotState.OpenPrice - BuyLimitOrdersTrader.EntryTriggerOrderPlacementPips > Bot.Symbol.Ask)
         {
             BuyLimitOrdersTrader.PlaceBuyLimitOrders();
             BotState.OrdersPlaced = true;
             ExecuteOnceOnly();
             return(true);
         }
     }
     return(false);
 }
Example #4
0
 override protected void Reset()
 {
     // reset any botstate variables to the state prior to executing rule
     SellLimitOrdersTrader.ResetBollingerBand();
     BuyLimitOrdersTrader.ResetBollingerBand();
 }