Пример #1
0
        /// <summary>
        /// Get the signal list for the bar by signal type
        /// </summary>
        /// <param name="barNo"></param>
        /// <param name="signal_type"></param>
        /// <returns></returns>
        public List <TradeSignal> GetTradeSignalByType(int barNo, SortedDictionary <int, List <TradeSignal> > listSignals, TradeSignalType signal_type)
        {
            List <TradeSignal> list_signal = GetTradeSignals(barNo, listSignals);

            IndicatorProxy.PrintLog(true, IsLiveTrading(),
                                    String.Format("{0}: GetTradeSignalByType signal_type={1}, list_signal={2}, listSignals.Count={3}",
                                                  CurrentBar, signal_type, list_signal, listSignals.Count));
            if (list_signal != null)
            {
                List <TradeSignal> list_sigByType = new List <TradeSignal>();
                foreach (TradeSignal sig in list_signal)
                {
                    //if(list_signal.Count >= 1)
                    if (signal_type == sig.SignalType)
                    {
                        IndicatorProxy.PrintLog(true, IsLiveTrading(),
                                                String.Format("{0}: GetTradeSignalByType== signal_type={1}, sig.SignalType={2}, list_signal.Count={3}",
                                                              CurrentBar, signal_type, sig.SignalType, list_signal.Count));
                        list_sigByType.Add(sig);
                    }
                }
                if (list_sigByType.Count > 0)
                {
                    return(list_sigByType);
                }
            }

            return(null);
        }
Пример #2
0
        /// <summary>
        /// Get last signal list before barNo by signal type
        /// </summary>
        /// <param name="barNo"></param>
        /// <param name="signal_type"></param>
        /// <returns></returns>
        public List <TradeSignal> GetLastTradeSignalByType(int barNo, SortedDictionary <int, List <TradeSignal> > listSignals, TradeSignalType signal_type)
        {
            int k = barNo;

            foreach (int kk in listSignals.Keys.Reverse())
            {
                if (kk < k)
                {
                    List <TradeSignal> sigs = GetTradeSignalByType(k, listSignals, signal_type);
                    if (sigs != null)
                    {
                        return(sigs);
                    }
                    k = kk;
                }
            }
            return(null);
        }
Пример #3
0
        public void AddTradeSignal(int barNo, SortedDictionary <int, List <TradeSignal> > listSignals, TradeSignalType tdSigType,
                                   TradeSignalSource tdSigSrc, OrderAction ordAct, OrderType ordType)
        {
            TradeSignal isig = new TradeSignal();

            isig.BarNo        = barNo;
            isig.SignalType   = tdSigType;
            isig.SignalSource = tdSigSrc;
            isig.Action       = ordAct;
            isig.Order_Type   = ordType;
            AddTradeSignal(barNo, listSignals, isig);
        }