示例#1
0
 public Fibonacci(BarSpud values, int nDays) : base(values.manager)
 {
     this.values = dependsOn(values);
     this.nDays  = nDays;
     highestHigh = values.high.highest(this.nDays);
     lowestLow   = values.low.lowest(this.nDays);
 }
示例#2
0
 public BarSpudGraph(BarSpud bars, Collectible collectible, DispatcherObject dispatchTo) : base(parent => new BarSpudPane(bars, collectible, (BarSpudGraph)parent, dispatchTo))
 {
     barSpud = bars;
     MasterPane.InnerPaneGap = 0;
     MasterPane.Margin.All   = 0;
     addBars();
 }
示例#3
0
        BarSpud barSpud()
        {
            var spud = new BarSpud(manager());

            spud.times.prepare();
            return(spud);
        }
示例#4
0
 public BarSpudGraphable(BarSpud bars)
 {
     this.bars        = bars;
     timeIndices      = bars.timeLookup();
     bars.valueSet   += bar => timeIndices[bar.time] = 0;
     bars.pushedDown += () => timeIndices = bars.timeLookup();
 }
示例#5
0
        public void testSymbolValueLive()
        {
            Log.setFile(@"C:\logs\jefftest");

            SystemTimeSeriesTable.SYSTEM_TS.insert("testone", "ASCII", "ActiveMQ", "somedangtopic");
            AsciiTable.SYSTEM_ASCII.insert("testone", @"\\nysrv37\share\Tools\RightEdge\TransitionTest\TY1C.full.csv", true, 1);
            var manager  = new SpudManager();
            var barSpud  = new BarSpud(manager);
            var barSpud2 = new BarSpud(manager);
            var symbol   = new Symbol("testone");
            var spud     = symbol.doubles(barSpud);
            var spud2    = new Symbol("RE.TEST.TY.1C").doubles(barSpud2);

            manager.newBar();
            barSpud.set(new Bar(1, 3, 1, 2, O.date("2008/08/06")));
            barSpud2.set(new Bar(1, 3, 1, 2, O.date("2008/08/06")));

            manager.newTick();
            spud.doSubscribe();

            barSpud.lastTickedAt(O.date("2008/08/06 11:22:34"));
            spud2.doSubscribe();
            IsTrue(spud2.isDirty());
            symbol.javaSymbol().jmsLive().topic().send("value=97.1|timestamp=2008/08/06 11:22:33|MSTimestamp=2008/06/05 13:10:08");

            Bombs(() => LogC.info("" + spud[0]), "stale");
            symbol.javaSymbol().jmsLive().topic().send("value=97.2|timestamp=2008/08/06 11:22:34|MSTimestamp=2008/06/05 13:10:08");
            O.wait(() => spud[0] == 97.2);
            barSpud.lastTickedAt(O.date("2008/08/06 11:22:35"));
            spud.allowStaleTicks();
            AreEqual(97.2, spud[0]);
            AreEqual(116.140625, spud2[0]);
        }
示例#6
0
 public DoubleSpudGraphable(string name, Spud <double> doubles, BarSpud bars)
 {
     this.name        = name;
     this.doubles     = doubles;
     timeIndices      = bars.timeLookup();
     bars.valueSet   += bar => timeIndices[bar.time] = 0;
     bars.pushedDown += () => timeIndices = bars.timeLookup();
 }
示例#7
0
 public static SymbolSpud <double> doubles(Symbol symbol, BarSpud spud, double?defalt, bool noLiveUpdates)
 {
     if (!valuesCache.ContainsKey(symbol))
     {
         var observations = symbol.observations();
         datesCache[symbol]  = convert <Date, DateTime>(list <Date>(observations.times()), date);
         valuesCache[symbol] = list(observations.values());
     }
     return(new SymbolValueSpud(symbol, spud, datesCache[symbol], valuesCache[symbol], defalt, noLiveUpdates));
 }
示例#8
0
 public static SymbolSpud <Bar> bars(Symbol symbol, BarSpud spud)
 {
     if (!barsCache.ContainsKey(symbol))
     {
         var jbars = list <systemdb.data.Bar>(symbol.bars());
         barsCache[symbol]  = convert(jbars, jbar => new Bar(jbar));
         datesCache[symbol] = convert(barsCache[symbol], bar => bar.time);
     }
     return(new SymbolBarSpud(symbol, spud, datesCache[symbol], barsCache[symbol]));
 }
