コード例 #1
0
        public override void GotTick(Tick k)
        {
            _currenttime = k.Time;
            if (_currenttime > _shutdowntime)
            {
                Shutdown();
                return;
            }

            _barlisttracker.NewTick(k);             // blt rejects symbols that it doesn't track

            // ignore anything that is not a trade
            if (!k.IsTrade)
            {
                return;
            }

            // exit condition
            if ((Calc.OpenPL(k.TradePrice, _positiontracker[k.FullSymbol]) + _positiontracker[k.FullSymbol].ClosedPL > TotalProfitTarget) ||
                (Calc.OpenPL(k.TradePrice, _positiontracker[k.FullSymbol]) + _positiontracker[k.FullSymbol].ClosedPL < TotalLossTolerance))
            {
                Shutdown(k.FullSymbol);
            }

            // potential orders
            int idx = _symbols.IndexOf(k.FullSymbol);
            //if (_isHigherTimeFrameBullBear[idx] == _isLowerTimeFrameBullBear[idx])
            {
            }
        }
コード例 #2
0
        public override void GotTick(Tick k)
        {
            if (IsActive)
            {
                if ((k.Time >= 93000) && (k.Time <= 160200))
                {
                    _barlisttracker.NewTick(k);
                }
                else if (k.Time > 160200)
                {
                    Shutdown();
                }

                if (k.Time > sentouttime_[emailsent_] + 1)
                {
                    emailsent_++;
                    if (emailsent_ == sentouttime_.Length)
                    {
                        Shutdown();
                    }

                    // send out email
                    StringBuilder sb = new StringBuilder();
                    sb.Append("<table>");
                    sb.Append("<tr><td>Symbol</td><td>Open</td><td>High</td><td>Low</td><td>Close</td><td>Change</td><td>Change(%)</td></tr>");
                    foreach (string s in _symbols)
                    {
                        string[] symbol = s.Split(' ');
                        BarList  bl     = _barlisttracker[s, 86400];

                        try
                        {
                            sb.AppendFormat("<tr><td>{0}</td><td>{1}</td><td>{2}</td><td>{3}</td><td>{4}</td><td>{5}</td><td>{6}</td></tr>",
                                            symbol[0], (bl.Open()[0]).ToString("N2"), (bl.High()[0]).ToString("N2"),
                                            (bl.Low()[0]).ToString("N2"), (bl.Close()[0]).ToString("N2"),
                                            (bl.Close()[0] - _precloseDict[s]).ToString("N2"),
                                            (bl.Close()[0] / _precloseDict[s] - 1).ToString("0.##%"));
                        }
                        catch { }
                    }
                    sb.Append("<table>");

                    string subject = "Current Market @ " + sentouttime_[emailsent_ - 1];
                    Util.Sendemail(subject, sb.ToString(), true);
                }
            }
        }
コード例 #3
0
ファイル: SMASimple.cs プロジェクト: ssh352/QuantTrading-2
        public override void GotTick(Tick k)
        {
            _currenttime = k.Time;
            if (_currenttime > _shutdowntime)
            {
                Shutdown();
                return;
            }

            _barlisttracker.NewTick(k);     // blt rejects symbols that it doesn't track

            // ignore anything that is not a trade
            if (!k.IsTrade)
            {
                return;
            }
            // exit conditon
            if ((Calc.OpenPL(k.TradePrice, _positiontracker[k.FullSymbol]) + _positiontracker[k.FullSymbol].ClosedPL > TotalProfitTarget) ||
                (Calc.OpenPL(k.TradePrice, _positiontracker[k.FullSymbol]) + _positiontracker[k.FullSymbol].ClosedPL < TotalLossTolerance))
            {
                Shutdown(k.FullSymbol);
            }
        }