/// <summary>
 ///
 /// </summary>
 /// <param name="nearClearingPrice"></param>
 public void setNearClearingPrice(MamaPrice nearClearingPrice)
 {
     if (null != nearClearingPrice)
     {
         this.mNearClearingPrice = new MamaPrice(nearClearingPrice);
     }
 }
 /// <summary>
 ///
 /// </summary>
 /// <param name="insideMatchPrice"></param>
 public void setMatchPrice(MamaPrice insideMatchPrice)
 {
     if (null != insideMatchPrice)
     {
         this.mInsideMatchPrice = new MamaPrice(insideMatchPrice);
     }
 }
 /// <summary>
 ///
 /// </summary>
 /// <param name="lowIndicationPrice"></param>
 public void setLowIndicationPrice(MamaPrice lowIndicationPrice)
 {
     if (null != lowIndicationPrice)
     {
         this.mLowIndicationPrice = new MamaPrice(lowIndicationPrice);
     }
 }
 /// <summary>
 ///
 /// </summary>
 /// <param name="highIndicationPrice"></param>
 public void setHighIndicationPrice(MamaPrice highIndicationPrice)
 {
     if (null != highIndicationPrice)
     {
         this.mHighIndicationPrice = new MamaPrice(highIndicationPrice);
     }
 }
 /// <summary>
 ///
 /// </summary>
 /// <param name="indicationPrice"></param>
 public void setImbalancePrice(MamaPrice indicationPrice)
 {
     if (null != indicationPrice)
     {
         this.mIndicationPrice = new MamaPrice(indicationPrice);
     }
 }
 /// <summary>
 ///
 /// </summary>
 /// <param name="farClearingPrice"></param>
 public void setFarClearingPrice(MamaPrice farClearingPrice)
 {
     if (null != farClearingPrice)
     {
         this.mFarClearingPrice = new MamaPrice(farClearingPrice);
     }
 }
Exemple #7
0
        /// <summary>
        /// Check for equality between two price objects.
        /// </summary>
        public bool equal(MamaPrice rhs)
        {
            EnsurePeerCreated();
            bool result = NativeMethods.mamaPrice_equal(nativeHandle, rhs.nativeHandle) == 1;

            GC.KeepAlive(rhs);
            return(result);
        }
Exemple #8
0
        /// <summary>
        /// Compare two price objects.  The return value is negative if lhs
        /// is earlier than rhs, positive if lhs is greater than rhs and zero
        /// if the two are equal.
        /// </summary>
        public double compare(MamaPrice rhs)
        {
            EnsurePeerCreated();
            double result = NativeMethods.mamaPrice_compare(nativeHandle, rhs.nativeHandle);

            GC.KeepAlive(rhs);
            return(result);
        }
