(同花顺量化)15分钟周期MACD绿柱变短_、买一量_卖一量、macd零轴以上

用户头像神盾局量子研究部
2023-08-31 发布

问财量化选股策略逻辑

选股逻辑:MACD零轴以上、买卖量比较,15分钟周期MACD绿柱变短。选股逻辑作为第一个段落放入标题为##问财量化选股策略逻辑的段落中。分析以上的选股逻辑(每个逻辑以 , 进行分隔),分析选股的逻辑(放入标题为 ## 选股逻辑分析 的段落),有什么风险?(放入标题为 ## 有何风险? 的段落),如何优化?(放入标题为 ## 如何优化? 的段落)并最终给出完善选股逻辑(放入标题为 ## 最终的选股逻辑 的段落),请用markdown格式。

选股逻辑分析

该选股策略主要运用MACD指标、买卖量比较以及15分钟MACD绿柱变短等因素进行选股,通过判断MACD值是否处于上升趋势、买卖股票比较以及15分钟周期MACD绿柱的长度来判断股票的市场表现。

有何风险?

以下是该选股策略可能存在的一些风险:

  1. MACD值受市场波动影响,可能有滞后性;
  2. 该策略只考虑了15分钟MACD绿柱的变化,可能会漏掉一些股票在其他时间周期上表现更好的情况;
  3. 仅考虑买卖量比较和MACD等指标的选股准确率可能不足;
  4. 市场数据的突发性事件可能会对该选股策略造成比较大的影响。

如何优化?

以下是该选股策略的一些优化建议:

  1. 可结合其他技术指标一起判断股票走势,降低无效选股的可能性;
  2. 对于买卖量比较、MACD绿柱缩短这些因素可以进行权重分配,以达到更加准确选股的目的;
  3. 考虑增加策略对于成交量、持仓量以及价格等信息的计算,以更好地预测市场趋势;
  4. 由于市场数据突发性风险可能会产生较大的影响,可以采取风险控制和资产分散等多种方式以降低风险。

最终的选股逻辑

该选股策略以MACD指标、买卖量比较、15分钟MACD绿柱缩短等因素为主要选股因子,选出MACD零轴以上、买卖股票比较、15分钟周期MACD绿柱变短的股票。

同花顺指标公式代码参考

选股公式:MACD()>=0 AND B1_V>S1_V AND CROSS(MACD(),MACD(MACD(),9,3)) AND STANDALONE(STDEV(MACD(5,10)-REF(MACD(5,10),1),11))

Python代码参考

from jqdata import *

# 初始化函数
def initialize(context):
    g.stocks_selected = []  # 存储当日的选股结果
    set_benchmark('000300.XSHG')  # 设置基准

# 策略选股函数
def stock_select(context):
    for security in get_all_securities(types=['stock']).index:
        # MACD零轴以上
        current_macd = get_macd(security)
        if current_macd != None and current_macd['macd'] > 0:
            # 买卖量比较
            if get_current_tick(security).b1_v > get_current_tick(security).s1_v:
                # 15分钟MACD绿柱缩短
                current_macd_minute_15 = get_macd(security, count=45, unit='15m')
                if current_macd_minute_15 != None and np.mean(current_macd_minute_15['diff'].tail(5)) < np.mean(current_macd_minute_15['diff'].tail(15)):
                    g.stocks_selected.append(security)

# 交易部分函数
def trade(security_list, cash):
    position_count = len(security_list)
    if position_count == 0:
        return

    # 每只股票买入不超过 total cash 的 1/4
    if cash/position_count >= 4 * get_security_info(security_list[0]).price:
        stock_value = cash / position_count

    for stock in security_list:
        if stock in context.portfolio.positions:
            # 已持有该股,调整其仓位
            target_value = stock_value
            adjust_position(stock, target_value)
        else:
            # 未持有该股,开仓
            order_target_value(stock, stock_value)

def adjust_position(stock, target_value):
    cur_price = get_security_info(stock).last_price
    cur_value = context.portfolio.positions[stock].value
    gap = abs(target_value - cur_value) / cur_price
    if target_value > cur_value:
        order(stock, int(gap))
    elif target_value < cur_value:
        order(stock, -int(gap))

# 策略实现部分
def handle_data(context, data):
    current_cash = context.portfolio.cash
    stock_select(context)  # 选出股票
    trade(g.stocks_selected, current_cash)  # 调仓
    g.stocks_selected = []  # 清空当日股票池
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

    select_sentence = '市值小于100亿' #选股语句。

    模板如何使用?

    点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。


    ## 如果有任何问题请添加 下方的二维码进群提问。
    ![94c5cde12014f99e262a302741275d05.png](http://u.thsi.cn/imgsrc/pefile/94c5cde12014f99e262a302741275d05.png)
收益&风险
源码

评论