예제 #1
0
        void TestEnterSweeperChance_TwoArb(MonitorEnter_BondArb_Accessor me)
        {
            // 두 pair 모두 0으로 값을 설정한 후 테스트한다.
            BondPair housingBondPair = null;
            RawMarketData rmdHousingNormal = null;
            RawMarketData rmdHousingSmall = null;

            SetHousingBondPairAndRmds(ref housingBondPair, ref rmdHousingNormal, ref rmdHousingSmall);

            BondPair doosanBondPair = null;
            RawMarketData rmdDoosanNormal = null;
            RawMarketData rmdDoosanRetail = null;

            SetCreditBondPairAndRmds(ref doosanBondPair, ref rmdDoosanNormal, ref rmdDoosanRetail);

            SetAsZeroRMD(ref rmdHousingNormal);
            SetAsZeroRMD(ref rmdHousingSmall);
            SetAsZeroRMD(ref rmdDoosanNormal);
            SetAsZeroRMD(ref rmdDoosanRetail);

            me.BeforeEnterSweeperChance();
            Assert.AreEqual(false, me.EnterSweeperChance(100));
            Assert.AreEqual(me._node.GetSweeperCollection().GetTotalSweeperCount(), 0);

            // 두개 모두 arb가능
            SetImmeLongPart(rmdDoosanNormal, 100 * CommonConst._1_000_000, 5000);
            SetImmeShortPart(rmdDoosanRetail, 100 * CommonConst._1_000_000, 15000);
            SetImmeLongPart(rmdHousingNormal, 100 * CommonConst._1_000_000, 5000);
            SetImmeShortPart(rmdHousingSmall, 100 * CommonConst._1_000_000, 15000);

            me.BeforeEnterSweeperChance();
            Assert.AreEqual(true, me.EnterSweeperChance(100));
            Assert.AreEqual(me._node.GetSweeperCollection().GetTotalSweeperCount(), 2);
            Unittest_BondArbUtil.ClearBondAccount(me._bondAccount);
            Unittest_BondArbUtil.ClearSweeperCollection(me);
        }
예제 #2
0
        void TestEnterSweeperChance_NoArb(MonitorEnter_BondArb_Accessor me)
        {
            Assert.AreEqual(POrderBidAskCountManager.Ins().IsDirty(), false);
            Assert.AreEqual(POrder_UnittestUtil.IsPOrderCommonResourceDirty(), false);
            // 1. 두 pair 모두 0이므로 no arb
            BondPair housingBondPair = null;
            RawMarketData rmdHousingNormal = null;
            RawMarketData rmdHousingSmall = null;

            SetHousingBondPairAndRmds(ref housingBondPair, ref rmdHousingNormal, ref rmdHousingSmall);

            BondPair doosanBondPair = null;
            RawMarketData rmdDoosanNormal = null;
            RawMarketData rmdDoosanRetail = null;

            SetCreditBondPairAndRmds(ref doosanBondPair, ref rmdDoosanNormal, ref rmdDoosanRetail);

            SetAsZeroRMD(ref rmdHousingNormal);
            SetAsZeroRMD(ref rmdHousingSmall);
            SetAsZeroRMD(ref rmdDoosanNormal);
            SetAsZeroRMD(ref rmdDoosanRetail);

            me.BeforeEnterSweeperChance();
            Assert.AreEqual(false, me.EnterSweeperChance(100));
            Assert.AreEqual(me._node.GetSweeperCollection().GetTotalSweeperCount(), 0);

            // 2. arb이 성립하는지 본 뒤 EnterSweeperChance(0)이므로 no arb
            SetImmeLongPart(rmdDoosanNormal, 100 * CommonConst._1_000, 5000);
            SetImmeShortPart(rmdDoosanRetail, 100 * CommonConst._1_000, 15000);
            me.BeforeEnterSweeperChance();
            Assert.AreEqual(true, me.EnterSweeperChance(100));
            Assert.AreEqual(me._node.GetSweeperCollection().GetTotalSweeperCount(), 1);
            Unittest_BondArbUtil.ClearBondAccount(me._bondAccount);
            Unittest_BondArbUtil.ClearSweeperCollection(me);
            me.BeforeEnterSweeperChance();
            const int kZero = 0;
            Assert.AreEqual(false, me.EnterSweeperChance(kZero));
            Assert.AreEqual(me._node.GetSweeperCollection().GetTotalSweeperCount(), 0);
        }