Esempio n. 1
0
        internal void OnAdviseHOR(object sender, DdeAdviseEventArgs args)
        {
            DateTime now = Convert.ToDateTime(args.Text);

            botsList[0].AdviseHOR(now);
            this.now = now;
        }
Esempio n. 2
0
        private void OnTickArrived(object sender, DdeAdviseEventArgs e)
        {
            var value = 0.0;

            if (TickArrived == null || !double.TryParse(e.Text, out value))
            {
                return;
            }

            ThreadPool.QueueUserWorkItem(o =>
            {
                if (_lastprice[e.Item] == value)
                {
                    return;
                }

                _lastprice[e.Item] = value;
                _timeofday[e.Item] = DateTime.Now;

                var symbol = _ddeserver ? e.Item.Substring(4).Split(';') : e.Item.Split('.');
                var tick   = new Tick(symbol[0], _timeofday[e.Item]);
                tick.Value = _lastprice[e.Item];

                TickArrived(tick);
            });
        }
Esempio n. 3
0
        void ddeClient_Advise(object sender, DdeAdviseEventArgs e)
        {
            if (isPaused)
            {
                return;
            }

            //item is instrument name
            //text is  2010/07/15 21:27 1.29012 1.29016
            Tick t = new Tick();

            t.Instrument = instrument;
            string[] parts = e.Text.Split(' ');
            t.Time = DateTime.Parse(parts[0] + " " + parts[1]);
            t.Bid  = double.Parse(parts[2]);
            t.Ask  = double.Parse(parts[3]);

            if (ProcessTick != null)
            {
                ProcessTick(t);
            }
            tickLimit--;

            if (tickLimit == 0)
            {
                ddeClient.StopAdvise(instrument.ToString(), 1000);
                status = DataProviderStatus.Stopped;
            }
        }
Esempio n. 4
0
        private void OnAdvise(object sender, DdeAdviseEventArgs args)
        {
            //Console.WriteLine("-> OnAdvise:" + args.Text+" sender="+sender+"\n");
            //Console.WriteLine("-> OnAdvise: Item=" + args.Item+"Value="+args.Text);
            //Console.WriteLine("OK");
            String itemString = args.Item;
            String byteAdr    = itemString.Substring(3, itemString.IndexOf(".") - 3);
            String bitAdr     = itemString.Substring(itemString.IndexOf(".") + 1);

            //Console.WriteLine("Byte=(" + byteAdr + ") Bit=(" + bitAdr+")");
            BooleanItem bi = getBooleanItem(Int32.Parse(byteAdr), Int32.Parse(bitAdr));

            //Console.WriteLine("Found: "+bi.ToString()+" NewValue="+args.Data.ToString());
            if (args.Data[0] == 49)
            {
                bi.setState(true);
            }
            else
            {
                bi.setState(false);
            }

            if (listener != null)
            {
                listener.outputChanged(bi);
            }
        }
Esempio n. 5
0
 private static void C_Advise(object sender, DdeAdviseEventArgs e)
 {
     lock (FieldInputsLock)
     {
         Console.WriteLine("Advise: " + e.Item + ": " + e.Text);
         _FieldInputs[e.Item] = e.Text;
     }
 }
Esempio n. 6
0
        internal void OnAdviseVWAP(object sender, DdeAdviseEventArgs args)
        {
            NumberFormatInfo provider = new NumberFormatInfo();

            provider.NumberDecimalSeparator = ",";
            provider.NumberGroupSeparator   = ".";
            botsList[0].AdviseVWAP(Convert.ToDouble(args.Text, provider));
            this.Invoke(vwapDelegate, botsList[0].GetVWAP()); //Delegate to update bot form current measure
            botsList[0].VWAPColour();
        }
Esempio n. 7
0
 internal void OnAdvise(object sender, DdeAdviseEventArgs args)
 {
     botsList[0].Advise(float.Parse(args.Text) / 100);
     this.Invoke(textBoxDelegate, botsList[0].GetTemp()); //Delegate to update bot form current measure
     if (addTableItem)
     {
         this.Invoke(updateTableDelegate, botsList[0].GetAction(), botsList[0].GetPrice()); //Delegate to update operations table with last bot Operations
         AddTableItem(false);
     }
 }