示例#9
0
        public BarSpudPane(BarSpud bars, Collectible symbol, BarSpudGraph parent, DispatcherObject dispatchTo) : base(parent, dates(bars))
        {
            this.bars       = bars;
            this.symbol     = symbol;
            parentTyped     = parent;
            this.dispatchTo = dispatchTo;

            XAxis.Scale.Min       = Math.Max(0, bars.count() - 100);
            XAxis.Scale.Max       = bars.count() + 5;
            XAxis.Scale.IsVisible = false;
        }
示例#10
0
        public void testAggregation()
        {
            values    = new BarSpud(manager);
            indicator = new IntervalSpud(values, Interval.DAILY);

            addPoint(new Bar(1, date("2009/01/01 09:00:00")), new Bar(1, date("2009/01/01 09:00:00")));
            addPoint(new Bar(2, date("2009/01/01 09:05:00")), new Bar(1, 2, 1, 2, date("2009/01/01 09:05:00")));
            addPoint(new Bar(1.5, date("2009/01/01 23:59:59")), new Bar(1, 2, 1, 1.5, date("2009/01/01 23:59:59")));
            addPoint(new Bar(3, date("2009/01/02 00:00:00")), new Bar(3, 3, 3, 3, date("2009/01/02 00:00:00")));
            addPoint(new Bar(2, date("2009/01/02 00:00:01")), new Bar(3, 3, 2, 2, date("2009/01/02 00:00:01")));
            AreEqual(2, indicator.count());
        }
示例#11
0
 protected SymbolSpud(Symbol symbol, BarSpud bars, IEnumerable <DateTime> dates, IEnumerable <T> ts, bool noLiveUpdates) : base(bars.manager)
 {
     this.symbol        = symbol;
     this.noLiveUpdates = noLiveUpdates;
     bars_ = dependsOn(bars);
     if (!noLiveUpdates)
     {
         manager.onLive += doSubscribe;
     }
     data         = dictionary(dates, ts);
     datesReverse = list(dates);
     datesReverse.Reverse();
 }
示例#12
0
        void populateSlippageCache(Symbol symbol)
        {
            var manager    = new SpudManager();
            var bars       = bars_[symbol];
            var spud       = new BarSpud(manager);
            var calculator = symbol.slippageCalculator(spud);

            each(sort(bars.Keys), date => {
                spud.set(bars[date]);
                slippageCache.get(date)[symbol] = calculator.slippage();
                manager.newBar();
            });
        }
示例#13
0
        public void testSymbolValueSpud()
        {
            var manager = new SpudManager();
            var barSpud = new BarSpud(manager);
            var spud    = new Symbol("RE.TEST.TY.1C").doubles(barSpud);

            barSpud.set(new Bar(1, 3, 1, 2, O.date("2007/01/02")));
            AreEqual(105.04687500, spud[0]);

            // test barSPud has date, but spud does not
            manager.newBar();
            barSpud.set(new Bar(1, 3, 1, 2, O.date("2007/01/06")));
            AreEqual(105.32812500, spud[0]);
        }
示例#14
0
        static Spud <double> commoditySignal(int signal, BarSpud bars)
        {
            Converter <string, Spud <double> > spud = name => {
                var result = new Symbol(name).doubles(bars);
                result.allowStaleTicks();
                return(result);
            };

            switch (signal)
            {
            case 1: return(spud("HG.3N"));

            case 2: return(spud("GC.3N"));

            case 3: return(spud("NG.3N"));

            case 4: return(spud("CL.3N"));
            }
            throw Bomb.toss("Unknown Signal Type" + signal);
        }
