|
|
|
|
@ -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
|
|
|
|
|
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_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
|
|
|
|
|
|
|
|
|
|
# 清仓盈亏分布-收盘清仓
|
|
|
|
|
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:
|
|
|
|
|
|