From 9190340264f947b7978072aad4b0d9660f9f891f Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期一, 16 一月 2023 18:09:13 +0800
Subject: [PATCH] '交易策略优化'

---
 app/appDlg.cpp |  140 +++++++++++++++++++++++++++++++++-------------
 1 files changed, 100 insertions(+), 40 deletions(-)

diff --git a/app/appDlg.cpp b/app/appDlg.cpp
index 3ecba12..a32377e 100644
--- a/app/appDlg.cpp
+++ b/app/appDlg.cpp
@@ -294,13 +294,29 @@
 				}
 			}
 			autoMsgStatic.SetWindowTextW(_T("绛夊緟鎵撳紑鍓睆1..."));
-			THSActionUtil::openSecondScreen();
+			
+			for (int i = 0; i < 5; i++) {
+				HWND second = THSActionUtil::getSecondWindow();
+				if (second > 0) {
+					break;
+				}
+				THSActionUtil::openSecondScreen();
+				Sleep(1000);
+			}
+		
 			autoMsgStatic.SetWindowTextW(_T("鍓睆1宸叉墦寮�..."));
 			Sleep(1000);
 			// 寮�鍚� 娑ㄥ仠璇嗗埆
 			autoMsgStatic.SetWindowTextW(_T("鍚姩娑ㄥ仠璇嗗埆涓�..."));
 			CappDlg::OnBnClickedButton12();
 			autoMsgStatic.SetWindowTextW(_T("鍚姩娑ㄥ仠鍚姩鎴愬姛"));
+
+           // 寮�鍚鎵樿瘑鍒�
+
+           // 寮�鍚氦鏄撴垚鍔熻瘑鍒�
+
+
+
 		}
 	}
 	else {
@@ -464,7 +480,7 @@
 }
 
 
