/// <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); }
/// <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); }
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); }