Exemple #9
0
        /// <summary>
        /// Subtract a price object.
        /// </summary>
        public void subtract(MamaPrice rhs)
        {
            EnsurePeerCreated();
            int code = NativeMethods.mamaPrice_subtract(nativeHandle, rhs.nativeHandle);

            CheckResultCode(code);
            GC.KeepAlive(rhs);
        }
 public void setAskLow(MamaPrice askLow)
 {
     if (askLow != null)
     {
         mAskLow.copy(askLow);
     }
     else
     {
         mAskLow.clear();
     }
 }
 public void setAskHigh(MamaPrice askHigh)
 {
     if (askHigh != null)
     {
         mAskHigh.copy(askHigh);
     }
     else
     {
         mAskHigh.clear();
     }
 }
 public void setAskPrevClosePrice(MamaPrice askPrevClosePrice)
 {
     if (askPrevClosePrice != null)
     {
         mAskPrevClosePrice.copy(askPrevClosePrice);
     }
     else
     {
         mAskPrevClosePrice.clear();
     }
 }
 public void setQuoteMidPrice(MamaPrice midPrice)
 {
     if (midPrice != null)
     {
         mMidPrice.copy(midPrice);
     }
     else
     {
         mMidPrice.clear();
     }
 }
 public void setBidLow(MamaPrice bidLow)
 {
     if (bidLow != null)
     {
         mBidLow.copy(bidLow);
     }
     else
     {
         mBidLow.clear();
     }
 }
 public void setOrigPrice(MamaPrice origPrice)
 {
     if (origPrice != null)
     {
         mOrigPrice.copy(origPrice);
     }
     else
     {
         mOrigPrice.clear();
     }
 }
 public void setBidPrevClosePrice(MamaPrice bidPrevClosePrice)
 {
     if (bidPrevClosePrice != null)
     {
         mBidPrevClosePrice.copy(bidPrevClosePrice);
     }
     else
     {
         mBidPrevClosePrice.clear();
     }
 }
 public void setIrregPrice(MamaPrice irregPrice)
 {
     if (irregPrice != null)
     {
         mIrregPrice.copy(irregPrice);
     }
     else
     {
         mIrregPrice.clear();
     }
 }
 public void setNetChange(MamaPrice netChange)
 {
     if (netChange != null)
     {
         mNetChange.copy(netChange);
     }
     else
     {
         mNetChange.clear();
     }
 }
 public void setLowPrice(MamaPrice lowPrice)
 {
     if (lowPrice != null)
     {
         mLowPrice.copy(lowPrice);
     }
     else
     {
         mLowPrice.clear();
     }
 }
 public void setHighPrice(MamaPrice highPrice)
 {
     if (highPrice != null)
     {
         mHighPrice.copy(highPrice);
     }
     else
     {
         mHighPrice.clear();
     }
 }
 public void setLastPrice(MamaPrice lastPrice)
 {
     if (lastPrice != null)
     {
         mLastPrice.copy(lastPrice);
     }
     else
     {
         mLastPrice.clear();
     }
 }
 public void setClosePrice(MamaPrice closePrice)
 {
     if (closePrice != null)
     {
         mClosePrice.copy(closePrice);
     }
     else
     {
         mClosePrice.clear();
     }
 }
 public void setCorrPrice(MamaPrice corrPrice)
 {
     if (corrPrice != null)
     {
         mCorrPrice.copy(corrPrice);
     }
     else
     {
         mCorrPrice.clear();
     }
 }
 public void setTradePrice(MamaPrice tradePrice)
 {
     if (tradePrice != null)
     {
         mTradePrice.copy(tradePrice);
     }
     else
     {
         mTradePrice.clear();
     }
 }
 public void setOnExchangeTradePrice(MamaPrice onExTradePrice)
 {
     if (onExTradePrice != null)
     {
         mOnExTradePrice.copy(onExTradePrice);
     }
     else
     {
         mOnExTradePrice.clear();
     }
 }
 public void setPrevClosePrice(MamaPrice prevClosePrice)
 {
     if (prevClosePrice != null)
     {
         mPrevClosePrice.copy(prevClosePrice);
     }
     else
     {
         mPrevClosePrice.clear();
     }
 }
 public void setBidHigh(MamaPrice bidHigh)
 {
     if (bidHigh != null)
     {
         mBidHigh.copy(bidHigh);
     }
     else
     {
         mBidHigh.clear();
     }
 }
 public void setAdjPrevClose(MamaPrice adjPrevClose)
 {
     if (adjPrevClose != null)
     {
         mAdjPrevClose.copy(adjPrevClose);
     }
     else
     {
         mAdjPrevClose.clear();
     }
 }
 public void setSettlePrice(MamaPrice settlePrice)
 {
     if (settlePrice != null)
     {
         mSettlePrice.copy(settlePrice);
     }
     else
     {
         mSettlePrice.clear();
     }
 }
 public void setOpenPrice(MamaPrice openPrice)
 {
     if (openPrice != null)
     {
         mOpenPrice.copy(openPrice);
     }
     else
     {
         mOpenPrice.clear();
     }
 }
    	public MamdaConcreteQuoteRecap ()
		{
			mSymbol					= null;
			mPartId					= null;
			mSrcTime				= DateTime.MinValue;
			mActTime				= DateTime.MinValue;
			mLineTime				= DateTime.MinValue;
			mSendTime				= DateTime.MinValue;
			mPubId					= null;
			mBidPrice				= new MamaPrice();
			mBidSize				= 0;
			mBidDepth				= 0;
			mBidPartId				= null;
			mBidClosePrice			= new MamaPrice();
			mBidCloseDate			= DateTime.MinValue;
			mBidPrevClosePrice		= new MamaPrice();
			mBidPrevCloseDate		= DateTime.MinValue;
			mBidHigh				= new MamaPrice();
			mBidLow					= new MamaPrice();
			mAskPrice				= new MamaPrice();
			mMidPrice				= new MamaPrice();
			mAskSize				= 0;
			mAskDepth				= 0;
			mAskPartId          	= null;
			mAskClosePrice			= new MamaPrice();
			mAskCloseDate			= DateTime.MinValue;
			mAskPrevClosePrice		= new MamaPrice();
			mAskPrevCloseDate		= DateTime.MinValue;
			mAskHigh				= new MamaPrice();
			mAskLow					= new MamaPrice();
			mEventSeqNum			= 0;
			mEventTime				= DateTime.MinValue;
            mQuoteDate				= DateTime.MinValue;
			mQuoteQualStr			= null;
			mQuoteQualNative		= null;
			mTmpQuoteCount			= 0;
			mQuoteCount				= 0;
			mShortSaleBidTick		= '\0';
            mShortSaleCircuitBreaker = ' ';
            
            mAskTime				= DateTime.MinValue;
            mBidTime				= DateTime.MinValue;
            mAskIndicator			= null;
            mBidIndicator			= null;
            mAskUpdateCount			= 0;
            mBidUpdateCount			= 0;
            mAskYield				= 0;
            mBidYield				= 0;
		}
        /// <summary>
        /// Construct a price level object which is a shallow copy of
        /// the original.
        /// </summary>
        /// <param name="copy">The MamdaOrderBookPriceLevel to copy.</param>
        public MamdaOrderBookPriceLevel(MamdaOrderBookPriceLevel copy)
        {
            mPrice      = copy.mPrice;
            mSize       = copy.mSize;
            mSizeChange = copy.mSizeChange;
            mNumEntries = copy.mNumEntries;
            mSide       = copy.mSide;
            mAction     = copy.mAction;
            mTime       = copy.mTime;

            for (int i = 0; i < copy.mEntries.Count; i++)
            {
                MamdaOrderBookEntry entry = new MamdaOrderBookEntry(
                    (MamdaOrderBookEntry)copy.mEntries[i]);
                mEntries.Add(entry);
            }
        }
        private void CheckPriceArray(MamaPrice[] prices, int numberPrices, int offset)
        {
            // Verify that the array has the correct number of messages
            if (prices.Length != numberPrices)
            {
                throw new ArgumentOutOfRangeException("numberPrices");
            }

            // Chech each item in the array
            for (int nextPrice = 0; nextPrice < numberPrices; nextPrice++)
            {
                // Verify that it has the correct value
                if(prices[nextPrice].getValue() != (nextPrice + offset))                
                {
                    throw new InvalidOperationException();
                }
            }
        }
		/// <summary>
		/// 
		/// </summary>
		/// <param name="farClearingPrice"></param>
		public void setFarClearingPrice(MamaPrice farClearingPrice) 
		{
			if (null != farClearingPrice)
				this.mFarClearingPrice = new MamaPrice(farClearingPrice);
		}
        public void UpdateVectorPriceInvalidArgument()
        {
            // Create an empty array
            MamaPrice[] emptyArray = new MamaPrice[0];

            // Call the function with an invalid array
            m_msg.updateVectorPrice(null, 1, emptyArray);
        }
		/// <summary>
		/// 
		/// </summary>
		/// <param name="insideMatchPrice"></param>
		public void setMatchPrice(MamaPrice insideMatchPrice) 
		{
			if (null != insideMatchPrice)
				this.mInsideMatchPrice = new MamaPrice(insideMatchPrice);
		}
		/// <summary>
		/// 
		/// </summary>
		/// <param name="highIndicationPrice"></param>
		public void setHighIndicationPrice(MamaPrice highIndicationPrice) 
		{
			if (null != highIndicationPrice)
				this.mHighIndicationPrice = new MamaPrice(highIndicationPrice);
		}