-void  CappDlg::OnL2DataCallback(int index, string code, long captureTime, long processTime, list<TradeData> dataList, void* context) {
+void  CappDlg::OnL2DataCallback(int index, string code, long captureTime, long processTime, list<TradeData*> dataList, void* context) {
 	//杞负json
 	CappDlg* app = (CappDlg*)context;
 	//cout << "鍥炶皟:" << std::this_thread::get_id() << ":" << index << endl;
@@ -472,6 +488,10 @@
 	bool check = btn->GetCheck();
 	if (check) {
 		string data = JsonUtil::loadL2Data(app->clientNum, index, code, captureTime, processTime, dataList);
+		for (list<TradeData*>::iterator el = dataList.begin(); el != dataList.end();++el) {
+			delete (*el);
+		}
+		dataList.clear();
 		clock_t time_start = clock();
 		try {
 			app->socketManager->sendMsg(index, data.c_str());
@@ -1385,7 +1405,7 @@
 	if (p.length() <= 0) {
 		return;
 	}
-	list<TradeData> result = capture->captureLevel2TradeData(cv::imread(p), 0);
+	list<TradeData*> result = capture->captureLevel2TradeData(cv::imread(p), 0);
 	time = clock() - time;
 
 	Clevel2DataDlg::level2Data = { time, result };
@@ -1414,7 +1434,7 @@
 	if (p.length() <= 0) {
 		return;
 	}
-	list<TradeData> result = capture->captureLevel2TradeData(cv::imread(p), 0);
+	list<TradeData*> result = capture->captureLevel2TradeData(cv::imread(p), 0);
 	time = clock() - time;
 
 	Clevel2DataDlg::level2Data = { time, result };
@@ -1756,6 +1776,67 @@
 void CappDlg::OnBnClickedButtonTradeDelegate()
 {
 
+	//鎵撳紑鍚岃姳椤鸿繙鑸増鐨勫鎵樼晫闈�
+	HWND win = 0;
+   if (win <= 0) {
+	   //鍒ゆ柇鏄惁宸茬粡鎵撳紑浜嗗悓鑺遍『杩滆埅鐗�
+	   for (int i = 0; i < 10; i++)
+	   {
+		   win = THSActionUtil::getTradeSimpleDelegateWindow();
+		   if (win <= 0)
+		   {
+			   list<HWND> wlist = Win32Util::searchWindow("鍚岃姳椤鸿繙鑸増");
+			   if (wlist.size() > 0) {
+				   HWND mainWin = *(wlist.begin());
+				   //鎸塅12
+				   Win32Util::sendMessage(mainWin, WM_KEYDOWN, VK_F12, 0);
+				   Win32Util::sendMessage(mainWin, WM_KEYUP, VK_F12, 0);
+				   //绛夊緟鍙嶅簲
+				   Sleep(500);
+			   }
+			   else {
+				   //绛夊緟杩滆埅鐗堟墦寮�
+				   Sleep(1000);
+			   }
+		   }
+		   else {
+			   break;
+		   }
+	   }
+   }
+
+   //濡傛灉宸茬粡鎵撳紑浜嗚繙鑸増鐨勪氦鏄擄紝灏遍渶瑕佺偣鍑诲綋鏃ュ鎵�
+   try {
+	  HWND menuWin = TradeListCapture::getSimpleTradeLeftMenu(win);
+	  if (menuWin > 0) {
+		cv::Mat img =  CaptureUtil::capture(menuWin);
+		string result = JsonUtil::loadOcrData(clientNum, img, "褰撴棩濮旀墭");
+		result = socketManager->sendMsg(result.c_str());
+		Json::Value root = JsonUtil::parseJson(result);
+		if (root["code"] == 0) {
+		  //鍥惧儚璇嗗埆鎴愬姛
+			Json::Value datas = root["data"]["datas"];
+			Json::Value ps = datas[0]["position"];
+			//position鏍煎紡锛歔[0,13],[12,13],[12,15],[0,15]]
+			//鑾峰彇涓績鐐�
+			int x = (ps[0][0].asInt() + ps[1][0].asInt()) / 2;
+			int y= (ps[0][1].asInt() + ps[2][1].asInt()) / 2;
+			RECT rect;
+			Win32Util::getWindowRect(menuWin,&rect);
+			x = rect.left + x;
+			y = rect.top + y;
+			//鐐瑰嚮
+			Win32Util::click(x,y,10);
+		}
+	  }
+   
+   }
+   catch (...) {
+   
+   }
+
+
+
 
 
 
@@ -1787,7 +1868,6 @@
 			AfxMessageBox(msg);
 			return;
 		}
-
 		tradeListCapture->startTradeDelegate();
 		delegateBtn.SetWindowTextW(_T("鏆傚仠濮旀墭璇嗗埆浠诲姟"));
 	}
@@ -1799,46 +1879,26 @@
 //娴嬭瘯鎸夐挳
 void CappDlg::OnBnClickedButtonTest()
 {
-	int index = 0;
-	std::list<TradeData> dataList;
-	for (int i = 0; i < 10; i++) {
-		TradeData data = TradeData();
-		//7.32
-		data.time = "09:30:00";
-		data.price = "26.84";
-		data.operateType = OPERATE_BUY;
-		data.limitPrice = LIMIT_PRICE_UP;
-		data.num = 5000 + i;
-		dataList.push_back(data);
+	cv::Mat mat = cv::imread("C:\\Users\\Administrator\\Desktop\\ocr\\trade\\Snipaste_2023-01-13_18-23-34_gray.png", cv::IMREAD_GRAYSCALE);
+	Json::Value array;
+	int len = mat.rows * mat.cols;
+	for (int i = 0; i < len; i++) {
+		array[i] = mat.data[i];
 	}
-
-	for (int i = 10; i < 11; i++) {
-		TradeData data = TradeData();
-		//7.32
-		data.time = "09:30:00";
-		data.price = "26.84";
-		data.operateType = OPERATE_BUY_CANCEL;
-		data.limitPrice = LIMIT_PRICE_UP;
-		data.num = 5000 + i;
-		dataList.push_back(data);
-	}
-
-
-
-
-	string data = JsonUtil::loadL2Data(clientNum, 0, "002338", 0, 0, dataList);
-	clock_t time_start = clock();
+	Json::Value data;
+	data["data"] = array;
+	data["width"] = mat.cols;
+	data["height"] = mat.rows;
+	data["key"] = "褰撴棩濮旀墭" ;
+	Json::Value root;
+	root["data"] = data;
+	root["type"] = 100;
+	string result = JsonUtil::jsonValue2String(root);
 	try {
-		socketManager->sendMsg(index, data.c_str());
+		socketManager->sendMsg(result.c_str());
 	}
 	catch (string st) {
-		//閲嶆柊杩炴帴鏈嶅姟鍣�
-		socketManager->resetClient(index);
-		socketManager->Connect(index);
 	}
-
-
-
 }
 
 void CappDlg::OnBnClickedCheck5()

--
Gitblit v1.8.0