def close_cross_above_ma20(df, market='usa'): df = dr5.get_a_across_b(df, period_of_days=1, cross_above=("close", "ma20"), cross_type="binary-cmp", period_type='day') df = dr5.get_a_across_b(df, period_of_days=1, cross_above=("ma20", "low"), cross_type="binary-cmp", period_type='day') return df
def close_cross_above_ma20(df, market='usa'): myapi.market = market df = dr5.get_a_across_b(df, period_of_days=1, cross_above=("close", "ma20"), cross_type="binary-cmp", period_type='day') lib2.head_offset = 1 df = dr5.get_a_across_b(df, period_of_days=1, cross_above=("ma20", "close"), cross_type="binary-cmp", period_type='day') return df
def ma5_cross_above_ma10(df, market='usa'): myapi.market = market df = dr5.get_a_across_b(df, period_of_days=1, cross_above=("ma5", "ma10"), cross_type="binary-cmp", period_type='day') lib2.head_offset = 1 df = dr5.get_a_across_b(df, period_of_days=1, cross_above=("ma10", "ma5"), cross_type="binary-cmp", period_type='day') df.to_csv("{}.csv".format(inspect.stack()[0][3])) return df
def first_cross_above_upper(df, market='usa'): myapi.market = market df = dr5.get_a_across_b(df, period_of_days=1, cross_above=("close", "upper"), cross_type="binary-cmp", period_type='day') lib2.head_offset = 1 df1 = dr5.get_a_across_b(df, period_of_days=5, cross_above=("upper", "close"), cross_type="binary-cmp", period_type='day') df.to_csv("{}.csv".format(inspect.stack()[0][3])) return df
def small_up_and_drop_with_low_volume(): df1 = None for i in range(1, 4): lib2.head_offset = lib2.head_offset + 1 df1 = dr5.get_price_up_with_percentage(df1, period_of_days=1, p_change=(0.01, 4), period_type='day') lib2.head_offset = lib2.head_offset - 3 df1 = dr5.get_price_up_with_percentage(df1, period_of_days=1, p_change=(-4, 0), period_type='day') df1 = dr5.get_minimum_price_sum_in_n(df1, price_up_sum=3, period_of_days=4) df1 = dr5.get_a_across_b(df1, period_of_days=1, cross_type="volume-drop") df1 = dr5.get_a_across_b(df1, period_of_days=4, cross_type="close-ma20", period_type='day') df1 = dr5.get_a_across_b(df1, period_of_days=1, cross_type="abs-pchange-less", period_type='day') return df1
def strong_bounce_from_ma10(i): df1 = None lib2.head_offset = i df1 = dr5.get_a_across_b(df1, period_of_days=1, cross_above=("ma10", "low"), cross_type="binary-cmp", period_type='day') df1 = dr5.get_a_across_b(df1, period_of_days=1, cross_above=("close", "ma5"), cross_type="binary-cmp", period_type='day') for j in range(i, 4): lib2.head_offset = j + 1 df1 = dr5.get_a_across_b(df1, period_of_days=1, cross_above=("close", "ma5"), cross_type="binary-cmp", period_type='day') df1 = ma5_gt_ma10_ma20(5, df1) df1.to_csv("strong_bounce_ma10" + str(i) + ".csv")
def counting_break_upper_band_after_n(offset=0, num = 8, type='day', df1=None): lib2.head_offset = offset df1 = dr5.get_a_across_b(df1, period_of_days=1, cross_above=("close", "upper", 0.007), cross_type="binary-cmp", period_type=type, rank=True) for i in range(1, num): lib2.head_offset = i + offset df1 = dr5.get_a_across_b(df1, period_of_days=1, cross_above=("upper", "close"), cross_type="binary-cmp", period_type=type) str_time = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S") df1.to_csv("counting_close_above_upper_" + type + '-' + str_time + '_offset_' + str(offset) + '_days_' + str(num) + ".csv") return df1
def counting_slow_semi_break_upper_band_after_n(offset=0, n = 3, k = 10, type='day'): df1 = None for i in range(n): lib2.head_offset = i df1 = dr5.get_a_across_b(df1, period_of_days=1, cross_above=("upper", "high"), cross_type="binary-cmp-close", period_type=type, rank=True) df1 = dr5.get_a_across_b(df1, period_of_days=1, cross_above="upper", cross_type="unary-cmp-self", period_type=type, rank=True) df1 = dr5.get_a_across_b(df1, period_of_days=1, cross_above="high", cross_type="unary-cmp-self", period_type=type, rank=True) df1 = dr5.get_a_across_b(df1, period_of_days=5, cross_above=("close", "ma5"), cross_type="binary-cmp", period_type='day')
def counting_close_above_ma5(num = 9): df1 = None for i in range(num): lib2.head_offset = i df1 = dr5.get_a_across_b(df1, period_of_days=1, cross_above=("close", "ma5"), cross_type="binary-cmp", period_type='day') df1.to_csv("counting_close_above_ma5" + str(num) + ".csv")
def counting_slow_break_upper_band(offset=0, above=2, touch=2, below=8, type='60'): df1 = None lib2.head_offset = above + 2 df1 = dr5.get_a_across_b(df1, period_of_days=below, cross_above=("upper", "high"), cross_type="binary-cmp", period_type='60') lib2.head_offset = above df1 = dr5.get_a_across_b(df1, period_of_days=touch, cross_above=("high", "upper"), cross_type="binary-cmp", period_type='60') df1 = dr5.get_a_across_b(df1, period_of_days=touch, cross_above=("upper", "close"), cross_type="binary-cmp", period_type='60') lib2.head_offset = 0 df1 = dr5.get_a_across_b(df1, period_of_days=above, cross_above=("close", "upper"), cross_type="binary-cmp", period_type='60') str_time = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S") df1.to_csv("counting_slow_break_upper_band" + type + '_offset_' + str(offset) + '-' + str_time + ".csv") return df1
def jump_open_week(): ## p_change > 10 and above m20, a good chance for next week ## drop down after peek, it touch the bottom in the early morning in the following days when it can be easily beat down. ## when you see the big buy, it is time to go in lib2.head_offset = 0 df1 = dr5.get_a_across_b(period_of_days=1, cross_type="jump-open", period_type="week") str_time = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S") df1.to_csv('jump_open_week' + str_time + '.csv')
def test(offset=0): df1 = counting_slow_break_upper_band(offset=offset, touch=0) lib2.head_offset = 4 + offset df2 = dr5.get_a_across_b(df1, period_of_days=8, cross_above=("ma20", "greater"), cross_type="unary-cmp-self", period_type='60') str_time = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S") df2.to_csv("second_breakthrough_60_" + 'offset_' + str(offset) + '_' + str_time + ".csv")
def counting_ma20_go_up(): df = dr5.get_a_across_b(period_of_days=120, cross_above="ma20", cross_type="unary-current-trend", period_type='day') str_time = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S") #df = myapi.read_csv("case/case-boll/current_trend.csv") df_pos = df[df['p1'] > 3] df_pos = df_pos.sort_values("p1", ascending=False) str_time = datetime.datetime.now().strftime("%Y-n%m-%d-%H-%M-%S") df_pos.to_csv("current_trend_pos_" + str_time + '.csv') df_neg = df[df['p1'] < -3] df_neg = df_neg.sort_values("p1", ascending=True) df_neg.to_csv("current_trend_neg_" + str_time + '.csv') df_tran = df[(df['p1'] <= 3) & (df['p1'] >= -3)] df_tran = df_tran.sort_values("p1", ascending=False) df_tran.to_csv("current_trend_tran_" + str_time + '.csv') df.to_csv("current_trend" + str_time + ".csv") return df1
def day_break_high(): df1 = dr5.get_maximum_period_break_high(period_of_days=4, min_break_num=3) df1 = dr5.get_a_across_b(df1, period_of_days=2, cross_type="ma5-ma10", period_type='day') df1 = dr5.get_a_across_b(df1, period_of_days=2, cross_type="close-ma20", period_type='day') # df1 = dr5.get_price_up_with_percentage(df1, period_of_days=3, p_change=(4, 10), period_type='day') return df1
def counting_above_ma5(df1=None): df1 = dr5.get_a_across_b(df1, period_of_days=4, cross_above=("close", "ma5"), cross_type="binary-cmp", period_type='day') str_time = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S") df1.to_csv("counting_above_ma5_" + str_time + ".csv") return df1
def ma5_gt_ma10_ma20(n, df = None): for i in range(n): lib2.head_offset = i df = dr5.get_a_across_b(df, period_of_days=1, cross_type="ma5-gt-ma10-gt-m20", period_type='day') return df
def counting_above_ma5_time(num_of_days = 5, df1 = None): df1 = dr5.get_a_across_b(df1, period_of_days=num_of_days, cross_above=("close", "ma5"), cross_type="binary-cmp", period_type='day')
def create_ma20_up_list(market='usa', stock_list="us_stock_volume.csv"): myapi.market = market df = dr5.get_a_across_b(period_of_days=100, cross_above=("up", "ma20"), cross_type="unary-current-trend", period_type='day', stock_list=stock_list) df = df.sort_values("p1", ascending=False) df.to_csv("{}-ma20-up-list.csv".format(market))
# uh1.update_day() # dr5.get_w_shape() # hh.get_history_high_v2() # hh.get_one_year_high_v2() # hh.get_half_year_high_v2() # hh.get_history_high_volume() # hh.get_one_year_high_volume() # dr5.get_current_price_up_periods()df # dr5.get_current_no_touch_ma5_periods() # hh.get_first_history_high_volume_in_10_days() # hh.get_first_one_year_high_volume_in_10_days() # df = dr5.get_price_sum_in_n(price_up_sum=0, stock_list="mystocklist-detail.csv") # df = dr5.get_price_sum_in_n(df1, is_price_up=False, price_up_sum=-15) # print(df1) # df = myapi.read_csv("up-rank-all-stock.csv") df1 = dr5.get_minimum_price_sum_in_n(price_up_sum=30, period_of_days=20, period_type='week') df1 = dr5.get_minimum_price_sum_in_n(df1, is_price_up=False, price_up_sum=-10, period_of_days=10, period_type='week') #df1 = myapi.read_csv("up-20-down-10-in-20days.csv") df1 = dr5.get_a_across_b(df1, cross_above=False, period_of_days=4, period_type='week') df1 = dr5.get_price_above(df1, type="close above ma20", period_of_days=1, period_type='week') #df1 = dr5.get_price_up_with_percentage(df1, period_of_days=4) df1 = dr5.get_price_above(df1, type="low below ma20", period_of_days=5, period_type='week') print(df1) # df = dr5.get_price_sum_in_n(price_up_sum=15, period_of_days=15) # df = myapi.read_csv("price_sum1.csv") # df = dr5.get_price_continuous_down_in_n(df, num_of_days_down=4, price_down_sum=-7) # dr5.get_price_continuous_down_in_n(num_of_days_down=4, price_down_sum=-5, period_of_days=6) # dr5.get_price_continuous_down_in_n(num_of_days_down=5, price_down_sum=-10, period_of_days=10) print('finish')
def counting_high(num_of_days = 30, df1 = None): df1 = dr5.get_a_across_b(df1, period_of_days=num_of_days, cross_above=["close", "volume"], cross_type="unary-cmp", period_type='day') df1.to_csv("counting_high" + str(num_of_days) + ".csv")
def jump_open(type): df1 = dr5.get_a_across_b(period_of_days=1, cross_type="jump-open", period_type=type) return df1