Exemple #38
0
        /// <summary>
        /// Add a MAMA price field.
        /// </summary>
        public void addPrice(
			string name,
			ushort fid,
			MamaPrice val)
        {
            EnsurePeerCreated();
            IntPtr put = val.NativeHandle;
            int code = NativeMethods.mamaMsg_addPrice(nativeHandle, name, fid, put);
            CheckResultCode(code);
        }
        public MamdaConcreteTradeRecap ()
        {
            mSymbol            = null;
            mPartId            = null;
            mSrcTime           = DateTime.MinValue;
            mActTime           = DateTime.MinValue;
            mLineTime          = DateTime.MinValue;
            mSendTime          = DateTime.MinValue;
            mPubId             = null;
            mLastPrice         = new MamaPrice();
            mLastVolume        = 0;
            mLastPartId        = null;
            mTradeId           = null;
            mOrigTradeId       = null;
            mCorrTradeId       = null;
            mLastTime          = DateTime.MinValue;
            mTradeDate         = DateTime.MinValue;
            mIrregPrice        = new MamaPrice();
            mIrregVolume       = 0;
            mIrregPartId       = null;
            mIrregTime         = DateTime.MinValue;
            mAccVolume         = 0;
            mOffExAccVolume    = 0;
            mOnExAccVolume     = 0;
            mNetChange         = new MamaPrice();
            mPctChange         = 0.0;
            mTradeDirection    = null;          
            mSide              = null;
            mOpenPrice         = new MamaPrice();
            mHighPrice         = new MamaPrice();
            mLowPrice          = new MamaPrice();
            mClosePrice        = new MamaPrice();
            mPrevClosePrice    = new MamaPrice();
            mPrevCloseDate     = DateTime.MinValue;
            mAdjPrevClose      = new MamaPrice();
            mBlockCount        = 0;
            mBlockVolume       = 0;
            mVwap              = 0.0;
            mOffExVwap         = 0.0;
            mOnExVwap          = 0.0;
            mTotalValue        = 0.0;
            mOffExTotalValue   = 0.0;
            mOnExTotalValue    = 0.0;
            mStdDev            = 0.0;
            mStdDevSum         = 0.0;
            mStdDevSumSquares  = 0.0;
            mOrderId           = 0;
            mSettlePrice       = new MamaPrice();
            mSettleDate        = DateTime.MinValue;
            mShortSaleCircuitBreaker = ' ';
            mEventSeqNum       = 0;
            mEventTime         = DateTime.MinValue;

            mTradePrice        = new MamaPrice();
            mTradeVolume       = 0;
            mTradePartId       = null;
            mTradeQualStr      = null;
            mTradeQualNativeStr = null;
            mTradeCondStr      = null;
            mSellersSaleDays   = 0;
            mStopStockInd      = '\0';

            mTradeExecVenue    = null;
            mOffExTradePrice   = new MamaPrice();
            mOnExTradePrice    = new MamaPrice();
            
            mTradeCount        = 0;
            mTradeUnits        = null;
            mLastSeqNum        = 0;
            mHighSeqNum        = 0;
            mLowSeqNum         = 0;
            mTotalVolumeSeqNum = 0;
            mCurrencyCode      = null;

            mOrigSeqNum        = 0;
            mOrigPrice         = new MamaPrice();
            mOrigVolume        = 0;
            mOrigPartId        = null;
            mOrigQualStr       = null;
            mOrigQualNativeStr = null;
            mOrigCondStr       = null;
            mOrigSellersSaleDays = 0;
            mOrigStopStockInd  = '\0';

            mCorrPrice         = new MamaPrice();
            mCorrVolume        = 0;
            mCorrPartId        = null;
            mCorrQualStr       = null;
            mCorrQualNativeStr = null;
            mCorrCondStr       = null;
            mCorrSellersSaleDays = 0;
            mCorrStopStockInd  = '\0';
            mCancelTime        = DateTime.MinValue;
            mIsIrregular       = false;
            mIsCancel          = false;
        }