Esempio n. 8
0
        private static void OnAdvise(object sender, DdeAdviseEventArgs args)
        {
            string value = Regex.Replace(args.Text, @"\s", "");

            value = value.Replace(Convert.ToChar(0x0).ToString(), "");
            if (value.Length > 0)
            {
                tw.WriteLine("{0}\t{1}\t{2:dd/MM/yyyy HH:mm:ss.fff}", args.Item, value, DateTime.Now);
            }
        }
Esempio n. 9
0
 static void OnAdvise(object sender, DdeAdviseEventArgs e)
 {
     if (e.Item == "T1")
     {
         T1 = float.Parse(e.Text);
     }
     if (e.Item == "T2")
     {
         T2 = float.Parse(e.Text);
     }
 }
Esempio n. 10
0
 private void OnAdvise(object sender, DdeAdviseEventArgs args)
 {
     Task task = Task.Factory.StartNew(() =>
     {
         OnCellUpdateHandler onCellUpdate = OnCellUpdate;
         if (onCellUpdate != null)
         {
             onCellUpdate(null, new CellUpdateEventArgs(args.Item, Convert.ToDecimal(args.Text)));
         }
     });
 }
Esempio n. 11
0
        private void OnAdvise(object sender, DdeAdviseEventArgs args)
        {
            Double tmp = Convert.ToDouble(args.Text.Trim());

            AssetValue = Convert.ToInt32(tmp);
            String value = Convert.ToString(tmp);

            if (this.Visible)
            {
                SetControlPropertyThreadSafe(label1, "Text", value);
            }
        }
Esempio n. 12
0
 void c_Advise(object sender, DdeAdviseEventArgs e)
 {
     if (_dataPoints.ContainsKey(e.Item))
     {
         string result = e.Text;
         if (null != result)
         {
             result = result.Replace("\0", string.Empty);
         }
         _dataPoints[e.Item].Value = result;
     }
 }
Esempio n. 13
0
        private void client_Advise(object sender, DdeAdviseEventArgs args)
        {
            DdeClient dc  = (DdeClient)sender;
            string    key = dc.Service + "|" + dc.Topic + "!" + args.Item;
            //取得 key 所對應位置的 DataGridViewRow
            DataGridViewRow chg_value_row = (DataGridViewRow)ht_gdv[key];

            //將變動的值指定至該列所在的欄位 "Item_Value"
            int    codepage = Encoding.Default.CodePage; //取得編碼的 codpage. 中文 Default: 950
            string data     = Encoding.GetEncoding(codepage).GetString(args.Data, 0, args.Data.Length);

            //顯示變動後的 Item 值.
            chg_value_row.Cells["col_iteminfo_value"].Value = data;
        }
Esempio n. 14
0
        private static void OnAdvise(object sender, DdeAdviseEventArgs args)
        {
            Console.WriteLine(args.Item + ": " + args.Text);
            string eventTime  = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fff+02:00");
            string eventValue = args.Text.Replace(Convert.ToChar(0x0).ToString(), ""); // avoid 0x0 error !!

            string xmlMessage = Events.createMessage(XMLConfig.clientId, eventTime, args.Item, eventValue);

            try {
                Network.sendMessage(XMLConfig.serverAddress, XMLConfig.serverPort, xmlMessage);
            } catch (Exception e) {
                Console.WriteLine("Network error, unable to connect to server! ");
            }
        }
Esempio n. 15
0
        private void OnAdvise(object sender, DdeAdviseEventArgs args)
        {
            DdeClient dc  = (DdeClient)sender;
            string    key = dc.Service + "|" + dc.Topic + "!" + args.Item;

            try
            {
                QuoteItem tmpItem = collectData[key];
                collectData[key].value = args.Data;
                foreach (string strItem in tmpItem.sendItem)
                {
                    DDEServer.Advise(myTopic, strItem);
                }
            }
            catch { }
        }
