Просмотр исходного кода

上海能源交易所indexCode优化,新增中国金融期货交易所排名数据

xiziwen 3 лет назад
Родитель
Сommit
bce38349ab
5 измененных файлов с 224 добавлено и 2019 удалено
  1. 77 0
      models/base_from_trade_cffex.go
  2. 4 2
      models/db.go
  3. 138 2013
      services/commodity_trade_cffex.go
  4. 3 3
      services/commodity_trade_ine.go
  5. 2 1
      services/task.go

+ 77 - 0
models/base_from_trade_cffex.go

@@ -0,0 +1,77 @@
+package models
+
+import (
+	"rdluck_tools/orm"
+	"time"
+)
+
+type BaseFromTradeCffexIndex struct {
+	BaseFromTradeCffexIndexId int `orm:"column(base_from_trade_cffex_index_id);pk"`
+	IndexName               string
+	IndexCode               string
+	Frequency               string
+	StartDate               time.Time
+	EndDate                 time.Time
+	CreateTime              time.Time
+	ModifyTime              time.Time
+	ClassifyName            string
+	ClassifyType            string
+}
+
+func AddBaseFromTradeCffexIndex(item *BaseFromTradeCffexIndex) (lastId int64, err error) {
+	o := orm.NewOrm()
+	o.Using("data")
+	lastId, err = o.Insert(item)
+	return
+}
+
+func GetBaseFromTradeCffexIndexAll() (list []*BaseFromTradeCffexIndex, err error) {
+	o := orm.NewOrm()
+	o.Using("data")
+	sql := `SELECT * FROM base_from_trade_Cffex_index `
+	_, err = o.Raw(sql).QueryRows(&list)
+	return
+}
+
+func GetCodeFromTradeCffexIndexAll() (list []*BaseFromTradeCffexIndex, err error) {
+	o := orm.NewOrm()
+	o.Using("data")
+	sql := `SELECT index_code FROM base_from_trade_Cffex_index `
+	_, err = o.Raw(sql).QueryRows(&list)
+	return
+}
+
+type BaseFromTradeCffexData struct {
+	BaseFromTradeCffexDataId  int `orm:"column(base_from_trade_Cffex_data_id);pk"`
+	BaseFromTradeCffexIndexId int
+	IndexCode               string
+	DataTime                string
+	Value                   string
+	AddCutValue             string
+	CreateTime              time.Time
+	ModifyTime              time.Time
+	DataTimestamp           int64
+}
+
+func AddBaseFromTradeCffexData(item *BaseFromTradeCffexData) (lastId int64, err error) {
+	o := orm.NewOrm()
+	o.Using("data")
+	lastId, err = o.Insert(item)
+	return
+}
+
+func GetBaseFromTradeCffexDataByIndexCode(indexCode string) (list []*BaseFromTradeCffexData, err error) {
+	o := orm.NewOrm()
+	o.Using("data")
+	sql := `SELECT * FROM base_from_trade_Cffex_data WHERE index_code=? `
+	_, err = o.Raw(sql, indexCode).QueryRows(&list)
+	return
+}
+
+func ModifyBaseFromTradeCffexDataData(value, addCutVal string, dataId int) (err error) {
+	o := orm.NewOrm()
+	o.Using("data")
+	sql := `UPDATE base_from_trade_Cffex_data SET value=?,add_cut_value=?,modify_time=NOW() WHERE base_from_trade_Cffex_data_id=? `
+	_, err = o.Raw(sql, value, addCutVal, dataId).Exec()
+	return
+}

+ 4 - 2
models/db.go

@@ -29,9 +29,11 @@ func init() {
 	orm.RegisterModel(
 		//new(BaseFromTradeZhengzhouIndex),
 		//new(BaseFromTradeZhengzhouData),
-		new(BaseFromTradeShanghaiIndex),
-		new(BaseFromTradeShanghaiData),
+		//new(BaseFromTradeShanghaiIndex),
+		//new(BaseFromTradeShanghaiData),
 		//new(BaseFromTradeIneIndex),
 		//new(BaseFromTradeIneData),
+		new(BaseFromTradeCffexIndex),
+		new(BaseFromTradeCffexData),
 	)
 }

+ 138 - 2013
services/commodity_trade_cffex.go

@@ -3,2028 +3,153 @@ package services
 import (
 	"encoding/xml"
 	"fmt"
+	"hongze/hongze_data_crawler/models"
+	"hongze/hongze_data_crawler/utils"
+	"rdluck_tools/http"
+	"strconv"
+	"time"
 )
 
