tkinterGUI,DMA,算法单导入,指令

发布时间 2024-01-10 19:24:48作者: liuweipaul123
import os
import time
import socket
from datetime import datetime
import datetime
# from wsgiref import headers

import pandas as pd
from cmath import isnan
import random
import csv
import copy
import codecs
from multiprocessing import Pool

import datetime
import json
import time

import pynput
import requests
from tkinter import filedialog, messagebox
import tkinter as tk
import random
from tkinter.ttk import Combobox
from tkinter import messagebox
from tkinter import *
from tkinter.messagebox import *
from tkinter import font
import threading
import keyboard
import time


class Application(Frame):
    def __int__(self, master=None):
        super().__init__(master)
        self.master = master
        self.pack()
        # self.createWidget01()
        self.collect_Algo = []
        self.collect_Algo_param = {}
        self.running = False
        self.thread = None

        self.pythonGUI_choice()

    def pythonGUI_choice(self):
        self.destroy_add1 = []
        self.poetryLab = Label(root, text="枯藤老树昏鸦\n小桥流水人家\n古道西风瘦马\n夕阳西下\n断肠人在天涯", fg="black", font=('楷体', 15, 'bold'))
        self.poetryLab.place(x=60, y=10)
        self.destroy_add1.append(self.poetryLab)
        self.choice_loginBtn = Button(text="DMA", font=('仿宋体', 12, 'bold'), fg="black", bg="green", command=self.pythonGUI_DMA)
        self.choice_loginBtn.place(x=20, y=150)
        self.choice_algoImport = Button(text="算法单导入", font=('仿宋体', 12, 'bold'), fg="black", bg="green", command=self.pythonGUI_algoImport)
        self.choice_algoImport.place(x=95, y=150)
        self.choice_instruction = Button(text="指令", font=('仿宋体', 12, 'bold'), fg="black", bg="green", command=self.pythonGUI_instruction)
        self.choice_instruction.place(x=230, y=150)
        self.destroy_add1.append(self.choice_loginBtn)
        self.destroy_add1.append(self.choice_algoImport)
        self.destroy_add1.append(self.choice_instruction)

    def pythonGUI_instruction(self):
        if self.destroy_add1 != []:
            for i in self.destroy_add1:
                i.destroy()
            self.destroy_add1.clear()
        root.geometry("300x200+750+400")
        self.only_instructionBtn = Button(text="单个下发指令", font=('楷体', 12, 'bold'), fg="black", bg="orange",command=self.only_instruction)
        self.only_instructionBtn.place(x=20, y=20)
        self.batch_instructionBtn = Button(text="批量下发指令", font=('楷体', 12, 'bold'), fg="black", bg="orange",command=self.batch_instruction)
        self.batch_instructionBtn.place(x=160, y=20)
        self.update_instructionBtn = Button(text="修改指令", font=('楷体', 12, 'bold'), fg="black", bg="orange",command=self.update_instruction)
        self.update_instructionBtn.place(x=20, y=80)
        self.freezing_instructionBtn = Button(text="冻结指令", font=('楷体', 12, 'bold'), fg="black", bg="orange",command=self.freezing_instruction)
        self.freezing_instructionBtn.place(x=160, y=80)
        self.cancelled_instructionBtn = Button(text="作废指令", font=('楷体', 12, 'bold'), fg="black", bg="orange",command=self.cancelled_instruction)
        self.cancelled_instructionBtn.place(x=20, y=140)
        self.thawOut_instructionBtn = Button(text="解冻指令", font=('楷体', 12, 'bold'), fg="black", bg="orange",command=self.thawOut_instruction)
        self.thawOut_instructionBtn.place(x=160, y=140)
        self.destroy_add1.append(self.only_instructionBtn)
        self.destroy_add1.append(self.batch_instructionBtn)
        self.destroy_add1.append(self.update_instructionBtn)
        self.destroy_add1.append(self.freezing_instructionBtn)
        self.destroy_add1.append(self.cancelled_instructionBtn)
        self.destroy_add1.append(self.thawOut_instructionBtn)

    def only_instruction(self):
        if self.destroy_add1 != []:
            for i in self.destroy_add1:
                i.destroy()
            self.destroy_add1.clear()
        root.geometry("556x500+700+350")


        # Label(root, text="每秒订单量:", font=('仿宋体', 12, 'bold'), fg="blue").place(x=5, y=55)
        # self.targetVol = Text(root, height=1.3, width=10, fg="green", font=('仿宋体', 12, 'bold'))

        # 获取输入测试环境ip和端口
        self.ipLab = Label(text="测试环境:", font=('仿宋体', 12, 'bold'), fg="blue")
        self.ipLab.place(x=5, y=15, anchor='nw')
        # ipText = tk.Text( height=1, width=20)
        # "10.5.4.109:8092", "10.5.5.174:8092"
        self.ipText = Combobox(values=["zy_test","zy_uat"], height=1, width=18,state="readonly")
        self.ipText.place(x=105, y=15, anchor='nw')
        self.ipText.current(0)
        self.ipText.configure(foreground="green")
        self.ipText.configure(font=('仿宋体', 12, 'bold'))

        # 产品号
        self.productLab = tk.Label( text="产品号:", font=('仿宋体', 12, 'bold'), fg="blue")
        self.productLab.place(x=5, y=45, anchor='nw')
        self.productText = tk.Text(height=1, width=20, font=('仿宋体', 12, 'bold'), fg="green")
        self.productText.place(x=105, y=45, anchor='nw')
        self.productText.insert('1.0', '7001')

        # 资产单元
        self.assetLab = tk.Label( text="资产单元:", font=('仿宋体', 12, 'bold'), fg="blue")
        self.assetLab.place(x=5, y=75, anchor='nw')
        self.assetText = tk.Text( height=1, width=20, font=('仿宋体', 12, 'bold'), fg="green")
        self.assetText.place(x=105, y=75, anchor='nw')
        self.assetText.insert('1.0', '7001')

        # 组合号
        self.portfolioLab = tk.Label( text="组合号:", font=('仿宋体', 12, 'bold'), fg="blue")
        self.portfolioLab.place(x=5, y=105, anchor='nw')
        self.portfolioText = tk.Text( height=1, width=20, font=('仿宋体', 12, 'bold'), fg="green")
        self.portfolioText.place(x=105, y=105, anchor='nw')
        self.portfolioText.insert('1.0', '7001_000')

        # 获取代码
        self.symbolLab = tk.Label( text="代码:", font=('仿宋体', 12, 'bold'), fg="blue")
        self.symbolLab.place(x=5, y=135, anchor='nw')
        self.symbolText = tk.Text( height=1, width=20, font=('仿宋体', 12, 'bold'), fg="green")
        self.symbolText.place(x=105, y=135, anchor='nw')
        self.symbolText.insert('1.0', '000001.SZ')

        # 交易方向
        self.tradeSideLab = tk.Label( text="交易方向:", font=('仿宋体', 12, 'bold'), fg="blue")
        self.tradeSideLab.place(x=5, y=165, anchor='nw')
        self.tradeSideText = tk.Text( height=1, width=20, font=('仿宋体', 12, 'bold'), fg="green")
        self.tradeSideText.place(x=105, y=165, anchor='nw')
        self.tradeSideText.insert('1.0', '1')

        # 目标量
        self.targetQtyLab = tk.Label( text="目标量:", font=('仿宋体', 12, 'bold'), fg="blue")
        self.targetQtyLab.place(x=5, y=195, anchor='nw')
        self.targetQtyText = tk.Text( height=1, width=20, font=('仿宋体', 12, 'bold'), fg="green")
        self.targetQtyText.place(x=105, y=195, anchor='nw')
        self.targetQtyText.insert('1.0', '10000')

        # 目标金额
        self.targetAmtLab = tk.Label( text="目标金额:", font=('仿宋体', 12, 'bold'), fg="blue")
        self.targetAmtLab.place(x=5, y=225, anchor='nw')
        self.targetAmtText = tk.Text( height=1, width=20, font=('仿宋体', 12, 'bold'), fg="green")
        self.targetAmtText.place(x=105, y=225, anchor='nw')
        self.targetAmtText.insert('1.0', '')

        # 价格类型 #(0无限价,1有限价)
        self.priceTypeLab = tk.Label( text="价格类型:", font=('仿宋体', 12, 'bold'), fg="blue")
        self.priceTypeLab.place(x=5, y=255, anchor='nw')
        self.priceTypeText = tk.Text( height=1, width=20, font=('仿宋体', 12, 'bold'), fg="green")
        self.priceTypeText.place(x=105, y=255, anchor='nw')
        self.priceTypeText.insert('1.0', '')

        # 限价
        self.limitPriceLab = tk.Label( text="限价:", font=('仿宋体', 12, 'bold'), fg="blue")
        self.limitPriceLab.place(x=5, y=285, anchor='nw')
        self.limitPriceText = tk.Text( height=1, width=20, font=('仿宋体', 12, 'bold'), fg="green")
        self.limitPriceText.place(x=105, y=285, anchor='nw')
        self.limitPriceText.insert('1.0', '')

        # 投资经理
        self.managerLab =tk.Label( text="投资经理:", font=('仿宋体', 12, 'bold'), fg="blue")
        self.managerLab.place(x=5, y=315, anchor='nw')
        self.managerText = tk.Text( height=1, width=20, font=('仿宋体', 12, 'bold'), fg="green")
        self.managerText.place(x=105, y=315, anchor='nw')
        self.managerText.insert('1.0', 'tkinter')

        # 备注
        self.remarkLab = tk.Label( text="备注:", font=('仿宋体', 12, 'bold'), fg="blue")
        self.remarkLab.place(x=5, y=345, anchor='nw')
        self.remarkText = tk.Text( height=1, width=20, font=('仿宋体', 12, 'bold'), fg="green")
        self.remarkText.place(x=105, y=345, anchor='nw')
        self.remarkText.insert('1.0', 'tkinter')

        self.only_instructionBtn1 = Button(text="单个下发指令", font=('仿宋体', 12, 'bold'), bg="orange",command=self.requests_only_instruction)
        self.only_instructionBtn1.place(x=20, y=385)

        self.returnBtn = Button(text="返回", font=('仿宋体', 12, 'bold'), bg="orange",command=self.pythonGUI_instruction)
        self.returnBtn.place(x=180, y=385)

        self.destroy_add1.append(self.ipLab)
        self.destroy_add1.append(self.ipText)
        self.destroy_add1.append(self.productLab)
        self.destroy_add1.append(self.productText)
        self.destroy_add1.append(self.assetLab)
        self.destroy_add1.append(self.assetText)
        self.destroy_add1.append(self.portfolioLab)
        self.destroy_add1.append(self.portfolioText)
        self.destroy_add1.append(self.symbolLab)
        self.destroy_add1.append(self.symbolText)
        self.destroy_add1.append(self.tradeSideLab)
        self.destroy_add1.append(self.tradeSideText)
        self.destroy_add1.append(self.targetQtyLab)
        self.destroy_add1.append(self.targetQtyText)
        self.destroy_add1.append(self.targetAmtLab)
        self.destroy_add1.append(self.targetAmtText)
        self.destroy_add1.append(self.priceTypeLab)
        self.destroy_add1.append(self.priceTypeText)
        self.destroy_add1.append(self.limitPriceLab)
        self.destroy_add1.append(self.limitPriceText)
        self.destroy_add1.append(self.managerLab)
        self.destroy_add1.append(self.managerText)
        self.destroy_add1.append(self.remarkLab)
        self.destroy_add1.append(self.remarkText)
        self.destroy_add1.append(self.only_instructionBtn1)
        self.destroy_add1.append(self.returnBtn)




    def requests_only_instruction(self0):
        print()
    def batch_instruction(self):
        print()
    def update_instruction(self):
        print()
    def freezing_instruction(self):
        print()
    def cancelled_instruction(self):
        print()
    def thawOut_instruction(self):
        print()

    def pythonGUI_DMA(self):
        if self.destroy_add1 != []:
            for i in self.destroy_add1:
                i.destroy()
            self.destroy_add1.clear()

        root.geometry("556x300+700+350")
        Button(root, text="输入资金账号", font=('仿宋体', 12, 'bold'), fg="blue", command=self.btnAcctFun_DMA).place(x=10,y=10)
        Button(root, text="输入股票代码", font=('仿宋体', 12, 'bold'), fg="blue", command=self.btnSymbolFun_DMA).place(x=231, y=10)

        Label(root, text="每秒订单量:", font=('仿宋体', 12, 'bold'), fg="blue").place(x=5, y=55)
        self.targetVol = Text(root, height=1.3, width=10, fg="green", font=('仿宋体', 12, 'bold'))
        self.targetVol.insert('1.0', "10")
        self.targetVol.place(x=110, y=55)

        Label(root, text="程序结束时间:", fg="blue", font=('仿宋体', 12, 'bold')).place(x=230, y=55)
        self.runStopTime = Text(root, height=1.3, width=7, fg="green", font=('仿宋体', 12, 'bold'))
        self.runStopTime.insert('1.0', "150000")
        self.runStopTime.place(x=350, y=55)

        Label(root, text="批号起始值:", fg="blue", font=('仿宋体', 12, 'bold')).place(x=5, y=100)
        self.beginNum = Text(root, height=1.3, width=10, fg="green", font=('仿宋体', 12, 'bold'))
        self.beginNum.insert('1.0', "1")
        self.beginNum.place(x=110, y=100)

        Label(root, text="批号结束值:", fg="blue", font=('仿宋体', 12, 'bold')).place(x=230, y=100)
        self.endNum = Text(root, height=1.3, width=10, fg="green", font=('仿宋体', 12, 'bold'))
        self.endNum.insert('1.0', "1000")
        self.endNum.place(x=350, y=100)

        Label(root, text="交易方向:", fg="blue", font=('仿宋体', 12, 'bold')).place(x=5, y=145)
        self.tradeSide = Text(root, height=1.3, width=10, fg="green", font=('仿宋体', 12, 'bold'))
        self.tradeSide.insert('1.0', "1")
        self.tradeSide.place(x=110, y=145)

        Label(root, text="目标量:", fg="blue", font=('仿宋体', 12, 'bold')).place(x=230, y=140)
        self.targetVol_symbol = Text(root, height=1.3, width=10, fg="green", font=('仿宋体', 12, 'bold'))
        self.targetVol_symbol.insert('1.0', "200")
        self.targetVol_symbol.place(x=350, y=145)

        self.label_orderNum = Label(root, text="生成订单数量为0", fg="red", font=('仿宋体', 12, 'bold'))
        self.label_orderNum.place(x=30, y=185)

        self.label_runStopNum = Label(root, text="运行结束批号值为0", fg="red", font=('仿宋体', 12, 'bold'))
        self.label_runStopNum.place(x=230, y=185)
        self.num = 0

        Label(root, text="------------------------------------------------------------------------:", fg="orange",
              font=('仿宋体', 30, 'bold')).place(x=5, y=205)

        self.btn_DMA = Button(root, text="DMA", font=('times', 16, 'bold'), bg='orange', command=self.toggle_running_DMA)
        self.btn_DMA.place(x=5, y=245)

        # self.clock = Label(root, font=('times', 20, 'bold'), bg='orange')
        self.clock_second = 1000
        self.clock = Button(root, font=('times', 16, 'bold'), bg='orange', command=self.photoFun_DMA)
        self.clock.place(x=100, y=245)
        self.time_update_DMA()

        # def OQAlgo(OQAlgo_var1,OQAlgo_var2,OQAlgo_var3,OQAlgo_var4):

    def btnSaveSymbolFun_DMA(self):  # 保存股票
        try:
            os.remove(symbol_file_DMA)
        except:
            print(symbol_file_DMA + "文件不存在")

        # 生成资金账号的CSV文件
        with open(symbol_file_DMA, "a+", newline='') as file:
            csv_file = csv.writer(file)
            datas = [["symbol"]]
            csv_file.writerows(datas)

        text_saveAcct = self.text_symbol.get(1.0, END)
        comma = 0  # 点的个数
        for i in text_saveAcct:
            if i == ".":
                comma = comma + 1
            if comma >= 2:
                break
        print("comma", comma)

        print("acctType112233", text_saveAcct)
        if comma == 1:
            print(333)
            symbol = text_saveAcct.replace("\n", "")
            print("acctType12", symbol)
            Parameter = []
            Parameters = []
            Parameter.append(symbol)
            Parameters.append(Parameter)

            with open(symbol_file_DMA, "a+", newline='') as file:
                csv_file = csv.writer(file)
                csv_file.writerows(Parameters)
        else:
            text_saveAcct_split = text_saveAcct.split("\n")
            print("15", text_saveAcct_split)
            for i in range(len(text_saveAcct_split)):
                if text_saveAcct_split[i] != "":
                    symbol = text_saveAcct_split[i]

                    print("symbol9999", symbol)
                    Parameter = []
                    Parameters = []
                    Parameter.append(symbol)
                    Parameters.append(Parameter)

                    with open(symbol_file_DMA, "a+", newline='') as file:
                        csv_file = csv.writer(file)
                        csv_file.writerows(Parameters)

    def btnSymbolFun_DMA(self):  # 输入股票
        root_btnSymbol = Tk()
        root_btnSymbol.geometry("200x500+230+200")
        self.btnSaveSymbol = Button(root_btnSymbol, text="点击保存", font=('仿宋体', 12, 'bold'), fg="blue",
                                    command=self.btnSaveSymbolFun_DMA)
        self.btnSaveSymbol.pack()
        self.text_symbol = Text(root_btnSymbol, height=50, width=42, fg='green', font=("仿宋体", 12))  # "helvetica"
        self.text_symbol.pack(side=LEFT)
        # 在文本框开头插入一段话
        filename = "symbol.csv"
        current_directory = os.getcwd()  # 获取当前目录
        print("current_directory", current_directory)
        file_path = os.path.join(current_directory, filename)  # 构建文件路径
        print("file_path", file_path)
        if os.path.isfile(file_path):  # 检查文件是否存在并且是.csv文件
            data = pd.read_csv(symbol_file_DMA, encoding="gbk")
            if len(data["symbol"]) == 0:
                self.text_symbol.insert('1.0', '000001.SZ\n300001.SZ\n600000.SH\n688001.SH')
            else:
                data_text = ""
                for i in range(len(data["symbol"])):
                    data_text = data_text + data["symbol"][i] + "\n"
                print("data_text", data_text)
                self.text_symbol.insert('1.0', data_text)
        else:
            self.text_symbol.insert('1.0', '000001.SZ\n300001.SZ\n600000.SH\n688001.SH')

        scrollbar = Scrollbar(root_btnSymbol, command=self.text_symbol.yview)
        scrollbar.pack(side=LEFT, fill=Y)
        self.text_symbol.configure(yscrollcommand=scrollbar.set)
        root_btnSymbol.mainloop()

    def btnSaveAcctFun_DMA(self):  # 保存资金账号
        try:
            os.remove(Acct_file_DMA)
        except:
            print("Acct_file_DMA" + "文件不存在")

        # 生成资金账号的CSV文件
        with open(Acct_file_DMA, "a+", newline='') as file:
            csv_file = csv.writer(file)
            datas = [["acctType", "acct"]]
            csv_file.writerows(datas)

        text_saveAcct = self.text_widget.get(1.0, END)
        comma = 0  # 逗号的个数
        for i in text_saveAcct:
            if i == ",":
                comma = comma + 1
            if comma >= 2:
                break
        print("comma", comma)

        print("acctType112233", text_saveAcct)
        if comma == 1:
            print(333)
            acctType_acct = text_saveAcct.replace("\n", "").split(",")
            print("acctType12", text_saveAcct.split(","))
            print("acctType13", acctType_acct)
            acctType = acctType_acct[0]
            acct = acctType_acct[1]
            print("acctType", acctType)
            print("acct", acct)
            Parameter = []
            Parameters = []
            Parameter.append(acctType)
            Parameter.append(acct)
            Parameters.append(Parameter)

            with open(Acct_file_DMA, "a+", newline='') as file:
                csv_file = csv.writer(file)
                csv_file.writerows(Parameters)
        else:
            text_saveAcct_split = text_saveAcct.split("\n")
            print("15", text_saveAcct_split)
            for i in range(len(text_saveAcct_split) - 1):
                if text_saveAcct_split[i] != "":
                    acctType_acct = text_saveAcct_split[i].split(",")
                    acctType = acctType_acct[0]
                    acct = acctType_acct[1]
                    print("acctType", acctType)
                    print("acct", acct)
                    Parameter = []
                    Parameters = []
                    Parameter.append(acctType)
                    Parameter.append(acct)
                    Parameters.append(Parameter)

                    with open(Acct_file_DMA, "a+", newline='') as file:
                        csv_file = csv.writer(file)
                        csv_file.writerows(Parameters)

    def btnAcctFun_DMA(self):  # 输入资金长账号
        root_btnAcct = Tk()
        root_btnAcct.geometry("200x500+230+200")
        self.btnSaveAcct = Button(root_btnAcct, text="点击保存", font=('仿宋体', 12, 'bold'), fg="blue",
                                  command=self.btnSaveAcctFun_DMA)
        self.btnSaveAcct.pack()
        self.text_widget = Text(root_btnAcct, height=50, width=42, fg='green', font=("仿宋体", 12))  # "helvetica"
        self.text_widget.pack(side=LEFT)
        # 在文本框开头插入一段话
        filename = "Acct.csv"
        current_directory = os.getcwd()  # 获取当前目录
        print("current_directory", current_directory)
        file_path = os.path.join(current_directory, filename)  # 构建文件路径
        print("file_path", file_path)
        if os.path.isfile(file_path):  # 检查文件是否存在
            data = pd.read_csv(Acct_file_DMA, encoding="gbk")
            if len(data["acctType"]) == 0:
                self.text_widget.insert('1.0', 'UF0,89050027916\nUM0,20100051859')
            else:
                data_text = ""
                for i in range(len(data["acctType"])):
                    data_text = data_text + data["acctType"][i] + "," + str(data["acct"][i]) + "\n"
                print("data_text", data_text)
                self.text_widget.insert('1.0', data_text)
        else:
            self.text_widget.insert('1.0', 'UF0,89050027916\nUM0,20100051859')

        scrollbar = Scrollbar(root_btnAcct, command=self.text_widget.yview)
        scrollbar.pack(side=LEFT, fill=Y)
        self.text_widget.configure(yscrollcommand=scrollbar.set)
        root_btnAcct.mainloop()

    def time_update_DMA(self):
        current_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        weekday = datetime.datetime.now().strftime("%A")
        self.clock.config(text=f"日期:{current_time}  星期:{weekday}")
        if self.clock_second == 1000:
            self.master.after(1000, self.time_update_DMA)
        else:
            time.sleep(1)
            self.master.after(1000, self.time_update_DMA)

    def photoFun_DMA(self):
        try:
            s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
            s.connect(("8.8.8.8", 80))
            ip = s.getsockname()[0]
            print("ip", ip)
        except:
            ip = "127.0.0.1"
        finally:
            s.close()

        messages = ["不要拍我", "今天是星期五", "我能倒着背出滕王阁序", "我猜你此刻不想下DMA算法",
                    "不好,今天下班忘记打卡了",
                    "面朝大海,春暖花开", "忘记了时光与风", "上班又迟到了,都怪早上不下雨",
                    "最好看的还是前任三", "算法总线太简单了,两只手就能忙的过来"]

        choice_messages = random.choice(messages)
        self.clock["text"] = choice_messages
        self.clock_second = 3000
        # showinfo(title="友情提示", message=choice_messages)
        # return

    def toggle_running_DMA(self):

        if self.running:
            # 如果程序正在运行,停止运行
            self.label_orderNum.config(text="生成订单数量为" + str(self.num))
            self.label_runStopNum.config(
                text="运行结束批号值为" + str(
                    self.num + int(self.targetVol.get(1.0, END))))  # + int(self.beginNum.get(1.0, END))
            self.btn_DMA["text"] = "DMA"
            self.btn_DMA["bg"] = "orange"
            self.running = False
            self.thread.join()
            # 等待线程结束
            print('Program stopped')
        else:

            # 如果程序没有运行,启动运行
            self.btn_DMA["text"] = "STOP"
            self.btn_DMA["bg"] = "red"
            self.running = True
            self.thread = threading.Thread(target=self.run_loop_DMA)
            #    创建新线程来运行run_loop方法
            self.thread.start()
            # 启动线程
            print('Program started')

    def run_loop_DMA(self):
        try:
            os.remove(algoOrder_file_DMA)
        except:
            print(algoOrder_file_DMA + "文件不存在")
        try:
            os.remove(algoOrderStop_DMA)
        except:
            print(algoOrderStop_DMA + "文件不存在")
        try:
            os.remove(assetInfo_file_DMA)
        except:
            print(assetInfo_file_DMA + "文件不存在")
        try:
            os.remove(compactInfo_file_DMA)
        except:
            print(compactInfo_file_DMA + "文件不存在")
        try:
            os.remove(crediStockInfo_file_DMA)
        except:
            print(crediStockInfo_file_DMA + "文件不存在")
        try:
            os.remove(crediTargetStockInfo_file_DMA)
        except:
            print(crediTargetStockInfo_file_DMA + "文件不存在")
        try:
            os.remove(execResult_file_DMA)
        except:
            print(execResult_file_DMA + "文件不存在")
        try:
            os.remove(OrderMaxNo_file_DMA)
        except:
            print(OrderMaxNo_file_DMA + "文件不存在")
        try:
            os.remove(orderUpdate_file_DMA)
        except:
            print(orderUpdate_file_DMA + "文件不存在")
        try:
            os.remove(positionInfo_file_DMA)
        except:
            print(positionInfo_file_DMA + "文件不存在")
        try:
            os.remove(TradeMaxNo_file_DMA)
        except:
            print(TradeMaxNo_file_DMA + "文件不存在")
        try:
            os.remove(tradeUpdate_file_DMA)
        except:
            print(tradeUpdate_file_DMA + "文件不存在")

        with open(algoOrder_file_DMA, "a+", newline='') as file:
            csv_file = csv.writer(file)
            datas = [["updTime", "custAlgoNo", "acctType", "acct", "symbol", "tradeSide",
                      "targetQty", "algoId", "priceType", "ticks", "highLimitPrice", "lowLimitPrice"]]
            csv_file.writerows(datas)

        with open(algoOrderStop_DMA, "a+", newline='') as file:
            csv_file = csv.writer(file)
            datas = [["updTime", "custAlgoNo"]]
            csv_file.writerows(datas)

        beginNum = int(self.beginNum.get(1.0, END))
        endNum = int(self.endNum.get(1.0, END))
        targetVol = int(self.targetVol.get(1.0, END))
        targetVol_symbol = int(self.targetVol_symbol.get(1.0, END))
        tradeSide = self.tradeSide.get(1.0, END).strip()
        runStopTime = int(self.runStopTime.get(1.0, END))
        filename = "Acct.csv"
        current_directory = os.getcwd()  # 获取当前目录
        print("current_directory", current_directory)
        file_path = os.path.join(current_directory, filename)  # 构建文件路径
        print("file_path", file_path)
        if os.path.isfile(file_path):  # 检查文件是否存在
            data = pd.read_csv(Acct_file_DMA, encoding="gbk")
            if len(data["acctType"]) == 0:  # 判断文件内容是否为空
                self.btn_DMA["text"] = "DMA"
                self.btn_DMA["bg"] = "orange"
                self.running = False
                messagebox.showinfo("提示", "请输入资金账号")
                return
        else:
            self.btn_DMA["text"] = "DMA"
            self.btn_DMA["bg"] = "orange"
            self.running = False
            messagebox.showinfo("提示", "请输入资金账号")
            return

        filename = "symbol.csv"
        current_directory = os.getcwd()  # 获取当前目录
        print("current_directory", current_directory)
        file_path = os.path.join(current_directory, filename)  # 构建文件路径
        print("file_path", file_path)
        if os.path.isfile(file_path):  # 检查文件是否存
            data = pd.read_csv(symbol_file_DMA, encoding="gbk")
            if len(data["symbol"]) == 0:
                self.btn_DMA["text"] = "DMA"
                self.btn_DMA["bg"] = "orange"
                self.running = False
                messagebox.showinfo("提示", "请输入股票")
                return
        else:
            self.btn_DMA["text"] = "DMA"
            self.btn_DMA["bg"] = "orange"
            self.running = False
            messagebox.showinfo("提示", "请输入股票")

            return

        if len(str(runStopTime)) > 6:
            self.btn_DMA["text"] = "DMA"
            self.btn_DMA["bg"] = "orange"
            self.running = False
            showinfo(title="友情提示", message="程序结束时间格式填写有误")
            return
        elif len(str(runStopTime)) <= 4:
            self.btn_DMA["text"] = "DMA"
            self.btn_DMA["bg"] = "orange"
            self.running = False
            showinfo(title="友情提示", message="程序结束时间格式填写有误")
            return
        elif len(str(runStopTime)) == 6:
            if int(str(runStopTime)[0:2]) > 23:
                self.btn_DMA["text"] = "DMA"
                self.btn_DMA["bg"] = "orange"
                self.running = False
                showinfo(title="友情提示", message="程序结束时间格式填写有误")
                return

            elif int(str(runStopTime)[2:4]) > 59:
                self.btn_DMA["text"] = "DMA"
                self.btn_DMA["bg"] = "orange"
                self.running = False
                showinfo(title="友情提示", message="程序结束时间格式填写有误")
                return

            elif int(str(runStopTime)[4:6]) > 59:
                self.btn_DMA["text"] = "DMA"
                self.btn_DMA["bg"] = "orange"
                self.running = False
                showinfo(title="友情提示", message="程序结束时间格式填写有误")
                return
        elif len(str(runStopTime)) == 5:
            if int(str(runStopTime)[1:3]) > 59:
                self.btn_DMA["text"] = "DMA"
                self.btn_DMA["bg"] = "orange"
                self.running = False
                showinfo(title="友情提示", message="程序结束时间格式填写有误")
                return
            elif int(str(runStopTime)[3:5]) > 59:
                self.btn_DMA["text"] = "DMA"
                self.btn_DMA["bg"] = "orange"
                self.running = False
                showinfo(title="友情提示", message="程序结束时间格式填写有误")
                return
        if tradeSide not in ["1","2","A","B","C","D","FA","FB","FC","FD","OC"] :
            self.btn_DMA["text"] = "DMA"
            self.btn_DMA["bg"] = "orange"
            self.running = False
            showinfo(title="友情提示", message="交易方向填写有误")
            return
        if  runStopTime<int(datetime.datetime.now().strftime("%H%M%S")):
            self.btn_DMA["text"] = "DMA"
            self.btn_DMA["bg"] = "orange"
            self.running = False
            messagebox.showinfo("提示", "程序结束时间不能小于当前时间")
            return

        acctType_acct = []  # 获取资金账号
        data_acctType_acct = pd.read_csv(Acct_file_DMA, encoding="gbk")
        for i in range(len(data_acctType_acct["acctType"])):
            acctType_acct.append(data_acctType_acct["acctType"][i] + "_" + str(data_acctType_acct["acct"][i]))

        collect_symbol = []  # 获取股票代码
        data_symbol = pd.read_csv(symbol_file_DMA, encoding="gbk")
        for i in range(len(data_symbol["symbol"])):
            collect_symbol.append(data_symbol["symbol"][i])

        for i in range(beginNum, endNum, targetVol):
            if not self.running:
                # 检查程序是否需要停止
                break  # 停止循环
            for j in range(targetVol):
                self.num = i + j
                print("self.num", self.num)
                time.sleep(1 / targetVol)

                choice_acctType_acct = random.choice(acctType_acct)
                acctType = choice_acctType_acct.split("_")[0]
                acct = choice_acctType_acct.split("_")[1]
                symbol = random.choice(collect_symbol)

                Parameter = []
                Parameters = []
                Parameter.append("93000")
                Parameter.append(self.num)
                Parameter.append(acctType)
                Parameter.append(acct)
                Parameter.append(symbol)
                Parameter.append(tradeSide)
                Parameter.append(targetVol_symbol)
                Parameter.append("DMA")
                Parameter.append("AT")
                Parameter.append("1")
                Parameter.append("200")
                Parameter.append("1")
                Parameters.append(Parameter)

                with open(algoOrder_file_DMA, "a+", newline='') as file:
                    csv_file = csv.writer(file)
                    csv_file.writerows(Parameters)
            if int(datetime.datetime.now().strftime("%H%M%S")) >= runStopTime or self.num > endNum:
                self.btn_DMA["text"] = "DMA"
                self.btn_DMA["bg"] = "orange"
                self.running = False
                messagebox.showinfo("提示", "程序结束时间到了或者到了批号结束值")
                break

    def pythonGUI_algoImport(self):
        if self.destroy_add1 != []:
            for i in self.destroy_add1:
                i.destroy()
            self.destroy_add1.clear()
        root.geometry("700x470+650+230")
        Label(root, text="提示:必须选择至少一个算法", font=('仿宋体', 10, 'bold'), fg="red").place(x=5, y=5)
        self.OQAlgo_var1 = IntVar()
        self.OQAlgo_var2 = IntVar()
        self.OQAlgo_var3 = IntVar()
        self.OQAlgo_var4 = IntVar()

        # self.OQAlgo1 = Checkbutton(root, text='OQAlgo:', bg="green",variable=OQAlgo_var1, onvalue=1, offvalue=0, command=lambda :OQAlgo(OQAlgo_var1,OQAlgo_var2,OQAlgo_var3,OQAlgo_var4))
        self.OQAlgo1 = Checkbutton(root, text='OQAlgo:', font=('仿宋体', 10, 'bold'), fg="blue", variable=self.OQAlgo_var1,
                                   onvalue=1, offvalue=0,
                                   command=self.OQAlgo_algoImport)
        self.OQAlgo1.place(x=5, y=25)
        self.OQAlgo2 = Checkbutton(root, text="TWAP", font=('仿宋体', 10, 'bold'), fg="green", variable=self.OQAlgo_var2)
        self.OQAlgo2.place(x=100, y=25)
        self.OQAlgo3 = Checkbutton(root, text="VWAP", font=('仿宋体', 10, 'bold'), fg="green", variable=self.OQAlgo_var3)
        self.OQAlgo3.place(x=180, y=25, anchor='nw')
        self.OQAlgo4 = Checkbutton(root, text="POV", font=('仿宋体', 10, 'bold'), fg="green", variable=self.OQAlgo_var4)
        self.OQAlgo4.place(x=260, y=25)

        self.XTAlgo_var1 = IntVar()
        self.XTAlgo_var2 = IntVar()
        self.XTAlgo_var3 = IntVar()
        self.XTAlgo_var4 = IntVar()

        self.XTAlgo1 = Checkbutton(root, text='XTAlgo:', font=('仿宋体', 10, 'bold'), fg="blue", variable=self.XTAlgo_var1,
                                   onvalue=1, offvalue=0,
                                   command=self.XTAlgo_algoImport)
        self.XTAlgo1.place(x=5, y=50)
        self.XTAlgo2 = Checkbutton(root, text="xtTWAP", font=('仿宋体', 10, 'bold'), fg="green", variable=self.XTAlgo_var2)
        self.XTAlgo2.place(x=100, y=50)
        self.XTAlgo3 = Checkbutton(root, text="xtVWAP", font=('仿宋体', 10, 'bold'), fg="green", variable=self.XTAlgo_var3)
        self.XTAlgo3.place(x=180, y=50)
        self.XTAlgo4 = Checkbutton(root, text="xtVP", font=('仿宋体', 10, 'bold'), fg="green", variable=self.XTAlgo_var4)
        self.XTAlgo4.place(x=260, y=50)

        self.KFAlgo_var1 = IntVar()
        self.KFAlgo_var2 = IntVar()
        self.KFAlgo_var3 = IntVar()
        self.KFAlgo_var4 = IntVar()
        self.KFAlgo_var5 = IntVar()
        self.KFAlgo_var6 = IntVar()

        self.KFAlgo1 = Checkbutton(root, text='KFAlgo:', font=('仿宋体', 10, 'bold'), fg="blue", variable=self.KFAlgo_var1,
                                   onvalue=1, offvalue=0,
                                   command=self.KFAlgo_algoImport)
        self.KFAlgo1.place(x=5, y=75)
        self.KFAlgo2 = Checkbutton(root, text="kfpov", font=('仿宋体', 10, 'bold'), fg="green", variable=self.KFAlgo_var2)
        self.KFAlgo2.place(x=100, y=75)
        self.KFAlgo3 = Checkbutton(root, text="kftwap_core", font=('仿宋体', 10, 'bold'), fg="green",
                                   variable=self.KFAlgo_var3)
        self.KFAlgo3.place(x=180, y=75)
        self.KFAlgo4 = Checkbutton(root, text="kftwap_plus", font=('仿宋体', 10, 'bold'), fg="green",
                                   variable=self.KFAlgo_var4)
        self.KFAlgo4.place(x=300, y=75)
        self.KFAlgo5 = Checkbutton(root, text="kfvwap_core", font=('仿宋体', 10, 'bold'), fg="green",
                                   variable=self.KFAlgo_var5)
        self.KFAlgo5.place(x=420, y=75)
        self.KFAlgo6 = Checkbutton(root, text="kfvwap_plus", font=('仿宋体', 10, 'bold'), fg="green",
                                   variable=self.KFAlgo_var6)
        self.KFAlgo6.place(x=540, y=75)

        self.HXAlgo_var0 = IntVar()
        self.HXAlgo_var1 = IntVar()
        self.HXAlgo_var2 = IntVar()

        self.HXAlgo1 = Checkbutton(root, text='HXAlgo:', font=('仿宋体', 10, 'bold'), fg="blue", variable=self.HXAlgo_var0,
                                   onvalue=1, offvalue=0,
                                   command=self.HXAlgo_algoImport)
        self.HXAlgo1.place(x=5, y=100)
        self.HXAlgo2 = Checkbutton(root, text="HX_SMART_TWAP", font=('仿宋体', 10, 'bold'), fg="green",
                                   variable=self.HXAlgo_var1)
        self.HXAlgo2.place(x=100, y=100)
        self.HXAlgo3 = Checkbutton(root, text="HX_SMART_VWAP", font=('仿宋体', 10, 'bold'), fg="green",
                                   variable=self.HXAlgo_var2)
        self.HXAlgo3.place(x=280, y=100)

        self.FTAlgo_var0 = IntVar()
        self.FTAlgo_var1 = IntVar()

        self.FTAlgo0 = Checkbutton(root, text='FTAlgo:', font=('仿宋体', 10, 'bold'), fg="blue", variable=self.FTAlgo_var0,
                                   onvalue=1, offvalue=0,
                                   command=self.FTAlgo_algoImport)
        self.FTAlgo0.place(x=5, y=125)
        self.FTAlgo1 = Checkbutton(root, text="FT_AI_WAP", font=('仿宋体', 10, 'bold'), fg="green",
                                   variable=self.FTAlgo_var1)
        self.FTAlgo1.place(x=100, y=125)

        self.QNDAlgo_var0 = IntVar()
        self.QNDAlgo_var1 = IntVar()
        self.QNDAlgo_var2 = IntVar()

        self.QNDAlgo1 = Checkbutton(root, text='QNDAlgo:', font=('仿宋体', 10, 'bold'), fg="blue",
                                    variable=self.QNDAlgo_var0, onvalue=1, offvalue=0,
                                    command=self.QNDAlgo_algoImport)
        self.QNDAlgo1.place(x=5, y=150)
        self.QNDAlgo2 = Checkbutton(root, text="QNDTWAP", font=('仿宋体', 10, 'bold'), fg="green",
                                    variable=self.QNDAlgo_var1)
        self.QNDAlgo2.place(x=100, y=150)
        self.QNDAlgo3 = Checkbutton(root, text="QNDVWAP", font=('仿宋体', 10, 'bold'), fg="green",
                                    variable=self.QNDAlgo_var2)
        self.QNDAlgo3.place(x=280, y=150)

        self.YRAlgo_var0 = IntVar()
        self.YRAlgo_var1 = IntVar()

        self.YRAlgo0 = Checkbutton(root, text='YRAlgo:', font=('仿宋体', 10, 'bold'), fg="blue", variable=self.YRAlgo_var0,
                                   onvalue=1, offvalue=0,
                                   command=self.YRAlgo_algoImport)
        self.YRAlgo0.place(x=5, y=175)
        self.YRAlgo1 = Checkbutton(root, text="YRVWAP", font=('仿宋体', 10, 'bold'), fg="green", variable=self.YRAlgo_var1)
        self.YRAlgo1.place(x=100, y=175)

        Label(root, text="---------------------------------------------------------------------:", fg="orange",
              font=('仿宋体', 30, 'bold')).place(x=5, y=190)

        Button(root, text="输入资金账号", font=('仿宋体', 10, 'bold'), fg="blue", command=self.btnAcctFun_algoImport).place(x=5,
                                                                                                                   y=225)

        Button(root, text="输入股票代码", font=('仿宋体', 10, 'bold'), fg="blue", command=self.btnSymbolFun_algoImport).place(
            x=200, y=225)

        # Label(root, text="资金账号:",font=('仿宋体', 10, 'bold'),fg="blue").place(x=5, y=235)
        # self.acctType_acct = Text(root, font=('仿宋体', 10, 'bold'),height=1.3, width=80,fg="green")
        # self.acctType_acct.insert('1.0', "UF0_890500027916,UM0_20100051859")
        # self.acctType_acct.place(x=80, y=235)

        Label(root, text="每秒订单量:", font=('仿宋体', 10, 'bold'), fg="blue").place(x=5, y=264)
        self.targetVol = Text(root, font=('仿宋体', 10, 'bold'), height=1.3, width=10, fg="green")
        self.targetVol.insert('1.0', "10")
        self.targetVol.place(x=90, y=264)

        Label(root, text="程序结束时间:", font=('仿宋体', 10, 'bold'), fg="blue").place(x=200, y=264)
        self.runStopTime = Text(root, font=('仿宋体', 10, 'bold'), height=1.3, width=10, fg="green")
        self.runStopTime.insert('1.0', "150000")
        self.runStopTime.place(x=295, y=264)

        Label(root, text="交易方向:", font=('仿宋体', 10, 'bold'), fg="blue").place(x=400, y=264)
        self.tradeSide = Text(root, font=('仿宋体', 10, 'bold'), height=1.3, width=10, fg="green")
        self.tradeSide.insert('1.0', "1")
        self.tradeSide.place(x=460, y=264)

        Label(root, text="批号起始值:", font=('仿宋体', 10, 'bold'), fg="blue").place(x=5, y=292)
        self.beginNum = Text(root, font=('仿宋体', 10, 'bold'), height=1.3, width=10, fg="green")
        self.beginNum.insert('1.0', "1")
        self.beginNum.place(x=90, y=292)

        Label(root, text="批号结束值:", font=('仿宋体', 10, 'bold'), fg="blue").place(x=200, y=292)
        self.endNum = Text(root, font=('仿宋体', 10, 'bold'), height=1.3, width=10, fg="green")
        self.endNum.insert('1.0', "1000")
        self.endNum.place(x=295, y=292)

        Label(root, text="目标量:", font=('仿宋体', 10, 'bold'), fg="blue").place(x=400, y=292)
        self.targetVol_symbol = Text(root, font=('仿宋体', 10, 'bold'), height=1.3, width=10, fg="green")
        self.targetVol_symbol.insert('1.0', "200")
        self.targetVol_symbol.place(x=460, y=292)

        Label(root, text="算法结束时间:", font=('仿宋体', 10, 'bold'), fg="blue").place(x=5, y=320)
        self.algoStopTimeSet = Text(root, font=('仿宋体', 10, 'bold'), height=1.3, width=10, fg="green")
        self.algoStopTimeSet.insert('1.0', "180000")
        self.algoStopTimeSet.place(x=100, y=324)
        self.algoStopTimeSet.bind("<Button-1>", self.algoStopTimeSet_bind_algoImport)  # 点击输入框会清空算法结束时间单选框单选框

        global algoStopTime_var
        self.algoStopTime_var = StringVar()
        self.algoStopTime_var.set("6")
        # Radiobutton是单选文本框
        self.algoStopTime1 = Radiobutton(root, text="+5", font=('仿宋体', 10, 'bold'), fg="green", value="5",
                                         variable=self.algoStopTime_var, state="normal")
        self.algoStopTime1.place(x=180, y=320)
        self.algoStopTime2 = Radiobutton(root, text="+10", font=('仿宋体', 10, 'bold'), fg="green", value="10",
                                         variable=self.algoStopTime_var, state="normal")
        self.algoStopTime2.place(x=230, y=320)
        self.algoStopTime3 = Radiobutton(root, text="+20", font=('仿宋体', 10, 'bold'), fg="green", value="20",
                                         variable=self.algoStopTime_var, state="normal")
        self.algoStopTime3.place(x=280, y=320)
        self.algoStopTime4 = Radiobutton(root, text="+30", font=('仿宋体', 10, 'bold'), fg="green", value="30",
                                         variable=self.algoStopTime_var, state="normal")
        self.algoStopTime4.place(x=330, y=320)
        self.algoStopTime5 = Radiobutton(root, text="+60", font=('仿宋体', 10, 'bold'), fg="green", value="60",
                                         variable=self.algoStopTime_var, state="normal")
        self.algoStopTime5.place(x=380, y=320)
        Label(root, text="提示:+5表示算法只运行5分钟", font=('仿宋体', 10, 'bold'), fg="red").place(x=450, y=320)
        # 点击单选框会清空算法结束时间输入框
        self.algoStopTime1.config(command=lambda: self.radiobutton_command_algoImport(self.algoStopTime1))
        self.algoStopTime2.config(command=lambda: self.radiobutton_command_algoImport(self.algoStopTime1))
        self.algoStopTime3.config(command=lambda: self.radiobutton_command_algoImport(self.algoStopTime1))
        self.algoStopTime4.config(command=lambda: self.radiobutton_command_algoImport(self.algoStopTime1))
        self.algoStopTime5.config(command=lambda: self.radiobutton_command_algoImport(self.algoStopTime1))

        self.label_orderNum = Label(root, text="生成订单数量为0", fg="red", font=('仿宋体', 10, 'bold'))
        self.label_orderNum.place(x=30, y=350)

        self.label_runStopNum = Label(root, text="运行结束批号值为0", fg="red", font=('仿宋体', 10, 'bold'))
        self.label_runStopNum.place(x=200, y=350)
        self.num = 0

        Label(root, text="---------------------------------------------------------------------:", fg="orange",
              font=('仿宋体', 30, 'bold')).place(x=5, y=365)

        self.btn_Algo = Button(root, text="ALGO", font=('times', 19, 'bold'), bg='orange',
                               command=self.toggle_running_algoImport)
        self.btn_Algo.place(x=5, y=400)

        # self.photo = PhotoImage(file="E:/桌面/lwpaul/algoImport/imgs/logo.gif")
        # # image_create(END, image=self.photo)
        # Label(root, image=self.photo).place(x=5, y=350)

        # self.clock = Label(root, font=('times', 20, 'bold'), bg='orange')
        self.clock_second = 1000
        self.clock = Button(root, font=('times', 19, 'bold'), bg='orange', command=self.photoFun_algoImport)
        self.clock.place(x=150, y=400)
        self.time_update_algoImport()

        # def OQAlgo(OQAlgo_var1,OQAlgo_var2,OQAlgo_var3,OQAlgo_var4):

    def btnSaveSymbolFun_algoImport(self):  # 保存股票
        try:
            os.remove(symbol_file_algoImport)
        except:
            print(symbol_file_algoImport + "文件不存在")

        # 生成资金账号的CSV文件
        with open(symbol_file_algoImport, "a+", newline='') as file:
            csv_file = csv.writer(file)
            datas = [["symbol"]]
            csv_file.writerows(datas)

        text_saveAcct = self.text_symbol.get(1.0, END)
        comma = 0  # 点的个数
        for i in text_saveAcct:
            if i == ".":
                comma = comma + 1
            if comma >= 2:
                break
        print("comma", comma)

        print("acctType112233", text_saveAcct)
        if comma == 1:
            print(333)
            symbol = text_saveAcct.replace("\n", "")
            print("acctType12", symbol)
            Parameter = []
            Parameters = []
            Parameter.append(symbol)
            Parameters.append(Parameter)

            with open(symbol_file_algoImport, "a+", newline='') as file:
                csv_file = csv.writer(file)
                csv_file.writerows(Parameters)
        else:
            text_saveAcct_split = text_saveAcct.split("\n")
            print("15", text_saveAcct_split)
            for i in range(len(text_saveAcct_split)):
                if text_saveAcct_split[i] != "":
                    symbol = text_saveAcct_split[i]

                    print("symbol9999", symbol)
                    Parameter = []
                    Parameters = []
                    Parameter.append(symbol)
                    Parameters.append(Parameter)

                    with open(symbol_file_algoImport, "a+", newline='') as file:
                        csv_file = csv.writer(file)
                        csv_file.writerows(Parameters)

    def btnSymbolFun_algoImport(self):  # 输入股票
        root_btnSymbol = Tk()
        root_btnSymbol.geometry("200x500+230+200")
        self.btnSaveSymbol = Button(root_btnSymbol, text="点击保存", font=('仿宋体', 10, 'bold'), fg="blue",
                                    command=self.btnSaveSymbolFun_algoImport)
        self.btnSaveSymbol.pack()
        self.text_symbol = Text(root_btnSymbol, height=50, width=42, fg='green', font=("仿宋体", 12))  # "helvetica"
        self.text_symbol.pack(side=LEFT)
        # 在文本框开头插入一段话
        filename = "symbol.csv"
        current_directory = os.getcwd()  # 获取当前目录
        print("current_directory", current_directory)
        file_path = os.path.join(current_directory, filename)  # 构建文件路径
        print("file_path", file_path)
        if os.path.isfile(file_path):  # 检查文件是否存在并且是.csv文件
            data = pd.read_csv(symbol_file_algoImport, encoding="gbk")
            if len(data["symbol"]) == 0:
                self.text_symbol.insert('1.0', '000001.SZ\n300001.SZ\n600000.SH\n688001.SH')
            else:
                data_text = ""
                for i in range(len(data["symbol"])):
                    data_text = data_text + data["symbol"][i] + "\n"
                print("data_text", data_text)
                self.text_symbol.insert('1.0', data_text)
        else:
            self.text_symbol.insert('1.0', '000001.SZ\n300001.SZ\n600000.SH\n688001.SH')

        scrollbar = Scrollbar(root_btnSymbol, command=self.text_symbol.yview)
        scrollbar.pack(side=LEFT, fill=Y)
        self.text_symbol.configure(yscrollcommand=scrollbar.set)
        root_btnSymbol.mainloop()

    def btnSaveAcctFun_algoImport(self):  # 保存资金账号
        try:
            os.remove(Acct_file_algoImport)
        except:
            print(Acct_file_algoImport + "文件不存在")

        # 生成资金账号的CSV文件
        with open(Acct_file_algoImport, "a+", newline='') as file:
            csv_file = csv.writer(file)
            datas = [["acctType", "acct"]]
            csv_file.writerows(datas)

        text_saveAcct = self.text_widget.get(1.0, END)
        comma = 0  # 逗号的个数
        for i in text_saveAcct:
            if i == ",":
                comma = comma + 1
            if comma >= 2:
                break
        print("comma", comma)

        print("acctType112233", text_saveAcct)
        if comma == 1:
            print(333)
            acctType_acct = text_saveAcct.replace("\n", "").split(",")
            print("acctType12", text_saveAcct.split(","))
            print("acctType13", acctType_acct)
            acctType = acctType_acct[0]
            acct = acctType_acct[1]
            print("acctType", acctType)
            print("acct", acct)
            Parameter = []
            Parameters = []
            Parameter.append(acctType)
            Parameter.append(acct)
            Parameters.append(Parameter)

            with open(Acct_file_algoImport, "a+", newline='') as file:
                csv_file = csv.writer(file)
                csv_file.writerows(Parameters)
        else:
            text_saveAcct_split = text_saveAcct.split("\n")
            print("15", text_saveAcct_split)
            for i in range(len(text_saveAcct_split) - 1):
                if text_saveAcct_split[i] != "":
                    acctType_acct = text_saveAcct_split[i].split(",")
                    acctType = acctType_acct[0]
                    acct = acctType_acct[1]
                    print("acctType", acctType)
                    print("acct", acct)
                    Parameter = []
                    Parameters = []
                    Parameter.append(acctType)
                    Parameter.append(acct)
                    Parameters.append(Parameter)

                    with open(Acct_file_algoImport, "a+", newline='') as file:
                        csv_file = csv.writer(file)
                        csv_file.writerows(Parameters)

    def btnAcctFun_algoImport(self):  # 输入资金长账号
        root_btnAcct = Tk()
        root_btnAcct.geometry("200x500+230+200")
        self.btnSaveAcct = Button(root_btnAcct, text="点击保存", font=('仿宋体', 10, 'bold'), fg="blue",
                                  command=self.btnSaveAcctFun_algoImport)
        self.btnSaveAcct.pack()
        self.text_widget = Text(root_btnAcct, height=50, width=42, fg='green', font=("仿宋体", 12))  # "helvetica"
        self.text_widget.pack(side=LEFT)
        # 在文本框开头插入一段话
        filename = "Acct.csv"
        current_directory = os.getcwd()  # 获取当前目录
        print("current_directory", current_directory)
        file_path = os.path.join(current_directory, filename)  # 构建文件路径
        print("file_path", file_path)
        if os.path.isfile(file_path):  # 检查文件是否存在
            data = pd.read_csv(Acct_file_algoImport, encoding="gbk")
            if len(data["acctType"]) == 0:
                self.text_widget.insert('1.0', 'UF0,89050027916\nUM0,20100051859')
            else:
                data_text = ""
                for i in range(len(data["acctType"])):
                    data_text = data_text + data["acctType"][i] + "," + str(data["acct"][i]) + "\n"
                print("data_text", data_text)
                self.text_widget.insert('1.0', data_text)
        else:
            self.text_widget.insert('1.0', 'UF0,89050027916\nUM0,20100051859')

        scrollbar = Scrollbar(root_btnAcct, command=self.text_widget.yview)
        scrollbar.pack(side=LEFT, fill=Y)
        self.text_widget.configure(yscrollcommand=scrollbar.set)
        root_btnAcct.mainloop()

    def time_update_algoImport(self):
        current_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        weekday = datetime.datetime.now().strftime("%A")
        self.clock.config(text=f"日期:{current_time}  星期:{weekday}")
        if self.clock_second == 1000:
            self.master.after(1000, self.time_update_algoImport)
        else:
            time.sleep(1)
            self.master.after(1000, self.time_update_algoImport)

    def photoFun_algoImport(self):
        try:
            s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
            s.connect(("8.8.8.8", 80))
            ip = s.getsockname()[0]
            print("ip", ip)
        except:
            ip = "127.0.0.1"
        finally:
            s.close()

        messages = ["不要拍我", "今天是星期五", "我能倒着背出滕王阁序", "我猜你此刻不想下算法单导入", "不好,今天下班忘记打卡了",
                    "面朝大海,春暖花开", "忘记了时光与风", "上班又迟到了,都怪早上不下雨"]

        choice_messages = random.choice(messages)
        self.clock["text"] = choice_messages
        self.clock_second = 3000

    def algoStopTimeSet_bind_algoImport(self, event):
        self.algoStopTime_var.set("6")

    def radiobutton_command_algoImport(self, event):
        print("555", self.algoStopTime_var.get())
        self.algoStopTimeSet.delete(1.0, END)

    def OQAlgo_algoImport(self):
        print("111", self.OQAlgo_var1.get())
        if self.OQAlgo_var1.get() == 1:
            self.OQAlgo_var2.set(1)
            self.OQAlgo_var3.set(1)
            self.OQAlgo_var4.set(1)
        else:
            self.OQAlgo_var2.set(0)
            self.OQAlgo_var3.set(0)
            self.OQAlgo_var4.set(0)

    def XTAlgo_algoImport(self):
        print("111", self.XTAlgo_var1.get())
        if self.XTAlgo_var1.get() == 1:
            self.XTAlgo_var2.set(1)
            self.XTAlgo_var3.set(1)
            self.XTAlgo_var4.set(1)
        else:
            self.XTAlgo_var2.set(0)
            self.XTAlgo_var3.set(0)
            self.XTAlgo_var4.set(0)

    def KFAlgo_algoImport(self):
        print("111", self.KFAlgo_var1.get())
        if self.KFAlgo_var1.get() == 1:
            self.KFAlgo_var2.set(1)
            self.KFAlgo_var3.set(1)
            self.KFAlgo_var4.set(1)
            self.KFAlgo_var5.set(1)
            self.KFAlgo_var6.set(1)
        else:
            self.KFAlgo_var2.set(0)
            self.KFAlgo_var3.set(0)
            self.KFAlgo_var4.set(0)
            self.KFAlgo_var5.set(0)
            self.KFAlgo_var6.set(0)

    def HXAlgo_algoImport(self):
        print("111", self.HXAlgo_var0.get())
        if self.HXAlgo_var0.get() == 1:
            self.HXAlgo_var1.set(1)
            self.HXAlgo_var2.set(1)

        else:
            self.HXAlgo_var1.set(0)
            self.HXAlgo_var2.set(0)

    def FTAlgo_algoImport(self):
        print("111", self.FTAlgo_var0.get())
        if self.FTAlgo_var0.get() == 1:
            self.FTAlgo_var1.set(1)

        else:
            self.FTAlgo_var1.set(0)

    def QNDAlgo_algoImport(self):
        print("111", self.QNDAlgo_var0.get())
        if self.QNDAlgo_var0.get() == 1:
            self.QNDAlgo_var1.set(1)
            self.QNDAlgo_var2.set(1)

        else:
            self.QNDAlgo_var1.set(0)
            self.QNDAlgo_var2.set(0)

    def YRAlgo_algoImport(self):
        print("111", self.YRAlgo_var0.get())
        if self.YRAlgo_var0.get() == 1:
            self.YRAlgo_var1.set(1)

        else:
            self.YRAlgo_var1.set(0)

    def toggle_running_algoImport(self):
        if self.running:
            # 如果程序正在运行,停止运行
            self.label_orderNum.config(text="生成订单数量为" + str(self.num))
            self.label_runStopNum.config(
                text="运行结束批号值为" + str(self.num + int(self.beginNum.get(1.0, END)) + int(self.targetVol.get(1.0, END))))
            self.btn_Algo["text"] = "ALGO"
            self.btn_Algo["bg"] = "orange"
            self.running = False
            self.thread.join()
            # 等待线程结束
        else:
            # 如果程序没有运行,启动运行
            self.btn_Algo["text"] = "STOP"
            self.btn_Algo["bg"] = "red"
            self.running = True
            self.thread = threading.Thread(target=self.run_loop_algoImport)
            #  创建新线程来运行run_loop方法
            self.thread.start()
            # 启动线程

    def run_loop_algoImport(self):
        try:
            os.remove(algoStart_file_algoImport)
        except:
            print(algoStart_file_algoImport + "文件不存在")

        try:
            os.remove(algoStop_file_algoImport)
        except:
            print(algoStop_file_algoImport + "文件不存在")

        try:
            os.remove(algoExecStatic_file_algoImport)
        except:
            print(algoExecStatic_file_algoImport + "文件不存在")
        try:
            os.remove(assetInfo_file_algoImport)
        except:
            print(assetInfo_file_algoImport + "文件不存在")
        try:
            os.remove(compactInfo_file_algoImport)
        except:
            print(compactInfo_file_algoImport + "文件不存在")
        try:
            os.remove(crediStockInfo_file_algoImport)
        except:
            print(crediStockInfo_file_algoImport + "文件不存在")
        try:
            os.remove(crediTargetStockInfo_file_algoImport)
        except:
            print(crediTargetStockInfo_file_algoImport + "文件不存在")
        try:
            os.remove(orderUpdate_file_algoImport)
        except:
            print(orderUpdate_file_algoImport + "文件不存在")
        try:
            os.remove(positionInfo_file_algoImport)
        except:
            print(positionInfo_file_algoImport + "文件不存在")
        try:
            os.remove(tradeUpdate_file_algoImport)
        except:
            print(tradeUpdate_file_algoImport + "文件不存在")
        try:
            os.remove(TradeMaxNo_file_algoImport)
        except:
            print(TradeMaxNo_file_algoImport + "文件不存在")
        try:
            os.remove(OrderMaxNo_file_algoImport)
        except:
            print(OrderMaxNo_file_algoImport + "文件不存在")

        with open(algoStart_file_algoImport, "a+", newline='') as file:
            csv_file = csv.writer(file)
            datas = [["updTime", "custAlgoNo", "acctType", "acct", "symbol", "tradeSide",
                      "targetVol", "targetAmt", "algoId", "algoParam"]]
            csv_file.writerows(datas)

        with open(algoStop_file_algoImport, "a+", newline='') as file:
            csv_file = csv.writer(file)
            datas = [["updTime", "custAlgoNo", "acctType", "acct"]]
            csv_file.writerows(datas)

        beginNum = int(self.beginNum.get(1.0, END))
        endNum = int(self.endNum.get(1.0, END))
        targetVol = int(self.targetVol.get(1.0, END))
        targetVol_symbol = int(self.targetVol_symbol.get(1.0, END))
        tradeSide = self.tradeSide.get(1.0, END).strip()
        runStopTime = int(self.runStopTime.get(1.0, END))
        algoStopTimeSet = str(self.algoStopTimeSet.get(1.0, END)).replace("\n", "")
        algoStopTime = self.algoStopTime_var.get()

        # 搜集勾选的算法
        if self.OQAlgo_var2.get() == 1:
            self.collect_Algo.append("OQ-TWAP")
        if self.OQAlgo_var3.get() == 1:
            self.collect_Algo.append("OQ-VWAP")
        if self.OQAlgo_var4.get() == 1:
            self.collect_Algo.append("OQ-POV")

        if self.XTAlgo_var2.get() == 1:
            self.collect_Algo.append("XT-TWAP")
        if self.XTAlgo_var3.get() == 1:
            self.collect_Algo.append("XT-VWAP")
        if self.XTAlgo_var4.get() == 1:
            self.collect_Algo.append("XT-VP")

        if self.KFAlgo_var2.get() == 1:
            self.collect_Algo.append("KF-POV")
        if self.KFAlgo_var3.get() == 1:
            self.collect_Algo.append("KF-TWAP-CORE")
        if self.KFAlgo_var4.get() == 1:
            self.collect_Algo.append("KF-TWAP-PLUS")
        if self.KFAlgo_var5.get() == 1:
            self.collect_Algo.append("KF-VWAP-CORE")
        if self.KFAlgo_var6.get() == 1:
            self.collect_Algo.append("KF-VWAP-PLUS")

        if self.HXAlgo_var1.get() == 1:
            self.collect_Algo.append("HX_SMART_TWAP")
        if self.HXAlgo_var2.get() == 1:
            self.collect_Algo.append("HX_SMART_VWAP")

        if self.FTAlgo_var1.get() == 1:
            self.collect_Algo.append("FT_WAP")

        if self.QNDAlgo_var1.get() == 1:
            self.collect_Algo.append("QND-TWAP")
        if self.QNDAlgo_var2.get() == 1:
            self.collect_Algo.append("QND-VWAP")

        if self.YRAlgo_var1.get() == 1:
            self.collect_Algo.append("YR-VWAP")

        print("collect_Algo", self.collect_Algo)

        if self.collect_Algo == [] and algoStopTimeSet == "" and self.algoStopTime_var.get() == "6":
            self.btn_Algo["text"] = "ALGO"
            self.btn_Algo["bg"] = "orange"
            self.running = False
            showinfo(title="友情提示", message="1,请至少选择一个算法\n2,请设置算法结束时间")
            return
        elif self.collect_Algo == []:
            self.btn_Algo["text"] = "ALGO"
            self.btn_Algo["bg"] = "orange"
            self.running = False
            showinfo(title="友情提示", message="1,请至少选择一个算法")
            return
        elif algoStopTimeSet == "" and self.algoStopTime_var.get() == "6":
            self.btn_Algo["text"] = "ALGO"
            self.btn_Algo["bg"] = "orange"
            self.running = False
            showinfo(title="友情提示", message="1,请设置算法结束时间")
            return
        elif len(str(runStopTime)) > 6:
            self.btn_Algo["text"] = "ALGO"
            self.btn_Algo["bg"] = "orange"
            self.running = False
            showinfo(title="友情提示", message="程序结束时间格式填写有误")
            return
        elif len(str(runStopTime)) == 6:
            if int(str(runStopTime)[0:2]) > 23:
                self.btn_Algo["text"] = "ALGO"
                self.btn_Algo["bg"] = "orange"
                self.running = False
                showinfo(title="友情提示", message="程序结束时间格式填写有误")
                return

            elif int(str(runStopTime)[2:4]) > 59:
                self.btn_Algo["text"] = "ALGO"
                self.btn_Algo["bg"] = "orange"
                self.running = False
                showinfo(title="友情提示", message="程序结束时间格式填写有误")
                return

            elif int(str(runStopTime)[4:6]) > 59:
                self.btn_Algo["text"] = "ALGO"
                self.btn_Algo["bg"] = "orange"
                self.running = False
                showinfo(title="友情提示", message="程序结束时间格式填写有误")
                return
        elif len(str(runStopTime)) == 5:
            if int(str(runStopTime)[1:3]) > 59:
                self.btn_Algo["text"] = "ALGO"
                self.btn_Algo["bg"] = "orange"
                self.running = False
                showinfo(title="友情提示", message="程序结束时间格式填写有误")
                return
            elif int(str(runStopTime)[3:5]) > 59:
                self.btn_Algo["text"] = "ALGO"
                self.btn_Algo["bg"] = "orange"
                self.running = False
                showinfo(title="友情提示", message="程序结束时间格式填写有误")
                return
        if tradeSide not in ["1", "2", "A", "B", "C", "D", "FA", "FB", "FC", "FD", "OC"]:
            self.btn_Algo["text"] = "ALGO"
            self.btn_Algo["bg"] = "orange"
            self.running = False
            showinfo(title="友情提示", message="交易方向填写有误")
            return
        if runStopTime < int(datetime.datetime.now().strftime("%H%M%S")):
            self.btn_Algo["text"] = "ALGO"
            self.btn_Algo["bg"] = "orange"
            self.running = False
            messagebox.showinfo("提示", "程序结束时间不能小于当前时间")
            return

        filename = "Acct.csv"
        current_directory = os.getcwd()  # 获取当前目录
        print("current_directory", current_directory)
        file_path = os.path.join(current_directory, filename)  # 构建文件路径
        print("file_path", file_path)
        if os.path.isfile(file_path):  # 检查文件是否存在
            data = pd.read_csv(Acct_file_algoImport, encoding="gbk")
            if len(data["acctType"]) == 0:  # 判断文件内容是否为空
                self.btn_Algo["text"] = "ALGO"
                self.btn_Algo["bg"] = "orange"
                self.running = False
                messagebox.showinfo("提示", "请输入资金账号")
                return
        else:
            self.btn_Algo["text"] = "ALGO"
            self.btn_Algo["bg"] = "orange"
            self.running = False
            messagebox.showinfo("提示", "请输入资金账号")
            return

        filename = "symbol.csv"
        current_directory = os.getcwd()  # 获取当前目录
        print("current_directory", current_directory)
        file_path = os.path.join(current_directory, filename)  # 构建文件路径
        print("file_path", file_path)
        if os.path.isfile(file_path):  # 检查文件是否存
            data = pd.read_csv(symbol_file_algoImport, encoding="gbk")
            if len(data["symbol"]) == 0:
                self.btn_Algo["text"] = "ALGO"
                self.btn_Algo["bg"] = "orange"
                self.running = False
                messagebox.showinfo("提示", "请输入股票")
                return
        else:
            self.btn_Algo["text"] = "ALGO"
            self.btn_Algo["bg"] = "orange"
            self.running = False
            messagebox.showinfo("提示", "请输入股票")
            return

        acctType_acct = []  # 获取资金账号
        data_acctType_acct = pd.read_csv(Acct_file_algoImport, encoding="gbk")
        for i in range(len(data_acctType_acct["acctType"])):
            acctType_acct.append(data_acctType_acct["acctType"][i] + "_" + str(data_acctType_acct["acct"][i]))

        collect_symbol = []  # 获取股票代码
        data_symbol = pd.read_csv(symbol_file_algoImport, encoding="gbk")
        for i in range(len(data_symbol["symbol"])):
            collect_symbol.append(data_symbol["symbol"][i])

        for i in range(beginNum, endNum, targetVol):
            if not self.running:
                # 检查程序是否需要停止
                break  # 停止循环
            for j in range(targetVol):
                self.num = i + j
                print("self.num", self.num)
                time.sleep(1 / targetVol)

                # print("999",1/targetVol)

                choice_acctType_acct = random.choice(acctType_acct)
                acctType = choice_acctType_acct.split("_")[0]
                acct = choice_acctType_acct.split("_")[1]
                symbol = random.choice(collect_symbol)
                algoStype = random.choice(self.collect_Algo)
                # algoParm = "beginTime="+beginTime+";"+"endTime="+self.algoStopTimeSet+";"
                Parameter = []
                Parameters = []
                Parameter.append("93000")
                Parameter.append(self.num)
                Parameter.append(acctType)
                Parameter.append(acct)
                Parameter.append(symbol)
                Parameter.append(tradeSide)
                Parameter.append(targetVol_symbol)
                Parameter.append("0")
                Parameter.append(algoStype)
                beginTime = str(datetime.datetime.now().strftime("%H%M%S"))
                if algoStopTime == "6":
                    endTime = algoStopTimeSet
                else:
                    endTime = (datetime.datetime.now() + datetime.timedelta(minutes=int(algoStopTime))).strftime(
                        "%H%M%S")

                if algoStype in ["OQ-TWAP", "OQ-VWAP", "OQ-POV"]:
                    Parameter.append(
                        "beginTime=" + beginTime + ";endTime=" + endTime + ";limitPrice=0;participateRate=0.15;minAmount=0;tradingStyle=2;notBuyOnLLAndSellOnHL=0;custBatchNo=")
                elif algoStype in ["XT-TWAP", "XT-VWAP", "XT-VP"]:
                    Parameter.append(
                        "beginTime=" + beginTime + ";endTime=" + endTime + ";limitPrice=0;PartRate=0.20;MinAmount=0;m_nStopTradeForOwnHiLow=0;custBatchNo=")
                elif algoStype == "KF-POV":
                    Parameter.append(
                        "beginTime=" + beginTime + ";endTime=" + endTime + ";maxpercentageF=0.2;priceF=0;UpLimitF=0.05;DownLimitF=0.05;limitAction=0;afterAction=0;custBatchNo=")
                elif algoStype in ["KF-TWAP-CORE", "KF-TWAP-PLUS", "KF-VWAP-CORE", "KF-VWAP-PLUS"]:
                    Parameter.append(
                        "beginTime=" + beginTime + ";endTime=" + endTime + ";priceF=0;UpLimitF=0.05;DownLimitF=0.05;limitAction=0;afterAction=0;custBatchNo=")
                elif algoStype in ["HX_SMART_TWAP", "HX_SMART_VWAP"]:
                    Parameter.append(
                        "beginTime=" + beginTime + ";endTime=" + endTime + ";limitPrice=0;participateRate=0.20;notBuyOnLLAndSellOnHL=0")
                elif algoStype == "FT_WAP":
                    Parameter.append("beginTime=" + beginTime + ";endTime=" + endTime)
                elif algoStype in ["QND-TWAP", "QND-VWAP"]:
                    Parameter.append(
                        "beginTime=" + beginTime + ";endTime=" + endTime + ";allowTradeAtLimit=0;allowTradeAfterEnd=0")
                elif algoStype == "YR-VWAP":
                    Parameter.append("beginTime=" + beginTime + ";endTime=" + endTime + ";limitRule=0")
                Parameters.append(Parameter)

                with open(algoStart_file_algoImport, "a+", newline='') as file:
                    csv_file = csv.writer(file)
                    csv_file.writerows(Parameters)
            print("881", int(datetime.datetime.now().strftime("%H%M%S")), "   ", runStopTime)
            if int(datetime.datetime.now().strftime("%H%M%S")) >= runStopTime or self.num >= endNum:
                self.btn_Algo["text"] = "ALGO"
                self.btn_Algo["bg"] = "orange"
                self.running = False
                messagebox.showinfo("提示", "程序结束时间到了或者到了批号结束值")

                return

