Ver Fonte

自动化cpu数和文件路径

daniel há 2 anos atrás
pai
commit
c1410787e8
1 ficheiros alterados com 15 adições e 3 exclusões
  1. 15 3
      futures_backtrader.py

+ 15 - 3
futures_backtrader.py

@@ -5,14 +5,25 @@ import pymysql
 import backtrader as bt
 import backtrader as bt
 import backtrader.indicators as btind
 import backtrader.indicators as btind
 import datetime
 import datetime
+import math
 import threading
 import threading
 from datetime import datetime as dt
 from datetime import datetime as dt
 import multiprocessing as mp
 import multiprocessing as mp
 from backtrader.feeds import PandasData
 from backtrader.feeds import PandasData
-
+import os
 # import multiprocessing
 # import multiprocessing
 import matplotlib
 import matplotlib
 
 
+cpu_count = os.cpu_count()
+os_name = os.name
+if os_name == 'posix':
+    path = '/Users/daniel/Documents/策略穷举2.csv'
+else:
+    path = 'D:\\BackTrader\\策略穷举0105。csv'
+
+
+
+
 class MyPandasData(PandasData):
 class MyPandasData(PandasData):
     lines = ('change_pct', 'net_amount_main', 'net_pct_main', 'net_amount_xl', 'net_pct_xl', 'net_amount_l', 'net_pct_l'
     lines = ('change_pct', 'net_amount_main', 'net_pct_main', 'net_amount_xl', 'net_pct_xl', 'net_amount_l', 'net_pct_l'
              , 'net_amount_m', 'net_pct_m', 'net_amount_s', 'net_pct_s',)
              , 'net_amount_m', 'net_pct_m', 'net_amount_s', 'net_pct_s',)
@@ -216,7 +227,8 @@ if __name__ == '__main__':
     for num in range(20, 180, 10):
     for num in range(20, 180, 10):
         for Volatility in range(10, 20, 1):
         for Volatility in range(10, 20, 1):
             for rate in range(5, 20, 1):
             for rate in range(5, 20, 1):
-                step = 400
+                #获得cpu数量,计算进程数
+                step = math.ceil(len(table_list)/cpu_count/100)*100
                 thread_list = []
                 thread_list = []
                 result = mp.Manager().list()
                 result = mp.Manager().list()
                 result_change = mp.Manager().list()
                 result_change = mp.Manager().list()
@@ -255,4 +267,4 @@ if __name__ == '__main__':
                 print('每轮耗时:', endtime-stattime)
                 print('每轮耗时:', endtime-stattime)
     edtime = dt.now()
     edtime = dt.now()
     print('总耗时:', edtime - sttime)
     print('总耗时:', edtime - sttime)
-    df.to_csv('/Users/daniel/Documents/策略穷举2.csv', index=True)
+    df.to_csv(path, index=True)