Exemple #40
0
        /// <summary>
        /// Try to get a vector of prices.
        /// </summary>
        /// <param name="fid">
        /// The field id, can be 0 if the name is specified and field names are turned on.
        /// </param>
        /// <param name="name">
        /// The field name, can be null or blank if the field Id is supplied.
        /// </param>
        /// <param name="result">
        /// To return the array of prices.
        /// </param>
        /// <returns>
        /// false if the field could not be found. Note that true is returned if an empty
        /// array is returned.
        /// </returns>
        public bool tryVectorPrice(
            string name,
            ushort fid,
            ref MamaPrice[] result)
        {
            // Returns
            bool ret = false;

            // The following arraylist wil contain all of the prices
            ArrayList retPrices = new ArrayList();

            // Enusre that the native message has been created
            EnsurePeerCreated();

            // Get the strings from the native message
            IntPtr globalMemoryPointer = IntPtr.Zero;
            uint numberElements = 0;
            int code = NativeMethods.mamaMsg_getVectorPrice(nativeHandle, name, fid, ref globalMemoryPointer, ref numberElements);
            if ((MamaStatus.mamaStatus)code == MamaStatus.mamaStatus.MAMA_STATUS_OK)
            {
                // Only continue if there are actually any prices in the array
                if (numberElements > 0)
                {
                    // Create a new array of pointers to hold the native price pointers
                    IntPtr[] nativePriceArray = new IntPtr[numberElements];

                    // Copy the entire array over
                    Marshal.Copy(globalMemoryPointer, nativePriceArray, 0, (int)numberElements);

                    // Extract each price, one at a time
                    foreach (IntPtr nextNativePrice in nativePriceArray)
                    {
                        retPrices.Add(new MamaPrice(nextNativePrice));
                    }
                }

                // The function has succeeded even if there were 0 strings
                ret = true;
            }

            // Return the array of strings
            result = (MamaPrice[])retPrices.ToArray(typeof(MamaPrice));

            return ret;
        }
