Example #1
0
 public void SetEnterPrices(RawMarketData spotStartRmd,
     RawMarketData futureStartRmd, TradingDirection spotDirection)
 {
     if (spotDirection == TradingDirection.Long)
     {
         LongEnterPrice = spotStartRmd.AskPrice1;
         ShortEnterPrice = futureStartRmd.BidPrice1;
     }
     else
     {
         LongEnterPrice = futureStartRmd.AskPrice1;
         ShortEnterPrice = spotStartRmd.BidPrice1;
     }
 }
Example #2
0
            public void UpdateExitNowPnL(RawMarketData spotRmd,
                RawMarketData futureRmd, TradingDirection spotDirection)
            {
                double longExitPrice = 0;
                double shortExitPrice = 0;

                if (spotDirection == TradingDirection.Long)
                {
                    longExitPrice = spotRmd.BidPrice1;
                    shortExitPrice = futureRmd.AskPrice1;
                }
                else
                {
                    longExitPrice = futureRmd.BidPrice1;
                    shortExitPrice = spotRmd.AskPrice1;
                }
                double exitNowPnL = ExitNowPnL(longExitPrice, shortExitPrice);

                if (exitNowPnL > this.MaxPnL)
                {
                    this.MaxPnL = exitNowPnL;
                    this.MaxDateTime = spotRmd.LastUpdatedTime;
                }

                if (exitNowPnL < this.MinPnL)
                {
                    this.MinPnL = exitNowPnL;
                }
            }
Example #3
0
 Boolean IsOverSpotBidAskSpread(RawMarketData rmd)
 {
     const double spotBidAskSpreadMax = 6;
     double spread = (rmd.AskPrice1 - rmd.BidPrice1);
     if (spread > spotBidAskSpreadMax)
     {
         return true;
     }
     return false;
 }