Example #1
0
        /// <summary>
        /// "20170607,8401151#DnWide#10-16-3-5,11521459#UpTight#10-16-3-5",
        /// </summary>
        /// <param name="line"></param>
        /// <param name="key"></param>
        /// <returns></returns>
        protected Dictionary <int, PriceAction> Dep_ReadSpvPRLine(string line, out string key)
        {
            int prt_lev = 1;

            string[] line_pa = line.Split(',');
            Print("line_pa=" + line_pa[0] + "," + line_pa[1]);
            Dictionary <int, PriceAction> mkt_ctxs = new Dictionary <int, PriceAction>();

            for (int i = 1; i < line_pa.Length; i++)
            {
                Print("line_pa[" + i + "]=" + line_pa[i]);
                int t, minUp, maxUp, minDn, maxDn;
                TraceMessage(this.Name, prt_lev);
                string[] mkt_ctx = line_pa[i].Split('#');
                TraceMessage(this.Name, prt_lev);
                int.TryParse(mkt_ctx[0], out t);                //parse the time of the PA;
                TraceMessage(this.Name, prt_lev);
                //string[] pa = mkt_ctx[1].Split('#');
                PriceActionType pat = (PriceActionType)Enum.Parse(typeof(PriceActionType), mkt_ctx[1]);                //parse the PA type;
                TraceMessage(this.Name, prt_lev);
                string[] v = mkt_ctx[2].Split('-');
                TraceMessage(this.Name, prt_lev);
                int.TryParse(v[0], out minUp);
                int.TryParse(v[1], out maxUp);
                int.TryParse(v[2], out minDn);
                int.TryParse(v[3], out maxDn);
                TraceMessage(this.Name, prt_lev);
                mkt_ctxs.Add(t, new PriceAction(pat, new Volatility(minUp, maxUp, minDn, maxDn)));
            }
//				if(mkt_ctxs.Count > 0) {
//					Dict_SpvPR.Add(line_pa[0], mkt_ctxs);
//				}
            key = line_pa[0];
            return(mkt_ctxs);
        }
//        public int minUpTicks;
//        public int maxUpTicks;
//        public int minDownTicks;
//        public int maxDownTicks;

        public PriceAction(PriceActionType pat)
        {
            this.paType = pat;
//            this.minUpTicks = min_UpTicks;
//            this.maxUpTicks = max_UpTicks;
//            this.minDownTicks = min_DnTicks;
//            this.maxDownTicks = max_DnTicks;
        }
Example #3
0
        /// <summary>
        /// Add the price ation type that allowed for trading
        /// </summary>
        /// <param name="pat"></param>
        public void AddPriceActionTypeAllowed(PriceActionType pat)
        {
            if (!priceAction_Allowed.Contains(pat))
            {
                priceAction_Allowed.Add(pat);
            }
            int p = (int)PriceActionType.DnTight;

            Print("PriceActionType.DnTight=" + p);
        }
Example #4
0
        /// <summary>
        /// "20170607,8401151#DnWide#10-16-3-5,11521459#UpTight#10-16-3-5",
        /// </summary>
        /// <param name="line"></param>
        /// <param name="key"></param>
        /// <returns></returns>
        protected List <MarketContext> ReadSpvPRLine(string line, out string key)
        {
            int prt_lev = 1;

            string[] line_pa = line.Split(',');
            Print("line_pa=" + line_pa[0] + "," + line_pa[1]);
            List <MarketContext> mkt_ctxs = new List <MarketContext>();

            for (int i = 1; i < line_pa.Length; i++)
            {
                Print("line_pa[" + i + "]=" + line_pa[i]);
                int t, minUp, maxUp, minDn, maxDn;
                TraceMessage(this.Name, prt_lev);
                string[] mkt_ctx = line_pa[i].Split('#');
                TraceMessage(this.Name, prt_lev);
                int.TryParse(mkt_ctx[0], out t);                //parse the time of the PA;
                TraceMessage(this.Name, prt_lev);
                //string[] pa = mkt_ctx[1].Split('#');
                PriceActionType pat = (PriceActionType)Enum.Parse(typeof(PriceActionType), mkt_ctx[1]);                //parse the PA type;
                TraceMessage(this.Name, prt_lev);
                string[] v = mkt_ctx[2].Split('-');
                TraceMessage(this.Name, prt_lev);
                int.TryParse(v[0], out minUp);
                int.TryParse(v[1], out maxUp);
                int.TryParse(v[2], out minDn);
                int.TryParse(v[3], out maxDn);
                TraceMessage(this.Name, prt_lev);
                Print("t,pat,minUp,maxUp,minDn,maxDn=" +
                      t + "," + pat + "," + minUp + "," + maxUp + "," + minDn + "," + maxDn);

                mkt_ctxs.Add(new MarketContext(t, new PriceAction(pat, new Volatility(minUp, maxUp, minDn, maxDn))));
            }
//				if(mkt_ctxs.Count > 0) {
//					Dict_SpvPR.Add(line_pa[0], mkt_ctxs);
//				}
            key = line_pa[0];
            TraceMessage(this.Name, prt_lev);
            Print(CurrentBar + ":key=" + key + ",mkt_ctxs.Count=" + mkt_ctxs.Count);
            return(mkt_ctxs);
        }
Example #5
0
        /// <summary>
        /// Check if the price action type allowed for supervised PR bits
        /// SpvPRBits set by the command file
        /// </summary>
        /// <returns></returns>
        public bool PriceActionAllowedBySpvPRBits(PriceActionType pat)
        {
            int i = (int)pat;

            return((i & SpvPRBits) > 0);
//			switch(pat) {
//				case PriceActionType.UpTight: //
//					i = (1 & SpvPRBits);
//					//Print("IsSpvAllowed4PAT:" + pat.ToString() + ", (1 & SpvPRBits)=" + i);
//					return (1 & SpvPRBits) > 0;
//				case PriceActionType.UpWide: //wide up channel
//					i = (2 & SpvPRBits);
//					//Print("IsSpvAllowed4PAT:" + pat.ToString() + ", (2 & SpvPRBits)=" + i);
//					return (2 & SpvPRBits) > 0;
//				case PriceActionType.DnTight: //
//					i = (4 & SpvPRBits);
//					//Print("IsSpvAllowed4PAT:" + pat.ToString() + ", (4 & SpvPRBits)=" + i);
//					return (4 & SpvPRBits) > 0;
//				case PriceActionType.DnWide: //wide dn channel
//					i = (8 & SpvPRBits);
//					//Print("IsSpvAllowed4PAT:" + pat.ToString() + ", (8 & SpvPRBits)=" + i);
//					return (8 & SpvPRBits) > 0;
//				case PriceActionType.RngTight: //
//					i = (16 & SpvPRBits);
//					//Print("IsSpvAllowed4PAT:" + pat.ToString() + ", (16 & SpvPRBits)=" + i);
//					return (16 & SpvPRBits) > 0;
//				case PriceActionType.RngWide: //
//					i = (32 & SpvPRBits);
//					//Print("IsSpvAllowed4PAT:" + pat.ToString() + ", (32 & SpvPRBits)=" + i);
//					return (32 & SpvPRBits) > 0;
//				case PriceActionType.UnKnown: //
//					i = (64 & SpvPRBits);
//					//Print("IsSpvAllowed4PAT:" + pat.ToString() + ", (64 & SpvPRBits)=" + i);
//					return (64 & SpvPRBits) > 0;
//				default:
//					return false;
//			}
        }
 public PriceAction(PriceActionType pat, Volatility volatility)
 {
     this.paType    = pat;
     this.voltality = volatility;
 }