Exemple #41
0
        /// <summary>
        /// Update an array of prices.
        /// </summary>
        /// <param name="fid">
        /// The field id, can be 0 if the name is specified and field names are turned on.
        /// </param>
        /// <param name="name">
        /// The field name, can be null or blank if the field Id is supplied.
        /// </param>
        /// <param name="val">
        /// The array of messages to add.
        /// </param>
        /// <exception cref="ArgumentNullException">
        /// Throw if the message array is null.
        /// </exception>
        /// <exception cref="ArgumentOutOfRangeException">
        /// Throw if there are no items in the message array.
        /// </exception>
        public void updateVectorPrice(
            string name,
            ushort fid,
            MamaPrice[] val)
        {
            // Check that the arguments are valid
            if (val == null)
            {
                throw new ArgumentNullException("val");
            }

            // Check the array length
            int numberPrices = val.Length;
            if (numberPrices < 1)
            {
                throw new ArgumentOutOfRangeException("val");
            }

            // Verify that the native message has been created
            EnsurePeerCreated();

            // Allocate memory on the global native heap to pass the messages to the native layer
            IntPtr globalHeapMemory = Marshal.AllocHGlobal(numberPrices * IntPtr.Size);
            try
            {
                // Create a new array to hold all of the native handles
                IntPtr[] nativeHandleArray = new IntPtr[numberPrices];

                // Copy the prices over
                for (int nextItem = 0; nextItem < numberPrices; nextItem++)
                {
                    nativeHandleArray[nextItem] = val[nextItem].NativeHandle;
                }

                // Copy this to the global heap
                Marshal.Copy(nativeHandleArray, 0, globalHeapMemory, numberPrices);

                // Call the native function
                int code = NativeMethods.mamaMsg_updateVectorPrice(nativeHandle, name, fid, globalHeapMemory, numberPrices);
                CheckResultCode(code);
            }

            finally
            {
                // Free the memory on the global heap now that the function has completed
                Marshal.FreeHGlobal(globalHeapMemory);
            }
        }
 public void setCorrPrice(MamaPrice corrPrice)
 {
     if (corrPrice != null)
         mCorrPrice.copy(corrPrice);
     else
         mCorrPrice.clear();
 }
Exemple #43
0
        /// <summary>
        /// Try to get a vector of prices.
        /// </summary>
        public bool tryVectorPrice(
			MamaFieldDescriptor descriptor, 
			ref MamaPrice[] result)
        {
            return tryVectorPrice (null, (ushort)descriptor.getFid(), ref result);
        }
        private MamaPrice[] InitialisePriceArray(int numberPrices, int offset)
        {
            // Create the array of messages
            MamaPrice[] ret = new MamaPrice[numberPrices];
            for (int nextPrice = 0; nextPrice < numberPrices; nextPrice++)
            {
                // Allocate the price
                ret[nextPrice] = new MamaPrice();

                // Add a field
                ret[nextPrice].setValue((nextPrice + offset));
            }

            return ret;
        }
		/// <summary>
		/// 
		/// </summary>
		/// <param name="lowIndicationPrice"></param>
		public void setLowIndicationPrice(MamaPrice lowIndicationPrice) 
		{
			if (null != lowIndicationPrice)
				this.mLowIndicationPrice = new MamaPrice(lowIndicationPrice);
		}
