42 浏览
0
<span class="ch">#!/usr/bin/env python</span>
<span class="c1">#  -*- coding: utf-8 -*-</span>
<span class="n">__author__</span> <span class="o">=</span> <span class="s1">'chengzhi'</span>

<span class="kn">from</span> <span class="nn">tqsdk</span> <span class="kn">import</span> <span class="n">TqApi</span><span class="p">,</span> <span class="n">TqAuth</span>

<span class="c1"># 可以指定debug选项将调试信息写入指定的文件中</span>
<span class="n">api</span> <span class="o">=</span> <span class="n">TqApi</span><span class="p">(</span><span class="n">debug</span><span class="o">=</span><span class="s2">"debug.log"</span><span class="p">,</span> <span class="n">auth</span><span class="o">=</span><span class="n">TqAuth</span><span class="p">(</span><span class="s2">"快期账户"</span><span class="p">,</span> <span class="s2">"账户密码"</span><span class="p">))</span>
<span class="n">quote</span> <span class="o">=</span> <span class="n">api</span><span class="o">.</span><span class="n">get_quote</span><span class="p">(</span><span class="s2">"CZCE.FG209"</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">quote</span><span class="o">.</span><span class="n">datetime</span><span class="p">,</span> <span class="n">quote</span><span class="o">.</span><span class="n">last_price</span><span class="p">,</span> <span class="n">quote</span><span class="o">.</span><span class="n">ask_price1</span><span class="p">,</span> <span class="n">quote</span><span class="o">.</span><span class="n">ask_price2</span><span class="p">)</span>

<span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
    <span class="c1"># 调用 wait_update 等待业务信息发生变化,例如: 行情发生变化, 委托单状态变化, 发生成交等等</span>
    <span class="c1"># 注意:其他合约的行情的更新也会触发业务信息变化,因此下面使用 is_changing 判断 FG209 的行情是否有变化</span>
    <span class="n">api</span><span class="o">.</span><span class="n">wait_update</span><span class="p">()</span>
    <span class="c1"># 如果 FG209 的任何字段有变化,is_changing就会返回 True</span>
    <span class="k">if</span> <span class="n">api</span><span class="o">.</span><span class="n">is_changing</span><span class="p">(</span><span class="n">quote</span><span class="p">):</span>
        <span class="nb">print</span><span class="p">(</span><span class="s2">"行情变化"</span><span class="p">,</span> <span class="n">quote</span><span class="p">)</span>
    <span class="c1"># 只有当 FG209 的最新价有变化,is_changing才会返回 True</span>
    <span class="k">if</span> <span class="n">api</span><span class="o">.</span><span class="n">is_changing</span><span class="p">(</span><span class="n">quote</span><span class="p">,</span> <span class="s2">"last_price"</span><span class="p">):</span>
        <span class="nb">print</span><span class="p">(</span><span class="s2">"最新价变化"</span><span class="p">,</span> <span class="n">quote</span><span class="o">.</span><span class="n">last_price</span><span class="p">)</span>
    <span class="c1"># 当 FG209 的买1价/买1量/卖1价/卖1量中任何一个有变化,is_changing都会返回 True</span>
    <span class="k">if</span> <span class="n">api</span><span class="o">.</span><span class="n">is_changing</span><span class="p">(</span><span class="n">quote</span><span class="p">,</span> <span class="p">[</span><span class="s2">"ask_price1"</span><span class="p">,</span> <span class="s2">"ask_volume1"</span><span class="p">,</span> <span class="s2">"bid_price1"</span><span class="p">,</span> <span class="s2">"bid_volume1"</span><span class="p">]):</span>
        <span class="nb">print</span><span class="p">(</span><span class="s2">"盘口变化"</span><span class="p">,</span> <span class="n">quote</span><span class="o">.</span><span class="n">ask_price1</span><span class="p">,</span> <span class="n">quote</span><span class="o">.</span><span class="n">ask_volume1</span><span class="p">,</span> <span class="n">quote</span><span class="o">.</span><span class="n">bid_price1</span><span class="p">,</span> <span class="n">quote</span><span class="o">.</span><span class="n">bid_volume1</span><span class="p">)</span>
han2155905 问的问题 3天 前