-//中国金融期货交易所
-
-func SyncRankingFromCffex() {
-	str:=`
-<positionRank>
-<data Value="0" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>13</rank>
-<shortname>东兴期货</shortname>
-<volume>2294</volume>
-<varvolume>-16</varvolume>
-<partyid>0186</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>6</rank>
-<shortname>东兴期货</shortname>
-<volume>577</volume>
-<varvolume>323</varvolume>
-<partyid>0186</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>16</rank>
-<shortname>东兴期货</shortname>
-<volume>1038</volume>
-<varvolume>-35</varvolume>
-<partyid>0186</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>16</rank>
-<shortname>东兴期货</shortname>
-<volume>1054</volume>
-<varvolume>-15</varvolume>
-<partyid>0186</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>15</rank>
-<shortname>方正中期</shortname>
-<volume>2047</volume>
-<varvolume>-8</varvolume>
-<partyid>0167</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>10</rank>
-<shortname>方正中期</shortname>
-<volume>942</volume>
-<varvolume>10</varvolume>
-<partyid>0167</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>19</rank>
-<shortname>方正中期</shortname>
-<volume>1149</volume>
-<varvolume>-10</varvolume>
-<partyid>0167</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>17</rank>
-<shortname>方正中期</shortname>
-<volume>911</volume>
-<varvolume>-8</varvolume>
-<partyid>0167</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>16</rank>
-<shortname>方正中期</shortname>
-<volume>1101</volume>
-<varvolume>60</varvolume>
-<partyid>0167</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>15</rank>
-<shortname>光大期货</shortname>
-<volume>600</volume>
-<varvolume>-25</varvolume>
-<partyid>0007</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>14</rank>
-<shortname>光大期货</shortname>
-<volume>2284</volume>
-<varvolume>-179</varvolume>
-<partyid>0007</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>20</rank>
-<shortname>光大期货</shortname>
-<volume>1105</volume>
-<varvolume>35</varvolume>
-<partyid>0007</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>9</rank>
-<shortname>光大期货</shortname>
-<volume>1501</volume>
-<varvolume>100</varvolume>
-<partyid>0007</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>15</rank>
-<shortname>光大期货</shortname>
-<volume>410</volume>
-<varvolume>-9</varvolume>
-<partyid>0007</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>7</rank>
-<shortname>光大期货</shortname>
-<volume>3066</volume>
-<varvolume>-297</varvolume>
-<partyid>0007</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>9</rank>
-<shortname>光大期货</shortname>
-<volume>1264</volume>
-<varvolume>112</varvolume>
-<partyid>0007</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>12</rank>
-<shortname>光大期货</shortname>
-<volume>1187</volume>
-<varvolume>-90</varvolume>
-<partyid>0007</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>8</rank>
-<shortname>广发期货</shortname>
-<volume>508</volume>
-<varvolume>215</varvolume>
-<partyid>0016</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>17</rank>
-<shortname>广发期货</shortname>
-<volume>1972</volume>
-<varvolume>82</varvolume>
-<partyid>0016</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>10</rank>
-<shortname>广发期货</shortname>
-<volume>686</volume>
-<varvolume>-436</varvolume>
-<partyid>0016</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>7</rank>
-<shortname>广发期货</shortname>
-<volume>2777</volume>
-<varvolume>35</varvolume>
-<partyid>0016</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>10</rank>
-<shortname>广发期货</shortname>
-<volume>1416</volume>
-<varvolume>281</varvolume>
-<partyid>0016</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>10</rank>
-<shortname>广发期货</shortname>
-<volume>1712</volume>
-<varvolume>-217</varvolume>
-<partyid>0016</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>18</rank>
-<shortname>广发期货</shortname>
-<volume>978</volume>
-<varvolume>-6</varvolume>
-<partyid>0016</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>13</rank>
-<shortname>广发期货</shortname>
-<volume>875</volume>
-<varvolume>40</varvolume>
-<partyid>0016</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>2</rank>
-<shortname>国泰君安</shortname>
-<volume>1074</volume>
-<varvolume>175</varvolume>
-<partyid>0001</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>1</rank>
-<shortname>国泰君安</shortname>
-<volume>11889</volume>
-<varvolume>-850</varvolume>
-<partyid>0001</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>2</rank>
-<shortname>国泰君安</shortname>
-<volume>3321</volume>
-<varvolume>-289</varvolume>
-<partyid>0001</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>1</rank>
-<shortname>国泰君安</shortname>
-<volume>6639</volume>
-<varvolume>85</varvolume>
-<partyid>0001</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>3</rank>
-<shortname>国泰君安</shortname>
-<volume>6018</volume>
-<varvolume>139</varvolume>
-<partyid>0001</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>1</rank>
-<shortname>国泰君安</shortname>
-<volume>8260</volume>
-<varvolume>870</varvolume>
-<partyid>0001</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>3</rank>
-<shortname>国泰君安</shortname>
-<volume>8865</volume>
-<varvolume>188</varvolume>
-<partyid>0001</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>2</rank>
-<shortname>国泰君安</shortname>
-<volume>6764</volume>
-<varvolume>-263</varvolume>
-<partyid>0001</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>3</rank>
-<shortname>国泰君安</shortname>
-<volume>3007</volume>
-<varvolume>245</varvolume>
-<partyid>0001</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>14</rank>
-<shortname>国投安信</shortname>
-<volume>544</volume>
-<varvolume>2</varvolume>
-<partyid>0122</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>15</rank>
-<shortname>国投安信</shortname>
-<volume>1388</volume>
-<varvolume>-18</varvolume>
-<partyid>0122</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>20</rank>
-<shortname>国投安信</shortname>
-<volume>800</volume>
-<varvolume>6</varvolume>
-<partyid>0122</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>10</rank>
-<shortname>国投安信</shortname>
-<volume>1739</volume>
-<varvolume>74</varvolume>
-<partyid>0122</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>18</rank>
-<shortname>国投安信</shortname>
-<volume>981</volume>
-<varvolume>-67</varvolume>
-<partyid>0122</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>16</rank>
-<shortname>国投安信</shortname>
-<volume>651</volume>
-<varvolume>-4</varvolume>
-<partyid>0122</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>6</rank>
-<shortname>国信期货</shortname>
-<volume>4115</volume>
-<varvolume>40</varvolume>
-<partyid>0113</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>6</rank>
-<shortname>国信期货</shortname>
-<volume>1556</volume>
-<varvolume>211</varvolume>
-<partyid>0113</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>9</rank>
-<shortname>国信期货</shortname>
-<volume>396</volume>
-<varvolume>94</varvolume>
-<partyid>0113</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>16</rank>
-<shortname>国信期货</shortname>
-<volume>1287</volume>
-<varvolume>373</varvolume>
-<partyid>0113</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>20</rank>
-<shortname>国信期货</shortname>
-<volume>325</volume>
-<varvolume>83</varvolume>
-<partyid>0113</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>15</rank>
-<shortname>国信期货</shortname>
-<volume>1135</volume>
-<varvolume>-516</varvolume>
-<partyid>0113</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>20</rank>
-<shortname>国信期货</shortname>
-<volume>460</volume>
-<varvolume>39</varvolume>
-<partyid>0113</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>15</rank>
-<shortname>国信期货</shortname>
-<volume>1162</volume>
-<varvolume>205</varvolume>
-<partyid>0113</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>11</rank>
-<shortname>国信期货</shortname>
-<volume>1483</volume>
-<varvolume>-221</varvolume>
-<partyid>0113</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>3</rank>
-<shortname>海通期货</shortname>
-<volume>3190</volume>
-<varvolume>533</varvolume>
-<partyid>0133</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>3</rank>
-<shortname>海通期货</shortname>
-<volume>8261</volume>
-<varvolume>-93</varvolume>
-<partyid>0133</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>1</rank>
-<shortname>海通期货</shortname>
-<volume>1111</volume>
-<varvolume>114</varvolume>
-<partyid>0133</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>3</rank>
-<shortname>海通期货</shortname>
-<volume>4216</volume>
-<varvolume>-572</varvolume>
-<partyid>0133</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>2</rank>
-<shortname>海通期货</shortname>
-<volume>6219</volume>
-<varvolume>54</varvolume>
-<partyid>0133</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>2</rank>
-<shortname>海通期货</shortname>
-<volume>3781</volume>
-<varvolume>75</varvolume>
-<partyid>0133</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>7</rank>
-<shortname>海通期货</shortname>
-<volume>2544</volume>
-<varvolume>-257</varvolume>
-<partyid>0133</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>6</rank>
-<shortname>海通期货</shortname>
-<volume>3987</volume>
-<varvolume>516</varvolume>
-<partyid>0133</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>14</rank>
-<shortname>海通期货</shortname>
-<volume>873</volume>
-<varvolume>-120</varvolume>
-<partyid>0133</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>12</rank>
-<shortname>华泰期货</shortname>
-<volume>835</volume>
-<varvolume>49</varvolume>
-<partyid>0011</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>14</rank>
-<shortname>华泰期货</shortname>
-<volume>296</volume>
-<varvolume>34</varvolume>
-<partyid>0011</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>5</rank>
-<shortname>华泰期货</shortname>
-<volume>4418</volume>
-<varvolume>832</varvolume>
-<partyid>0011</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>13</rank>
-<shortname>华泰期货</shortname>
-<volume>575</volume>
-<varvolume>84</varvolume>
-<partyid>0011</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>5</rank>
-<shortname>华泰期货</shortname>
-<volume>3007</volume>
-<varvolume>175</varvolume>
-<partyid>0011</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>4</rank>
-<shortname>华泰期货</shortname>
-<volume>3621</volume>
-<varvolume>-229</varvolume>
-<partyid>0011</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>4</rank>
-<shortname>华泰期货</shortname>
-<volume>3181</volume>
-<varvolume>47</varvolume>
-<partyid>0011</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>4</rank>
-<shortname>华泰期货</shortname>
-<volume>5052</volume>
-<varvolume>58</varvolume>
-<partyid>0011</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>5</rank>
-<shortname>华泰期货</shortname>
-<volume>1699</volume>
-<varvolume>-96</varvolume>
-<partyid>0011</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>5</rank>
-<shortname>华闻期货</shortname>
-<volume>2146</volume>
-<varvolume>620</varvolume>
-<partyid>0125</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>9</rank>
-<shortname>华闻期货</shortname>
-<volume>3134</volume>
-<varvolume>-216</varvolume>
-<partyid>0125</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>5</rank>
-<shortname>华闻期货</shortname>
-<volume>778</volume>
-<varvolume>91</varvolume>
-<partyid>0125</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>16</rank>
-<shortname>华闻期货</shortname>
-<volume>404</volume>
-<varvolume>99</varvolume>
-<partyid>0125</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>14</rank>
-<shortname>华闻期货</shortname>
-<volume>1160</volume>
-<varvolume>16</varvolume>
-<partyid>0125</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>14</rank>
-<shortname>华闻期货</shortname>
-<volume>1140</volume>
-<varvolume>56</varvolume>
-<partyid>0125</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>20</rank>
-<shortname>华闻期货</shortname>
-<volume>831</volume>
-<varvolume>97</varvolume>
-<partyid>0125</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>11</rank>
-<shortname>华西期货</shortname>
-<volume>339</volume>
-<varvolume>-54</varvolume>
-<partyid>0182</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>11</rank>
-<shortname>华西期货</shortname>
-<volume>855</volume>
-<varvolume>220</varvolume>
-<partyid>0182</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>12</rank>
-<shortname>混沌天成</shortname>
-<volume>1369</volume>
-<varvolume>-82</varvolume>
-<partyid>0305</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>17</rank>
-<shortname>混沌天成</shortname>
-<volume>1262</volume>
-<varvolume>42</varvolume>
-<partyid>0305</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>20</rank>
-<shortname>建信期货</shortname>
-<volume>509</volume>
-<varvolume>-231</varvolume>
-<partyid>0103</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>18</rank>
-<shortname>建信期货</shortname>
-<volume>619</volume>
-<varvolume>49</varvolume>
-<partyid>0103</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>13</rank>
-<shortname>建信期货</shortname>
-<volume>1498</volume>
-<varvolume>86</varvolume>
-<partyid>0103</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>11</rank>
-<shortname>鲁证期货</shortname>
-<volume>2515</volume>
-<varvolume>-276</varvolume>
-<partyid>0006</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>7</rank>
-<shortname>鲁证期货</shortname>
-<volume>1549</volume>
-<varvolume>106</varvolume>
-<partyid>0006</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>10</rank>
-<shortname>鲁证期货</shortname>
-<volume>339</volume>
-<varvolume>24</varvolume>
-<partyid>0006</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>11</rank>
-<shortname>鲁证期货</shortname>
-<volume>663</volume>
-<varvolume>271</varvolume>
-<partyid>0006</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>14</rank>
-<shortname>鲁证期货</shortname>
-<volume>1525</volume>
-<varvolume>14</varvolume>
-<partyid>0006</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>11</rank>
-<shortname>鲁证期货</shortname>
-<volume>1373</volume>
-<varvolume>123</varvolume>
-<partyid>0006</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>19</rank>
-<shortname>鲁证期货</shortname>
-<volume>891</volume>
-<varvolume>234</varvolume>
-<partyid>0006</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>18</rank>
-<shortname>摩根大通</shortname>
-<volume>207</volume>
-<varvolume>207</varvolume>
-<partyid>0323</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>12</rank>
-<shortname>摩根大通</shortname>
-<volume>641</volume>
-<varvolume>207</varvolume>
-<partyid>0323</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>13</rank>
-<shortname>南华期货</shortname>
-<volume>829</volume>
-<varvolume>57</varvolume>
-<partyid>0002</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>19</rank>
-<shortname>南华期货</shortname>
-<volume>1477</volume>
-<varvolume>163</varvolume>
-<partyid>0002</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>18</rank>
-<shortname>南华期货</shortname>
-<volume>1179</volume>
-<varvolume>-67</varvolume>
-<partyid>0002</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>19</rank>
-<shortname>南华期货</shortname>
-<volume>328</volume>
-<varvolume>-10</varvolume>
-<partyid>0002</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>17</rank>
-<shortname>南华期货</shortname>
-<volume>622</volume>
-<varvolume>6</varvolume>
-<partyid>0002</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>16</rank>
-<shortname>乾坤期货</shortname>
-<volume>250</volume>
-<varvolume>0</varvolume>
-<partyid>0308</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>5</rank>
-<shortname>乾坤期货</shortname>
-<volume>2522</volume>
-<varvolume>250</varvolume>
-<partyid>0308</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>11</rank>
-<shortname>瑞达期货</shortname>
-<volume>2145</volume>
-<varvolume>28</varvolume>
-<partyid>0170</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>4</rank>
-<shortname>瑞银期货</shortname>
-<volume>2621</volume>
-<varvolume>90</varvolume>
-<partyid>0317</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>4</rank>
-<shortname>瑞银期货</shortname>
-<volume>3298</volume>
-<varvolume>-403</varvolume>
-<partyid>0317</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>4</rank>
-<shortname>上海东证</shortname>
-<volume>6511</volume>
-<varvolume>-97</varvolume>
-<partyid>0156</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>4</rank>
-<shortname>上海东证</shortname>
-<volume>3053</volume>
-<varvolume>-28</varvolume>
-<partyid>0156</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>3</rank>
-<shortname>上海东证</shortname>
-<volume>914</volume>
-<varvolume>-451</varvolume>
-<partyid>0156</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>5</rank>
-<shortname>上海东证</shortname>
-<volume>3118</volume>
-<varvolume>414</varvolume>
-<partyid>0156</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>9</rank>
-<shortname>上海东证</shortname>
-<volume>709</volume>
-<varvolume>5</varvolume>
-<partyid>0156</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>8</rank>
-<shortname>上海东证</shortname>
-<volume>2760</volume>
-<varvolume>-124</varvolume>
-<partyid>0156</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>2</rank>
-<shortname>上海东证</shortname>
-<volume>3879</volume>
-<varvolume>445</varvolume>
-<partyid>0156</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>3</rank>
-<shortname>上海东证</shortname>
-<volume>4669</volume>
-<varvolume>-261</varvolume>
-<partyid>0156</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>2</rank>
-<shortname>上海东证</shortname>
-<volume>10623</volume>
-<varvolume>7</varvolume>
-<partyid>0156</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>12</rank>
-<shortname>申银万国</shortname>
-<volume>2508</volume>
-<varvolume>30</varvolume>
-<partyid>0131</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>7</rank>
-<shortname>申银万国</shortname>
-<volume>2095</volume>
-<varvolume>-230</varvolume>
-<partyid>0131</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>9</rank>
-<shortname>申银万国</shortname>
-<volume>2411</volume>
-<varvolume>-130</varvolume>
-<partyid>0131</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>6</rank>
-<shortname>申银万国</shortname>
-<volume>2870</volume>
-<varvolume>298</varvolume>
-<partyid>0131</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>10</rank>
-<shortname>申银万国</shortname>
-<volume>1185</volume>
-<varvolume>-13</varvolume>
-<partyid>0131</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>12</rank>
-<shortname>天风期货</shortname>
-<volume>1021</volume>
-<varvolume>11</varvolume>
-<partyid>0309</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>16</rank>
-<shortname>五矿期货</shortname>
-<volume>1997</volume>
-<varvolume>-260</varvolume>
-<partyid>0012</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>8</rank>
-<shortname>五矿期货</shortname>
-<volume>1105</volume>
-<varvolume>-27</varvolume>
-<partyid>0012</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>12</rank>
-<shortname>五矿期货</shortname>
-<volume>321</volume>
-<varvolume>120</varvolume>
-<partyid>0012</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>19</rank>
-<shortname>五矿期货</shortname>
-<volume>824</volume>
-<varvolume>-41</varvolume>
-<partyid>0012</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>18</rank>
-<shortname>西部期货</shortname>
-<volume>590</volume>
-<varvolume>78</varvolume>
-<partyid>0160</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>17</rank>
-<shortname>先锋期货</shortname>
-<volume>367</volume>
-<varvolume>5</varvolume>
-<partyid>0325</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>14</rank>
-<shortname>兴业期货</shortname>
-<volume>622</volume>
-<varvolume>442</varvolume>
-<partyid>0306</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>7</rank>
-<shortname>兴业期货</shortname>
-<volume>556</volume>
-<varvolume>507</varvolume>
-<partyid>0306</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>6</rank>
-<shortname>兴业期货</shortname>
-<volume>1467</volume>
-<varvolume>550</varvolume>
-<partyid>0306</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>5</rank>
-<shortname>兴业期货</shortname>
-<volume>4173</volume>
-<varvolume>-576</varvolume>
-<partyid>0306</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>8</rank>
-<shortname>兴证期货</shortname>
-<volume>3282</volume>
-<varvolume>-253</varvolume>
-<partyid>0102</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>8</rank>
-<shortname>兴证期货</shortname>
-<volume>1518</volume>
-<varvolume>190</varvolume>
-<partyid>0102</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>8</rank>
-<shortname>兴证期货</shortname>
-<volume>2467</volume>
-<varvolume>180</varvolume>
-<partyid>0102</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>9</rank>
-<shortname>银河期货</shortname>
-<volume>1041</volume>
-<varvolume>262</varvolume>
-<partyid>0109</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>7</rank>
-<shortname>银河期货</shortname>
-<volume>3836</volume>
-<varvolume>-434</varvolume>
-<partyid>0109</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>17</rank>
-<shortname>银河期货</shortname>
-<volume>213</volume>
-<varvolume>134</varvolume>
-<partyid>0109</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>6</rank>
-<shortname>银河期货</shortname>
-<volume>2977</volume>
-<varvolume>37</varvolume>
-<partyid>0109</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>12</rank>
-<shortname>银河期货</shortname>
-<volume>2131</volume>
-<varvolume>-109</varvolume>
-<partyid>0109</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>3</rank>
-<shortname>银河期货</shortname>
-<volume>3625</volume>
-<varvolume>120</varvolume>
-<partyid>0109</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>9</rank>
-<shortname>银河期货</shortname>
-<volume>2397</volume>
-<varvolume>-325</varvolume>
-<partyid>0109</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>8</rank>
-<shortname>银河期货</shortname>
-<volume>2459</volume>
-<varvolume>88</varvolume>
-<partyid>0109</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>11</rank>
-<shortname>银河期货</shortname>
-<volume>1151</volume>
-<varvolume>-35</varvolume>
-<partyid>0109</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>18</rank>
-<shortname>永安期货</shortname>
-<volume>1727</volume>
-<varvolume>541</varvolume>
-<partyid>0003</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>17</rank>
-<shortname>永安期货</shortname>
-<volume>595</volume>
-<varvolume>251</varvolume>
-<partyid>0003</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>6</rank>
-<shortname>永安期货</shortname>
-<volume>2962</volume>
-<varvolume>-304</varvolume>
-<partyid>0003</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>18</rank>
-<shortname>永安期货</shortname>
-<volume>871</volume>
-<varvolume>-190</varvolume>
-<partyid>0003</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>13</rank>
-<shortname>永安期货</shortname>
-<volume>1155</volume>
-<varvolume>-7</varvolume>
-<partyid>0003</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>8</rank>
-<shortname>永安期货</shortname>
-<volume>1359</volume>
-<varvolume>34</varvolume>
-<partyid>0003</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>17</rank>
-<shortname>永安期货</shortname>
-<volume>997</volume>
-<varvolume>-1</varvolume>
-<partyid>0003</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>16</rank>
-<shortname>招商期货</shortname>
-<volume>600</volume>
-<varvolume>-182</varvolume>
-<partyid>0136</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>10</rank>
-<shortname>招商期货</shortname>
-<volume>2699</volume>
-<varvolume>287</varvolume>
-<partyid>0136</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>13</rank>
-<shortname>招商期货</shortname>
-<volume>1210</volume>
-<varvolume>-52</varvolume>
-<partyid>0136</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>11</rank>
-<shortname>招商期货</shortname>
-<volume>1586</volume>
-<varvolume>40</varvolume>
-<partyid>0136</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>15</rank>
-<shortname>招商期货</shortname>
-<volume>866</volume>
-<varvolume>-46</varvolume>
-<partyid>0136</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>15</rank>
-<shortname>招商期货</shortname>
-<volume>1076</volume>
-<varvolume>-145</varvolume>
-<partyid>0136</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>19</rank>
-<shortname>中钢期货</shortname>
-<volume>195</volume>
-<varvolume>119</varvolume>
-<partyid>0121</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>13</rank>
-<shortname>中金期货</shortname>
-<volume>300</volume>
-<varvolume>300</varvolume>
-<partyid>0172</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>13</rank>
-<shortname>中金期货</shortname>
-<volume>1593</volume>
-<varvolume>0</varvolume>
-<partyid>0172</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>6</rank>
-<shortname>中金期货</shortname>
-<volume>2126</volume>
-<varvolume>300</varvolume>
-<partyid>0172</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>19</rank>
-<shortname>中金期货</shortname>
-<volume>533</volume>
-<varvolume>0</varvolume>
-<partyid>0172</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>5</rank>
-<shortname>中金期货</shortname>
-<volume>3036</volume>
-<varvolume>258</varvolume>
-<partyid>0172</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>19</rank>
-<shortname>中金期货</shortname>
-<volume>871</volume>
-<varvolume>24</varvolume>
-<partyid>0172</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>15</rank>
-<shortname>中粮期货</shortname>
-<volume>272</volume>
-<varvolume>229</varvolume>
-<partyid>0010</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>12</rank>
-<shortname>中粮期货</shortname>
-<volume>1552</volume>
-<varvolume>-260</varvolume>
-<partyid>0010</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>4</rank>
-<shortname>中粮期货</shortname>
-<volume>1781</volume>
-<varvolume>268</varvolume>
-<partyid>0010</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>20</rank>
-<shortname>中融汇信</shortname>
-<volume>1398</volume>
-<varvolume>-50</varvolume>
-<partyid>0179</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>19</rank>
-<shortname>中信建投</shortname>
-<volume>526</volume>
-<varvolume>-151</varvolume>
-<partyid>0115</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>20</rank>
-<shortname>中信建投</shortname>
-<volume>194</volume>
-<varvolume>-251</varvolume>
-<partyid>0115</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>18</rank>
-<shortname>中信建投</shortname>
-<volume>341</volume>
-<varvolume>-53</varvolume>
-<partyid>0115</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>7</rank>
-<shortname>中信建投</shortname>
-<volume>1400</volume>
-<varvolume>-89</varvolume>
-<partyid>0115</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>9</rank>
-<shortname>中信建投</shortname>
-<volume>2279</volume>
-<varvolume>-4</varvolume>
-<partyid>0115</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>17</rank>
-<shortname>中信建投</shortname>
-<volume>1051</volume>
-<varvolume>-73</varvolume>
-<partyid>0115</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>4</rank>
-<shortname>中信期货</shortname>
-<volume>852</volume>
-<varvolume>198</varvolume>
-<partyid>0018</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>2</rank>
-<shortname>中信期货</shortname>
-<volume>10535</volume>
-<varvolume>-685</varvolume>
-<partyid>0018</partyid>
-<productid>IF</productid>
-</data>
-<data Value="0" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>0</datatypeid>
-<rank>1</rank>
-<shortname>中信期货</shortname>
-<volume>3662</volume>
-<varvolume>1259</varvolume>
-<partyid>0018</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>1</rank>
-<shortname>中信期货</shortname>
-<volume>6816</volume>
-<varvolume>715</varvolume>
-<partyid>0018</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>8</rank>
-<shortname>中信期货</shortname>
-<volume>1460</volume>
-<varvolume>83</varvolume>
-<partyid>0018</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>2</rank>
-<shortname>中信期货</shortname>
-<volume>5905</volume>
-<varvolume>129</varvolume>
-<partyid>0018</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>1</rank>
-<shortname>中信期货</shortname>
-<volume>8958</volume>
-<varvolume>404</varvolume>
-<partyid>0018</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>1</rank>
-<shortname>中信期货</shortname>
-<volume>12218</volume>
-<varvolume>127</varvolume>
-<partyid>0018</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>1</rank>
-<shortname>中信期货</shortname>
-<volume>6460</volume>
-<varvolume>229</varvolume>
-<partyid>0018</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>10</rank>
-<shortname>中银期货</shortname>
-<volume>2233</volume>
-<varvolume>-99</varvolume>
-<partyid>0165</partyid>
-<productid>IF</productid>
-</data>
-<data Value="1" Text="IF2203 ">
-<instrumentid>IF2203</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>1</datatypeid>
-<rank>7</rank>
-<shortname>中银期货</shortname>
-<volume>1841</volume>
-<varvolume>6</varvolume>
-<partyid>0165</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2112 ">
-<instrumentid>IF2112</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>14</rank>
-<shortname>中银期货</shortname>
-<volume>1457</volume>
-<varvolume>19</varvolume>
-<partyid>0165</partyid>
-<productid>IF</productid>
-</data>
-<data Value="2" Text="IF2111 ">
-<instrumentid>IF2111</instrumentid>
-<tradingday>20211029</tradingday>
-<datatypeid>2</datatypeid>
-<rank>20</rank>
-<shortname>中银期货</shortname>
-<volume>752</volume>
-<varvolume>161</varvolume>
-<partyid>0165</partyid>
-<productid>IF</productid>
-</data>
-<positionamt>
-<tradingday/>
-<instrumentid/>
-<volumeamt/>
-<varvolumeamt/>
-<buyvolumeamt/>
-<buyvarvolumeamt/>
-<sellvolumeamt/>
-<sellvarvolumeamt/>
-<productid/>
-<futurecompany/>
-</positionamt>
-</positionRank>`
-	item := new(XmlItem)
-	err := xml.Unmarshal([]byte(str), &item)
-	if err != nil {
-		fmt.Println("xml.Unmarshal:", err.Error())
-	}
-	for k, v := range item.Data {
-		fmt.Println(k, v.Instrumentid, v.Tradingday)
-	}
-	fmt.Println(item)
-	fmt.Println("end")
-}
-
-
 type XmlItem struct {
 	XMLName xml.Name `xml:"positionRank"`
 	Data    []struct {
-		Instrumentid string `xml:"instrumentid"`
+		ContractCode string `xml:"instrumentid"`
+		Value        string `xml:"Value,attr"`
+		Text         string `xml:"Text,attr"`
 		Tradingday   string `xml:"tradingday"`
 		Datatypeid   string `xml:"datatypeid"`
 		Rank         string `xml:"rank"`
-		Shortname    string `xml:"shortname"`
+		ShortName    string `xml:"shortname"`
 		Volume       string `xml:"volume"`
 		Varvolume    string `xml:"varvolume"`
+		ProductId    string `xml:"productid"`
 	} `xml:"data"`
 }