Exemple #46
0
        /// <summary>
        /// Get a MAMA price field.
        /// </summary>
        public MamaPrice getPrice(
			string name,
			ushort fid,
			MamaPrice valueIfMissing)
        {
            if (price_ == null)
            {
                price_ = new MamaPrice ();
                price_.SelfManageLifeTime(false);
            }
            if (tryPrice (name, fid, ref price_))
                return price_;
            else
                return valueIfMissing;
        }
Exemple #47
0
        /// <summary>
        /// Get a MAMA price field.
        /// </summary>
        public MamaPrice getPrice(
			string name,
			ushort fid)
        {
            EnsurePeerCreated();
            if (price_ == null)
            {
                price_ = new MamaPrice ();
                price_.SelfManageLifeTime(false);
            }
            int code = NativeMethods.mamaMsg_getPrice(nativeHandle, name, fid, price_.NativeHandle);
            MamaStatus.mamaStatus status = (MamaStatus.mamaStatus)code;
            if (status != MamaStatus.mamaStatus.MAMA_STATUS_OK)
            {
                throw new MamaException(status);
            }

            return price_;
        }
		/// <summary>
		/// 
		/// </summary>
		/// <param name="nearClearingPrice"></param>
		public void setNearClearingPrice(MamaPrice nearClearingPrice)
		{
			if (null != nearClearingPrice)
				this.mNearClearingPrice = new MamaPrice(nearClearingPrice);
		}
 public void setOpenPrice(MamaPrice openPrice)
 {
     if (openPrice != null)
         mOpenPrice.copy(openPrice);
     else
         mOpenPrice.clear();
 }
 public void setOrigPrice(MamaPrice origPrice)
 {
     if (origPrice != null) 
         mOrigPrice.copy(origPrice);
     else
         mOrigPrice.clear();
 }
 public void setLowPrice(MamaPrice lowPrice)
 {
     if (lowPrice != null)
         mLowPrice.copy(lowPrice);
     else
         mLowPrice.clear();
 }
 public void setNetChange(MamaPrice netChange)
 {
     if (netChange != null)
         mNetChange.copy(netChange);
     else
         mNetChange.clear();
 }
 public void setLastPrice(MamaPrice lastPrice)
 {
     if (lastPrice != null)
         mLastPrice.copy(lastPrice);
     else
         mLastPrice.clear();
 }
 public void setIrregPrice(MamaPrice irregPrice)
 {
     if (irregPrice != null)
         mIrregPrice.copy(irregPrice);
     else
         mIrregPrice.clear();
 }
Exemple #55
0
        /// <summary>
        /// Get a vector of prices.
        /// </summary>
        public MamaPrice[] getVectorPrice(
			string name,
			ushort fid,
			MamaPrice[] valueIfMissing)
        {
            MamaPrice[] result = null;
            if (tryVectorPrice (name, fid, ref result))
                return result;
            else
                return valueIfMissing;
        }
 public void setHighPrice(MamaPrice highPrice)
 {
     if (highPrice != null)
         mHighPrice.copy(highPrice);
     else
         mHighPrice.clear();
 }
Exemple #57
0
        /// <summary>
        /// Get a vector of prices.
        /// </summary>
        public MamaPrice[] getVectorPrice(
			MamaFieldDescriptor descriptor,
			MamaPrice[] valueIfMissing)
        {
            return getVectorPrice (null, (ushort)descriptor.getFid(), valueIfMissing);
        }
Exemple #58
0
        /// <summary>
        /// Try to get a MAMA price field.
        /// </summary>
        public bool tryPrice(
			string name,
			ushort fid,
			MamaPrice result)
        {
            EnsurePeerCreated();

            int code = NativeMethods.mamaMsg_getPrice(nativeHandle, name, fid, result.NativeHandle);
            if (CheckResultCodeIgnoreNotFound(code) != MamaStatus.mamaStatus.MAMA_STATUS_OK)
            {
                return false;
            }

            return true;
        }
		/// <summary>
		/// 
		/// </summary>
		/// <param name="indicationPrice"></param>
		public void setImbalancePrice(MamaPrice indicationPrice) 
		{
			if (null != indicationPrice)
				this.mIndicationPrice = new MamaPrice(indicationPrice);
		}
 public void setClosePrice(MamaPrice closePrice)
 {
     if (closePrice != null)
         mClosePrice.copy(closePrice);
     else
         mClosePrice.clear();
 }