/// <summary> /// 股票卖出 /// </summary> /// <param name="_securitiesCode">证券代码</param> static void SaleOrder(string _securitiesCode) { var orderClick = new iAutomationElement(); var datalist = getSotckData(_securitiesCode); var positiondata = ZT_DataList[_securitiesCode]; var _num = NumCalculation.GetSaleNum(positiondata.data, datalist, A_param, B_param, C_param); _num = (Convert.ToInt32(_num) / 100 * 100).ToString(); if (_num != "0") { orderClick.InvokeButton(ZT_SaleButtonElement); Thread.Sleep(500); orderClick.WriteTextBox(ZT_SaleSecuritiesCode, "\b\b\b\b\b\b"); orderClick.WriteTextBox(ZT_SaleSecuritiesCode, _securitiesCode); Thread.Sleep(500); orderClick.WriteTextBox(ZT_SaleNum, "\b\b\b\b\b\b"); orderClick.WriteTextBox(ZT_SaleNum, _num); Thread.Sleep(500); orderClick.InvokeButton(ZT_SaleOrder); GetConfirm("卖出确认"); if (ZT_SaleConfirm != null) { orderClick.InvokeButton(ZT_SaleConfirm); ZT_SaleConfirm = null; Clickconfirm(); } } }
/// <summary> /// 股票买入 /// </summary> /// <param name="_securitiesCode">证券代码</param> /// <param name="_num">数量</param> static void BuyOrder(string _securitiesCode) { var orderClick = new iAutomationElement(); orderClick.InvokeButton(ZT_BuyButtonElement); Thread.Sleep(500); orderClick.WriteTextBox(ZT_BuySecuritiesCode, "\b\b\b\b\b\b"); orderClick.WriteTextBox(ZT_BuySecuritiesCode, _securitiesCode); Thread.Sleep(500); var datalists = getSotckData(_securitiesCode); var sn = ZT_CanUseMoney.Current.Name.ToString().Replace(" ", ""); var n = Convert.ToDecimal(sn); var m = Convert.ToDecimal(datalists[3]); var canbuynum = Convert.ToInt32(n / m); var _num = NumCalculation.GetBuyNum(datalists, canbuynum); _num = _num / 100 * 100; if (_num != 0) { orderClick.WriteTextBox(ZT_BuyNum, "\b\b\b\b\b\b"); orderClick.WriteTextBox(ZT_BuyNum, _num.ToString()); //orderClick.ButtonClick(ZT_BuyOrder); orderClick.InvokeButton(ZT_BuyOrder); GetConfirm("买入确认"); if (ZT_BuyConfirm != null) { orderClick.InvokeButton(ZT_BuyConfirm); ZT_BuyConfirm = null; Clickconfirm(); } } }
/// <summary> /// 股票买入 /// </summary> /// <param name="_securitiesCode">证券代码</param> /// <param name="_num">数量</param> static void BuyOrder(string _securitiesCode,string _num) { var orderClick = new iAutomationElement(); orderClick.InvokeButton(ZT_BuyButtonElement); orderClick.WriteTextBox(ZT_BuySecuritiesCode, "\b\b\b\b\b\b"); orderClick.WriteTextBox(ZT_BuySecuritiesCode, _securitiesCode); orderClick.WriteTextBox(ZT_BuyNum, "\b\b\b\b\b\b"); orderClick.WriteTextBox(ZT_BuyNum, _num); orderClick.InvokeButton(ZT_BuyOrder); if (ZT_BuyConfirm == null) GetConfirm("买入确认"); }
/// <summary> /// 更新持仓单信息 /// </summary> void UpdatePostion() { var click = new iAutomationElement(); if (ZT_PositionOrder != null) { click.InvokeButton(ZT_PositionOrder); GetZT_OutPutElement(); if (ZT_Output != null) { click.InvokeButton(ZT_Output); GetZT_OutPutSuessElement(); if (ZT_OutputSuess != null) { click.InvokeButton(ZT_OutputSuess); Thread.Sleep(500); var uielement = new iAutomationElement(); var elementlist = uielement.enumRoot(); elementlist = uielement.FindByClassName("Notepad", elementlist); uielement.CloseTextBook(elementlist[0]); var list = ReadText.Read(); foreach (var item in list) { string[] array = item.Split(new char[] { '|' }); var data = new DataItem(); data.data = array; if (!ZT_DataList.ContainsKey(array[0])) { ZT_DataList.Add(array[0], data); } else { //若标记为空更新全部数据 if (ZT_DataList[array[0]].data[18] == "") { ZT_DataList[array[0]] = data; } else { data.data[18] = "1"; ZT_DataList[array[0]] = data; } } } } } } }
/// <summary> /// 股票卖出 /// </summary> /// <param name="_securitiesCode">证券代码</param> /// <param name="_num">数量</param> static void SaleOrder(string _securitiesCode, string _num) { var orderClick = new iAutomationElement(); orderClick.InvokeButton(ZT_SaleButtonElement); Thread.Sleep(500); orderClick.WriteTextBox(ZT_SaleSecuritiesCode, "\b\b\b\b\b\b"); orderClick.WriteTextBox(ZT_SaleSecuritiesCode, _securitiesCode); Thread.Sleep(500); orderClick.WriteTextBox(ZT_SaleNum, "\b\b\b\b\b\b"); orderClick.WriteTextBox(ZT_SaleNum, _num); Thread.Sleep(500); orderClick.InvokeButton(ZT_SaleOrder); if(ZT_SaleConfirm==null) GetConfirm("卖出确认"); }
static void Clickconfirm() { var uielement = new iAutomationElement(); var elementlist = uielement.enumRoot(); elementlist = uielement.FindByName("中投证券", elementlist); //uielement.ESCclick(elementlist[0]); elementlist = uielement.enumNode(elementlist[0]); if (elementlist.Count > 1) { foreach (AutomationElement item in elementlist) { var list = uielement.enumDescendants(item, "提示"); if (list.Count > 0) { Console.WriteLine("ture"); buyWindowsElement = TreeWalker.RawViewWalker.GetParent(list[0]); elementlist = uielement.enumNode(buyWindowsElement); elementlist = uielement.FindByName("确认", elementlist); var orderClick = new iAutomationElement(); orderClick.InvokeButton(elementlist[0]); //return; } } } }
/// <summary> /// 持仓检测 /// </summary> void PositionDetection() { if (postionRun && isRun) { UpdatePostion(); foreach (var item in ZT_DataList) { if (postionRun && isRun && item.Value.data[18] == "") { var code = item.Key; var orderClick = new iAutomationElement(); var datalist = getSotckData(code); var positiondata = ZT_DataList[code]; var _num = NumCalculation.GetSaleNum(positiondata.data, datalist, A_param, B_param, C_param); _num = (Convert.ToInt32(_num) / 100 * 100).ToString(); if (_num != "0") { //数量不为0 数据标记 下次持仓检测不做 ZT_DataList[code].data[18] = "1"; orderClick.InvokeButton(ZT_SaleButtonElement); Thread.Sleep(500); orderClick.WriteTextBox(ZT_SaleSecuritiesCode, "\b\b\b\b\b\b"); orderClick.WriteTextBox(ZT_SaleSecuritiesCode, code); Thread.Sleep(500); orderClick.WriteTextBox(ZT_SaleNum, "\b\b\b\b\b\b"); orderClick.WriteTextBox(ZT_SaleNum, _num); Thread.Sleep(500); orderClick.InvokeButton(ZT_SaleOrder); GetConfirm("卖出确认"); if (ZT_SaleConfirm != null) { orderClick.InvokeButton(ZT_SaleConfirm); ZT_SaleConfirm = null; Clickconfirm(); } } } } } }
/// <summary> /// 基础数据初始化 /// </summary> static void initialization() { //读取需要的句柄以及UIElement //1.读取预警列表UIElement DZH_uiElement // GetReadWaringListViewElement(); //2.买入按钮UIElement GetZT_OrderButtonElement("买入"); //3.卖出按钮UIElement GetZT_OrderButtonElement("卖出"); //4.获取买入界面UIElement var click = new iAutomationElement(); //点击买入按钮 click.InvokeButton(ZT_BuyButtonElement); //获取持仓单UIElement GetZTViewListElement("买入下单"); //获取买入界面证券代码TextBox UIElement GetZTSecodeElement("买入下单"); //输入证券代码 click.WriteTextBox(ZT_BuySecuritiesCode, "000001"); //获取NumBoxUIElement GetNumboxElement("买入下单"); //获取ZT_BuyOrderUIElement GetZTOrder("买入下单"); //5.获取卖出界面UIElement //点击买入按钮 click.InvokeButton(ZT_SaleButtonElement); //获取持仓单UIElement GetZTViewListElement("卖出下单"); //获取买入界面证券代码TextBox UIElement GetZTSecodeElement("卖出下单"); //输入证券代码 click.WriteTextBox(ZT_SaleSecuritiesCode, "000001"); //获取NumBoxUIElement GetNumboxElement("卖出下单"); //获取ZT_SaleOrderUIElement GetZTOrder("卖出下单"); }
/// <summary> /// 基础数据初始化 /// </summary> void initialization() { //读取需要的句柄以及UIElement //1.读取预警列表UIElement DZH_uiElement //GetReadWaringListViewElement(); //2.买入按钮UIElement GetZT_OrderButtonElement("买入"); //3.卖出按钮UIElement GetZT_OrderButtonElement("卖出"); //4.获取买入界面UIElement var click = new iAutomationElement(); //点击买入按钮 click.InvokeButton(ZT_BuyButtonElement); ////获取持仓单UIElement //GetZTViewListElement("买入下单"); //获取买入界面证券代码TextBox UIElement GetZTSecodeElement("买入下单"); //输入证券代码 click.WriteTextBox(ZT_BuySecuritiesCode, "000001"); //获取NumBoxUIElement GetNumboxElement("买入下单"); //获取ZT_BuyOrderUIElement GetZTOrder("买入下单"); //获取 ZT_CanUseMoneyUIElement GetCanUseMoney(); //获取 ZT_BuyPriceUIElement //GetBuyPrice(); //5.获取卖出界面UIElement //点击买入按钮 click.InvokeButton(ZT_SaleButtonElement); ////获取持仓单UIElement //GetZTViewListElement("卖出下单"); //获取买入界面证券代码TextBox UIElement GetZTSecodeElement("卖出下单"); //输入证券代码 click.WriteTextBox(ZT_SaleSecuritiesCode, "000001"); //获取NumBoxUIElement GetNumboxElement("卖出下单"); //获取ZT_SaleOrderUIElement GetZTOrder("卖出下单"); //获取持仓按钮 GetZT_PositionOrderButtonElement(); //获取A参数 string textA = IniFunc.GetString("Param", "A", "", Application.StartupPath + "\\config.ini").Trim(); if (textA.Contains("|")) { string[] array = textA.Split(new char[] { '|' }); for (int i = 0; i < array.Count(); i++) { A_param[i] = Convert.ToDouble(array[i]); } } //获取B参数 string textB = IniFunc.GetString("Param", "B", "", Application.StartupPath + "\\config.ini").Trim(); if (textB.Contains("|")) { string[] array = textB.Split(new char[] { '|' }); for (int i = 0; i < array.Count(); i++) { B_param[i] = Convert.ToDouble(array[i]); } } //获取C参数 string textC = IniFunc.GetString("Param", "C", "", Application.StartupPath + "\\config.ini").Trim(); if (textC.Contains("|")) { string[] array = textC.Split(new char[] { '|' }); for (int i = 0; i < array.Count(); i++) { C_param[i] = Convert.ToDouble(array[i]); } } }