Esempio n. 16
0
        static void client_Advise(object sender, DdeAdviseEventArgs e)
        {
            Quote quote = new Quote(e.Text);

            beat.Add(quote);

            string log = string.Format("{0}     {1} {2} {3} {4}", e.Text, beat.DeltaBid, beat.DeltaAsk, beat.MaxUp,
                                       beat.MaxDown);

            writer.WriteLog(log);

            //Console.WriteLine("Bid: {0} Ask: {1} Spread : {2}", quote.Bid, quote.Ask, quote.Spread);
            Console.WriteLine(beat.DeltaBid > 0 ? "CALL" : "PUT");
            Console.WriteLine("Delta Bid : {0}, Ask : {1}", beat.DeltaBid, beat.DeltaAsk);
            Console.WriteLine("Max Up : {0}, Down : {1}", beat.MaxUp, beat.MaxDown);
            Console.WriteLine();
        }
Esempio n. 17
0
        private void OnAdvise(object sender, DdeAdviseEventArgs args)
        {
            string[] fxData = (args.Item + " " + args.Text).Split(new char[] { ' ' });

            Tick tick = null;

            try{
                tick = new Tick()
                {
                    //EURUSD 2014/05/06 23:59 1.34455 1.34456
                    symbol = fxData[0],
                    date   = DateTime.Parse(fxData[1] + " " + fxData[2]),
                    bid    = double.Parse(fxData[3]),
                    ask    = double.Parse(fxData[4])
                };
            }

            catch (Exception ex)
            {
                msgLbl.Text = "Invalid tick data - " + ex.Message;
            }

            //---------------------------------------------------
            // create data source
            if (tick != null)
            {
                if (dataSource.ContainsKey(tick.symbol))
                {
                    dataSource[tick.symbol].Insert(0, tick.bid);
                    //   Log(tick.bid);
                }
                else
                {
                    dataSource.Add(tick.symbol, new List <double>()
                    {
                        tick.bid
                    });
                }
                if (OnTick != null)
                {
                    OnTick.Invoke(tick);
                }
            }
        }
Esempio n. 18
0
 public void Test_BeginStartAdvise_Variation_2()
 {
     using (TestServer server = new TestServer(ServiceName))
     {
         server.Register();
         server.SetData(TopicName, ItemName, 1, Encoding.ASCII.GetBytes(TestData));
         using (DdeClient client = new DdeClient(ServiceName, TopicName))
         {
             EventListener listener = new EventListener();
             client.Advise += listener.OnEvent;
             client.Connect();
             IAsyncResult ar = client.BeginStartAdvise(ItemName, 1, false, null, null);
             Assert.IsTrue(ar.AsyncWaitHandle.WaitOne(Timeout, false));
             server.Advise(TopicName, ItemName);
             Assert.IsTrue(listener.Received.WaitOne(Timeout, false));
             DdeAdviseEventArgs args = (DdeAdviseEventArgs)listener.Events[0];
             Assert.AreEqual(ItemName, args.Item);
             Assert.AreEqual(1, args.Format);
             Assert.IsNull(args.Data);
         }
     }
 }
Esempio n. 19
0
 public void Test_StartAdvise_Variation_1()
 {
     using (TestServer server = new TestServer(ServiceName))
     {
         server.Register();
         server.SetData(TopicName, ItemName, 1, Encoding.ASCII.GetBytes(TestData));
         using (DdeClient client = new DdeClient(ServiceName, TopicName))
         {
             EventListener listener = new EventListener();
             client.Advise += listener.OnEvent;
             client.Connect();
             client.StartAdvise(ItemName, 1, true, Timeout);
             server.Advise(TopicName, ItemName);
             Assert.IsTrue(listener.Received.WaitOne(Timeout, false));
             DdeAdviseEventArgs args = (DdeAdviseEventArgs)listener.Events[0];
             Assert.AreEqual(ItemName, args.Item);
             Assert.AreEqual(1, args.Format);
             Assert.AreEqual(TestData, Encoding.ASCII.GetString(args.Data));
             Assert.AreEqual(TestData, args.Text);
         }
     }
 }