+
+// SyncRankingFromCffex 中国金融期货交易所
+func SyncRankingFromCffex() {
+	//获取所有指标信息
+	allIndex, err := models.GetBaseFromTradeCffexIndexAll()
+	if err != nil {
+		fmt.Println("select err:", err)
+	}
+	existIndexMap := make(map[string]*models.BaseFromTradeCffexIndex)
+
+	addIndexMap := make(map[string]string)
+	indexCodeMap := make(map[string]struct{})
+	for _, v := range allIndex {
+		indexKey := v.IndexName
+		existIndexMap[indexKey] = v
+	}
+
+	existDataMap := make(map[string]*models.BaseFromTradeCffexData)
+	var existDataList []*models.BaseFromTradeCffexData
+	var dataItem = new(models.BaseFromTradeCffexData)
+	var item = new(models.BaseFromTradeCffexIndex)
+
+	var xmlItems  = make([]*XmlItem, 6)
+	xmlItems[0] = GetXmlItem("IF")
+	xmlItems[1] = GetXmlItem("IC")
+	xmlItems[2] = GetXmlItem("IH")
+	xmlItems[3] = GetXmlItem("TS")
+	xmlItems[4] = GetXmlItem("TF")
+	xmlItems[5] = GetXmlItem("T")
+	//获取新的指标信息
+	var action string
+	var indexID int
+	var indexKey string
+	var indexCode string
+	var dataTime time.Time
+	for _, xmlItem := range xmlItems {
+		for _, i := range xmlItem.Data {
+			switch i.Value {
+			case "0":
+				action = "_成交量_"
+			case "1":
+				action = "_持买单量_"
+			case "2":
+				action = "_持卖单量_"
+			default:
+				fmt.Println("No data value")
+			}
+			item.IndexName = fmt.Sprintf("%s", i.ShortName+action+i.ContractCode)
+			for {
+				indexCode = fmt.Sprintf("CFFEX%s", time.Now().Format(utils.FormatDateTimeUnSpace)+strconv.Itoa(utils.GetRandInt(1, 100)))
+				if _, ok := indexCodeMap[indexCode]; !ok {
+					indexCodeMap[indexCode] = struct{}{}
+					break
+				}
+			}
+			item.IndexCode = indexCode
+			item.ClassifyName = i.ProductId
+			item.ClassifyType = i.ContractCode
+			item.CreateTime = time.Now()
+			item.ModifyTime = time.Now()
+			item.Frequency = "日度"
+			if existIndex, ok := existIndexMap[item.IndexName]; !ok {
+				newID, err := models.AddBaseFromTradeCffexIndex(item)
+				if err != nil {
+					fmt.Println("insert error:", err)
+				}
+				indexID = int(newID)
+				fmt.Println("new indexID:", indexID)
+				addIndexMap[indexKey] = indexCode
+			} else {
+				indexID = existIndex.BaseFromTradeCffexIndexId
+				indexCode = existIndex.IndexCode
+			}
+			existDataList, err = models.GetBaseFromTradeCffexDataByIndexCode(indexCode)
+			if err != nil && err.Error() != utils.ErrNoRow() {
+				fmt.Println("GetBaseFromTradeCffexDataByIndexCode error:", err)
+				return
+			}
+			for _, v := range existDataList {
+				key := v.IndexCode + v.DataTime
+				existDataMap[key] = v
+			}
+			dataTime, err = time.Parse(utils.FormatDateUnSpace, i.Tradingday)
+			if err != nil {
+				fmt.Println("time.Parse Err:" + err.Error())
+				return
+			}
+			if existDataItem, ok := existDataMap[i.Tradingday]; !ok && indexCode != "" { //新增
+
+				dataItem.BaseFromTradeCffexIndexId = indexID
+				dataItem.IndexCode = indexCode
+				dataItem.DataTime = i.Tradingday
+				dataItem.Value = i.Volume
+				dataItem.AddCutValue = i.Varvolume
+				dataItem.DataTimestamp = dataTime.UnixNano() / 1e6
+				dataItem.CreateTime = time.Now()
+				dataItem.ModifyTime = time.Now()
+				_, err = models.AddBaseFromTradeCffexData(dataItem)
+				if err != nil {
+					fmt.Println("data insert err:", err)
+					return
+				}
+				existDataMap[indexCode+i.Tradingday] = dataItem
+			} else {
+				if existDataItem != nil && existDataItem.Value != i.Volume { //修改数据
+					err = models.ModifyBaseFromTradeIneDataData(i.Volume, i.Varvolume, existDataItem.BaseFromTradeCffexDataId)
+					if err != nil {
+						fmt.Println("data update err:", err)
+					}
+				}
+			}
+		}
+	}
+
+}
+
+func GetXmlItem(contract string) *XmlItem {
+	body, err := http.Get(fmt.Sprintf("%s", "http://www.cffex.com.cn/sj/ccpm/202110/18/" + contract + ".xml"))
+	if err != nil {
+		fmt.Println("err:", err)
+	}
+	xmlItem := new(XmlItem)
+	err = xml.Unmarshal(body, &xmlItem)
+	if err != nil {
+		fmt.Println("xml.Unmarshal:", err.Error())
+	}
+	return xmlItem
+}

