From 70b51a2636858fb8cfbf39d3764d88d07286d8ad Mon Sep 17 00:00:00 2001
From: admin <admin@example.com>
Date: 星期二, 08 四月 2025 11:27:42 +0800
Subject: [PATCH] 增加并行数量

---
 strategy/order_methods.py |   40 ++++++++++++++++++++++++++++++++--------
 1 files changed, 32 insertions(+), 8 deletions(-)

diff --git a/strategy/order_methods.py b/strategy/order_methods.py
index b5476b3..421c777 100644
--- a/strategy/order_methods.py
+++ b/strategy/order_methods.py
@@ -8,6 +8,7 @@
 from strategy import data_cache, account_management
 import data_server
 from log_module.log import logger_debug, logger_common
+from strategy.trade_setting import TradeSetting
 
 from trade import huaxin_trade_api, huaxin_trade_data_update, middle_api_protocol
 from utils import huaxin_util, tool
@@ -19,12 +20,21 @@
 
 # 涓嬪崟涔板叆鍑芥暟锛堟寜閲戦锛屼互闄愪环涔帮級銆愭寜閲戦涔� 鍩虹鐗堛��
 def buy_order_by_value(symbol, buy_order_value, sec_name, current_price):
+    # 鑷姩涔� 寮�鍏崇洃鍚柟娉�
+    if not TradeSetting().get_auto_buy():
+        # 鏆傚仠鑷姩涔�
+        logger.info(f"鍦ㄤ氦鏄撴柟娉曞嚱鏁板 鍏抽棴浜� 鑷姩涔�")
+        return
+    if current_price < 3 or current_price > 30:
+        # 褰撳墠鍗曚环瓒呭嚭棰勮闄愬埗
+        logger.info(f"褰撳墠鏍囩殑涓偂{sec_name}鍗曚环瓒呭嚭棰勮闄愬埗锛侀璁惧��3 < current_price < 30,褰撳墠鏈�鏂颁环{current_price}")
+        return
     price = round(float(current_price), 2)
     volume = (int(buy_order_value / price) // 100) * 100
     if volume < 100:
         volume = 100
     # 璋冪敤绗煎瓙浠疯绠楀伐鍏疯绠椾笅鍗曚环鏍�
-    order_price = tool.get_buy_max_price(current_price)
+    order_price = round(tool.get_buy_max_price(current_price), 2)
     buy_order = huaxin_trade_api.order(1, symbol[-6:], volume, order_price, blocking=True)
     logger.info(f"current_price===={current_price}    order_price===={order_price}")
     logger.info(f"buy_order===={buy_order}")
@@ -41,14 +51,22 @@
         # 璋冪敤璧勯噾鏌ヨ鍑芥暟 鏌ョ湅璧勯噾鍙樺寲
         account_management.finance_management()
         logger.info(f"鏇存柊鐨勮祫閲戞暟鎹甦ata_cache.account_finance_dict=={data_cache.account_finance_dict}")
+        if symbol[-6:] in data_cache.account_positions_dict:
+            logger.info(f"璇ヨ偂宸茬粡鎸佷粨==銆媨sec_name}")
+            pass
 
-        # 鍥犱负涓婇潰鐨勬洿鏂版寔浠撴暟鎹嚱鏁颁細璁$畻 浠婃棩鏂板鎸佷粨鏁伴噺锛屾墍浠ュ鏋滃啀鎵嬪姩鏂板鎸佷粨鏁版嵁浼氶噸澶嶈绠椼�愯�冭檻鍒版寔浠撳嚱鏁版湁鍙兘浼氭湁寤惰繜锛岃繖涔熷彲鑳芥槸鍚屾椂杩愯涓�娈垫椂闂存病鏈夊嚭鐜癇UG鐨勫師鍥狅紝鍏堟殏鏃朵繚鐣欎互涓嬭繖娈典唬鐮侊紝鍙槸娉ㄩ噴銆�
-        # # 涔扮エ鍚庢坊鍔� 鎸佷粨浠g爜闆嗗悎
-        # data_cache.position_symbols_set.add(symbol)
-        # # 涔扮エ鍚庢坊鍔� 浠婃棩鏂板鎸佷粨浠g爜闆嗗悎
-        # data_cache.addition_position_symbols_set.add(symbol)
-        # logger.info(f"褰撳墠鎸佷粨鏁伴噺:::{len(data_cache.position_symbols_set)}")
-        # logger.info(f"浠婃棩鏂板鎸佷粨鏁伴噺:::{len(data_cache.addition_position_symbols_set)}")
+        # todo 褰撳墠涓烘祴璇曢樁娈电殑鍐椾綑鎵撳嵃
+        # 妫�娴嬫寔浠撲俊鎭腑鏈夋棤涓嬪崟涓偂涓旀湁璇ヤ釜鑲$殑褰撳墠鎸佷粨锛屽彧鏈夊綋鍓嶆寔浠撴暟閲忎笉涓�0鏃讹紝鎵嶈涓轰氦鏄撴垚鍔�
+        for i in data_cache.account_positions_dict:
+            # print(i)
+            if i['securityID'] == symbol[-6:]:
+                # print(i['currentPosition'])
+                if i['currentPosition'] == 0:
+                    logger.info(f"銆恵i['securityName']}銆戜氦鏄撳け璐")
+                else:
+                    # 涔扮エ鍚庢坊鍔� 鎸佷粨浠g爜闆嗗悎
+                    data_cache.position_symbols_set.add(symbol)
+                    logger.info(f"銆恵i['securityName']}銆戜氦鏄撴垚鍔燂紒")
 
 
 # 涓嬪崟涔板叆鍑芥暟锛堟寜鍙敤璧勯噾鐨勪竴瀹氭瘮渚嬶紝鍦ㄦ定鍋滀环涔帮級銆愭寜閲戦涔� 楂樼骇鐗堛��
@@ -78,6 +96,11 @@
 
 # 涓嬪崟鍗栧嚭鍑芥暟锛堟寜鎸佷粨鏁伴噺锛屽湪闄愪环鍗栵級銆愭寜閲忓崠 鍩虹鐗堛��
 def sell_order_by_volume(symbol, volume, sec_name, current_price):
+    # 鑷姩鍗栧紑鍏崇洃鍚柟娉�
+    if not TradeSetting().get_auto_sell():
+        # 鏆傚仠鑷姩鍗�
+        logger.info(f"鍦ㄤ氦鏄撴柟娉曞嚱鏁板 鍏抽棴浜� 鑷姩鍗�")
+        return
     # price = round(float(price), 2)
     # 璋冪敤绗煎瓙浠疯绠楀伐鍏疯绠椾笅鍗曚环鏍�
     order_price = tool.get_buy_min_price(current_price)
@@ -111,6 +134,7 @@
     :param index:  鎸佷粨瀵硅薄鍒楄〃涓殑涓偂瀵瑰簲搴忓垪鍙�
     :return:  灏濊瘯杩斿洖鐨勮鍗曟暟鎹�
     """
+
     logger.info(f"褰撳墠涓偂鎸佷粨鎵嬫暟銆愬綋鍓嶅嚱鏁拌璋冪敤鏃朵紶杩涙潵鐨勫悓姝ユ暟鎹甦ata_cache涓殑鎸佷粨鏁版嵁銆�==={position_volume_yesterday}")
     # sell_order_volume = int(position_volume_yesterday * part_of_volume)
     sell_order_volume = round(position_volume_yesterday * part_of_volume / 100) * 100

--
Gitblit v1.8.0