Esempio n. 20
0
        private void OnTickArrived(object sender, DdeAdviseEventArgs e)
        {
            var value = 0m;

            if (TickArrived == null || !decimal.TryParse(e.Text, out value))
            {
                return;
            }
            if (BvspTime.Hour < 9 || value == 0)
            {
                return;
            }

            Task.Factory.StartNew(() =>
            {
                var symbol = e.Item.Split('.')[0].Split(';')[0];
                var dde    = e.Item.Contains(";") ? "CMA" : "NPC";
                if (dde == "CMA")
                {
                    symbol = symbol.Substring(4);
                }

                var tick = new Tick(symbol, BvspTime, value);

                if (BvspTime.Hour == 9)
                {
                    if (!tick.GetClass().Contains("BMF"))
                    {
                        return;
                    }
                }

                TickArrived(tick); //NotifyOMS(tick.ToString() + " from " + dde);
                _lasttime[dde] = tick.Time;

                //if (!IsDeveloper) return;
                //Table.Execute(TableOperation.InsertOrReplace(tick));
            });
        }
 void client_Advise(object sender, DdeAdviseEventArgs e)
 {
     try
     {
         Log.Debug(e.Text);
         if (e.Text == "*")
         {
             return;
         }
         lastMessage.Add(e.Text);
         var screen = e.Text.Split('|')[0];
         var value  = e.Text.Split('|')[1];
         var tag    = e.Text.Split('|')[2];
         if (screen == _screen.ToString())
         {
             Mediator.SendMessage(value, tag);
         }
     }
     catch (Exception exception)
     {
         Log.Error(exception.Message, exception);
     }
 }