+ 3 - 3
services/commodity_trade_ine.go

@@ -80,7 +80,7 @@ func SyncRankingFromIne() {
 			//成交量
 			dealItem.IndexName = strings.Replace(fmt.Sprintf("%s", p.ParticipantName1+"_成交量"+"_"+p.ProductName+"_"+p.ContractCode), " ", "", -1)
 			for {
-				indexCode = fmt.Sprintf("SHEE%s", time.Now().Format(utils.FormatDateTimeUnSpace)+strconv.Itoa(utils.GetRandInt(1, 100)))
+				indexCode = fmt.Sprintf("INE%s", time.Now().Format(utils.FormatDateTimeUnSpace)+strconv.Itoa(utils.GetRandInt(1, 100)))
 				if _, ok := indexCodeMap[indexCode]; !ok {
 					indexCodeMap[indexCode] = struct{}{}
 					break
@@ -149,7 +149,7 @@ func SyncRankingFromIne() {
 			//持买单量
 			buyItem.IndexName = strings.Replace(fmt.Sprintf("%s", p.ParticipantName2+"_持买单量"+"_"+p.ProductName+"_"+p.ContractCode), " ", "", -1)
 			for {
-				indexCode = fmt.Sprintf("SHEE%s", time.Now().Format(utils.FormatDateTimeUnSpace)+strconv.Itoa(utils.GetRandInt(1, 100)))
+				indexCode = fmt.Sprintf("INE%s", time.Now().Format(utils.FormatDateTimeUnSpace)+strconv.Itoa(utils.GetRandInt(1, 100)))
 				if _, ok := indexCodeMap[indexCode]; !ok {
 					indexCodeMap[indexCode] = struct{}{}
 					break
@@ -217,7 +217,7 @@ func SyncRankingFromIne() {
 			//持卖单量
 			soldItem.IndexName = strings.Replace(fmt.Sprintf("%s", p.ParticipantName3+"_持卖单量"+"_"+p.ProductName+"_"+p.ContractCode), " ", "", -1)
 			for {
-				indexCode = fmt.Sprintf("SHEE%s", time.Now().Format(utils.FormatDateTimeUnSpace)+strconv.Itoa(utils.GetRandInt(1, 100)))
+				indexCode = fmt.Sprintf("INE%s", time.Now().Format(utils.FormatDateTimeUnSpace)+strconv.Itoa(utils.GetRandInt(1, 100)))
 				if _, ok := indexCodeMap[indexCode]; !ok {
 					indexCodeMap[indexCode] = struct{}{}
 					break

+ 2 - 1
services/task.go

@@ -8,7 +8,8 @@ func Task() {
 	fmt.Println("start crawler")
 	//同步郑州商品交易所排名
 	//SyncRankingFromZhenzhou()
-	SyncRankingFromShangHai()
+	//SyncRankingFromShangHai()
 	//SyncRankingFromIne()
+	SyncRankingFromCffex()
 	fmt.Println("end crawler")
 }