<mxfile host="next-ai-draw-io" version="26.0.0">
  <diagram id="04-股票打板流水线" name="04-股票打板流水线">
    <mxGraphModel dx="1400" dy="900" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="780" pageHeight="1020" math="0" shadow="0" background="#0d1117">
      <root>
        <mxCell id="0"/>
        <mxCell id="1" parent="0"/>
        <mxCell id="n2" value="股票打板 · 数据流水线" style="text;html=1;align=left;verticalAlign=middle;fontSize=26;fontColor=#e6edf3;fontStyle=1;whiteSpace=wrap;" vertex="1" parent="1"><mxGeometry x="40" y="14" width="900" height="38" as="geometry"/></mxCell>
        <mxCell id="n3" value="每交易日三次扫描 → 候选池 → 微信推送 → 人工决策" style="text;html=1;align=left;verticalAlign=middle;fontSize=13;fontColor=#8b949e;fontStyle=0;whiteSpace=wrap;" vertex="1" parent="1"><mxGeometry x="40" y="52" width="1000" height="24" as="geometry"/></mxCell>
        <mxCell id="n4" value="⏰ cron 09:35" style="rounded=1;arcSize=14;whiteSpace=wrap;html=1;fillColor=#238636;strokeColor=#3fb950;fontColor=#ffffff;fontSize=13;fontStyle=1;dashed=0;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="60" y="100" width="200" height="62" as="geometry"/></mxCell>
        <mxCell id="n5" value="⏰ cron 13:35" style="rounded=1;arcSize=14;whiteSpace=wrap;html=1;fillColor=#238636;strokeColor=#3fb950;fontColor=#ffffff;fontSize=13;fontStyle=1;dashed=0;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="290" y="100" width="200" height="62" as="geometry"/></mxCell>
        <mxCell id="n6" value="⏰ cron 14:50" style="rounded=1;arcSize=14;whiteSpace=wrap;html=1;fillColor=#238636;strokeColor=#3fb950;fontColor=#ffffff;fontSize=13;fontStyle=1;dashed=0;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="520" y="100" width="200" height="62" as="geometry"/></mxCell>
        <mxCell id="n7" value="daily_scan.py · 数据扫描<br>K 线 · 量比 · 换手 · 位置分位" style="rounded=1;arcSize=14;whiteSpace=wrap;html=1;fillColor=#1f6feb;strokeColor=#58a6ff;fontColor=#ffffff;fontSize=13;fontStyle=1;dashed=0;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="230" y="208" width="340" height="74" as="geometry"/></mxCell>
        <mxCell id="n8" value="硬性过滤<br>PE &gt; 100 剔除 · 位置 &gt; 40% 剔除" style="rounded=1;arcSize=14;whiteSpace=wrap;html=1;fillColor=#9e6a03;strokeColor=#e3b341;fontColor=#ffffff;fontSize=13;fontStyle=1;dashed=0;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="230" y="324" width="340" height="74" as="geometry"/></mxCell>
        <mxCell id="n9" value="打分排序 → 当日候选池<br>Top N + 止损位" style="rounded=1;arcSize=14;whiteSpace=wrap;html=1;fillColor=#8957e5;strokeColor=#a371f7;fontColor=#ffffff;fontSize=13;fontStyle=1;dashed=0;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="230" y="440" width="340" height="74" as="geometry"/></mxCell>
        <mxCell id="n10" value="微信推送 · 表格化<br>openid 定向" style="rounded=1;arcSize=14;whiteSpace=wrap;html=1;fillColor=#1f6feb;strokeColor=#58a6ff;fontColor=#ffffff;fontSize=13;fontStyle=1;dashed=0;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="230" y="556" width="340" height="68" as="geometry"/></mxCell>
        <mxCell id="n11" value="人工决策：是否买入？" style="rhombus;whiteSpace=wrap;html=1;fillColor=#3d1f1f;strokeColor=#f85149;fontColor=#ffd7d5;fontSize=12;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="255" y="662" width="290" height="96" as="geometry"/></mxCell>
        <mxCell id="n12" value="T+1 涨停价挂单<br>次日开盘执行" style="rounded=1;arcSize=14;whiteSpace=wrap;html=1;fillColor=#238636;strokeColor=#3fb950;fontColor=#ffffff;fontSize=13;fontStyle=1;dashed=0;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="60" y="806" width="250" height="72" as="geometry"/></mxCell>
        <mxCell id="n13" value="放弃 / 观察<br>记录放弃原因" style="rounded=1;arcSize=14;whiteSpace=wrap;html=1;fillColor=#161b22;strokeColor=#30363d;fontColor=#e6edf3;fontSize=13;fontStyle=1;dashed=0;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="510" y="806" width="250" height="72" as="geometry"/></mxCell>
        <mxCell id="n14" value="T+2 卖出<br>目标 +2.08%" style="rounded=1;arcSize=14;whiteSpace=wrap;html=1;fillColor=#3d1f5c;strokeColor=#a371f7;fontColor=#ffffff;fontSize=13;fontStyle=1;dashed=0;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="60" y="920" width="250" height="68" as="geometry"/></mxCell>
        <mxCell id="n15" value="复盘入库<br>胜率 / 盈亏比统计" style="rounded=1;arcSize=14;whiteSpace=wrap;html=1;fillColor=#161b22;strokeColor=#30363d;fontColor=#e6edf3;fontSize=13;fontStyle=1;dashed=0;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="510" y="920" width="250" height="68" as="geometry"/></mxCell>
        <mxCell id="e1" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#58a6ff;strokeWidth=1.6;endArrow=block;endFill=1;dashed=0;fontSize=11;fontColor=#c9d1d9;labelBackgroundColor=#0d1117;" edge="1" parent="1" source="n4" target="n7"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e2" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#58a6ff;strokeWidth=1.6;endArrow=block;endFill=1;dashed=0;fontSize=11;fontColor=#c9d1d9;labelBackgroundColor=#0d1117;" edge="1" parent="1" source="n5" target="n7"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e3" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#58a6ff;strokeWidth=1.6;endArrow=block;endFill=1;dashed=0;fontSize=11;fontColor=#c9d1d9;labelBackgroundColor=#0d1117;" edge="1" parent="1" source="n6" target="n7"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e4" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#58a6ff;strokeWidth=1.6;endArrow=block;endFill=1;dashed=0;fontSize=11;fontColor=#c9d1d9;labelBackgroundColor=#0d1117;" edge="1" parent="1" source="n7" target="n8"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e5" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#58a6ff;strokeWidth=1.6;endArrow=block;endFill=1;dashed=0;fontSize=11;fontColor=#c9d1d9;labelBackgroundColor=#0d1117;" edge="1" parent="1" source="n8" target="n9"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e6" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#58a6ff;strokeWidth=1.6;endArrow=block;endFill=1;dashed=0;fontSize=11;fontColor=#c9d1d9;labelBackgroundColor=#0d1117;" edge="1" parent="1" source="n9" target="n10"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e7" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#58a6ff;strokeWidth=1.6;endArrow=block;endFill=1;dashed=0;fontSize=11;fontColor=#c9d1d9;labelBackgroundColor=#0d1117;" edge="1" parent="1" source="n10" target="n11"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e8" value="买入" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#3fb950;strokeWidth=1.6;endArrow=block;endFill=1;dashed=0;fontSize=11;fontColor=#c9d1d9;labelBackgroundColor=#0d1117;" edge="1" parent="1" source="n11" target="n12"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e9" value="放弃" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#8b949e;strokeWidth=1.6;endArrow=block;endFill=1;dashed=0;fontSize=11;fontColor=#c9d1d9;labelBackgroundColor=#0d1117;" edge="1" parent="1" source="n11" target="n13"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e10" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#58a6ff;strokeWidth=1.6;endArrow=block;endFill=1;dashed=0;fontSize=11;fontColor=#c9d1d9;labelBackgroundColor=#0d1117;" edge="1" parent="1" source="n12" target="n14"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e11" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#58a6ff;strokeWidth=1.6;endArrow=block;endFill=1;dashed=0;fontSize=11;fontColor=#c9d1d9;labelBackgroundColor=#0d1117;" edge="1" parent="1" source="n13" target="n15"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e12" value="记录结果" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#a371f7;strokeWidth=1.6;endArrow=block;endFill=1;dashed=1;fontSize=11;fontColor=#c9d1d9;labelBackgroundColor=#0d1117;" edge="1" parent="1" source="n14" target="n15"><mxGeometry relative="1" as="geometry"/></mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