Esempio n. 22
0
        private void OnAdvise(object sender, DdeAdviseEventArgs args)
        {
            //Console.WriteLine("-> OnAdvise:" + args.Text+" sender="+sender+"\n");
            //Console.WriteLine("-> OnAdvise: Item=" + args.Text);
            Int32 tmpInValue = Int32.Parse(args.Text);

            /*
             * int bitAdr=0;
             * int byteAdr=0;
             * Boolean state;
             * // Mapping
             * if (tmpInValue>inValue) state=true;
             * else state=false;
             *
             * BooleanItem bi;
             * if (diff != 0)
             * {
             *  if ((diff & 1) != 0) { byteAdr = 4; bitAdr = 2; bi = this.getBooleanItem(byteAdr, bitAdr); bi.setState(state); if (listener != null && bi != null) listener.outputChanged(bi); }
             *  if ((diff & 2) != 0) { byteAdr = 4; bitAdr = 3; bi = this.getBooleanItem(byteAdr, bitAdr); bi.setState(state); if (listener != null && bi != null) listener.outputChanged(bi); }
             *  if ((diff & 4) != 0) { byteAdr = 4; bitAdr = 4; bi = this.getBooleanItem(byteAdr, bitAdr); bi.setState(state); if (listener != null && bi != null) listener.outputChanged(bi); }
             *  if ((diff & 8) != 0) { byteAdr = 4; bitAdr = 5; bi = this.getBooleanItem(byteAdr, bitAdr); bi.setState(state); if (listener != null && bi != null) listener.outputChanged(bi); }
             *  if ((diff & 16) != 0) { byteAdr = 9; bitAdr = 0; bi = this.getBooleanItem(byteAdr, bitAdr); bi.setState(state); if (listener != null && bi != null) listener.outputChanged(bi); }
             *  if ((diff & 32) != 0) { byteAdr = 9; bitAdr = 1; bi = this.getBooleanItem(byteAdr, bitAdr); bi.setState(state); if (listener != null && bi != null) listener.outputChanged(bi); }
             *  if ((diff & 64) != 0) { byteAdr = 9; bitAdr = 2; bi = this.getBooleanItem(byteAdr, bitAdr); bi.setState(state); if (listener != null && bi != null) listener.outputChanged(bi); }
             * }
             *
             * //BooleanItem bi = this.getBooleanItem(byteAdr,bitAdr);
             * //if (bi != null) bi.setState(state);
             * Console.WriteLine("byteAdr=" + byteAdr + " bitAdr=" + bitAdr + " state=" + state);
             */
            BooleanItem bi;
            Boolean     aktState;

            bi = this.getBooleanItem(4, 2);
            if (listener != null && bi != null)
            {
                aktState = (tmpInValue & 1) != 0;
                if (bi.getState() != aktState)
                {
                    bi.setState((tmpInValue & 1) != 0);
                    listener.outputChanged(bi);
                }
            }

            bi = this.getBooleanItem(4, 3);
            if (listener != null && bi != null)
            {
                aktState = (tmpInValue & 2) != 0;
                if (bi.getState() != aktState)
                {
                    bi.setState((tmpInValue & 2) != 0);
                    listener.outputChanged(bi);
                }
            }

            bi = this.getBooleanItem(4, 4);
            if (listener != null && bi != null)
            {
                aktState = (tmpInValue & 4) != 0;
                if (bi.getState() != aktState)
                {
                    bi.setState((tmpInValue & 4) != 0);
                    listener.outputChanged(bi);
                }
            }

            bi = this.getBooleanItem(4, 5);
            if (listener != null && bi != null)
            {
                aktState = (tmpInValue & 8) != 0;
                if (bi.getState() != aktState)
                {
                    bi.setState((tmpInValue & 8) != 0);
                    listener.outputChanged(bi);
                }
            }

            bi = this.getBooleanItem(9, 0);
            if (listener != null && bi != null)
            {
                aktState = (tmpInValue & 16) != 0;
                if (bi.getState() != aktState)
                {
                    bi.setState((tmpInValue & 16) != 0);
                    listener.outputChanged(bi);
                }
            }

            bi = this.getBooleanItem(9, 1);
            if (listener != null && bi != null)
            {
                aktState = (tmpInValue & 32) != 0;
                if (bi.getState() != aktState)
                {
                    bi.setState((tmpInValue & 32) != 0);
                    listener.outputChanged(bi);
                }
            }

            bi = this.getBooleanItem(9, 2);
            if (listener != null && bi != null)
            {
                aktState = (tmpInValue & 64) != 0;
                if (bi.getState() != aktState)
                {
                    bi.setState((tmpInValue & 64) != 0);
                    listener.outputChanged(bi);
                }
            }

            inValue = tmpInValue;
        }
Esempio n. 23
0
 private void client_Advise(object sender, DdeAdviseEventArgs args)
 {
     //displayTextBox.Text = "OnAdvise: " + args.Text;
 }
Esempio n. 24
0
 private static void OnAdvise(object sender, DdeAdviseEventArgs args)
 {
     Console.WriteLine("OnAdvise: " + args.Text);
 }
Esempio n. 25
0
 void client_Advise(object sender, DdeAdviseEventArgs e)
 {
     Console.Write(e.Text);
 }
        private void OnAdvise2(object sender, DdeAdviseEventArgs args)
        {
            Console.WriteLine("OnAdvise2: " + args.Item + " - " + args.Text);

            UdpSend(args.Item, args.Text);
        }
Esempio n. 27
0
 private void OnAdviseVolume(object sender, DdeAdviseEventArgs args)
 {
     log.WriteLine("Volume: " + args.Item + " " + args.Text + " " + getTimeStamp());
 }
