From 9ce192fc6d74b465b8c74c64514e71e303bf0568 Mon Sep 17 00:00:00 2001 From: laixingyu Date: Tue, 16 Jan 2024 19:38:34 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=9B=B4=E6=96=B0=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- calculateTrends1.py | 178 +++++++++++++++++++++++++++++++++----------- 1 file changed, 135 insertions(+), 43 deletions(-) diff --git a/calculateTrends1.py b/calculateTrends1.py index 7f58d76..18ac73c 100644 --- a/calculateTrends1.py +++ b/calculateTrends1.py @@ -6,7 +6,7 @@ import matplotlib.pyplot as plt import os # 计算盈亏, -6以上,-6,-3,0,3,6,6以上 -def count_profit(diff, loss_over_6, loss_6_to_3, loss_3_to_0,profit_0_to_3,profit_3_to_6,profit_over_6): +def count_change(diff, loss_over_6, loss_6_to_3, loss_3_to_0,profit_0_to_3,profit_3_to_6,profit_over_6): if diff <= -6: loss_over_6 += 1 elif diff > -6 and diff <= -3: @@ -25,7 +25,7 @@ def count_profit(diff, loss_over_6, loss_6_to_3, loss_3_to_0,profit_0_to_3,profi engine = create_engine('mysql+pymysql://root:1qazse42W3@192.168.0.222:3306/ry') # 执行SQL查询来获取日期列表 # 假设你的数据表中有一个date字段表示日期 -date_df = pd.read_sql_query('select date from trade_dates where trade = "trading" and date between "2023-01-01" and "2023-06-01" order by date', engine) +date_df = pd.read_sql_query('select date from trade_dates where trade = "trading" and date between "2022-01-01" and "2023-01-06" order by date', engine) # 将date字段转换为日期类型 date_df['date'] = pd.to_datetime(date_df['date']) @@ -43,10 +43,14 @@ counters = { 'sale_open': {'low_over_6': 0,'low_6_to_3': 0,'low_3_to_0': 0, 'high_0_to_3': 0, 'high_3_to_6': 0, 'high_over_6': 0}, # 清仓日的收盘价分布 'sale_close': {'low_over_6': 0,'low_6_to_3': 0,'low_3_to_0': 0, 'high_0_to_3': 0, 'high_3_to_6': 0, 'high_over_6': 0}, - # 清仓日开盘清仓盈亏分布 - 'profit_sale_open': {'loss_over_6': 0, 'loss_6_to_3': 0,'loss_3_to_0': 0, 'profit_0_to_3': 0,'profit_3_to_6': 0, 'profit_over_6': 0}, - # 清仓日收盘清仓盈亏分布 - 'profit_sale_close': {'loss_over_6': 0, 'loss_6_to_3': 0,'loss_3_to_0': 0, 'profit_0_to_3': 0,'profit_3_to_6': 0, 'profit_over_6': 0}, + # 清仓日开盘清仓盈亏分布-开盘建仓 + 'profit_open_sale_open': {'loss_over_6': 0, 'loss_6_to_3': 0,'loss_3_to_0': 0, 'profit_0_to_3': 0,'profit_3_to_6': 0, 'profit_over_6': 0}, + # 清仓日开盘清仓盈亏分布-收盘建仓 + 'profit_close_sale_open': {'loss_over_6': 0, 'loss_6_to_3': 0,'loss_3_to_0': 0, 'profit_0_to_3': 0,'profit_3_to_6': 0, 'profit_over_6': 0}, + # 清仓日收盘清仓盈亏分布-开盘建仓 + 'profit_open_sale_close': {'loss_over_6': 0, 'loss_6_to_3': 0,'loss_3_to_0': 0, 'profit_0_to_3': 0,'profit_3_to_6': 0, 'profit_over_6': 0}, + # 清仓日收盘清仓盈亏分布-收盘建仓 + 'profit_close_sale_close': {'loss_over_6': 0, 'loss_6_to_3': 0,'loss_3_to_0': 0, 'profit_0_to_3': 0,'profit_3_to_6': 0, 'profit_over_6': 0}, # 不同场景的统计 'scenarios': { 'low_over_6_open_low_over_6_open_sale': {'loss_over_6': 0, 'loss_6_to_3': 0,'loss_3_to_0': 0, 'profit_0_to_3': 0,'profit_3_to_6': 0, 'profit_over_6': 0}, @@ -375,58 +379,146 @@ for i, date in enumerate(date_list): limit_list = df['code'].tolist() for code in limit_list: # 总统计数 - total_count += 1 + counters['total'] += 1 print(f'正在处理{date_str} - {code}的数据-从文件获取') saleopen = df.loc[df['code'] == code, 'saleprice_open'] saleclose = df.loc[df['code'] == code, 'saleprice_close'] nextclose = df.loc[df['code'] == code, 'next_close'] - # 计算清仓日开盘收盘价 + # 计算清仓日开盘、收盘价 saleprice_open_differrange = 100 * (saleopen - df.loc[df['code'] == code, 'next_open'])/df.loc[df['code'] == code, 'next_open'] saleprice_close_differrange = 100 * (saleclose - nextclose)/nextclose # 第二日开盘价分布 next_open_diff = df.loc[df['code'] == code, 'next_open_diff'].values[0] - if next_open_diff < -3: - low_open_count += 1 - elif next_open_diff > 3: - high_open_count += 1 - else: - normal_open_count += 1 - + counters['open']['low_over_6'],counters['open']['low_6_to_3'], counters['open']['low_3_to_0'], counters['open']['high_0_to_3'], counters['open']['high_3_to_6'], counters['open']['high_over_6'] = count_change(next_open_diff, counters['open']['low_over_6'], counters['open']['low_6_to_3'], counters['open']['low_3_to_0'], counters['open']['high_0_to_3'], counters['open']['high_3_to_6'], counters['open']['high_over_6']) + # 第二日收盘价分布 next_close_differrange = df.loc[df['code'] == code, 'next_close_differrange'].values[0] - if next_close_differrange < -3: - low_close_count += 1 - elif next_close_differrange > 3: - high_close_count += 1 - else: - normal_close_count += 1 - - # 清仓盈亏分布-开盘清仓 - saleprice_open_differrange = df.loc[df['code'] == code, 'saleprice_open_differrange'].values[0] - if saleprice_open_differrange < -5: - high_loss_sale_open_count += 1 - elif saleprice_open_differrange > -5 and saleprice_open_differrange < 0: - low_loss_sale_open_count += 1 - elif saleprice_open_differrange > 0 and saleprice_open_differrange < 5: - low_profit_sale_open_count += 1 - else: - high_profit_sale_open_count += 1 + counters['close']['low_over_6'],counters['close']['low_6_to_3'], counters['close']['low_3_to_0'], counters['close']['high_0_to_3'], counters['close']['high_3_to_6'], counters['close']['high_over_6'] = count_change(next_close_differrange, counters['close']['low_over_6'], counters['close']['low_6_to_3'], counters['close']['low_3_to_0'], counters['close']['high_0_to_3'], counters['close']['high_3_to_6'], counters['close']['high_over_6']) + + # 清仓日的开盘价分布 + counters['sale_open']['low_over_6'],counters['sale_open']['low_6_to_3'], counters['sale_open']['low_3_to_0'], counters['sale_open']['high_0_to_3'], counters['sale_open']['high_3_to_6'], counters['sale_open']['high_over_6'] = count_change(saleprice_open_differrange, counters['sale_open']['low_over_6'], counters['sale_open']['low_6_to_3'], counters['sale_open']['low_3_to_0'], counters['sale_open']['high_0_to_3'], counters['sale_open']['high_3_to_6'], counters['sale_open']['high_over_6']) + # 清仓日的收盘价分布 + counters['sale_close']['low_over_6'],counters['sale_close']['low_6_to_3'], counters['sale_close']['low_3_to_0'], counters['sale_close']['high_0_to_3'], counters['sale_close']['high_3_to_6'], counters['sale_close']['high_over_6'] = count_change(saleprice_close_differrange, counters['sale_close']['low_over_6'], counters['sale_close']['low_6_to_3'], counters['sale_close']['low_3_to_0'], counters['sale_close']['high_0_to_3'], counters['sale_close']['high_3_to_6'], counters['sale_close']['high_over_6']) + + # 清仓日开盘清仓盈亏分布-开盘建仓 + open_sale_open_differrange = 100 * (saleopen - df.loc[df['code'] == code, 'next_open'])/df.loc[df['code'] == code, 'next_open'] + counters['profit_open_sale_open']['low_over_6'],counters['profit_open_sale_open']['low_6_to_3'], counters['profit_open_sale_open']['low_3_to_0'], counters['profit_open_sale_open']['high_0_to_3'], counters['profit_open_sale_open']['high_3_to_6'], counters['profit_open_sale_open']['high_over_6'] = count_change(open_sale_open_differrange, counters['profit_open_sale_open']['low_over_6'], counters['profit_open_sale_open']['low_6_to_3'], counters['profit_open_sale_open']['low_3_to_0'], counters['profit_open_sale_open']['high_0_to_3'], counters['profit_open_sale_open']['high_3_to_6'], counters['profit_open_sale_open']['high_over_6']) + # 清仓日开盘清仓盈亏分布-收盘建仓 + open_sale_close_differrange = 100 * (saleopen - nextclose)/nextclose + counters['profit_open_sale_close']['low_over_6'],counters['profit_open_sale_close']['low_6_to_3'], counters['profit_open_sale_close']['low_3_to_0'], counters['profit_open_sale_close']['high_0_to_3'], counters['profit_open_sale_close']['high_3_to_6'], counters['profit_open_sale_close']['high_over_6'] = count_change(open_sale_close_differrange, counters['profit_open_sale_close']['low_over_6'], counters['profit_open_sale_close']['low_6_to_3'], counters['profit_open_sale_close']['low_3_to_0'], counters['profit_open_sale_close']['high_0_to_3'], counters['profit_open_sale_close']['high_3_to_6'], counters['profit_open_sale_close']['high_over_6']) + # 清仓日收盘清仓盈亏分布-开盘建仓 + close_sale_open_differrange = 100 * (saleclose - df.loc[df['code'] == code, 'next_open'])/df.loc[df['code'] == code, 'next_open'] + counters['profit_close_sale_open']['low_over_6'],counters['profit_close_sale_open']['low_6_to_3'], counters['profit_close_sale_open']['low_3_to_0'], counters['profit_close_sale_open']['high_0_to_3'], counters['profit_close_sale_open']['high_3_to_6'], counters['profit_close_sale_open']['high_over_6'] = count_change(close_sale_open_differrange, counters['profit_close_sale_open']['low_over_6'], counters['profit_close_sale_open']['low_6_to_3'], counters['profit_close_sale_open']['low_3_to_0'], counters['profit_close_sale_open']['high_0_to_3'], counters['profit_close_sale_open']['high_3_to_6'], counters['profit_close_sale_open']['high_over_6']) + # 清仓日收盘清仓盈亏分布-收盘建仓 + close_sale_close_differrange = 100 * (saleclose - nextclose)/nextclose + counters['profit_close_sale_close']['low_over_6'],counters['profit_close_sale_close']['low_6_to_3'], counters['profit_close_sale_close']['low_3_to_0'], counters['profit_close_sale_close']['high_0_to_3'], counters['profit_close_sale_close']['high_3_to_6'], counters['profit_close_sale_close']['high_over_6'] = count_change(close_sale_close_differrange, counters['profit_close_sale_close']['low_over_6'], counters['profit_close_sale_close']['low_6_to_3'], counters['profit_close_sale_close']['low_3_to_0'], counters['profit_close_sale_close']['high_0_to_3'], counters['profit_close_sale_close']['high_3_to_6'], counters['profit_close_sale_close']['high_over_6']) + + # 组合场景: 开盘建仓 清仓日开盘清仓 盈亏分布 + if next_open_diff < -6 and saleprice_open_differrange < -6: + counters['low_over_6_open_low_over_6_open_sale']['low_over_6'],counters['low_over_6_open_low_over_6_open_sale']['low_6_to_3'], counters['low_over_6_open_low_over_6_open_sale']['low_3_to_0'], counters['low_over_6_open_low_over_6_open_sale']['high_0_to_3'], counters['low_over_6_open_low_over_6_open_sale']['high_3_to_6'], counters['low_over_6_open_low_over_6_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['low_over_6_open_low_over_6_open_sale']['low_over_6'], counters['low_over_6_open_low_over_6_open_sale']['low_6_to_3'], counters['low_over_6_open_low_over_6_open_sale']['low_3_to_0'], counters['low_over_6_open_low_over_6_open_sale']['high_0_to_3'], counters['low_over_6_open_low_over_6_open_sale']['high_3_to_6'], counters['low_over_6_open_low_over_6_open_sale']['high_over_6']) + elif next_open_diff < -6 and saleprice_open_differrange > -6 and saleprice_open_differrange < -3: + counters['low_over_6_open_low_6_to_3_open_sale']['low_over_6'],counters['low_over_6_open_low_6_to_3_open_sale']['low_6_to_3'], counters['low_over_6_open_low_6_to_3_open_sale']['low_3_to_0'], counters['low_over_6_open_low_6_to_3_open_sale']['high_0_to_3'], counters['low_over_6_open_low_6_to_3_open_sale']['high_3_to_6'], counters['low_over_6_open_low_6_to_3_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['low_over_6_open_low_6_to_3_open_sale']['low_over_6'], counters['low_over_6_open_low_6_to_3_open_sale']['low_6_to_3'], counters['low_over_6_open_low_6_to_3_open_sale']['low_3_to_0'], counters['low_over_6_open_low_6_to_3_open_sale']['high_0_to_3'], counters['low_over_6_open_low_6_to_3_open_sale']['high_3_to_6'], counters['low_over_6_open_low_6_to_3_open_sale']['high_over_6']) + elif next_open_diff < -6 and saleprice_open_differrange > -3 and saleprice_open_differrange < 0: + counters['low_over_6_open_low_3_to_0_open_sale']['low_over_6'],counters['low_over_6_open_low_3_to_0_open_sale']['low_6_to_3'], counters['low_over_6_open_low_3_to_0_open_sale']['low_3_to_0'], counters['low_over_6_open_low_3_to_0_open_sale']['high_0_to_3'], counters['low_over_6_open_low_3_to_0_open_sale']['high_3_to_6'], counters['low_over_6_open_low_3_to_0_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['low_over_6_open_low_3_to_0_open_sale']['low_over_6'], counters['low_over_6_open_low_3_to_0_open_sale']['low_6_to_3'], counters['low_over_6_open_low_3_to_0_open_sale']['low_3_to_0'], counters['low_over_6_open_low_3_to_0_open_sale']['high_0_to_3'], counters['low_over_6_open_low_3_to_0_open_sale']['high_3_to_6'], counters['low_over_6_open_low_3_to_0_open_sale']['high_over_6']) + elif next_open_diff < -6 and saleprice_open_differrange > 0 and saleprice_open_differrange < 3: + counters['low_over_6_open_high_0_to_3_open_sale']['low_over_6'],counters['low_over_6_open_high_0_to_3_open_sale']['low_6_to_3'], counters['low_over_6_open_high_0_to_3_open_sale']['low_3_to_0'], counters['low_over_6_open_high_0_to_3_open_sale']['high_0_to_3'], counters['low_over_6_open_high_0_to_3_open_sale']['high_3_to_6'], counters['low_over_6_open_high_0_to_3_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['low_over_6_open_high_0_to_3_open_sale']['low_over_6'], counters['low_over_6_open_high_0_to_3_open_sale']['low_6_to_3'], counters['low_over_6_open_high_0_to_3_open_sale']['low_3_to_0'], counters['low_over_6_open_high_0_to_3_open_sale']['high_0_to_3'], counters['low_over_6_open_high_0_to_3_open_sale']['high_3_to_6'], counters['low_over_6_open_high_0_to_3_open_sale']['high_over_6']) + elif next_open_diff < -6 and saleprice_open_differrange > 3 and saleprice_open_differrange < 6: + counters['low_over_6_open_high_3_to_6_open_sale']['low_over_6'],counters['low_over_6_open_high_3_to_6_open_sale']['low_6_to_3'], counters['low_over_6_open_high_3_to_6_open_sale']['low_3_to_0'], counters['low_over_6_open_high_3_to_6_open_sale']['high_0_to_3'], counters['low_over_6_open_high_3_to_6_open_sale']['high_3_to_6'], counters['low_over_6_open_high_3_to_6_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['low_over_6_open_high_3_to_6_open_sale']['low_over_6'], counters['low_over_6_open_high_3_to_6_open_sale']['low_6_to_3'], counters['low_over_6_open_high_3_to_6_open_sale']['low_3_to_0'], counters['low_over_6_open_high_3_to_6_open_sale']['high_0_to_3'], counters['low_over_6_open_high_3_to_6_open_sale']['high_3_to_6'], counters['low_over_6_open_high_3_to_6_open_sale']['high_over_6']) + elif next_open_diff < -6 and saleprice_open_differrange > 6: + counters['low_over_6_open_high_over_6_open_sale']['low_over_6'],counters['low_over_6_open_high_over_6_open_sale']['low_6_to_3'], counters['low_over_6_open_high_over_6_open_sale']['low_3_to_0'], counters['low_over_6_open_high_over_6_open_sale']['high_0_to_3'], counters['low_over_6_open_high_over_6_open_sale']['high_3_to_6'], counters['low_over_6_open_high_over_6_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['low_over_6_open_high_over_6_open_sale']['low_over_6'], counters['low_over_6_open_high_over_6_open_sale']['low_6_to_3'], counters['low_over_6_open_high_over_6_open_sale']['low_3_to_0'], counters['low_over_6_open_high_over_6_open_sale']['high_0_to_3'], counters['low_over_6_open_high_over_6_open_sale']['high_3_to_6'], counters['low_over_6_open_high_over_6_open_sale']['high_over_6']) + elif next_open_diff > -6 and next_open_diff < -3 and saleprice_open_differrange < -6: + counters['low_6_to_3_open_low_over_6_open_sale']['low_over_6'],counters['low_6_to_3_open_low_over_6_open_sale']['low_6_to_3'], counters['low_6_to_3_open_low_over_6_open_sale']['low_3_to_0'], counters['low_6_to_3_open_low_over_6_open_sale']['high_0_to_3'], counters['low_6_to_3_open_low_over_6_open_sale']['high_3_to_6'], counters['low_6_to_3_open_low_over_6_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['low_6_to_3_open_low_over_6_open_sale']['low_over_6'], counters['low_6_to_3_open_low_over_6_open_sale']['low_6_to_3'], counters['low_6_to_3_open_low_over_6_open_sale']['low_3_to_0'], counters['low_6_to_3_open_low_over_6_open_sale']['high_0_to_3'], counters['low_6_to_3_open_low_over_6_open_sale']['high_3_to_6'], counters['low_6_to_3_open_low_over_6_open_sale']['high_over_6']) + elif next_open_diff > -6 and next_open_diff < -3 and saleprice_open_differrange > -6 and saleprice_open_differrange < -3: + counters['low_6_to_3_open_low_6_to_3_open_sale']['low_over_6'],counters['low_6_to_3_open_low_6_to_3_open_sale']['low_6_to_3'], counters['low_6_to_3_open_low_6_to_3_open_sale']['low_3_to_0'], counters['low_6_to_3_open_low_6_to_3_open_sale']['high_0_to_3'], counters['low_6_to_3_open_low_6_to_3_open_sale']['high_3_to_6'], counters['low_6_to_3_open_low_6_to_3_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['low_6_to_3_open_low_6_to_3_open_sale']['low_over_6'], counters['low_6_to_3_open_low_6_to_3_open_sale']['low_6_to_3'], counters['low_6_to_3_open_low_6_to_3_open_sale']['low_3_to_0'], counters['low_6_to_3_open_low_6_to_3_open_sale']['high_0_to_3'], counters['low_6_to_3_open_low_6_to_3_open_sale']['high_3_to_6'], counters['low_6_to_3_open_low_6_to_3_open_sale']['high_over_6']) + elif next_open_diff > -6 and next_open_diff < -3 and saleprice_open_differrange > -3 and saleprice_open_differrange < 0: + counters['low_6_to_3_open_low_3_to_0_open_sale']['low_over_6'],counters['low_6_to_3_open_low_3_to_0_open_sale']['low_6_to_3'], counters['low_6_to_3_open_low_3_to_0_open_sale']['low_3_to_0'], counters['low_6_to_3_open_low_3_to_0_open_sale']['high_0_to_3'], counters['low_6_to_3_open_low_3_to_0_open_sale']['high_3_to_6'], counters['low_6_to_3_open_low_3_to_0_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['low_6_to_3_open_low_3_to_0_open_sale']['low_over_6'], counters['low_6_to_3_open_low_3_to_0_open_sale']['low_6_to_3'], counters['low_6_to_3_open_low_3_to_0_open_sale']['low_3_to_0'], counters['low_6_to_3_open_low_3_to_0_open_sale']['high_0_to_3'], counters['low_6_to_3_open_low_3_to_0_open_sale']['high_3_to_6'], counters['low_6_to_3_open_low_3_to_0_open_sale']['high_over_6']) + elif next_open_diff > -6 and next_open_diff < -3 and saleprice_open_differrange > 0 and saleprice_open_differrange < 3: + counters['low_6_to_3_open_high_0_to_3_open_sale']['low_over_6'],counters['low_6_to_3_open_high_0_to_3_open_sale']['low_6_to_3'], counters['low_6_to_3_open_high_0_to_3_open_sale']['low_3_to_0'], counters['low_6_to_3_open_high_0_to_3_open_sale']['high_0_to_3'], counters['low_6_to_3_open_high_0_to_3_open_sale']['high_3_to_6'], counters['low_6_to_3_open_high_0_to_3_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['low_6_to_3_open_high_0_to_3_open_sale']['low_over_6'], counters['low_6_to_3_open_high_0_to_3_open_sale']['low_6_to_3'], counters['low_6_to_3_open_high_0_to_3_open_sale']['low_3_to_0'], counters['low_6_to_3_open_high_0_to_3_open_sale']['high_0_to_3'], counters['low_6_to_3_open_high_0_to_3_open_sale']['high_3_to_6'], counters['low_6_to_3_open_high_0_to_3_open_sale']['high_over_6']) + elif next_open_diff > -6 and next_open_diff < -3 and saleprice_open_differrange > 3 and saleprice_open_differrange < 6: + counters['low_6_to_3_open_high_3_to_6_open_sale']['low_over_6'],counters['low_6_to_3_open_high_3_to_6_open_sale']['low_6_to_3'], counters['low_6_to_3_open_high_3_to_6_open_sale']['low_3_to_0'], counters['low_6_to_3_open_high_3_to_6_open_sale']['high_0_to_3'], counters['low_6_to_3_open_high_3_to_6_open_sale']['high_3_to_6'], counters['low_6_to_3_open_high_3_to_6_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['low_6_to_3_open_high_3_to_6_open_sale']['low_over_6'], counters['low_6_to_3_open_high_3_to_6_open_sale']['low_6_to_3'], counters['low_6_to_3_open_high_3_to_6_open_sale']['low_3_to_0'], counters['low_6_to_3_open_high_3_to_6_open_sale']['high_0_to_3'], counters['low_6_to_3_open_high_3_to_6_open_sale']['high_3_to_6'], counters['low_6_to_3_open_high_3_to_6_open_sale']['high_over_6']) + elif next_open_diff > -6 and next_open_diff < -3 and saleprice_open_differrange > 6: + counters['low_6_to_3_open_high_over_6_open_sale']['low_over_6'],counters['low_6_to_3_open_high_over_6_open_sale']['low_6_to_3'], counters['low_6_to_3_open_high_over_6_open_sale']['low_3_to_0'], counters['low_6_to_3_open_high_over_6_open_sale']['high_0_to_3'], counters['low_6_to_3_open_high_over_6_open_sale']['high_3_to_6'], counters['low_6_to_3_open_high_over_6_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['low_6_to_3_open_high_over_6_open_sale']['low_over_6'], counters['low_6_to_3_open_high_over_6_open_sale']['low_6_to_3'], counters['low_6_to_3_open_high_over_6_open_sale']['low_3_to_0'], counters['low_6_to_3_open_high_over_6_open_sale']['high_0_to_3'], counters['low_6_to_3_open_high_over_6_open_sale']['high_3_to_6'], counters['low_6_to_3_open_high_over_6_open_sale']['high_over_6']) + elif next_open_diff > -3 and next_open_diff < 0 and saleprice_open_differrange < -6: + counters['low_3_to_0_open_low_over_6_open_sale']['low_over_6'],counters['low_3_to_0_open_low_over_6_open_sale']['low_6_to_3'], counters['low_3_to_0_open_low_over_6_open_sale']['low_3_to_0'], counters['low_3_to_0_open_low_over_6_open_sale']['high_0_to_3'], counters['low_3_to_0_open_low_over_6_open_sale']['high_3_to_6'], counters['low_3_to_0_open_low_over_6_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['low_3_to_0_open_low_over_6_open_sale']['low_over_6'], counters['low_3_to_0_open_low_over_6_open_sale']['low_6_to_3'], counters['low_3_to_0_open_low_over_6_open_sale']['low_3_to_0'], counters['low_3_to_0_open_low_over_6_open_sale']['high_0_to_3'], counters['low_3_to_0_open_low_over_6_open_sale']['high_3_to_6'], counters['low_3_to_0_open_low_over_6_open_sale']['high_over_6']) + elif next_open_diff > -3 and next_open_diff < 0 and saleprice_open_differrange > -6 and saleprice_open_differrange < -3: + counters['low_3_to_0_open_low_6_to_3_open_sale']['low_over_6'],counters['low_3_to_0_open_low_6_to_3_open_sale']['low_6_to_3'], counters['low_3_to_0_open_low_6_to_3_open_sale']['low_3_to_0'], counters['low_3_to_0_open_low_6_to_3_open_sale']['high_0_to_3'], counters['low_3_to_0_open_low_6_to_3_open_sale']['high_3_to_6'], counters['low_3_to_0_open_low_6_to_3_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['low_3_to_0_open_low_6_to_3_open_sale']['low_over_6'], counters['low_3_to_0_open_low_6_to_3_open_sale']['low_6_to_3'], counters['low_3_to_0_open_low_6_to_3_open_sale']['low_3_to_0'], counters['low_3_to_0_open_low_6_to_3_open_sale']['high_0_to_3'], counters['low_3_to_0_open_low_6_to_3_open_sale']['high_3_to_6'], counters['low_3_to_0_open_low_6_to_3_open_sale']['high_over_6']) + elif next_open_diff > -3 and next_open_diff < 0 and saleprice_open_differrange > -3 and saleprice_open_differrange < 0: + counters['low_3_to_0_open_low_3_to_0_open_sale']['low_over_6'],counters['low_3_to_0_open_low_3_to_0_open_sale']['low_6_to_3'], counters['low_3_to_0_open_low_3_to_0_open_sale']['low_3_to_0'], counters['low_3_to_0_open_low_3_to_0_open_sale']['high_0_to_3'], counters['low_3_to_0_open_low_3_to_0_open_sale']['high_3_to_6'], counters['low_3_to_0_open_low_3_to_0_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['low_3_to_0_open_low_3_to_0_open_sale']['low_over_6'], counters['low_3_to_0_open_low_3_to_0_open_sale']['low_6_to_3'], counters['low_3_to_0_open_low_3_to_0_open_sale']['low_3_to_0'], counters['low_3_to_0_open_low_3_to_0_open_sale']['high_0_to_3'], counters['low_3_to_0_open_low_3_to_0_open_sale']['high_3_to_6'], counters['low_3_to_0_open_low_3_to_0_open_sale']['high_over_6']) + elif next_open_diff > -3 and next_open_diff < 0 and saleprice_open_differrange > 0 and saleprice_open_differrange < 3: + counters['low_3_to_0_open_high_0_to_3_open_sale']['low_over_6'],counters['low_3_to_0_open_high_0_to_3_open_sale']['low_6_to_3'], counters['low_3_to_0_open_high_0_to_3_open_sale']['low_3_to_0'], counters['low_3_to_0_open_high_0_to_3_open_sale']['high_0_to_3'], counters['low_3_to_0_open_high_0_to_3_open_sale']['high_3_to_6'], counters['low_3_to_0_open_high_0_to_3_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['low_3_to_0_open_high_0_to_3_open_sale']['low_over_6'], counters['low_3_to_0_open_high_0_to_3_open_sale']['low_6_to_3'], counters['low_3_to_0_open_high_0_to_3_open_sale']['low_3_to_0'], counters['low_3_to_0_open_high_0_to_3_open_sale']['high_0_to_3'], counters['low_3_to_0_open_high_0_to_3_open_sale']['high_3_to_6'], counters['low_3_to_0_open_high_0_to_3_open_sale']['high_over_6']) + elif next_open_diff > -3 and next_open_diff < 0 and saleprice_open_differrange > 3 and saleprice_open_differrange < 6: + counters['low_3_to_0_open_high_3_to_6_open_sale']['low_over_6'],counters['low_3_to_0_open_high_3_to_6_open_sale']['low_6_to_3'], counters['low_3_to_0_open_high_3_to_6_open_sale']['low_3_to_0'], counters['low_3_to_0_open_high_3_to_6_open_sale']['high_0_to_3'], counters['low_3_to_0_open_high_3_to_6_open_sale']['high_3_to_6'], counters['low_3_to_0_open_high_3_to_6_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['low_3_to_0_open_high_3_to_6_open_sale']['low_over_6'], counters['low_3_to_0_open_high_3_to_6_open_sale']['low_6_to_3'], counters['low_3_to_0_open_high_3_to_6_open_sale']['low_3_to_0'], counters['low_3_to_0_open_high_3_to_6_open_sale']['high_0_to_3'], counters['low_3_to_0_open_high_3_to_6_open_sale']['high_3_to_6'], counters['low_3_to_0_open_high_3_to_6_open_sale']['high_over_6']) + elif next_open_diff > -3 and next_open_diff < 0 and saleprice_open_differrange > 6: + counters['low_3_to_0_open_high_over_6_open_sale']['low_over_6'],counters['low_3_to_0_open_high_over_6_open_sale']['low_6_to_3'], counters['low_3_to_0_open_high_over_6_open_sale']['low_3_to_0'], counters['low_3_to_0_open_high_over_6_open_sale']['high_0_to_3'], counters['low_3_to_0_open_high_over_6_open_sale']['high_3_to_6'], counters['low_3_to_0_open_high_over_6_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['low_3_to_0_open_high_over_6_open_sale']['low_over_6'], counters['low_3_to_0_open_high_over_6_open_sale']['low_6_to_3'], counters['low_3_to_0_open_high_over_6_open_sale']['low_3_to_0'], counters['low_3_to_0_open_high_over_6_open_sale']['high_0_to_3'], counters['low_3_to_0_open_high_over_6_open_sale']['high_3_to_6'], counters['low_3_to_0_open_high_over_6_open_sale']['high_over_6']) + elif next_open_diff > 0 and next_open_diff < 3 and saleprice_open_differrange < -6: + counters['high_0_to_3_open_low_over_6_open_sale']['low_over_6'],counters['high_0_to_3_open_low_over_6_open_sale']['low_6_to_3'], counters['high_0_to_3_open_low_over_6_open_sale']['low_3_to_0'], counters['high_0_to_3_open_low_over_6_open_sale']['high_0_to_3'], counters['high_0_to_3_open_low_over_6_open_sale']['high_3_to_6'], counters['high_0_to_3_open_low_over_6_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['high_0_to_3_open_low_over_6_open_sale']['low_over_6'], counters['high_0_to_3_open_low_over_6_open_sale']['low_6_to_3'], counters['high_0_to_3_open_low_over_6_open_sale']['low_3_to_0'], counters['high_0_to_3_open_low_over_6_open_sale']['high_0_to_3'], counters['high_0_to_3_open_low_over_6_open_sale']['high_3_to_6'], counters['high_0_to_3_open_low_over_6_open_sale']['high_over_6']) + elif next_open_diff > 0 and next_open_diff < 3 and saleprice_open_differrange > -6 and saleprice_open_differrange < -3: + counters['high_0_to_3_open_low_6_to_3_open_sale']['low_over_6'],counters['high_0_to_3_open_low_6_to_3_open_sale']['low_6_to_3'], counters['high_0_to_3_open_low_6_to_3_open_sale']['low_3_to_0'], counters['high_0_to_3_open_low_6_to_3_open_sale']['high_0_to_3'], counters['high_0_to_3_open_low_6_to_3_open_sale']['high_3_to_6'], counters['high_0_to_3_open_low_6_to_3_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['high_0_to_3_open_low_6_to_3_open_sale']['low_over_6'], counters['high_0_to_3_open_low_6_to_3_open_sale']['low_6_to_3'], counters['high_0_to_3_open_low_6_to_3_open_sale']['low_3_to_0'], counters['high_0_to_3_open_low_6_to_3_open_sale']['high_0_to_3'], counters['high_0_to_3_open_low_6_to_3_open_sale']['high_3_to_6'], counters['high_0_to_3_open_low_6_to_3_open_sale']['high_over_6']) + elif next_open_diff > 0 and next_open_diff < 3 and saleprice_open_differrange > -3 and saleprice_open_differrange < 0: + counters['high_0_to_3_open_low_3_to_0_open_sale']['low_over_6'],counters['high_0_to_3_open_low_3_to_0_open_sale']['low_6_to_3'], counters['high_0_to_3_open_low_3_to_0_open_sale']['low_3_to_0'], counters['high_0_to_3_open_low_3_to_0_open_sale']['high_0_to_3'], counters['high_0_to_3_open_low_3_to_0_open_sale']['high_3_to_6'], counters['high_0_to_3_open_low_3_to_0_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['high_0_to_3_open_low_3_to_0_open_sale']['low_over_6'], counters['high_0_to_3_open_low_3_to_0_open_sale']['low_6_to_3'], counters['high_0_to_3_open_low_3_to_0_open_sale']['low_3_to_0'], counters['high_0_to_3_open_low_3_to_0_open_sale']['high_0_to_3'], counters['high_0_to_3_open_low_3_to_0_open_sale']['high_3_to_6'], counters['high_0_to_3_open_low_3_to_0_open_sale']['high_over_6']) + elif next_open_diff > 0 and next_open_diff < 3 and saleprice_open_differrange > 0 and saleprice_open_differrange < 3: + counters['high_0_to_3_open_high_0_to_3_open_sale']['low_over_6'],counters['high_0_to_3_open_high_0_to_3_open_sale']['low_6_to_3'], counters['high_0_to_3_open_high_0_to_3_open_sale']['low_3_to_0'], counters['high_0_to_3_open_high_0_to_3_open_sale']['high_0_to_3'], counters['high_0_to_3_open_high_0_to_3_open_sale']['high_3_to_6'], counters['high_0_to_3_open_high_0_to_3_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['high_0_to_3_open_high_0_to_3_open_sale']['low_over_6'], counters['high_0_to_3_open_high_0_to_3_open_sale']['low_6_to_3'], counters['high_0_to_3_open_high_0_to_3_open_sale']['low_3_to_0'], counters['high_0_to_3_open_high_0_to_3_open_sale']['high_0_to_3'], counters['high_0_to_3_open_high_0_to_3_open_sale']['high_3_to_6'], counters['high_0_to_3_open_high_0_to_3_open_sale']['high_over_6']) + elif next_open_diff > 0 and next_open_diff < 3 and saleprice_open_differrange > 3 and saleprice_open_differrange < 6: + counters['high_0_to_3_open_high_3_to_6_open_sale']['low_over_6'],counters['high_0_to_3_open_high_3_to_6_open_sale']['low_6_to_3'], counters['high_0_to_3_open_high_3_to_6_open_sale']['low_3_to_0'], counters['high_0_to_3_open_high_3_to_6_open_sale']['high_0_to_3'], counters['high_0_to_3_open_high_3_to_6_open_sale']['high_3_to_6'], counters['high_0_to_3_open_high_3_to_6_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['high_0_to_3_open_high_3_to_6_open_sale']['low_over_6'], counters['high_0_to_3_open_high_3_to_6_open_sale']['low_6_to_3'], counters['high_0_to_3_open_high_3_to_6_open_sale']['low_3_to_0'], counters['high_0_to_3_open_high_3_to_6_open_sale']['high_0_to_3'], counters['high_0_to_3_open_high_3_to_6_open_sale']['high_3_to_6'], counters['high_0_to_3_open_high_3_to_6_open_sale']['high_over_6']) + elif next_open_diff > 0 and next_open_diff < 3 and saleprice_open_differrange > 6: + counters['high_0_to_3_open_high_over_6_open_sale']['low_over_6'],counters['high_0_to_3_open_high_over_6_open_sale']['low_6_to_3'], counters['high_0_to_3_open_high_over_6_open_sale']['low_3_to_0'], counters['high_0_to_3_open_high_over_6_open_sale']['high_0_to_3'], counters['high_0_to_3_open_high_over_6_open_sale']['high_3_to_6'], counters['high_0_to_3_open_high_over_6_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['high_0_to_3_open_high_over_6_open_sale']['low_over_6'], counters['high_0_to_3_open_high_over_6_open_sale']['low_6_to_3'], counters['high_0_to_3_open_high_over_6_open_sale']['low_3_to_0'], counters['high_0_to_3_open_high_over_6_open_sale']['high_0_to_3'], counters['high_0_to_3_open_high_over_6_open_sale']['high_3_to_6'], counters['high_0_to_3_open_high_over_6_open_sale']['high_over_6']) + elif next_open_diff > 3 and next_open_diff < 6 and saleprice_open_differrange < -6: + counters['high_3_to_6_open_low_over_6_open_sale']['low_over_6'],counters['high_3_to_6_open_low_over_6_open_sale']['low_6_to_3'], counters['high_3_to_6_open_low_over_6_open_sale']['low_3_to_0'], counters['high_3_to_6_open_low_over_6_open_sale']['high_0_to_3'], counters['high_3_to_6_open_low_over_6_open_sale']['high_3_to_6'], counters['high_3_to_6_open_low_over_6_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['high_3_to_6_open_low_over_6_open_sale']['low_over_6'], counters['high_3_to_6_open_low_over_6_open_sale']['low_6_to_3'], counters['high_3_to_6_open_low_over_6_open_sale']['low_3_to_0'], counters['high_3_to_6_open_low_over_6_open_sale']['high_0_to_3'], counters['high_3_to_6_open_low_over_6_open_sale']['high_3_to_6'], counters['high_3_to_6_open_low_over_6_open_sale']['high_over_6']) + elif next_open_diff > 3 and next_open_diff < 6 and saleprice_open_differrange > -6 and saleprice_open_differrange < -3: + counters['high_3_to_6_open_low_6_to_3_open_sale']['low_over_6'],counters['high_3_to_6_open_low_6_to_3_open_sale']['low_6_to_3'], counters['high_3_to_6_open_low_6_to_3_open_sale']['low_3_to_0'], counters['high_3_to_6_open_low_6_to_3_open_sale']['high_0_to_3'], counters['high_3_to_6_open_low_6_to_3_open_sale']['high_3_to_6'], counters['high_3_to_6_open_low_6_to_3_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['high_3_to_6_open_low_6_to_3_open_sale']['low_over_6'], counters['high_3_to_6_open_low_6_to_3_open_sale']['low_6_to_3'], counters['high_3_to_6_open_low_6_to_3_open_sale']['low_3_to_0'], counters['high_3_to_6_open_low_6_to_3_open_sale']['high_0_to_3'], counters['high_3_to_6_open_low_6_to_3_open_sale']['high_3_to_6'], counters['high_3_to_6_open_low_6_to_3_open_sale']['high_over_6']) + elif next_open_diff > 3 and next_open_diff < 6 and saleprice_open_differrange > -3 and saleprice_open_differrange < 0: + counters['high_3_to_6_open_low_3_to_0_open_sale']['low_over_6'],counters['high_3_to_6_open_low_3_to_0_open_sale']['low_6_to_3'], counters['high_3_to_6_open_low_3_to_0_open_sale']['low_3_to_0'], counters['high_3_to_6_open_low_3_to_0_open_sale']['high_0_to_3'], counters['high_3_to_6_open_low_3_to_0_open_sale']['high_3_to_6'], counters['high_3_to_6_open_low_3_to_0_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['high_3_to_6_open_low_3_to_0_open_sale']['low_over_6'], counters['high_3_to_6_open_low_3_to_0_open_sale']['low_6_to_3'], counters['high_3_to_6_open_low_3_to_0_open_sale']['low_3_to_0'], counters['high_3_to_6_open_low_3_to_0_open_sale']['high_0_to_3'], counters['high_3_to_6_open_low_3_to_0_open_sale']['high_3_to_6'], counters['high_3_to_6_open_low_3_to_0_open_sale']['high_over_6']) + elif next_open_diff > 3 and next_open_diff < 6 and saleprice_open_differrange > 0 and saleprice_open_differrange < 3: + counters['high_3_to_6_open_high_0_to_3_open_sale']['low_over_6'],counters['high_3_to_6_open_high_0_to_3_open_sale']['low_6_to_3'], counters['high_3_to_6_open_high_0_to_3_open_sale']['low_3_to_0'], counters['high_3_to_6_open_high_0_to_3_open_sale']['high_0_to_3'], counters['high_3_to_6_open_high_0_to_3_open_sale']['high_3_to_6'], counters['high_3_to_6_open_high_0_to_3_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['high_3_to_6_open_high_0_to_3_open_sale']['low_over_6'], counters['high_3_to_6_open_high_0_to_3_open_sale']['low_6_to_3'], counters['high_3_to_6_open_high_0_to_3_open_sale']['low_3_to_0'], counters['high_3_to_6_open_high_0_to_3_open_sale']['high_0_to_3'], counters['high_3_to_6_open_high_0_to_3_open_sale']['high_3_to_6'], counters['high_3_to_6_open_high_0_to_3_open_sale']['high_over_6']) + elif next_open_diff > 3 and next_open_diff < 6 and saleprice_open_differrange > 3 and saleprice_open_differrange < 6: + counters['high_3_to_6_open_high_3_to_6_open_sale']['low_over_6'],counters['high_3_to_6_open_high_3_to_6_open_sale']['low_6_to_3'], counters['high_3_to_6_open_high_3_to_6_open_sale']['low_3_to_0'], counters['high_3_to_6_open_high_3_to_6_open_sale']['high_0_to_3'], counters['high_3_to_6_open_high_3_to_6_open_sale']['high_3_to_6'], counters['high_3_to_6_open_high_3_to_6_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['high_3_to_6_open_high_3_to_6_open_sale']['low_over_6'], counters['high_3_to_6_open_high_3_to_6_open_sale']['low_6_to_3'], counters['high_3_to_6_open_high_3_to_6_open_sale']['low_3_to_0'], counters['high_3_to_6_open_high_3_to_6_open_sale']['high_0_to_3'], counters['high_3_to_6_open_high_3_to_6_open_sale']['high_3_to_6'], counters['high_3_to_6_open_high_3_to_6_open_sale']['high_over_6']) + elif next_open_diff > 3 and next_open_diff < 6 and saleprice_open_differrange > 6: + counters['high_3_to_6_open_high_over_6_open_sale']['low_over_6'],counters['high_3_to_6_open_high_over_6_open_sale']['low_6_to_3'], counters['high_3_to_6_open_high_over_6_open_sale']['low_3_to_0'], counters['high_3_to_6_open_high_over_6_open_sale']['high_0_to_3'], counters['high_3_to_6_open_high_over_6_open_sale']['high_3_to_6'], counters['high_3_to_6_open_high_over_6_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['high_3_to_6_open_high_over_6_open_sale']['low_over_6'], counters['high_3_to_6_open_high_over_6_open_sale']['low_6_to_3'], counters['high_3_to_6_open_high_over_6_open_sale']['low_3_to_0'], counters['high_3_to_6_open_high_over_6_open_sale']['high_0_to_3'], counters['high_3_to_6_open_high_over_6_open_sale']['high_3_to_6'], counters['high_3_to_6_open_high_over_6_open_sale']['high_over_6']) + elif next_open_diff > 6 and saleprice_open_differrange < -6: + counters['high_over_6_open_low_over_6_open_sale']['low_over_6'],counters['high_over_6_open_low_over_6_open_sale']['low_6_to_3'], counters['high_over_6_open_low_over_6_open_sale']['low_3_to_0'], counters['high_over_6_open_low_over_6_open_sale']['high_0_to_3'], counters['high_over_6_open_low_over_6_open_sale']['high_3_to_6'], counters['high_over_6_open_low_over_6_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['high_over_6_open_low_over_6_open_sale']['low_over_6'], counters['high_over_6_open_low_over_6_open_sale']['low_6_to_3'], counters['high_over_6_open_low_over_6_open_sale']['low_3_to_0'], counters['high_over_6_open_low_over_6_open_sale']['high_0_to_3'], counters['high_over_6_open_low_over_6_open_sale']['high_3_to_6'], counters['high_over_6_open_low_over_6_open_sale']['high_over_6']) + elif next_open_diff > 6 and saleprice_open_differrange > -6 and saleprice_open_differrange < -3: + counters['high_over_6_open_low_6_to_3_open_sale']['low_over_6'],counters['high_over_6_open_low_6_to_3_open_sale']['low_6_to_3'], counters['high_over_6_open_low_6_to_3_open_sale']['low_3_to_0'], counters['high_over_6_open_low_6_to_3_open_sale']['high_0_to_3'], counters['high_over_6_open_low_6_to_3_open_sale']['high_3_to_6'], counters['high_over_6_open_low_6_to_3_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['high_over_6_open_low_6_to_3_open_sale']['low_over_6'], counters['high_over_6_open_low_6_to_3_open_sale']['low_6_to_3'], counters['high_over_6_open_low_6_to_3_open_sale']['low_3_to_0'], counters['high_over_6_open_low_6_to_3_open_sale']['high_0_to_3'], counters['high_over_6_open_low_6_to_3_open_sale']['high_3_to_6'], counters['high_over_6_open_low_6_to_3_open_sale']['high_over_6']) + elif next_open_diff > 6 and saleprice_open_differrange > -3 and saleprice_open_differrange < 0: + counters['high_over_6_open_low_3_to_0_open_sale']['low_over_6'],counters['high_over_6_open_low_3_to_0_open_sale']['low_6_to_3'], counters['high_over_6_open_low_3_to_0_open_sale']['low_3_to_0'], counters['high_over_6_open_low_3_to_0_open_sale']['high_0_to_3'], counters['high_over_6_open_low_3_to_0_open_sale']['high_3_to_6'], counters['high_over_6_open_low_3_to_0_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['high_over_6_open_low_3_to_0_open_sale']['low_over_6'], counters['high_over_6_open_low_3_to_0_open_sale']['low_6_to_3'], counters['high_over_6_open_low_3_to_0_open_sale']['low_3_to_0'], counters['high_over_6_open_low_3_to_0_open_sale']['high_0_to_3'], counters['high_over_6_open_low_3_to_0_open_sale']['high_3_to_6'], counters['high_over_6_open_low_3_to_0_open_sale']['high_over_6']) + elif next_open_diff > 6 and saleprice_open_differrange > 0 and saleprice_open_differrange < 3: + counters['high_over_6_open_high_0_to_3_open_sale']['low_over_6'],counters['high_over_6_open_high_0_to_3_open_sale']['low_6_to_3'], counters['high_over_6_open_high_0_to_3_open_sale']['low_3_to_0'], counters['high_over_6_open_high_0_to_3_open_sale']['high_0_to_3'], counters['high_over_6_open_high_0_to_3_open_sale']['high_3_to_6'], counters['high_over_6_open_high_0_to_3_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['high_over_6_open_high_0_to_3_open_sale']['low_over_6'], counters['high_over_6_open_high_0_to_3_open_sale']['low_6_to_3'], counters['high_over_6_open_high_0_to_3_open_sale']['low_3_to_0'], counters['high_over_6_open_high_0_to_3_open_sale']['high_0_to_3'], counters['high_over_6_open_high_0_to_3_open_sale']['high_3_to_6'], counters['high_over_6_open_high_0_to_3_open_sale']['high_over_6']) + elif next_open_diff > 6 and saleprice_open_differrange > 3 and saleprice_open_differrange < 6: + counters['high_over_6_open_high_3_to_6_open_sale']['low_over_6'],counters['high_over_6_open_high_3_to_6_open_sale']['low_6_to_3'], counters['high_over_6_open_high_3_to_6_open_sale']['low_3_to_0'], counters['high_over_6_open_high_3_to_6_open_sale']['high_0_to_3'], counters['high_over_6_open_high_3_to_6_open_sale']['high_3_to_6'], counters['high_over_6_open_high_3_to_6_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['high_over_6_open_high_3_to_6_open_sale']['low_over_6'], counters['high_over_6_open_high_3_to_6_open_sale']['low_6_to_3'], counters['high_over_6_open_high_3_to_6_open_sale']['low_3_to_0'], counters['high_over_6_open_high_3_to_6_open_sale']['high_0_to_3'], counters['high_over_6_open_high_3_to_6_open_sale']['high_3_to_6'], counters['high_over_6_open_high_3_to_6_open_sale']['high_over_6']) + elif next_open_diff > 6 and saleprice_open_differrange > 6: + counters['high_over_6_open_high_over_6_open_sale']['low_over_6'],counters['high_over_6_open_high_over_6_open_sale']['low_6_to_3'], counters['high_over_6_open_high_over_6_open_sale']['low_3_to_0'], counters['high_over_6_open_high_over_6_open_sale']['high_0_to_3'], counters['high_over_6_open_high_over_6_open_sale']['high_3_to_6'], counters['high_over_6_open_high_over_6_open_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['high_over_6_open_high_over_6_open_sale']['low_over_6'], counters['high_over_6_open_high_over_6_open_sale']['low_6_to_3'], counters['high_over_6_open_high_over_6_open_sale']['low_3_to_0'], counters['high_over_6_open_high_over_6_open_sale']['high_0_to_3'], counters['high_over_6_open_high_over_6_open_sale']['high_3_to_6'], counters['high_over_6_open_high_over_6_open_sale']['high_over_6']) + + # 组合场景: 开盘建仓 清仓日开盘清仓 盈亏分布 + if next_open_diff < -6 and saleprice_open_differrange < -6: + counters['low_over_6_open_low_over_6_close_sale']['low_over_6'],counters['low_over_6_open_low_over_6_close_sale']['low_6_to_3'], counters['low_over_6_open_low_over_6_close_sale']['low_3_to_0'], counters['low_over_6_open_low_over_6_close_sale']['high_0_to_3'], counters['low_over_6_open_low_over_6_close_sale']['high_3_to_6'], counters['low_over_6_open_low_over_6_close_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['low_over_6_open_low_over_6_close_sale']['low_over_6'], counters['low_over_6_open_low_over_6_close_sale']['low_6_to_3'], counters['low_over_6_open_low_over_6_close_sale']['low_3_to_0'], counters['low_over_6_open_low_over_6_close_sale']['high_0_to_3'], counters['low_over_6_open_low_over_6_close_sale']['high_3_to_6'], counters['low_over_6_open_low_over_6_close_sale']['high_over_6']) + elif next_open_diff < -6 and saleprice_open_differrange > -6 and saleprice_open_differrange < -3: + counters['low_over_6_open_low_6_to_3_close_sale']['low_over_6'],counters['low_over_6_open_low_6_to_3_close_sale']['low_6_to_3'], counters['low_over_6_open_low_6_to_3_close_sale']['low_3_to_0'], counters['low_over_6_open_low_6_to_3_close_sale']['high_0_to_3'], counters['low_over_6_open_low_6_to_3_close_sale']['high_3_to_6'], counters['low_over_6_open_low_6_to_3_close_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['low_over_6_open_low_6_to_3_close_sale']['low_over_6'], counters['low_over_6_open_low_6_to_3_close_sale']['low_6_to_3'], counters['low_over_6_open_low_6_to_3_close_sale']['low_3_to_0'], counters['low_over_6_open_low_6_to_3_close_sale']['high_0_to_3'], counters['low_over_6_open_low_6_to_3_close_sale']['high_3_to_6'], counters['low_over_6_open_low_6_to_3_close_sale']['high_over_6']) + elif next_open_diff < -6 and saleprice_open_differrange > -3 and saleprice_open_differrange < 0: + counters['low_over_6_open_low_3_to_0_close_sale']['low_over_6'],counters['low_over_6_open_low_3_to_0_close_sale']['low_6_to_3'], counters['low_over_6_open_low_3_to_0_close_sale']['low_3_to_0'], counters['low_over_6_open_low_3_to_0_close_sale']['high_0_to_3'], counters['low_over_6_open_low_3_to_0_close_sale']['high_3_to_6'], counters['low_over_6_open_low_3_to_0_close_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['low_over_6_open_low_3_to_0_close_sale']['low_over_6'], counters['low_over_6_open_low_3_to_0_close_sale']['low_6_to_3'], counters['low_over_6_open_low_3_to_0_close_sale']['low_3_to_0'], counters['low_over_6_open_low_3_to_0_close_sale']['high_0_to_3'], counters['low_over_6_open_low_3_to_0_close_sale']['high_3_to_6'], counters['low_over_6_open_low_3_to_0_close_sale']['high_over_6']) + elif next_open_diff < -6 and saleprice_open_differrange > 0 and saleprice_open_differrange < 3: + counters['low_over_6_open_high_0_to_3_close_sale']['low_over_6'],counters['low_over_6_open_high_0_to_3_close_sale']['low_6_to_3'], counters['low_over_6_open_high_0_to_3_close_sale']['low_3_to_0'], counters['low_over_6_open_high_0_to_3_close_sale']['high_0_to_3'], counters['low_over_6_open_high_0_to_3_close_sale']['high_3_to_6'], counters['low_over_6_open_high_0_to_3_close_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['low_over_6_open_high_0_to_3_close_sale']['low_over_6'], counters['low_over_6_open_high_0_to_3_close_sale']['low_6_to_3'], counters['low_over_6_open_high_0_to_3_close_sale']['low_3_to_0'], counters['low_over_6_open_high_0_to_3_close_sale']['high_0_to_3'], counters['low_over_6_open_high_0_to_3_close_sale']['high_3_to_6'], counters['low_over_6_open_high_0_to_3_close_sale']['high_over_6']) + elif next_open_diff < -6 and saleprice_open_differrange > 3 and saleprice_open_differrange < 6: + counters['low_over_6_open_high_3_to_6_close_sale']['low_over_6'],counters['low_over_6_open_high_3_to_6_close_sale']['low_6_to_3'], counters['low_over_6_open_high_3_to_6_close_sale']['low_3_to_0'], counters['low_over_6_open_high_3_to_6_close_sale']['high_0_to_3'], counters['low_over_6_open_high_3_to_6_close_sale']['high_3_to_6'], counters['low_over_6_open_high_3_to_6_close_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['low_over_6_open_high_3_to_6_close_sale']['low_over_6'], counters['low_over_6_open_high_3_to_6_close_sale']['low_6_to_3'], counters['low_over_6_open_high_3_to_6_close_sale']['low_3_to_0'], counters['low_over_6_open_high_3_to_6_close_sale']['high_0_to_3'], counters['low_over_6_open_high_3_to_6_close_sale']['high_3_to_6'], counters['low_over_6_open_high_3_to_6_close_sale']['high_over_6']) + elif next_open_diff < -6 and saleprice_open_differrange > 6: + counters['low_over_6_open_high_over_6_close_sale']['low_over_6'],counters['low_over_6_open_high_over_6_close_sale']['low_6_to_3'], counters['low_over_6_open_high_over_6_close_sale']['low_3_to_0'], counters['low_over_6_open_high_over_6_close_sale']['high_0_to_3'], counters['low_over_6_open_high_over_6_close_sale']['high_3_to_6'], counters['low_over_6_open_high_over_6_close_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['low_over_6_open_high_over_6_close_sale']['low_over_6'], counters['low_over_6_open_high_over_6_close_sale']['low_6_to_3'], counters['low_over_6_open_high_over_6_close_sale']['low_3_to_0'], counters['low_over_6_open_high_over_6_close_sale']['high_0_to_3'], counters['low_over_6_open_high_over_6_close_sale']['high_3_to_6'], counters['low_over_6_open_high_over_6_close_sale']['high_over_6']) + elif next_open_diff > -6 and next_open_diff < -3 and saleprice_open_differrange < -6: + counters['low_6_to_3_open_low_over_6_close_sale']['low_over_6'],counters['low_6_to_3_open_low_over_6_close_sale']['low_6_to_3'], counters['low_6_to_3_open_low_over_6_close_sale']['low_3_to_0'], counters['low_6_to_3_open_low_over_6_close_sale']['high_0_to_3'], counters['low_6_to_3_open_low_over_6_close_sale']['high_3_to_6'], counters['low_6_to_3_open_low_over_6_close_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['low_6_to_3_open_low_over_6_close_sale']['low_over_6'], counters['low_6_to_3_open_low_over_6_close_sale']['low_6_to_3'], counters['low_6_to_3_open_low_over_6_close_sale']['low_3_to_0'], counters['low_6_to_3_open_low_over_6_close_sale']['high_0_to_3'], counters['low_6_to_3_open_low_over_6_close_sale']['high_3_to_6'], counters['low_6_to_3_open_low_over_6_close_sale']['high_over_6']) + elif next_open_diff > -6 and next_open_diff < -3 and saleprice_open_differrange > -6 and saleprice_open_differrange < -3: + counters['low_6_to_3_open_low_6_to_3_close_sale']['low_over_6'],counters['low_6_to_3_open_low_6_to_3_close_sale']['low_6_to_3'], counters['low_6_to_3_open_low_6_to_3_close_sale']['low_3_to_0'], counters['low_6_to_3_open_low_6_to_3_close_sale']['high_0_to_3'], counters['low_6_to_3_open_low_6_to_3_close_sale']['high_3_to_6'], counters['low_6_to_3_open_low_6_to_3_close_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['low_6_to_3_open_low_6_to_3_close_sale']['low_over_6'], counters['low_6_to_3_open_low_6_to_3_close_sale']['low_6_to_3'], counters['low_6_to_3_open_low_6_to_3_close_sale']['low_3_to_0'], counters['low_6_to_3_open_low_6_to_3_close_sale']['high_0_to_3'], counters['low_6_to_3_open_low_6_to_3_close_sale']['high_3_to_6'], counters['low_6_to_3_open_low_6_to_3_close_sale']['high_over_6']) + elif next_open_diff > -6 and next_open_diff < -3 and saleprice_open_differrange > -3 and saleprice_open_differrange < 0: + counters['low_6_to_3_open_low_3_to_0_close_sale']['low_over_6'],counters['low_6_to_3_open_low_3_to_0_close_sale']['low_6_to_3'], counters['low_6_to_3_open_low_3_to_0_close_sale']['low_3_to_0'], counters['low_6_to_3_open_low_3_to_0_close_sale']['high_0_to_3'], counters['low_6_to_3_open_low_3_to_0_close_sale']['high_3_to_6'], counters['low_6_to_3_open_low_3_to_0_close_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['low_6_to_3_open_low_3_to_0_close_sale']['low_over_6'], counters['low_6_to_3_open_low_3_to_0_close_sale']['low_6_to_3'], counters['low_6_to_3_open_low_3_to_0_close_sale']['low_3_to_0'], counters['low_6_to_3_open_low_3_to_0_close_sale']['high_0_to_3'], counters['low_6_to_3_open_low_3_to_0_close_sale']['high_3_to_6'], counters['low_6_to_3_open_low_3_to_0_close_sale']['high_over_6']) + elif next_open_diff > -6 and next_open_diff < -3 and saleprice_open_differrange > 0 and saleprice_open_differrange < 3: + counters['low_6_to_3_open_high_0_to_3_close_sale']['low_over_6'],counters['low_6_to_3_open_high_0_to_3_close_sale']['low_6_to_3'], counters['low_6_to_3_open_high_0_to_3_close_sale']['low_3_to_0'], counters['low_6_to_3_open_high_0_to_3_close_sale']['high_0_to_3'], counters['low_6_to_3_open_high_0_to_3_close_sale']['high_3_to_6'], counters['low_6_to_3_open_high_0_to_3_close_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['low_6_to_3_open_high_0_to_3_close_sale']['low_over_6'], counters['low_6_to_3_open_high_0_to_3_close_sale']['low_6_to_3'], counters['low_6_to_3_open_high_0_to_3_close_sale']['low_3_to_0'], counters['low_6_to_3_open_high_0_to_3_close_sale']['high_0_to_3'], counters['low_6_to_3_open_high_0_to_3_close_sale']['high_3_to_6'], counters['low_6_to_3_open_high_0_to_3_close_sale']['high_over_6']) + elif next_open_diff > -6 and next_open_diff < -3 and saleprice_open_differrange > 3 and saleprice_open_differrange < 6: + counters['low_6_to_3_open_high_3_to_6_close_sale']['low_over_6'],counters['low_6_to_3_open_high_3_to_6_close_sale']['low_6_to_3'], counters['low_6_to_3_open_high_3_to_6_close_sale']['low_3_to_0'], counters['low_6_to_3_open_high_3_to_6_close_sale']['high_0_to_3'], counters['low_6_to_3_open_high_3_to_6_close_sale']['high_3_to_6'], counters['low_6_to_3_open_high_3_to_6_close_sale']['high_over_6'] = count_change(saleprice_open_differrange, counters['low_6_to_3_open_high_3_to_6_close_sale']['low_over_6'], counters['low_6_to_3_open_high_3_to_6_close_sale']['low_6_to_3'], counters['low_6_to_3_open_high_3_to_6_close_sale']['low_3_to_0'], counters['low_6_to_3_open_high_3_to_6_close_sale']['high_0_to_3'], counters['low_6_to_3_open_high_3_to_6_close_sale']['high_3_to_6'], counters['low_6_to_3_open_high_3_to_6_close_sale']['high_over_6']) + - # 清仓盈亏分布-收盘清仓 - saleprice_close_differrange = df.loc[df['code'] == code, 'saleprice_close_differrange'].values[0] - if saleprice_close_differrange < -5: - high_loss_sale_close_count += 1 - elif saleprice_close_differrange > -5 and saleprice_close_differrange < 0: - low_loss_sale_close_count += 1 - elif saleprice_close_differrange > 0 and saleprice_close_differrange < 5: - low_profit_sale_close_count += 1 - else: - high_profit_sale_close_count += 1 + + # 组合场景 低开盘-低清仓 低开盘-高清仓 低开盘-正常清仓 正常开盘-低清仓 正常开盘-高清仓 正常开盘-正常清仓 高开盘-低清仓 高开盘-高清仓 高开盘-正常清仓 # 组合之类再进行计算盈亏分布 - if next_open_diff < -3 : + if next_open_diff < -6 : if saleprice_open_differrange < -3: low_open_low_sale_count += 1 elif saleprice_open_differrange > 3: