internal void OnAdviseHOR(object sender, DdeAdviseEventArgs args) { DateTime now = Convert.ToDateTime(args.Text); botsList[0].AdviseHOR(now); this.now = now; }
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); }); }
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; } }
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); } }
private static void C_Advise(object sender, DdeAdviseEventArgs e) { lock (FieldInputsLock) { Console.WriteLine("Advise: " + e.Item + ": " + e.Text); _FieldInputs[e.Item] = e.Text; } }
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(); }
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); } }
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); } }
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); } }
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))); } }); }
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); } }
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; } }
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; }
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! "); } }
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 { } }
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(); }
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); } } }
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); } } }
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); } } }
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); } }
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; }
private void client_Advise(object sender, DdeAdviseEventArgs args) { //displayTextBox.Text = "OnAdvise: " + args.Text; }
private static void OnAdvise(object sender, DdeAdviseEventArgs args) { Console.WriteLine("OnAdvise: " + args.Text); }
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); }
private void OnAdviseVolume(object sender, DdeAdviseEventArgs args) { log.WriteLine("Volume: " + args.Item + " " + args.Text + " " + getTimeStamp()); }
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); } } //------------------------------ }
/// <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; } } }