示例#15
0
        public void testSymbolBarSpud()
        {
            var manager = new SpudManager();
            var barSpud = new BarSpud(manager);
            var symbol  = new Symbol("RE.TEST.TY.1C");
            var spud    = symbol.bars(barSpud);

            barSpud.set(new Bar(1, 3, 1, 2, O.date("2007/01/02")));
            AreEqual(105.04687500, spud[0].close);
            barSpud.lastTickedAt(O.date("2007/01/02 12:34:55"));
            symbol.javaSymbol().jmsLive().publish(new JTick(98, 100, 96, 99, 93, O.jDate("2007/01/02 12:34:56")));
            O.sleep(250);
            AreEqual(105.04687500, spud[0].close);

            manager.goLive();
            symbol.javaSymbol().jmsLive().publish(new JTick(98, 100, 96, 99, 93, O.jDate("2007/01/02 12:34:57")));
            O.wait(() => spud[0].time.Equals(date("2007/01/02 12:34:57")));

            AreEqual(98.0, spud[0].close);
            AreEqual(93.0, spud[0].low);
        }
示例#16
0
        public void testFibonacci()
        {
            values    = new BarSpud(values.manager);
            indicator = new Fibonacci((BarSpud)values, 20);

            var testBar1 = bar(1, 1, 1, 1);
            var testBar2 = bar(1, 2, 0, 1);

            addPoint(testBar1, new BreakPoints(testBar1, 1, 1));
            AreEqual(indicator[0].fibo0(), 1);
            AreEqual(indicator[0].fibo38(), 1);
            AreEqual(indicator[0].fibo50(), 1);
            AreEqual(indicator[0].fibo62(), 1);
            AreEqual(indicator[0].fibo100(), 1);
            addPoint(testBar2, new BreakPoints(testBar2, 2, 0));
            AreEqual(indicator[0].fibo0(), 0);
            AreEqual(indicator[0].fibo38(), 0.764);
            AreEqual(indicator[0].fibo50(), 1);
            AreEqual(indicator[0].fibo62(), 1.236);
            AreEqual(indicator[0].fibo100(), 2);
        }
示例#17
0
 public TimesTwo(Symbol symbol, BarSpud bars) : base(symbol, bars)
 {
 }
示例#18
0
 public CdsSlippage(Symbol symbol, BarSpud bars) : base(symbol, bars)
 {
     spreads = symbol.relatedSuffix("SPREAD").doubles(bars);
     dv01    = symbol.relatedSuffix("DV01").doubles(bars);
 }
示例#19
0
 protected SymbolSpud(Symbol symbol, BarSpud bars, IEnumerable <DateTime> dates, IEnumerable <T> ts) : this(symbol, bars, dates, ts, false)
 {
 }
示例#20
0
 public SymbolBarSpud(Symbol symbol, BarSpud spud, IEnumerable <DateTime> dates, IEnumerable <Bar> bars)
     : base(symbol, spud, dates, bars)
 {
 }
示例#21
0
 public SymbolValueSpud(Symbol symbol, BarSpud spud, IEnumerable <DateTime> dates, IEnumerable <double> bars, double?defalt, bool noLiveUpdates)
     : base(symbol, spud, dates, bars, noLiveUpdates)
 {
     this.defalt = defalt;
 }
示例#22
0
 public static SymbolSpud <double> doubles(Symbol symbol1, BarSpud spud, bool noLiveUpdates)
 {
     return(doubles(symbol1, spud, null, noLiveUpdates));
 }
示例#23
0
 public static SymbolSpud <double> doubles(Symbol symbol, BarSpud spud, double?defalt)
 {
     return(doubles(symbol, spud, defalt, false));
 }
示例#24
0
 public static SymbolSpud <double> doubles(Symbol symbol, BarSpud spud)
 {
     return(doubles(symbol, spud, null));
 }
示例#25
0
 protected SlippageCalculator(Symbol symbol, BarSpud bars)
 {
     this.symbol = symbol;
     this.bars   = bars;
 }
示例#26
0
//      (high + low + close) / 3
        static Spud <double> priceSeries(BarSpud bars)
        {
            var highLow = new Plus(bars.high, bars.low);

            return(new Divide(new Plus(bars.close, highLow), bars.constant(3.0)));
        }
示例#27
0
文件: Fixed.cs 项目: TzarIvan/ratel
 public Fixed(Symbol symbol, BarSpud bars) : base(symbol, bars)
 {
 }
 public BasicTimeVaryingSlippage(Symbol symbol, BarSpud bars) : base(symbol, bars)
 {
 }
示例#29
0
 public SlippageBombs(Symbol symbol, BarSpud bars) : base(symbol, bars)
 {
 }