<commit_before>from rqalpha.api import *


# 在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。
def init(context):
    context.s1 = "000001.XSHE"
    # 当前关注股票为 context.s1
    # S 为 set_current_stock 的简写。等价于 set_current_stock(context.s1)
    S(context.s1)

    # 设置这个策略当中会用到的参数，在策略中可以随时调用，这个策略使用长短均线，我们在这里设定长线和短线的区间，在调试寻找最佳区间的时候只需要在这里进行数值改动
    context.SHORTPERIOD = 20
    context.LONGPERIOD = 120


# 你选择的证券的数据更新将会触发此段逻辑，例如日或分钟历史数据切片或者是实时数据切片更新
def handle_bar(context, bar_dict):
    short_ma = MA(C, context.SHORTPERIOD)
    long_ma = MA(C, context.LONGPERIOD)

    plot("short ma", short_ma.value)
    plot("long ma", long_ma.value)

    # 计算现在portfolio中股票的仓位
    cur_position = context.portfolio.positions[context.s1].quantity
    # 计算现在portfolio中的现金可以购买多少股票
    shares = context.portfolio.cash / bar_dict[context.s1].close

    # 如果短均线从上往下跌破长均线，也就是在目前的bar短线平均值低于长线平均值，而上一个bar的短线平均值高于长线平均值
    if short_ma - long_ma < 0 and short_ma[1] - long_ma[1] > 0 and cur_position > 0:
        # 进行清仓
        order_target_value(context.s1, 0)

    # 如果短均线从下往上突破长均线，为入场信号
    if short_ma - long_ma > 0 and short_ma[1] - long_ma[1] < 0:
        # 满仓入股
        order_shares(context.s1, shares)<commit_msg>update example strategy<commit_after>from rqalpha.api import *


# 在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。
def init(context):
    context.s1 = "000001.XSHE"
    # 当前关注股票为 context.s1
    # S 为 set_current_stock 的简写。等价于 set_current_stock(context.s1)
    S(context.s1)

    # 设置这个策略当中会用到的参数，在策略中可以随时调用，这个策略使用长短均线，我们在这里设定长线和短线的区间，在调试寻找最佳区间的时候只需要在这里进行数值改动
    context.SHORTPERIOD = 20
    context.LONGPERIOD = 120


# 你选择的证券的数据更新将会触发此段逻辑，例如日或分钟历史数据切片或者是实时数据切片更新
def handle_bar(context, bar_dict):
    short_ma = MA(C, context.SHORTPERIOD)
    long_ma = MA(C, context.LONGPERIOD)

    plot("short ma", short_ma.value)
    plot("long ma", long_ma.value)

    # 计算现在portfolio中股票的仓位
    cur_position = context.portfolio.positions[context.s1].quantity
    # 计算现在portfolio中的现金可以购买多少股票
    shares = context.portfolio.cash / bar_dict[context.s1].close

    # 如果短均线从上往下跌破长均线，也就是在目前的bar短线平均值低于长线平均值，而上一个bar的短线平均值高于长线平均值
    if short_ma < long_ma and short_ma[1] > long_ma[1] and cur_position > 0:
        # 进行清仓
        order_target_value(context.s1, 0)

    # 如果短均线从下往上突破长均线，为入场信号
    if short_ma > long_ma and short_ma[1] < long_ma[1]:
        # 满仓入股
        order_shares(context.s1, shares)
{'fraction_non_alphanumeric': 0.09427609427609428, 'fraction_numerical': 0.022727272727272728, 'mean_word_length': 3.9832285115303985, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4810724', 'n_tokens_mistral': 1288, 'n_tokens_neox': 1418, 'n_words': 139}