Esempio n. 28
0
        private void OnAdvise(object sender, DdeAdviseEventArgs args)
        {
            //=========================================================================================
            //Log(args.Item + " " + args.Text); // get the DDE feed

            string[] fxData = (args.Item + " " + args.Text).Split(new char[] { ' ' });

            Tick tick = null;

            try{
                tick = new Tick()
                {
                    //EURUSD 2014/05/06 23:59 1.34455 1.34456
                    symbol = fxData[0],
                    date   = DateTime.Parse(fxData[1] + " " + fxData[2]),
                    bid    = double.Parse(fxData[3]),
                    ask    = double.Parse(fxData[4])
                };
            }

            catch (Exception)
            {
                Log("Invalid tick data");
            }

            //-- Log Price -- works -- prints bid price for All symbol
            //   Log(fxData[3]); Double checked July 2014 - so data is local and present here,
            //-------------



            //------------------------------------------------
            // Bind Data
            //   chart1.Series["Series1"].Points.DataBindXY(fxData[1], fxData[3]);
            //    chart1.Series["Series1"].Points.DataBindXY(fxData[2], fxData[3]);
            //  chart1.Series["Series1"].Points.DataBind(dataSource, fxData[2], fxData[3],);

            //    string xVal = fxData[2];// Hours:Minutes == 23:59
            //    string YVal = fxData[3];

            //   chart1.Series["Series1"].Points.DataBindXY(xVal, YVal);
            //     chart1.Series["Series1"].Points.AddXY(xVal, YVal);

            //   chart1.Series[0].Points.AddXY(date, bid);

            //---------------------------------------------------
            // create data source
            if (tick != null)
            {
                if (dataSource.ContainsKey(tick.symbol))
                {
                    dataSource[tick.symbol].Insert(0, tick.bid);
                    //   Log(tick.bid);
                }
                else
                {
                    dataSource.Add(tick.symbol, new List <double>()
                    {
                        tick.bid
                    });
                }
                if (OnTick != null)
                {
                    OnTick.Invoke(tick);
                }
            }


            //------------------------------
        }
Esempio n. 29
0
        /// <summary>
        /// DDEClientからのコールバック関数
        /// </summary>
        private void OnAdvise(object sender, DdeAdviseEventArgs args)
        {
            string raw = Encoding.Default.GetString(args.Data).Trim('\0', ' ').ToString();

            if (raw == "")
            {
                return;
            }

            if (_item.TryGetValue(args.Item, out string value))
            {
                using (SQLiteCommand cmd = _connection.CreateCommand())
                {
                    string now = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
                    //string now = CurrentTimeGetter.Now.ToString("yyyy-MM-dd HH:mm:ss");
                    cmd.CommandText =
                        $"insert into rss(Time,Item,Value) values ('{now}','{args.Item}','{raw}')";
                    cmd.ExecuteNonQuery();

                    string k = $"{args.Item}";
                    string v = $"{raw}";
                    _item[k] = v;

                    switch (k)
                    {
                    case "出来高":
                        long volume = long.Parse(v);
                        tick       = volume - prevVolume;
                        prevVolume = volume;
                        break;

                    case "出来高加重平均":
                        if (tick > 0)
                        {
                            double price = 0;
                            if (_item["現在値"] != "")
                            {
                                price = double.Parse(_item["現在値"]);
                            }
                            double bid = price;
                            double ask = price;

                            if (_item["最良売気配値1"] != "")
                            {
                                bid = double.Parse(_item["最良売気配値1"]);
                            }
                            if (_item["最良買気配値1"] != "")
                            {
                                ask = double.Parse(_item["最良買気配値1"]);
                            }

                            string kind = "";
                            if (preBid - price < price - preAsk)
                            {
                                kind = "R";
                            }
                            else
                            {
                                kind = "G";
                            }
                            preBid = bid;
                            preAsk = ask;

                            var t = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeMilliseconds();
                            //cmd.CommandText = $"insert into tick (No, Time,Tick,Kind,Vwap,Bid,Ask,Price) values (" +
                            //    $"'{t}','{now}','{tick}','{kind}','{v}','{bid}','{ask}','{price}')";
                            cmd.CommandText = $"insert into tick (Time,Tick,Kind,Vwap,Bid,Ask,Price) values (" +
                                              $"'{now}','{tick}','{kind}','{v}','{bid}','{ask}','{price}')";
                            cmd.ExecuteNonQuery();
                        }
                        break;
                    }

                    _count += 1;
                }
            }
        }