同花顺Python策略编辑器帮助文档

同花顺Python策略编辑器帮助文档


如何利用pandas对持仓、成交数据进行高级的数据处理

<p><strong>简要说明</strong></p> <ul> <li>利用tool.py中的order_to_dataframe可以方便的将委托表、持仓表的数据转化为DataFrame格式,并采用pandas方便的对数据进行高级处理,下面以如下三个问题作为示例: 1.计算当日委托中的已成交的股票总市值 2.计算</li> </ul> <hr /> <ul> <li> <p><strong>1.获取账户资金</strong>:</p> <p><strong>示例代码</strong></p> </li> </ul> <pre><code>#!/usr/bin/env python # -*- coding: utf-8 -*- import xiadan as xd #例1:直接获取全局资金表的所有字段信息 print(xd.g_money) </code></pre> <p><strong>运行结果</strong></p> <pre><code>{'zt': '00', 'djje': 1600.48, 'kyje': 151137.99, 'sz': 48032.0, 'zjye': 167586.91, 'jjzje': 151137.99, 'zzc': 200770.47, 'hbdw': '0', 'zsz': 48032.0, 'kqje': 0.0} </code></pre> <p><strong>输出字段说明:</strong></p> <table> <thead> <tr> <th style="text-align: left;">字段</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">zt</td> <td style="text-align: left;">主题</td> </tr> <tr> <td style="text-align: left;">djje</td> <td style="text-align: left;">冻结金额</td> </tr> <tr> <td style="text-align: left;">kyje</td> <td style="text-align: left;">可用金额</td> </tr> <tr> <td style="text-align: left;">sz</td> <td style="text-align: left;">市值</td> </tr> <tr> <td style="text-align: left;">zjye</td> <td style="text-align: left;">资金余额</td> </tr> <tr> <td style="text-align: left;">jjzje</td> <td style="text-align: left;">基金总金额</td> </tr> <tr> <td style="text-align: left;">zzc</td> <td style="text-align: left;">总资产</td> </tr> <tr> <td style="text-align: left;">hbdw</td> <td style="text-align: left;">货币单位</td> </tr> <tr> <td style="text-align: left;">zsz</td> <td style="text-align: left;">总市值</td> </tr> <tr> <td style="text-align: left;">kqje</td> <td style="text-align: left;">可取金额</td> </tr> </tbody> </table> <p><strong>示例代码</strong></p> <pre><code>import xiadan as xd #例2:查询当前账户的可用金额 print(xd.g_money["kyje"]) </code></pre> <p><strong>运行结果</strong></p> <pre><code>151137.99 </code></pre> <hr /> <ul> <li> <p><strong>2.获取持仓信息</strong>:</p> <p><strong>示例代码</strong></p> </li> </ul> <pre><code>#!/usr/bin/env python # -*- coding: utf-8 -*- import xiadan as xd import json dic = xd.g_position print('输出原始持仓信息:') print(dic,'\n') print('将持仓信息转化为json格式便于阅读:') j1 = json.dumps(dic, ensure_ascii = False, indent = 2) print(j1)</code></pre> <p><strong>运行结果</strong></p> <pre><code>输出原始持仓信息: {'002886': {'yk': 1016.99, 'jysc': '深圳A股', 'sj': 24.63, 'zqmc': '沃特股份', 'gdzh': '00107220280', 'djsl': 0, 'gpye': 400, 'sz': 9852.0, 'zqdm': '002886', 'sjsl': 400, 'kyye': 400, 'hbdw': '0', 'jksz': '', 'cbj': 22.088}, '002813': {'yk': -51.52, 'jysc': '深圳A股', 'sj': 25.16, 'zqmc': '路畅科技', 'gdzh': '00107220280', 'djsl': 0, 'gpye': 200, 'sz': 5032.0, 'zqdm': '002813', 'sjsl': 200, 'kyye': 200, 'hbdw': '0', 'jksz': '', 'cbj': 25.418}, '300033': {'yk': -551.04, 'jysc': '深圳A股', 'sj': 95.55, 'zqmc': '同花顺', 'gdzh': '00107220280', 'djsl': 0, 'gpye': 100, 'sz': 9555.0, 'zqdm': '300033', 'sjsl': 100, 'kyye': 100, 'hbdw': '0', 'jksz': '', 'cbj': 101.06}, '000001': {'yk': 479.04, 'jysc': '深圳A股', 'sj': 16.94, 'zqmc': '平安银行', 'gdzh': '00107220280', 'djsl': 900, 'gpye': 1400, 'sz': 23716.0, 'zqdm': '000001', 'sjsl': 1400, 'kyye': 500, 'hbdw': '0', 'jksz': '', 'cbj': 16.598}} 将持仓信息转化为json格式便于阅读: { "002886": { "yk": 1016.99, "jysc": "深圳A股", "sj": 24.63, "zqmc": "沃特股份", "gdzh": "00107220280", "djsl": 0, "gpye": 400, "sz": 9852.0, "zqdm": "002886", "sjsl": 400, "kyye": 400, "hbdw": "0", "jksz": "", "cbj": 22.088 }, "002813": { "yk": -51.52, "jysc": "深圳A股", "sj": 25.16, "zqmc": "路畅科技", "gdzh": "00107220280", "djsl": 0, "gpye": 200, "sz": 5032.0, "zqdm": "002813", "sjsl": 200, "kyye": 200, "hbdw": "0", "jksz": "", "cbj": 25.418 </code></pre> <p><strong>部分输出字段说明:</strong></p> <table> <thead> <tr> <th style="text-align: left;">字段</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">yk</td> <td style="text-align: left;">盈亏</td> </tr> <tr> <td style="text-align: left;">jysc</td> <td style="text-align: left;">交易市场</td> </tr> <tr> <td style="text-align: left;">sj</td> <td style="text-align: left;">市价(暂时不支持实时行情)</td> </tr> <tr> <td style="text-align: left;">zqmc</td> <td style="text-align: left;">证券名称</td> </tr> <tr> <td style="text-align: left;">gdzh</td> <td style="text-align: left;">股东账号</td> </tr> <tr> <td style="text-align: left;">djsl</td> <td style="text-align: left;">冻结数量</td> </tr> <tr> <td style="text-align: left;">gpye</td> <td style="text-align: left;">股票余额</td> </tr> <tr> <td style="text-align: left;">sz</td> <td style="text-align: left;">市值</td> </tr> <tr> <td style="text-align: left;">zqdm</td> <td style="text-align: left;">证券代码</td> </tr> <tr> <td style="text-align: left;">sjsl</td> <td style="text-align: left;">实际数量</td> </tr> <tr> <td style="text-align: left;">kyye</td> <td style="text-align: left;">可用余额</td> </tr> <tr> <td style="text-align: left;">hbdw</td> <td style="text-align: left;">货币单位</td> </tr> <tr> <td style="text-align: left;">jksz</td> <td style="text-align: left;">接口设置</td> </tr> <tr> <td style="text-align: left;">cbj</td> <td style="text-align: left;">成本价</td> </tr> </tbody> </table> <p><strong>简要说明</strong> </p> <ul> <li>可使用xiadan.py中的交易接口函数:cmd。支持买入、卖出、撤单。</li> </ul> <p><strong>调用格式</strong></p> <pre><code>cmd('strCmd')</code></pre> <hr /> <ul> <li><strong>1.用cmd函数进行委托</strong>:</li> </ul> <p>完整命令strCmd = 操作动作+证券代码+价格+数量(金额/仓位)+辅助参数(可有可无)</p> <p><strong>参数:</strong></p> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">操作动作</td> <td style="text-align: left;">buy(买入),sell(卖出)</td> </tr> <tr> <td style="text-align: left;">证券代码</td> <td style="text-align: left;">600000(举例),fsdm(当前行情分时代码)</td> </tr> <tr> <td style="text-align: left;">价格</td> <td style="text-align: left;">固定价格、zxjg(最新价)、ztjg(涨停价)、dtjg(跌停价)、dsj1~dsj5(对手价1~5)</td> </tr> <tr> <td style="text-align: left;">数量(金额/仓位)</td> <td style="text-align: left;">按股数:固定值; 按金额:-m 金额值;可用仓位:-cw 参数值; 目标仓位:-zcw 参数值</td> </tr> <tr> <td style="text-align: left;">辅助参数</td> <td style="text-align: left;">多账户执行同一命令:-account all; 条件触发时没有委托确认提示,实现全自动条件单:-notip</td> </tr> </tbody> </table> <p><strong>示例代码</strong></p> <pre><code>#!/usr/bin/env python # -*- coding: utf-8 -*- import xiadan as xd #例1:以最新价买入000001平安银行100股 xd.cmd('buy 000001 zxjg 100') #例2:按照当前对手价——卖一价买入100股300059 xd.cmd('buy 300059 dsj1 100') #例3:按照当前买一价买入100股300059,委托前不弹框提醒 xd.cmd('buy 300059 dsj1 100 -notip') #例4:按照当前对手价——买五价卖出300059十万元 xd.cmd('sell 300059 dsj5 -m 100000') #例5:按照当前可买数量以最新价买入半仓的300059 xd.cmd('buy 300059 zxjg -cw 1/2') #例6:按照跌停价格卖出300059到总仓位为1/4 xd.cmd('sell 300059 dtjg -zcw 0.25') </code></pre> <p><strong>运行结果</strong></p> <p>除例3外,弹窗提示是否执行委托;例3不弹窗提示直接提交委托。</p> <hr /> <ul> <li><strong>2.用cmd函数进行撤单</strong>:</li> </ul> <p>完整命令strCmd = 操作动作+参数值</p> <p><strong>参数:</strong></p> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">操作动作</td> <td style="text-align: left;">cancel(撤单)</td> </tr> <tr> <td style="text-align: left;">参数值</td> <td style="text-align: left;">-h 合同编号、方向(buy/sell)、代码、代码+方向(buy/sell)、全撤/撤最后(all/last)</td> </tr> </tbody> </table> <p><strong>示例代码</strong></p> <pre><code>#!/usr/bin/env python # -*- coding: utf-8 -*- import xiadan as xd #例1:撤掉合同编号为123456的委托单 xd.cmd('cancel -h 123456') #例2:撤掉所有买单 xd.cmd('cancel buy') #例3:撤掉当前行情分时代码的所有委托单 xd.cmd('cancel fsdm') #例4:撤掉当前行情分时代码的所有卖单 xd.cmd('cancel fsdm sell') #例5:撤掉所有可撤委托单 xd.cmd('cancel all') </code></pre> <p><strong>运行结果</strong></p> <p>撤掉相应委托单。</p>

页面列表

ITEM_HTML