if __name__ == '__main__':
    date = str(datetime.datetime.now().strftime("%Y%m%d"))

    algoOrder_file_DMA = os.getcwd() + "/" + "algoOrder_" + date + ".csv"
    algoOrderStop_DMA = os.getcwd() + "/" + "algoOrderStop_" + date + ".csv"
    assetInfo_file_DMA = os.getcwd() + "/" + "assetInfo_" + date + ".csv"
    compactInfo_file_DMA = os.getcwd() + "/" + "compactInfo_" + date + ".csv"
    crediStockInfo_file_DMA = os.getcwd() + "/" + "crediStockInfo_" + date + ".csv"
    crediTargetStockInfo_file_DMA = os.getcwd() + "/" + "crediTargetStockInfo_" + date + ".csv"
    execResult_file_DMA = os.getcwd() + "/" + "execResult_" + date + ".csv"
    OrderMaxNo_file_DMA = os.getcwd() + "/" + "OrderMaxNo.txt"
    orderUpdate_file_DMA = os.getcwd() + "/" + "orderUpdate_" + date + ".csv"
    positionInfo_file_DMA = os.getcwd() + "/" + "positionInfo_" + date + ".csv"
    TradeMaxNo_file_DMA = os.getcwd() + "/" + "TradeMaxNo.txt"
    tradeUpdate_file_DMA = os.getcwd() + "/" + "tradeUpdate_" + date + ".csv"
    Acct_file_DMA = os.getcwd() + "/" + "Acct" + ".csv"
    symbol_file_DMA = os.getcwd() + "/" + "symbol" + ".csv"

    algoStart_file_algoImport = os.getcwd() + "\\" + "algoStart_" + date + ".csv"
    algoStop_file_algoImport = os.getcwd() + "\\" + "algoStop_" + date + ".csv"
    algoExecStatic_file_algoImport = os.getcwd() + "\\" + "algoExecStatic_" + ".csv"
    assetInfo_file_algoImport = os.getcwd() + "\\" + "assetInfo_" + date + ".csv"
    compactInfo_file_algoImport = os.getcwd() + "\\" + "compactInfo_" + date + ".csv"
    crediStockInfo_file_algoImport = os.getcwd() + "\\" + "crediStockInfo_" + date + ".csv"
    crediTargetStockInfo_file_algoImport = os.getcwd() + "/" + "crediTargetStockInfo_" + date + ".csv"
    orderUpdate_file_algoImport = os.getcwd() + "\\" + "orderUpdate_" + date + ".csv"
    positionInfo_file_algoImport = os.getcwd() + "\\" + "positionInfo_" + date + ".csv"
    tradeUpdate_file_algoImport = os.getcwd() + "\\" + "tradeUpdate_" + date + ".csv"
    TradeMaxNo_file_algoImport = os.getcwd() + "\\" + "TradeMaxNo.txt"
    OrderMaxNo_file_algoImport = os.getcwd() + "\\" + "OrderMaxNo.txt"
    Acct_file_algoImport = os.getcwd() + "/" + "Acct" + ".csv"
    symbol_file_algoImport = os.getcwd() + "/" + "symbol" + ".csv"

    # 初始化窗口
    root = Tk()
    frame = Frame(root,width =200,height=200)
    frame.pack()
    root.title("tkinterGUI")
    # root.geometry("700x470+350+100")
    root.geometry("300x200+750+400")

    app = Application().__int__(master=root)


    root.mainloop()