ptrade运行的策略全部不见了 | 国金证券

Ptrade李魔佛 发表了文章 • 0 个评论 • 65 次浏览 • 2026-08-14 12:06 • 来自相关话题

原本正在运行的策略,会出现第二天全部不见了。
 
正常运行和已停止的都不见了。
 
在回测页面里面能看到之前的写的策略。
 
客服回应说 服务器内存不足造成,重启环境之后,上报给他们可以找回。
 
不过问题是策略已经停止了,找回正常运行的策略也是要自己启动,还不如我自己重新新建策略,重新启动得了。
 
所以使用ptrade,最后把平时的输出日志保存为文件,自动存储到研究的jupyter notebook下面。
 
这样就能够在策略重启,无故消失的情况下,找回丢失的日志。
 
  查看全部
原本正在运行的策略,会出现第二天全部不见了。
 
正常运行和已停止的都不见了。
 
在回测页面里面能看到之前的写的策略。
 
客服回应说 服务器内存不足造成,重启环境之后,上报给他们可以找回。
 
不过问题是策略已经停止了,找回正常运行的策略也是要自己启动,还不如我自己重新新建策略,重新启动得了。
 
所以使用ptrade,最后把平时的输出日志保存为文件,自动存储到研究的jupyter notebook下面。
 
这样就能够在策略重启,无故消失的情况下,找回丢失的日志。
 
 

华泰QMT下载 | 华泰支持迅投QMT了

QMT李魔佛 发表了文章 • 0 个评论 • 160 次浏览 • 2026-08-03 10:41 • 来自相关话题

华泰目前已经支持QMT。 2026年8月。

华泰迅投QMT系统是专门为专业交易客户打造的集合策略投研、交易执行、行情展示、风控管理为一体的综合投研交易终端。策略研究包括数据管理、策略研究、策略风控等功能;支持组合交易、算法交易、对冲交易、机构风格下单等高效的交易功能,满足不同投资者的多样化交易需求。





 
 
QMT下载地址:
https://inst.htsc.com/helpOnline?productId=60&moduleCode=1
 
它支持自定义编程模块,可以自己编程下单。
 
接口文档:https://qmt.ptradeapi.com
  查看全部
华泰目前已经支持QMT。 2026年8月。

华泰迅投QMT系统是专门为专业交易客户打造的集合策略投研、交易执行、行情展示、风控管理为一体的综合投研交易终端。策略研究包括数据管理、策略研究、策略风控等功能;支持组合交易、算法交易、对冲交易、机构风格下单等高效的交易功能,满足不同投资者的多样化交易需求。

20260803104047.png

 
 
QMT下载地址:
https://inst.htsc.com/helpOnline?productId=60&moduleCode=1
 
它支持自定义编程模块,可以自己编程下单。
 
接口文档:https://qmt.ptradeapi.com
 

miniQMT停用后,外部调用QMT内部函数的路子

QMT李魔佛 发表了文章 • 0 个评论 • 714 次浏览 • 2026-07-02 08:56 • 来自相关话题

最近某个别券商准备暂停miniQMT的功能,仅保留大QMT的功能。对于在外部启动策略的量化投资者来说,意味着要把程序全部塞回到QMT里面运行,这会造成诸多不便。

但办法总比困难多,其中一个方法是在QMT里开一个HTTP的REST API服务,外部可以调用这个HTTP API,达到下单,撤单,查询持仓,获取行情等所有在QMT下所需要的功能。

目前QMT内置的python版本为3.6.8,你可以在里面安装各种第三方web框架,fastapi,django,flask等。而QMT原来内置了tornado,就不需要额外安装其他第三方库了。文末提供完整源码地址。

导入所需要的库
from tornado.web import Application, RequestHandler, HTTPError
from tornado.ioloop import IOLoop 
 
程序核心就是在QMT的init函数里面就启动我们的HTTP服务,端口PORT随意。
PORT = 10086
ACCOUNT_ID = '你的QMT账号'
def init(ContextInfo):
try:
ContextInfo.accountID = ACCOUNT_ID
app = make_app()
app.ContextInfo = ContextInfo
app.accountID = ContextInfo.accountID

app.listen(PORT, address='0.0.0.0') # 如果只在本地网络,可以设置为127.0.0.1
logger.info(f"QMT HTTP Server 启动于 http://0.0.0.0:{PORT} (全部API已加载)")
IOLoop.current().start()
except Exception as e:
logger.exception(f"server start failed: {e}")
 
make_app里提供的注册路由。
 
============= 路由注册 =============
def make_app():
return Application([

# 原有兼容路由
(r"/api/holding", HoldingHandler),
(r"/api/money/total", TotalMoneyHandler),
(r"/api/money/available", AvailableMoneyHandler),
(r"/api/order/buy", BuyHandler),
(r"/api/order/sell", SellHandler),
(r"/api/order/deal", DealHandler),
..... 省略若干
# 数据查询
(r"/api/data/stock_name", StockNameHandler),
(r"/api/data/open_date", OpenDateHandler),
(r"/api/data/last_volume", LastVolumeHandler),
(r"/api/data/bar_timetag", BarTimetagHandler),
(r"/api/data/tick_timetag", TickTimetagHandler),
(r"/api/data/sector", SectorHandler),
(r"/api/data/industry", IndustryHandler),
(r"/api/data/stock_list_in_sector", StockListInSectorHandler),
(r"/api/data/history_data", HistoryDataHandler),
(r"/api/data/market_data", MarketDataHandler),
(r"/api/data/market_data_ex", MarketDataExHandler),
(r"/api/data/full_tick", FullTickHandler),
 
每个API实现一个原QMT的函数,所以有非常多的API端点。

当然这些函数我都让AI帮我对着QMT的文档实现的。

接口文档:https://qmt.ptradeapi.com/QMT_Python_API_Doc.html

然后FullTickHandler的实现如下:
# ContextInfo.get_full_tick() - 获取分笔数据
class FullTickHandler(BaseHandler):
def post(self):
data = json.loads(self.request.body)
stocks = data.get('stocks', '')
if not stocks:
raise HTTPError(400, "need args stocks")
code_list = [s.strip() for s in stocks.split(',')]
ret = safe_call(self.ctx().get_full_tick, code_list)
if not ret:
raise HTTPError(500, "获取分笔行情失败")
self.write(json.dumps(ret, ensure_ascii=False, default=str))
 
 
这里核心就是执行QMT的get_full_tick,把数据作为response返回。请求使用POST,传入股票代码,返回股票tick数据。

在QMT里启动后,等待外部程序调用。





 

上面是把完整代码复制到QMT里,然后在实盘里面启动。

然后在你外部的程序里面写个简单的HTTP请求,就能调用QMT里面的API了。

如果你的电脑有公网IP,还可以不同电脑去远程调用QMT里面的函数,

这里加入一个任意TOKEN,和QMT里面一致就行,这样请求的header带上,避免其他人调用你的API操作你账号。如果只在本地运行,可以把最开始的监听地址0.0.0.0改为127.0.0.1
 
TOKEN = "123456789"
class QMTClient:
def __init__(self, base_url="http://127.0.0.1:10086"):
self.base = base_url
self.session = requests.Session()
self.session.headers.update({"Content-Type": "application/json; charset=utf-8"})
self.session.headers.update({"X-Token": TOKEN})

def _req(self, method, path, **kwargs):
url = f"{self.base}{path}"
try:
resp = self.session.request(method, url, timeout=10, **kwargs)
resp.raise_for_status()
return resp.json()
except requests.RequestException as e:
return {"error": str(e), "status_code": getattr(e.response, 'status_code', 500)}

def get_full_tick(self, stocks):
return self._req('POST', f'/api/data/full_tick', json={
"stocks": stocks})
client = QMTClient()
print(client.get_full_tick('600000.SH'))
 
client = QMTClient() 
print(client.get_full_tick('600000.SH'))
 
QMT里可以看到对应的调用记录






外部程序的返回的结果:





然后按葫芦画瓢,让AI对着文档把剩余的函数都实现了即可。

比如要下单功能,就实现
 
# passorder(23) - 买入下单(封装passorder)
class BuyHandler(BaseHandler):
def post(self):
try:
data = json.loads(self.request.body)
stock = data['stock']
price = float(data['price'])
volume = int(data['volume'])
pr_type = data.get('prType', 11)
order_ref = passorder(23, 1101, self.acc(), stock, pr_type, price, volume, 'qmt', 2, self.ctx())
self.write(json.dumps({
"status": "success", "action": "buy", "stock": stock,
"order_ref": str(order_ref) if order_ref else"unknown"
}, ensure_ascii=False))
except Exception as e:
logger.exception("买入下单异常")
raise HTTPError(400, f"下单失败: {str(e)}")
 
然后在外部你的策略代码里面加入:
 
client = QMTClient()
client.buy_stock("600000.SZ", 6.80, 100)
 
即可完成下单,然后可以通过API查询持仓,获取最新状态。这样就不用把你策略嵌入到QMT里。

完整源码在github: https://github.com/Rockyzsu/QMT,(不确定是否AI封装的函数全部正确,会偶尔更新一下)

或者关注公众号"可转债量化分析",后台回复关键字:QMT封装
 
  查看全部
最近某个别券商准备暂停miniQMT的功能,仅保留大QMT的功能。对于在外部启动策略的量化投资者来说,意味着要把程序全部塞回到QMT里面运行,这会造成诸多不便。

但办法总比困难多,其中一个方法是在QMT里开一个HTTP的REST API服务,外部可以调用这个HTTP API,达到下单,撤单,查询持仓,获取行情等所有在QMT下所需要的功能。

目前QMT内置的python版本为3.6.8,你可以在里面安装各种第三方web框架,fastapi,django,flask等。而QMT原来内置了tornado,就不需要额外安装其他第三方库了。文末提供完整源码地址。

导入所需要的库
from tornado.web import Application, RequestHandler, HTTPError
from tornado.ioloop import IOLoop
 
 
程序核心就是在QMT的init函数里面就启动我们的HTTP服务,端口PORT随意。
PORT = 10086
ACCOUNT_ID = '你的QMT账号'
def init(ContextInfo):
try:
ContextInfo.accountID = ACCOUNT_ID
app = make_app()
app.ContextInfo = ContextInfo
app.accountID = ContextInfo.accountID

app.listen(PORT, address='0.0.0.0') # 如果只在本地网络,可以设置为127.0.0.1
logger.info(f"QMT HTTP Server 启动于 http://0.0.0.0:{PORT} (全部API已加载)")
IOLoop.current().start()
except Exception as e:
logger.exception(f"server start failed: {e}")

 
make_app里提供的注册路由。
 
 ============= 路由注册 =============
def make_app():
return Application([

# 原有兼容路由
(r"/api/holding", HoldingHandler),
(r"/api/money/total", TotalMoneyHandler),
(r"/api/money/available", AvailableMoneyHandler),
(r"/api/order/buy", BuyHandler),
(r"/api/order/sell", SellHandler),
(r"/api/order/deal", DealHandler),
..... 省略若干
# 数据查询
(r"/api/data/stock_name", StockNameHandler),
(r"/api/data/open_date", OpenDateHandler),
(r"/api/data/last_volume", LastVolumeHandler),
(r"/api/data/bar_timetag", BarTimetagHandler),
(r"/api/data/tick_timetag", TickTimetagHandler),
(r"/api/data/sector", SectorHandler),
(r"/api/data/industry", IndustryHandler),
(r"/api/data/stock_list_in_sector", StockListInSectorHandler),
(r"/api/data/history_data", HistoryDataHandler),
(r"/api/data/market_data", MarketDataHandler),
(r"/api/data/market_data_ex", MarketDataExHandler),
(r"/api/data/full_tick", FullTickHandler),

 
每个API实现一个原QMT的函数,所以有非常多的API端点。

当然这些函数我都让AI帮我对着QMT的文档实现的。

接口文档:https://qmt.ptradeapi.com/QMT_Python_API_Doc.html

然后FullTickHandler的实现如下:
# ContextInfo.get_full_tick() - 获取分笔数据
class FullTickHandler(BaseHandler):
def post(self):
data = json.loads(self.request.body)
stocks = data.get('stocks', '')
if not stocks:
raise HTTPError(400, "need args stocks")
code_list = [s.strip() for s in stocks.split(',')]
ret = safe_call(self.ctx().get_full_tick, code_list)
if not ret:
raise HTTPError(500, "获取分笔行情失败")
self.write(json.dumps(ret, ensure_ascii=False, default=str))

 
 
这里核心就是执行QMT的get_full_tick,把数据作为response返回。请求使用POST,传入股票代码,返回股票tick数据。

在QMT里启动后,等待外部程序调用。

20260702-1.png

 

上面是把完整代码复制到QMT里,然后在实盘里面启动。

然后在你外部的程序里面写个简单的HTTP请求,就能调用QMT里面的API了。

如果你的电脑有公网IP,还可以不同电脑去远程调用QMT里面的函数,

这里加入一个任意TOKEN,和QMT里面一致就行,这样请求的header带上,避免其他人调用你的API操作你账号。如果只在本地运行,可以把最开始的监听地址0.0.0.0改为127.0.0.1
 
TOKEN = "123456789" 
class QMTClient:
def __init__(self, base_url="http://127.0.0.1:10086";):
self.base = base_url
self.session = requests.Session()
self.session.headers.update({"Content-Type": "application/json; charset=utf-8"})
self.session.headers.update({"X-Token": TOKEN})

def _req(self, method, path, **kwargs):
url = f"{self.base}{path}"
try:
resp = self.session.request(method, url, timeout=10, **kwargs)
resp.raise_for_status()
return resp.json()
except requests.RequestException as e:
return {"error": str(e), "status_code": getattr(e.response, 'status_code', 500)}

def get_full_tick(self, stocks):
return self._req('POST', f'/api/data/full_tick', json={
"stocks": stocks})
client = QMTClient()
print(client.get_full_tick('600000.SH'))

 
client = QMTClient() 
print(client.get_full_tick('600000.SH'))
 
QMT里可以看到对应的调用记录

20260702-2.png


外部程序的返回的结果:
20260702-3.png


然后按葫芦画瓢,让AI对着文档把剩余的函数都实现了即可。

比如要下单功能,就实现
 
# passorder(23) - 买入下单(封装passorder)
class BuyHandler(BaseHandler):
def post(self):
try:
data = json.loads(self.request.body)
stock = data['stock']
price = float(data['price'])
volume = int(data['volume'])
pr_type = data.get('prType', 11)
order_ref = passorder(23, 1101, self.acc(), stock, pr_type, price, volume, 'qmt', 2, self.ctx())
self.write(json.dumps({
"status": "success", "action": "buy", "stock": stock,
"order_ref": str(order_ref) if order_ref else"unknown"
}, ensure_ascii=False))
except Exception as e:
logger.exception("买入下单异常")
raise HTTPError(400, f"下单失败: {str(e)}")

 
然后在外部你的策略代码里面加入:
 
client = QMTClient() 
client.buy_stock("600000.SZ", 6.80, 100)

 
即可完成下单,然后可以通过API查询持仓,获取最新状态。这样就不用把你策略嵌入到QMT里。

完整源码在github: https://github.com/Rockyzsu/QMT,(不确定是否AI封装的函数全部正确,会偶尔更新一下)

或者关注公众号"可转债量化分析",后台回复关键字:QMT封装
 
 

miniQMT要被暂停使用了吗

QMT李魔佛 发表了文章 • 0 个评论 • 516 次浏览 • 2026-07-01 18:26 • 来自相关话题

目前确实收到消息,国X证券的miniQMT要被暂停使用。 【国X证券的新开的用户没有miniQMT,存量的暂时不影响,后续会停止】
 

国X证券的通知:




 
但其他券商没有收到这个消息,所以其他券商依然能够正常使用。
 
从反馈的情况来看,是国X证券大面积推广这个miniQMT,导致同行反馈,被举报导致的。
 
其他规模不大的券商目前来看依然是安全的。
 
  查看全部
目前确实收到消息,国X证券的miniQMT要被暂停使用。 【国X证券的新开的用户没有miniQMT,存量的暂时不影响,后续会停止】
 

国X证券的通知:
微信图片_2026-07-01_182410_216.jpg

 
但其他券商没有收到这个消息,所以其他券商依然能够正常使用。
 
从反馈的情况来看,是国X证券大面积推广这个miniQMT,导致同行反馈,被举报导致的。
 
其他规模不大的券商目前来看依然是安全的。
 
 

ptrade支持redis吗

Ptrade李魔佛 发表了文章 • 0 个评论 • 290 次浏览 • 2026-06-25 13:49 • 来自相关话题

目前是不支持的。
在ptrade的研究页面里面,输入:
import redis就是直接报错:
/usr/local/python3.5/lib/python3.5/site-packages/fly/data/quotation.py:133: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-1-92da440a6abd> in <module>()
3 except Exception as e:
4 from fly.data.quotation import *
----> 5 import redis

ImportError: No module named 'redis'





 
  查看全部
目前是不支持的。
在ptrade的研究页面里面,输入:
import redis
就是直接报错:
/usr/local/python3.5/lib/python3.5/site-packages/fly/data/quotation.py:133: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-1-92da440a6abd> in <module>()
3 except Exception as e:
4 from fly.data.quotation import *
----> 5 import redis

ImportError: No module named 'redis'


20260625134823.png

 
 

国盛ptrade的版本升级到3.11,但无法连接外部网络了 | 最新更新:可以申请访问

Ptrade李魔佛 发表了文章 • 0 个评论 • 356 次浏览 • 2026-06-24 20:52 • 来自相关话题

########### 最新 ########
最新更新,现在又能够申请访问了,
 不少人说国盛的ptrade内置python版本低,是3.5的。
 
现在迎来了大版本升级,新开户的用户会升级到内置python3.11,运行效率会有相应的提高。
 





 
 
但坏消息是,原本支持的访问外网的功能会被移除。也就是新用户只能使用内置的ptrade数据。没法访问自己的数据库,也没法爬虫,没法接收自己的信号。
 
requests请求qq.com 超时:





 
 后续更新:
 
可以申购额外的访问权限,只需要提供下你要访问的域名地址或者IP端口。比如你的mysql服务器ip,既可以让ptrade访问你的服务器。从而获取数据。
 
需要开通国盛ptrade的,可以扫码联系:






 

 
  查看全部
########### 最新 ########
最新更新,现在又能够申请访问了,
 不少人说国盛的ptrade内置python版本低,是3.5的。
 
现在迎来了大版本升级,新开户的用户会升级到内置python3.11,运行效率会有相应的提高。
 

微信图片_20260612162956_160_1393.png

 
 
但坏消息是,原本支持的访问外网的功能会被移除。也就是新用户只能使用内置的ptrade数据。没法访问自己的数据库,也没法爬虫,没法接收自己的信号。
 
requests请求qq.com 超时:

微信图片_20260612162142_154_1393.png

 
 后续更新:
 
可以申购额外的访问权限,只需要提供下你要访问的域名地址或者IP端口。比如你的mysql服务器ip,既可以让ptrade访问你的服务器。从而获取数据。
 
需要开通国盛ptrade的,可以扫码联系:


微信图片_20260701163830_114_488.png

 

 
 

华泰证券支持QMT和Ptrade吗?

量化交易李魔佛 发表了文章 • 0 个评论 • 800 次浏览 • 2026-04-28 17:21 • 来自相关话题

### 2026-08 发布
已更新。
目前华泰新增支持QMT。门槛入金50w。
 
 
### 2026-05 发布的 ####不支持。
目前为止,华泰没有Ptrade和QMT,华泰的量化平台用的是Matic。
 
好多AI读取的垃圾语料, 污染了返回结果.





 
里面有个模块MQuant。用于编写量化程序,支持python和C++
 





 
 
matic文档:
https://github.com/Rockyzsu/matic.git
 
需要开通的朋友可以扫码关注公众号,获取开通联系方式:

  查看全部
### 2026-08 发布
已更新。
目前华泰新增支持QMT。门槛入金50w。
 
 
### 2026-05 发布的 ####不支持。
目前为止,华泰没有Ptrade和QMT,华泰的量化平台用的是Matic。
 
好多AI读取的垃圾语料, 污染了返回结果.

20260428171938_副本.jpg

 
里面有个模块MQuant。用于编写量化程序,支持python和C++
 

20260428171239.png

 
 
matic文档:
https://github.com/Rockyzsu/matic.git
 
需要开通的朋友可以扫码关注公众号,获取开通联系方式:

 

湘财证券开通ptrade门槛

Ptrade李魔佛 发表了文章 • 0 个评论 • 1343 次浏览 • 2026-03-04 16:56 • 来自相关话题

湘财证券是最早支持ptrade券商,其在米哥(tushare的作者)的合作下,把tushare集成到ptrade里。
 
其文档地址: http://tushare.xcsc.com:7173/document/2




 
所以湘财证券也有内置的免费的tushare,
 
import xcsc_tushare as ts 它不限制积分,还可以免费一直使用。
 
xcsc tushare的数据相比官网的tushare会少一些数据。比如爬虫部分的数据。
 
目前湘财的费率是
股票 万0.854
ETF/LOF 万0.5
可转债 万1开通ptrade的门槛是入金1w,足够低。





 
目前湘财证券的ptrade是基于python3.11的最新版本。
 
需要的朋友可以咨询公众号: 查看全部
湘财证券是最早支持ptrade券商,其在米哥(tushare的作者)的合作下,把tushare集成到ptrade里。
 
其文档地址: http://tushare.xcsc.com:7173/document/2
20260304162320.png

 
所以湘财证券也有内置的免费的tushare,
 
import xcsc_tushare as ts 
它不限制积分,还可以免费一直使用。
 
xcsc tushare的数据相比官网的tushare会少一些数据。比如爬虫部分的数据。
 
目前湘财的费率是
股票 万0.854
ETF/LOF 万0.5
可转债 万1
开通ptrade的门槛是入金1w,足够低。

20260304165424.png

 
目前湘财证券的ptrade是基于python3.11的最新版本。
 
需要的朋友可以咨询公众号:

ptrade上 2个策略A和B同时运行,A策略成交时触发的回调事件会被B策略捕获吗?

Ptrade李魔佛 发表了文章 • 0 个评论 • 986 次浏览 • 2026-02-12 01:10 • 来自相关话题

ptrade上最多同时运行5个策略。
 
那么如果A策略有股票成交,那么会触发A策略里面的成交回调函数on_trade_response,但B策略里面的on_trade_response 不会捕获这个成交所触发的成交回调。
 
更新关于ptrade的解答,可以关注:
 
https://ptradeapi.com/hub/data/qa_data.html
 
可以关注公众号或者星球。 查看全部
ptrade上最多同时运行5个策略。
 
那么如果A策略有股票成交,那么会触发A策略里面的成交回调函数on_trade_response,但B策略里面的on_trade_response 不会捕获这个成交所触发的成交回调。
 
更新关于ptrade的解答,可以关注:
 
https://ptradeapi.com/hub/data/qa_data.html
 
可以关注公众号或者星球。

代理工具Proxifier注册码 生成脚本

网络安全李魔佛 发表了文章 • 0 个评论 • 1054 次浏览 • 2026-01-12 01:45 • 来自相关话题

代理工具Proxifier 可以定向某个程序或者进程,使用哪一个代理。
如果你的anti-gravity无法登录,可以使用这个软件试试。
 
但过了30天的试用,会变成收费的。
 GitHub上有个python包,可以直接生成注册码的。
 

$ python Proxifier_Keygen.py -v setup
CLOT5-J3GYK-VGPYE-BDPMN-WKWMU

$ python Proxifier_Keygen.py -v portable
NY8VX-Z2NH2-TFXWY-IL5YC-GARRM

$ python Proxifier_Keygen.py -v mac
57J8Z-D2QD5-A37WU-LEG4E-43WYH
然后使用上面的注册码直接注册:
 





 
 
成功!
 
​需要的朋友可以直接下载:

https://github.com/y9nhjy/Proxifier-Keygen/


亲测好用,能用!​ 查看全部
代理工具Proxifier 可以定向某个程序或者进程,使用哪一个代理。
如果你的anti-gravity无法登录,可以使用这个软件试试。
 
但过了30天的试用,会变成收费的。
 GitHub上有个python包,可以直接生成注册码的。
 

$ python Proxifier_Keygen.py -v setup
CLOT5-J3GYK-VGPYE-BDPMN-WKWMU

$ python Proxifier_Keygen.py -v portable
NY8VX-Z2NH2-TFXWY-IL5YC-GARRM

$ python Proxifier_Keygen.py -v mac
57J8Z-D2QD5-A37WU-LEG4E-43WYH

然后使用上面的注册码直接注册:
 

b21e011e8bf74be9839697ba7be424cb.png

 
 
成功!
 
​需要的朋友可以直接下载:

https://github.com/y9nhjy/Proxifier-Keygen/


亲测好用,能用!​

山西证券开通ptrade门槛 万0.854免5 | 山西证券ptrade下载地址

Ptrade李魔佛 发表了文章 • 0 个评论 • 1614 次浏览 • 2025-12-27 19:00 • 来自相关话题

山西证券的ptrade可以自由切换python3.5和python3.11 二者的API会有一定的区别。




主要python3.11移除了pandas里的panel格式。导致之前ptrade获取到的3维数据不再兼容当前的最新版本。
 
山西证券ptrade下载地址: 
山西证券ptrade实盘下载链接
 
山西证券ptrade仿真模拟下载链接
 
 
其实,个人感觉,现在的ptrade更加好用,不用再考虑不同的数据输入,来判读不同的返回结果。
 
get_history 函数,无论什么情况,都是返回dataframe格式。字段也是完全统一了
 
使用 sub_df = df[df['code']=code]
就能获取不同的输入格式。
 
换以前,如果传入的是一个字段 get_history(fields='close') 和get_history(fields=['low','close']) 
 
返回的格式还得区分处理。 
 
现在统一了,更加好用了。
 
目前山西证券ptrade开通门槛很低,入金5w就可以开通,而且费率是免5,万0.854免5,0.1起步,目前这么多券商里面是属于最低的了。 
 
需要的朋友可以联系微信公众号开通:
 

  查看全部
山西证券的ptrade可以自由切换python3.5和python3.11 二者的API会有一定的区别。
微信图片_20251222113945_360_1808.png

主要python3.11移除了pandas里的panel格式。导致之前ptrade获取到的3维数据不再兼容当前的最新版本。
 
山西证券ptrade下载地址: 
山西证券ptrade实盘下载链接
 
山西证券ptrade仿真模拟下载链接
 
 
其实,个人感觉,现在的ptrade更加好用,不用再考虑不同的数据输入,来判读不同的返回结果。
 
get_history 函数,无论什么情况,都是返回dataframe格式。字段也是完全统一了
 
使用 sub_df = df[df['code']=code]
就能获取不同的输入格式。
 
换以前,如果传入的是一个字段 get_history(fields='close') 和get_history(fields=['low','close']) 
 
返回的格式还得区分处理。 
 
现在统一了,更加好用了。
 
目前山西证券ptrade开通门槛很低,入金5w就可以开通,而且费率是免5,万0.854免5,0.1起步,目前这么多券商里面是属于最低的了。 
 
需要的朋友可以联系微信公众号开通:
 

 

东莞证券ptrade的编程功能模块被移除了

Ptrade李魔佛 发表了文章 • 0 个评论 • 1503 次浏览 • 2025-11-23 13:17 • 来自相关话题

东莞证券支持ptrade和qmt,miniQMT , 
 





 
本来门槛不太高,作为备用也是不错的.
 
也不知道上面领导怎么想的. 把编程模块移走了.
 
目前就剩ptrade上内置的一些基础功能
 

 
无法通过python编程实现自己的自定义策略.
 
有点可惜.
 
  查看全部
东莞证券支持ptrade和qmt,miniQMT , 
 

2025-11-23_13-16-42.png

 
本来门槛不太高,作为备用也是不错的.
 
也不知道上面领导怎么想的. 把编程模块移走了.
 
目前就剩ptrade上内置的一些基础功能
 

 
无法通过python编程实现自己的自定义策略.
 
有点可惜.
 
 

ubuntu24.04的内置的ibus中文智能输入法好垃圾

Linux李魔佛 发表了文章 • 0 个评论 • 1261 次浏览 • 2025-11-22 23:34 • 来自相关话题

颇为无奈.
搜狗输入法不知道ubuntu24.04的wayland桌面, 因为ubuntu240.4默认桌面不再是xorg. 
如果需要用搜狗输入法,就必须是切换到xorg.
 
但是切换到xorg,系统里的chrome直接打不开, 需要对chrome进行降级...
 
无语了.
 
只能切换回去,用内置的智能中文输入法.
 





 
这输入法过于脑残.... 不太适合长句子, 不适合经常打错拼音的人...
 
 
 
  查看全部
颇为无奈.
搜狗输入法不知道ubuntu24.04的wayland桌面, 因为ubuntu240.4默认桌面不再是xorg. 
如果需要用搜狗输入法,就必须是切换到xorg.
 
但是切换到xorg,系统里的chrome直接打不开, 需要对chrome进行降级...
 
无语了.
 
只能切换回去,用内置的智能中文输入法.
 

2025-11-22_23-32-46.png

 
这输入法过于脑残.... 不太适合长句子, 不适合经常打错拼音的人...
 
 
 
 

ptrade不支持reits,连持仓已有的也读取不出来

Ptrade李魔佛 发表了文章 • 0 个评论 • 1268 次浏览 • 2025-11-18 12:45 • 来自相关话题

之前有个老账号,reits打新中的一只retis基金。
 
然后调用get_positions获取持仓,居然为空。
 
开始以为我程序代码后缀有问题,百思不得其解,反复检查之后,突然想起目前的ptrade不支持reits品种。
 
但没想到居然这个持仓代码都读取不到。。。
 
  查看全部
之前有个老账号,reits打新中的一只retis基金。
 
然后调用get_positions获取持仓,居然为空。
 
开始以为我程序代码后缀有问题,百思不得其解,反复检查之后,突然想起目前的ptrade不支持reits品种。
 
但没想到居然这个持仓代码都读取不到。。。
 
 

指数回来了,收益没回来!十年前 4000 点买入,多少股票至今没回本?

股票李魔佛 发表了文章 • 0 个评论 • 1629 次浏览 • 2025-10-29 08:58 • 来自相关话题

今天股市的头条新闻都是上证指数盘中冲破4000点,突破十年的高点。

可惜只持续了40分钟,收盘时跌回到3988点。

不过本轮并不是全面的牛市,没在暴涨板块的股民自嘲:

8000点的农行,6000点的科技,4000点的红利,剩下的全是2000点的难兄难弟。


十年光阴荏苒,上证指数上一次收盘价超过 4000 点是在 2015 年 7 月 24 日,当日收于 4070.91 点。

指数重回4000点,而又有多少股票的股价能够重回十年前4000点的时候股价呢?或者说还有多少股票依然还在以前4000点的时候的股价还低呢?

问了一下豆包,deepseek这个问题,结果说找不到现成的数据,无法分析。

迅速在ptrade上写个代码查询一下。

2015 年 7 月 24 日 市场有有沪深股票2783只,而当时的2783只股票今天依然在市场交易的有2567只。大约有216只股票退市(少数是合并、收购,大部分原因是退市)。

也就是十年前扔飞镖随便买一只股票,会有7.7%的概率买到退市股,并且是那种目前彻底退出的沪深板块,流入到退市板块。

下面列出期间的退市股(含收购合并),数据较多,对细节不感兴趣的可直接滚动到最后。



















依然在交易的排除掉7只停牌的股票,有2559只存续交易的股票。

跌幅榜的排名。






不少跌幅达到80%-90%,不少是当时的牛股,全通交易,怡亚通,ST易购(苏宁易购),康美药业,万达电影等等。

跌幅为0的排到1662名了。数据太长,贴不下了。





 
也就是上证指数回到上一次的4000点,有1661只个股依然没有回到当时的股价,占比达到了64.9%。(注意,上面的股价是前复权的价格,是已经包含了分红的全收益价格。)

看完这个数据整个人都不太好受了,股民的十年青春在股海沉浮,最终超过一半的个股还没有回到牛市的起点。 查看全部
今天股市的头条新闻都是上证指数盘中冲破4000点,突破十年的高点。

可惜只持续了40分钟,收盘时跌回到3988点。

不过本轮并不是全面的牛市,没在暴涨板块的股民自嘲:


8000点的农行,6000点的科技,4000点的红利,剩下的全是2000点的难兄难弟。



十年光阴荏苒,上证指数上一次收盘价超过 4000 点是在 2015 年 7 月 24 日,当日收于 4070.91 点。

指数重回4000点,而又有多少股票的股价能够重回十年前4000点的时候股价呢?或者说还有多少股票依然还在以前4000点的时候的股价还低呢?

问了一下豆包,deepseek这个问题,结果说找不到现成的数据,无法分析。

迅速在ptrade上写个代码查询一下。

2015 年 7 月 24 日 市场有有沪深股票2783只,而当时的2783只股票今天依然在市场交易的有2567只。大约有216只股票退市(少数是合并、收购,大部分原因是退市)。

也就是十年前扔飞镖随便买一只股票,会有7.7%的概率买到退市股,并且是那种目前彻底退出的沪深板块,流入到退市板块。

下面列出期间的退市股(含收购合并),数据较多,对细节不感兴趣的可直接滚动到最后。


20251029083609.png



20251029083620.png


20251029083632.png



依然在交易的排除掉7只停牌的股票,有2559只存续交易的股票。

跌幅榜的排名。

20251029012759.png


不少跌幅达到80%-90%,不少是当时的牛股,全通交易,怡亚通,ST易购(苏宁易购),康美药业,万达电影等等。

跌幅为0的排到1662名了。数据太长,贴不下了。

20251029013545.png

 
也就是上证指数回到上一次的4000点,有1661只个股依然没有回到当时的股价,占比达到了64.9%。(注意,上面的股价是前复权的价格,是已经包含了分红的全收益价格。)

看完这个数据整个人都不太好受了,股民的十年青春在股海沉浮,最终超过一半的个股还没有回到牛市的起点。

东北证券QMT miniQMT (NET专业版)万0.854免5

QMT李魔佛 发表了文章 • 0 个评论 • 4263 次浏览 • 2025-10-16 23:05 • 来自相关话题

东北证券是目前为数不多的支持miniQMT,而且免5,门槛也不高的券商。入金30w,可以绵五,开通QMT、miniQMT.
 
东北证券的qmt名称叫NET专业版。
 





 
东北证券的QMT支持python和vba 两种语言。








开通后可加入量化技术群。
扫码联系开通。 查看全部
东北证券是目前为数不多的支持miniQMT,而且免5,门槛也不高的券商。入金30w,可以绵五,开通QMT、miniQMT.
 
东北证券的qmt名称叫NET专业版。
 

20251016225921.png

 
东北证券的QMT支持python和vba 两种语言。
20251016230024.png

20251016230636.png

开通后可加入量化技术群。
扫码联系开通。

ptrade支持北交所股票量化交易吗?

Ptrade李魔佛 发表了文章 • 0 个评论 • 1779 次浏览 • 2025-10-09 11:36 • 来自相关话题

根据当前的ptrade文档,各大券商的ptrade依然不支持北交所股票。
 
文档里面搜不到内容,股票后缀使用 北交所代码+ SS后缀,或者 .BJ 后缀,获取不到任何的数据。
 
ptrade api 文档:
https://ptradeapi.com
  查看全部
根据当前的ptrade文档,各大券商的ptrade依然不支持北交所股票。
 
文档里面搜不到内容,股票后缀使用 北交所代码+ SS后缀,或者 .BJ 后缀,获取不到任何的数据。
 
ptrade api 文档:
https://ptradeapi.com
 

山西证券Ptrade 万一免五开户

Ptrade李魔佛 发表了文章 • 0 个评论 • 2022 次浏览 • 2025-09-26 01:44 • 来自相关话题

山西证券的ptrade可以切换2个python版本,一个是旧的python3.5, 一个是新的python3.11
 
本身山西证券的ptrade开通门槛不高, 入金5万就能开通ptrade,永久使用,不收费.
 





 
 
不过默认费率比较高, 也不免5.
 
不过入金5w后,是可以调到万一免5的.
 
因为高顿教育的量化课程使用的是山西证券作为 实例,所以也有不少的群众基础.
 
需要的可以扫码关注开通.
 

  查看全部
山西证券的ptrade可以切换2个python版本,一个是旧的python3.5, 一个是新的python3.11
 
本身山西证券的ptrade开通门槛不高, 入金5万就能开通ptrade,永久使用,不收费.
 

Screenshot_from_2025-09-26_01-43-20.png

 
 
不过默认费率比较高, 也不免5.
 
不过入金5w后,是可以调到万一免5的.
 
因为高顿教育的量化课程使用的是山西证券作为 实例,所以也有不少的群众基础.
 
需要的可以扫码关注开通.
 

 

Ptrade ETF轮动,收益率秒杀白云飞

Ptrade李魔佛 发表了文章 • 0 个评论 • 2016 次浏览 • 2025-09-11 20:07 • 来自相关话题

白云飞策略无非就是靠牛市来的时候的收益。
 
如果抛去924行情,和今年的创业板+科创板,CPO,芯片,那么它的收益率是负的。漫长的3年回撤期,除非是闲钱很久不用的钱,否则谁也无法忍受这么长的回撤。
 
而ETF日,周净增轮动+动量+板块温度计+评分因子,可以做到超高的收益率。





 
使用ptrade进行回测。
 
使用ptrade进行实盘。
 
TBC
 
  查看全部
白云飞策略无非就是靠牛市来的时候的收益。
 
如果抛去924行情,和今年的创业板+科创板,CPO,芯片,那么它的收益率是负的。漫长的3年回撤期,除非是闲钱很久不用的钱,否则谁也无法忍受这么长的回撤。
 
而ETF日,周净增轮动+动量+板块温度计+评分因子,可以做到超高的收益率。

微信图片_20250911200648.jpg

 
使用ptrade进行回测。
 
使用ptrade进行实盘。
 
TBC
 
 

ptrade计算EMA指标,对比同花顺

Ptrade李魔佛 发表了文章 • 0 个评论 • 2220 次浏览 • 2025-09-01 23:04 • 来自相关话题

同花顺 EMA 与标准 EMA 的核心区别

初始值计算:

标准 EMA:以周期内的第一个 SMA(简单移动平均)作为初始值
同花顺 EMA:直接以第一根 K 线的收盘价作为初始 EMA 值

计算逻辑:
两者在后续递推计算上一致,均使用公式:
plaintext
EMA(今日) = (2/(周期+1)) × 收盘价(今日) + (1-2/(周期+1)) × EMA(昨日)

实际影响:
由于初始值不同,在计算初期(小于周期长度的 K 线数量时),两种方法结果差异较大;随着数据增多,差异会逐渐缩小。

使用时只需将你的收盘价数据整理成 pandas Series 格式,调用该函数即可得到与同花顺软件完全一致的 EMA 计算结果,便于策略回测和指标对比。

import pandas as pd

def tonghuashun_ema(close_series, period):
"""
按照同花顺的算法计算EMA指标

参数:
close_series: pd.Series,包含收盘价数据,索引为日期
period: int,EMA周期(如5、10、50等)

返回:
pd.Series,计算得到的EMA指标序列
"""
if len(close_series) < 1:
return pd.Series(dtype='float64')

# 平滑系数
alpha = 2 / (period + 1)

# 初始化EMA序列
ema = pd.Series(index=close_series.index, dtype='float64')

# 同花顺特色:第一根EMA值等于当日收盘价
ema.iloc[0] = close_series.iloc[0]

# 从第二根开始使用递推公式计算
for i in range(1, len(close_series)):
ema.iloc[i] = alpha * close_series.iloc[i] + (1 - alpha) * ema.iloc[i-1]

return ema

# 示例:计算同花顺EMA(12)和EMA(26)(常用的MACD组件)
if __name__ == "__main__":
import numpy as np

# 生成模拟数据(50个交易日收盘价)
dates = pd.date_range(start='2023-01-01', periods=50)
np.random.seed(42) # 固定随机种子,保证结果可复现
close_prices = np.cumsum(np.random.randn(50)) + 100 # 模拟价格波动
close_series = pd.Series(close_prices, index=dates, name='close')

# 计算同花顺EMA(12)和EMA(26)
ema12 = tonghuashun_ema(close_series, 12)
ema26 = tonghuashun_ema(close_series, 26)

# 合并结果并显示
result = pd.DataFrame({
'收盘价': close_series,
'EMA12(同花顺)': ema12,
'EMA26(同花顺)': ema26
})

print("同花顺EMA指标计算结果(前10行):")
print(result.head(10))
print("\n同花顺EMA指标计算结果(最后10行):")
print(result.tail(10))

然后直接把上面代码贴入ptrade,封装成函数,传入日线数据即可使用。
  查看全部
同花顺 EMA 与标准 EMA 的核心区别

初始值计算:

标准 EMA:以周期内的第一个 SMA(简单移动平均)作为初始值
同花顺 EMA:直接以第一根 K 线的收盘价作为初始 EMA 值

计算逻辑:
两者在后续递推计算上一致,均使用公式:
plaintext
EMA(今日) = (2/(周期+1)) × 收盘价(今日) + (1-2/(周期+1)) × EMA(昨日)

实际影响:
由于初始值不同,在计算初期(小于周期长度的 K 线数量时),两种方法结果差异较大;随着数据增多,差异会逐渐缩小。

使用时只需将你的收盘价数据整理成 pandas Series 格式,调用该函数即可得到与同花顺软件完全一致的 EMA 计算结果,便于策略回测和指标对比。

import pandas as pd

def tonghuashun_ema(close_series, period):
"""
按照同花顺的算法计算EMA指标

参数:
close_series: pd.Series,包含收盘价数据,索引为日期
period: int,EMA周期(如5、10、50等)

返回:
pd.Series,计算得到的EMA指标序列
"""
if len(close_series) < 1:
return pd.Series(dtype='float64')

# 平滑系数
alpha = 2 / (period + 1)

# 初始化EMA序列
ema = pd.Series(index=close_series.index, dtype='float64')

# 同花顺特色:第一根EMA值等于当日收盘价
ema.iloc[0] = close_series.iloc[0]

# 从第二根开始使用递推公式计算
for i in range(1, len(close_series)):
ema.iloc[i] = alpha * close_series.iloc[i] + (1 - alpha) * ema.iloc[i-1]

return ema

# 示例:计算同花顺EMA(12)和EMA(26)(常用的MACD组件)
if __name__ == "__main__":
import numpy as np

# 生成模拟数据(50个交易日收盘价)
dates = pd.date_range(start='2023-01-01', periods=50)
np.random.seed(42) # 固定随机种子,保证结果可复现
close_prices = np.cumsum(np.random.randn(50)) + 100 # 模拟价格波动
close_series = pd.Series(close_prices, index=dates, name='close')

# 计算同花顺EMA(12)和EMA(26)
ema12 = tonghuashun_ema(close_series, 12)
ema26 = tonghuashun_ema(close_series, 26)

# 合并结果并显示
result = pd.DataFrame({
'收盘价': close_series,
'EMA12(同花顺)': ema12,
'EMA26(同花顺)': ema26
})

print("同花顺EMA指标计算结果(前10行):")
print(result.head(10))
print("\n同花顺EMA指标计算结果(最后10行):")
print(result.tail(10))

然后直接把上面代码贴入ptrade,封装成函数,传入日线数据即可使用。
 

申万宏源 Ptrade / QMT/miniQMT 免5 开通

QMT李魔佛 发表了文章 • 0 个评论 • 2610 次浏览 • 2025-08-07 19:01 • 来自相关话题

费率非常低,万0.854,免5 !
支持QMT,miniQMT和Ptrade。
 
量化功能应有尽有,是目前为止为数不多的有miniQMT的免5券商。
 











 
 
费率低,ETF,可转债均为万0.5
 
线上开户,需要的朋友可以扫码联系开通。
  查看全部
费率非常低,万0.854,免5 !
支持QMT,miniQMT和Ptrade。
 
量化功能应有尽有,是目前为止为数不多的有miniQMT的免5券商。
 

20250807190145_副本.png



20250807185930_副本.png

 
 
费率低,ETF,可转债均为万0.5
 
线上开户,需要的朋友可以扫码联系开通。
 

ptrade获取集合竞价数据

Ptrade李魔佛 发表了文章 • 0 个评论 • 2334 次浏览 • 2025-08-07 18:48 • 来自相关话题

新版的ptrade已经可以获取集合竞价的数据:
 date = '20250806'
stocks = ['300333.SZ']
data = get_trend_data(date=date, stocks=stocks)

# 返回数据
{'300333.SZ': {'time_stamp': 202508060930,
'hq_px': 14.1,
'wavg_px': 14.1,
'business_amount': 40300,
'business_balance': 568230,
'amount': 0}}
在实盘,回测,研究里面就能够使用





公众号:可转债量化分析

 
星球
  查看全部
新版的ptrade已经可以获取集合竞价的数据:
 
date = '20250806'
stocks = ['300333.SZ']
data = get_trend_data(date=date, stocks=stocks)

# 返回数据
{'300333.SZ': {'time_stamp': 202508060930,
'hq_px': 14.1,
'wavg_px': 14.1,
'business_amount': 40300,
'business_balance': 568230,
'amount': 0}}

在实盘,回测,研究里面就能够使用

20250807184749.png

公众号:可转债量化分析

 
星球
 

ptrade不同券商 数据质量 之 ETF数据质量残次不齐

Ptrade李魔佛 发表了文章 • 0 个评论 • 2410 次浏览 • 2025-07-23 18:28 • 来自相关话题

其实用的函数是

etf_list = get_etf_list()
 
然后在不同的券商上运行。
 
国盛得到的数据:2025-07-23 16:07:15 - INFO - 公众号:可转债量化分析 ---- start ----
2025-07-23 16:08:00 - INFO - start func
2025-07-23 16:08:00 - INFO - 公众号:可转债量化分析
2025-07-23 16:08:00 - INFO - 660
得到的ETF数据有660只。
 
同样的代码,放到国金的ptrade上运行,得到 2025-07-23 15:45:10 - INFO - 当前服务器配置为:交易时间段服务器重启后,执行拉起本交易操作
2025-07-23 15:45:12 - INFO - 公众号:可转债量化分析 ---- start ----
2025-07-23 15:46:00 - INFO - start func
2025-07-23 15:46:00 - INFO - 公众号:可转债量化分析
2025-07-23 15:46:00 - INFO - 1043有1000只的ETF。
 
然后把日志导出到本地,用python求解一下不同的数据

(py11) D:\github\stock_strategy\api_validation>python etf-compare.py
516330.SS
561320.SS
159265.SZ
560980.SS
159813.SZ
159859.SZ
561700.SS
511620.SS
159898.SZ
159969.SZ
512380.SS
159972.SZ
159857.SZ
516300.SS
588200.SS
510180.SS
517520.SS
515680.SS
159618.SZ
159827.SZ
561980.SS
511820.SS
515150.SS
159701.SZ
159743.SZ
159623.SZ
159991.SZ
510660.SS
159681.SZ
159845.SZ
515890.SS
515850.SS
515300.SS
159510.SZ
511920.SS
159805.SZ
159610.SZ
159929.SZ
517170.SS
530800.SS
510630.SS
159535.SZ
561790.SS
159842.SZ
510150.SS
560580.SS
517800.SS
515790.SS
159806.SZ
516530.SS
159873.SZ
159207.SZ
515320.SS
516750.SS
159635.SZ
515290.SS
515030.SS
561130.SS
588150.SS
560680.SS
560280.SS
561570.SS
515760.SS
515900.SS
511090.SS
159643.SZ
588040.SS
159968.SZ
512520.SS
159322.SZ
516520.SS
159841.SZ
159359.SZ
515160.SS
511260.SS
516710.SS
159698.SZ
588230.SS
159786.SZ
562900.SS
159309.SZ
159358.SZ
563800.SS
159677.SZ
159551.SZ
517850.SS
159899.SZ
159862.SZ
159961.SZ
159779.SZ
515580.SS
159836.SZ
510060.SS
515010.SS
159355.SZ
560700.SS
159885.SZ
517880.SS
159864.SZ
159640.SZ
510270.SS
560150.SS
515750.SS
159003.SZ
159748.SZ
515330.SS
159730.SZ
159994.SZ
516290.SS
516080.SS
560510.SS
159005.SZ
159306.SZ
159378.SZ
512960.SS
159680.SZ
159847.SZ
159310.SZ
159587.SZ
588400.SS
515770.SS
159393.SZ
159657.SZ
516220.SS
159575.SZ
560350.SS
159997.SZ
515110.SS
159713.SZ
159880.SZ
159576.SZ
159520.SZ
562360.SS
588930.SS
518660.SS
159669.SZ
159206.SZ
159621.SZ
159928.SZ
159731.SZ
516050.SS
562390.SS
159831.SZ
516510.SS
159913.SZ
159633.SZ
511190.SS
512670.SS
516780.SS
517110.SS
159820.SZ
159690.SZ
159881.SZ
561230.SS
510010.SS
159992.SZ
159666.SZ
159725.SZ
159870.SZ
511010.SS
515060.SS
560860.SS
515100.SS
159993.SZ
512820.SS
159825.SZ
511900.SS
515990.SS
159849.SZ
563330.SS
512240.SS
159974.SZ
159910.SZ
159638.SZ
512890.SS
159641.SZ
159875.SZ
159682.SZ
159796.SZ
159887.SZ
159620.SZ
510880.SS
159225.SZ
159720.SZ
510410.SS
159883.SZ
159931.SZ
159363.SZ
588100.SS
561200.SS
560550.SS
159791.SZ
159229.SZ
159982.SZ
159647.SZ
560610.SS
159386.SZ
159559.SZ
159630.SZ
159795.SZ
511200.SS
512510.SS
561260.SS
159589.SZ
562860.SS
560090.SS
159889.SZ
159707.SZ
588320.SS
159678.SZ
510680.SS
159863.SZ
515980.SS
159543.SZ
510100.SS
159679.SZ
512040.SS
530000.SS
511770.SS
159838.SZ
159553.SZ
159998.SZ
515080.SS
588110.SS
561990.SS
159729.SZ
515120.SS
159739.SZ
159856.SZ
159800.SZ
510020.SS
510650.SS
159909.SZ
517550.SS
515630.SS
159685.SZ
515960.SS
515380.SS
561910.SS
515860.SS
518680.SS
588250.SS
159603.SZ
159339.SZ
159778.SZ
159958.SZ
516120.SS
588090.SS
159781.SZ
562300.SS
159761.SZ
517080.SS
159617.SZ
516060.SS
588680.SS
511580.SS
159521.SZ
159770.SZ
159397.SZ
159888.SZ
159816.SZ
516880.SS
159716.SZ
516910.SS
159209.SZ
588880.SS
562800.SS
515650.SS
561590.SS
159715.SZ
159552.SZ
512280.SS
588830.SS
516790.SS
159656.SZ
588460.SS
561350.SS
511850.SS
516830.SS
515530.SS
517120.SS
159658.SZ
563360.SS
517010.SS
516630.SS
159608.SZ
159959.SZ
563300.SS
563350.SS
516650.SS
561920.SS
561310.SS
516460.SS
512680.SS
159782.SZ
515360.SS
159628.SZ
159629.SZ
560260.SS
512730.SS
588010.SS
159697.SZ
588760.SS
513890.SS
159977.SZ
516500.SS
561500.SS
512220.SS
510550.SS
159555.SZ
588300.SS
530300.SS
159649.SZ
159395.SZ
560560.SS
516950.SS
511810.SS
561330.SS
159732.SZ
511600.SS
562890.SS
516550.SS
159717.SZ
159797.SZ
159970.SZ
561900.SS
561560.SS
159890.SZ
159721.SZ
560190.SS
159366.SZ
515950.SS
511950.SS
159908.SZ
159861.SZ
159517.SZ
159975.SZ
159625.SZ
159830.SZ
510050.SS
159895.SZ
517900.SS
159652.SZ
510990.SS
159811.SZ
159852.SZ
517000.SS
159930.SZ
159840.SZ
515070.SS
511670.SS
159807.SZ
561550.SS
511980.SS
159675.SZ
159611.SZ
560880.SS
515660.SS
560530.SS
511830.SS
159766.SZ
159631.SZ
561190.SS
512150.SS
561950.SS
517360.SS
518880.SS
510850.SS
159768.SZ
159876.SZ
159398.SZ
159865.SZ
515600.SS
159360.SZ
159305.SZ
511970.SS
159671.SZ
588310.SS
516770.SS
159320.SZ
516670.SS
517100.SS
159572.SZ
159839.SZ
159627.SZ
159665.SZ
159790.SZ
563520.SS
511520.SS
511690.SS
561160.SS
159723.SZ
159216.SZ
159886.SZ
510190.SS
159798.SZ
562590.SS
159843.SZ
159867.SZ
159663.SZ
159619.SZ
516090.SS
515090.SS
560080.SS
159869.SZ
159872.SZ
159736.SZ
560900.SS
588950.SS
159855.SZ
516150.SS
516960.SS
159828.SZ
517050.SS
159851.SZ
159645.SZ
511930.SS
159935.SZ
159703.SZ
517200.SS
512020.SS
159787.SZ
588240.SS
159362.SZ
517990.SS
561960.SS
562880.SS
159971.SZ
159760.SZ
159871.SZ
513630.SS
561380.SS
不同的ETF数量: 432这400多只的ETF是在国盛上缺失的。
这数据有点惊人.....
 
如果要用国盛,可以用国金的把ETF列表导出到txt,然后上传到国盛,然后在程序中读取这个etf列表。
  查看全部
其实用的函数是

etf_list = get_etf_list()
 
然后在不同的券商上运行。
 
国盛得到的数据:
2025-07-23 16:07:15 - INFO - 公众号:可转债量化分析 ---- start ---- 
2025-07-23 16:08:00 - INFO - start func
2025-07-23 16:08:00 - INFO - 公众号:可转债量化分析
2025-07-23 16:08:00 - INFO - 660

得到的ETF数据有660只。
 
同样的代码,放到国金的ptrade上运行,得到 
2025-07-23 15:45:10 - INFO - 当前服务器配置为:交易时间段服务器重启后,执行拉起本交易操作 
2025-07-23 15:45:12 - INFO - 公众号:可转债量化分析 ---- start ----
2025-07-23 15:46:00 - INFO - start func
2025-07-23 15:46:00 - INFO - 公众号:可转债量化分析
2025-07-23 15:46:00 - INFO - 1043
有1000只的ETF。
 
然后把日志导出到本地,用python求解一下不同的数据


(py11) D:\github\stock_strategy\api_validation>python etf-compare.py
516330.SS
561320.SS
159265.SZ
560980.SS
159813.SZ
159859.SZ
561700.SS
511620.SS
159898.SZ
159969.SZ
512380.SS
159972.SZ
159857.SZ
516300.SS
588200.SS
510180.SS
517520.SS
515680.SS
159618.SZ
159827.SZ
561980.SS
511820.SS
515150.SS
159701.SZ
159743.SZ
159623.SZ
159991.SZ
510660.SS
159681.SZ
159845.SZ
515890.SS
515850.SS
515300.SS
159510.SZ
511920.SS
159805.SZ
159610.SZ
159929.SZ
517170.SS
530800.SS
510630.SS
159535.SZ
561790.SS
159842.SZ
510150.SS
560580.SS
517800.SS
515790.SS
159806.SZ
516530.SS
159873.SZ
159207.SZ
515320.SS
516750.SS
159635.SZ
515290.SS
515030.SS
561130.SS
588150.SS
560680.SS
560280.SS
561570.SS
515760.SS
515900.SS
511090.SS
159643.SZ
588040.SS
159968.SZ
512520.SS
159322.SZ
516520.SS
159841.SZ
159359.SZ
515160.SS
511260.SS
516710.SS
159698.SZ
588230.SS
159786.SZ
562900.SS
159309.SZ
159358.SZ
563800.SS
159677.SZ
159551.SZ
517850.SS
159899.SZ
159862.SZ
159961.SZ
159779.SZ
515580.SS
159836.SZ
510060.SS
515010.SS
159355.SZ
560700.SS
159885.SZ
517880.SS
159864.SZ
159640.SZ
510270.SS
560150.SS
515750.SS
159003.SZ
159748.SZ
515330.SS
159730.SZ
159994.SZ
516290.SS
516080.SS
560510.SS
159005.SZ
159306.SZ
159378.SZ
512960.SS
159680.SZ
159847.SZ
159310.SZ
159587.SZ
588400.SS
515770.SS
159393.SZ
159657.SZ
516220.SS
159575.SZ
560350.SS
159997.SZ
515110.SS
159713.SZ
159880.SZ
159576.SZ
159520.SZ
562360.SS
588930.SS
518660.SS
159669.SZ
159206.SZ
159621.SZ
159928.SZ
159731.SZ
516050.SS
562390.SS
159831.SZ
516510.SS
159913.SZ
159633.SZ
511190.SS
512670.SS
516780.SS
517110.SS
159820.SZ
159690.SZ
159881.SZ
561230.SS
510010.SS
159992.SZ
159666.SZ
159725.SZ
159870.SZ
511010.SS
515060.SS
560860.SS
515100.SS
159993.SZ
512820.SS
159825.SZ
511900.SS
515990.SS
159849.SZ
563330.SS
512240.SS
159974.SZ
159910.SZ
159638.SZ
512890.SS
159641.SZ
159875.SZ
159682.SZ
159796.SZ
159887.SZ
159620.SZ
510880.SS
159225.SZ
159720.SZ
510410.SS
159883.SZ
159931.SZ
159363.SZ
588100.SS
561200.SS
560550.SS
159791.SZ
159229.SZ
159982.SZ
159647.SZ
560610.SS
159386.SZ
159559.SZ
159630.SZ
159795.SZ
511200.SS
512510.SS
561260.SS
159589.SZ
562860.SS
560090.SS
159889.SZ
159707.SZ
588320.SS
159678.SZ
510680.SS
159863.SZ
515980.SS
159543.SZ
510100.SS
159679.SZ
512040.SS
530000.SS
511770.SS
159838.SZ
159553.SZ
159998.SZ
515080.SS
588110.SS
561990.SS
159729.SZ
515120.SS
159739.SZ
159856.SZ
159800.SZ
510020.SS
510650.SS
159909.SZ
517550.SS
515630.SS
159685.SZ
515960.SS
515380.SS
561910.SS
515860.SS
518680.SS
588250.SS
159603.SZ
159339.SZ
159778.SZ
159958.SZ
516120.SS
588090.SS
159781.SZ
562300.SS
159761.SZ
517080.SS
159617.SZ
516060.SS
588680.SS
511580.SS
159521.SZ
159770.SZ
159397.SZ
159888.SZ
159816.SZ
516880.SS
159716.SZ
516910.SS
159209.SZ
588880.SS
562800.SS
515650.SS
561590.SS
159715.SZ
159552.SZ
512280.SS
588830.SS
516790.SS
159656.SZ
588460.SS
561350.SS
511850.SS
516830.SS
515530.SS
517120.SS
159658.SZ
563360.SS
517010.SS
516630.SS
159608.SZ
159959.SZ
563300.SS
563350.SS
516650.SS
561920.SS
561310.SS
516460.SS
512680.SS
159782.SZ
515360.SS
159628.SZ
159629.SZ
560260.SS
512730.SS
588010.SS
159697.SZ
588760.SS
513890.SS
159977.SZ
516500.SS
561500.SS
512220.SS
510550.SS
159555.SZ
588300.SS
530300.SS
159649.SZ
159395.SZ
560560.SS
516950.SS
511810.SS
561330.SS
159732.SZ
511600.SS
562890.SS
516550.SS
159717.SZ
159797.SZ
159970.SZ
561900.SS
561560.SS
159890.SZ
159721.SZ
560190.SS
159366.SZ
515950.SS
511950.SS
159908.SZ
159861.SZ
159517.SZ
159975.SZ
159625.SZ
159830.SZ
510050.SS
159895.SZ
517900.SS
159652.SZ
510990.SS
159811.SZ
159852.SZ
517000.SS
159930.SZ
159840.SZ
515070.SS
511670.SS
159807.SZ
561550.SS
511980.SS
159675.SZ
159611.SZ
560880.SS
515660.SS
560530.SS
511830.SS
159766.SZ
159631.SZ
561190.SS
512150.SS
561950.SS
517360.SS
518880.SS
510850.SS
159768.SZ
159876.SZ
159398.SZ
159865.SZ
515600.SS
159360.SZ
159305.SZ
511970.SS
159671.SZ
588310.SS
516770.SS
159320.SZ
516670.SS
517100.SS
159572.SZ
159839.SZ
159627.SZ
159665.SZ
159790.SZ
563520.SS
511520.SS
511690.SS
561160.SS
159723.SZ
159216.SZ
159886.SZ
510190.SS
159798.SZ
562590.SS
159843.SZ
159867.SZ
159663.SZ
159619.SZ
516090.SS
515090.SS
560080.SS
159869.SZ
159872.SZ
159736.SZ
560900.SS
588950.SS
159855.SZ
516150.SS
516960.SS
159828.SZ
517050.SS
159851.SZ
159645.SZ
511930.SS
159935.SZ
159703.SZ
517200.SS
512020.SS
159787.SZ
588240.SS
159362.SZ
517990.SS
561960.SS
562880.SS
159971.SZ
159760.SZ
159871.SZ
513630.SS
561380.SS
不同的ETF数量: 432
这400多只的ETF是在国盛上缺失的。
这数据有点惊人.....
 
如果要用国盛,可以用国金的把ETF列表导出到txt,然后上传到国盛,然后在程序中读取这个etf列表。
 

长江证券 ptrade 免五 开通门槛

Ptrade李魔佛 发表了文章 • 0 个评论 • 3154 次浏览 • 2025-07-22 16:57 • 来自相关话题

长江证券支持ptrade量化交易,同时也可以免5, 股票0.1元起收。

软件描述:长江证券PTrade交易终端是由恒生电子股份有限公司开发,为服务投资者专业化个性化交易需求而打造的交易终端
功能介绍:
1. 操作便捷:支持闪电下单、一键撤补、一键清仓、批量撤单、全键盘交易等功能
2. 功能丰富:提供策略交易、拐点交易、网格交易、抢单交易、追涨停、盘口扫单、可转债套利、ETF套利、篮子交易等交易工具
3. 量化交易:支持策略单交易,提供完整的策略平台,支持客户做策略研究、策略编写、策略回测和实盘交易
4. 极速交易:支持通过华锐ATP极速柜台、快速交易通道交易
MD5码:16ab7feba617b254c1607320ce69a780

版本:PTrade1.0-Client-V202308-15-000

文件大小:215.2M

文件名:PTrade1.0-Client-V202308-15-000_CY.zip
 

 





 






有2个版本,一个是长江证券ptrade交易终端(极速版),这个可以在上面编写python策略;
 
一个是Ptrade交易终端(简版),这个只提供了基础的量化工具,比如套利,网格,日内回转交易。不支持python编程功能。所以注意不要开错了哦。
 

下载链接:
https://downcq.95579.com/jcj/zg/PTrade1.0-Client-V202308-15-000_CY.zip
 
长期更新站点:
https://ptradeapi.com/
 





 
 需要开通的朋友可以关注公众号联系: 查看全部
长江证券支持ptrade量化交易,同时也可以免5, 股票0.1元起收。


软件描述:长江证券PTrade交易终端是由恒生电子股份有限公司开发,为服务投资者专业化个性化交易需求而打造的交易终端
功能介绍:
1. 操作便捷:支持闪电下单、一键撤补、一键清仓、批量撤单、全键盘交易等功能
2. 功能丰富:提供策略交易、拐点交易、网格交易、抢单交易、追涨停、盘口扫单、可转债套利、ETF套利、篮子交易等交易工具
3. 量化交易:支持策略单交易,提供完整的策略平台,支持客户做策略研究、策略编写、策略回测和实盘交易
4. 极速交易:支持通过华锐ATP极速柜台、快速交易通道交易
MD5码:16ab7feba617b254c1607320ce69a780

版本:PTrade1.0-Client-V202308-15-000

文件大小:215.2M

文件名:PTrade1.0-Client-V202308-15-000_CY.zip
 


 

20250722165408.png

 

20250722165802.png


有2个版本,一个是长江证券ptrade交易终端(极速版),这个可以在上面编写python策略;
 
一个是Ptrade交易终端(简版),这个只提供了基础的量化工具,比如套利,网格,日内回转交易。不支持python编程功能。所以注意不要开错了哦。
 

下载链接:
https://downcq.95579.com/jcj/zg/PTrade1.0-Client-V202308-15-000_CY.zip
 
长期更新站点:
https://ptradeapi.com/
 

20250722165501.png

 
 需要开通的朋友可以关注公众号联系:

聚宽小市值策略代码转Ptrade实盘代码

Ptrade李魔佛 发表了文章 • 0 个评论 • 4572 次浏览 • 2025-07-05 22:35 • 来自相关话题

最近好几个策略需要转换的。
 
Mark一下,写完之后分享一下。
 
聚宽的也不是完全的按照市值,也会根据换手率,涨停,跌停来判断是否卖出。
 
聚宽源码(部分)
#导入函数库
from jqdata import *
from jqfactor import *
import numpy as np
import pandas as pd
from datetime import time, datetime, timedelta

#初始化函数
def initialize(context):
# 策略参数配置
g.signal = ''
# 开启防未来函数
set_option('avoid_future_data', True)
# 设定基准
set_benchmark('000300.XSHG')
# 交易设置
set_option('use_real_price', True)
set_slippage(FixedSlippage(3/10000))
set_order_cost(OrderCost(open_tax=0, close_tax=0.001, open_commission=2.5/10000, close_commission=2.5/10000, close_today_commission=0, min_commission=5), type='stock')
# 日志设置
log.set_level('order', 'error')
log.set_level('system', 'error')
log.set_level('strategy', 'debug')

# 策略控制参数
g.no_trading_today_signal = False # 是否为可交易日
g.pass_april = True # 是否四月空仓
g.run_stoploss = True # 是否进行止损
g.HV_control = False # 是否进行放量控制
g.HV_duration = 120 # 放量判断周期
g.HV_ratio = 0.9 # 放量判断比例
g.no_trading_hold_signal = False # 是否持有非交易期股票

# 持仓管理参数
g.hold_list = [] # 当前持仓的全部股票
g.yesterday_HL_list = [] # 记录持仓中昨日涨停的股票
g.target_list = [] # 目标买入列表
g.not_buy_again = [] # 不再买入的股票列表

# 交易参数
g.stock_num = 3 # 持仓数量
g.up_price = 100 # 最高买入价格
g.reason_to_sell = '' # 卖出原因
g.stoploss_strategy = 3 # 止损策略:1为止损线止损,2为市场趋势止损,3为联合策略
g.stoploss_limit = 0.91 # 个股止损线
g.stoploss_market = 0.95 # 市场趋势止损参数
g.no_trading_buy = ['600036.XSHG', '518880.XSHG', '600900.XSHG'] # 空仓月份持有

# 设置交易运行时间
run_daily(prepare_stock_list, '9:05')
run_weekly(weekly_adjustment, 2, '10:30')
run_daily(sell_stocks, time='10:00') # 止损函数
run_daily(trade_afternoon, time='14:25') # 检查持仓中的涨停股是否需要卖出
run_daily(trade_afternoon, time='14:55') # 检查持仓中的涨停股是否需要卖出
run_daily(close_account, '14:50')
  
转换后的Ptrade实盘源码(部分)
 
def before_trading_start(context, data):
log.info('================= 盘前运行开始:{} '.format(str(context.blotter.current_dt)))
g.__portfolio = PositionManager()
g.order_set = set()
# g.__lock = threading.Lock()


def remove_st_stock(all_stock_list):
st_dict = get_stock_status(all_stock_list, query_type='ST', query_date=None)
st_list = []
for k, v in st_dict.items():
if v:
st_list.append(k)
return st_list


def remove_halt_stock(all_stock_list):
halt_dict = get_stock_status(all_stock_list, query_type='HALT', query_date=None)
halt_list = []
for k, v in halt_dict.items():
if v:
halt_list.append(k)
return halt_list


def all_codes_in_market():
all_stock_set = set(get_Ashares(date=None))
for ignore_code in IGNORE_MARKET:
market = MARKET_DICT.get(ignore_code)
if market == '科创板':
all_stock_set = all_stock_set - set(filter(lambda x: x.startswith('68'), all_stock_set))
if market == '创业板':
all_stock_set = all_stock_set - set(filter(lambda x: x.startswith('3'), all_stock_set))

return all_stock_set 
待续 查看全部
最近好几个策略需要转换的。
 
Mark一下,写完之后分享一下。
 
聚宽的也不是完全的按照市值,也会根据换手率,涨停,跌停来判断是否卖出。
 
聚宽源码(部分)
#导入函数库
from jqdata import *
from jqfactor import *
import numpy as np
import pandas as pd
from datetime import time, datetime, timedelta

#初始化函数
def initialize(context):
# 策略参数配置
g.signal = ''
# 开启防未来函数
set_option('avoid_future_data', True)
# 设定基准
set_benchmark('000300.XSHG')
# 交易设置
set_option('use_real_price', True)
set_slippage(FixedSlippage(3/10000))
set_order_cost(OrderCost(open_tax=0, close_tax=0.001, open_commission=2.5/10000, close_commission=2.5/10000, close_today_commission=0, min_commission=5), type='stock')
# 日志设置
log.set_level('order', 'error')
log.set_level('system', 'error')
log.set_level('strategy', 'debug')

# 策略控制参数
g.no_trading_today_signal = False # 是否为可交易日
g.pass_april = True # 是否四月空仓
g.run_stoploss = True # 是否进行止损
g.HV_control = False # 是否进行放量控制
g.HV_duration = 120 # 放量判断周期
g.HV_ratio = 0.9 # 放量判断比例
g.no_trading_hold_signal = False # 是否持有非交易期股票

# 持仓管理参数
g.hold_list = [] # 当前持仓的全部股票
g.yesterday_HL_list = [] # 记录持仓中昨日涨停的股票
g.target_list = [] # 目标买入列表
g.not_buy_again = [] # 不再买入的股票列表

# 交易参数
g.stock_num = 3 # 持仓数量
g.up_price = 100 # 最高买入价格
g.reason_to_sell = '' # 卖出原因
g.stoploss_strategy = 3 # 止损策略:1为止损线止损,2为市场趋势止损,3为联合策略
g.stoploss_limit = 0.91 # 个股止损线
g.stoploss_market = 0.95 # 市场趋势止损参数
g.no_trading_buy = ['600036.XSHG', '518880.XSHG', '600900.XSHG'] # 空仓月份持有

# 设置交易运行时间
run_daily(prepare_stock_list, '9:05')
run_weekly(weekly_adjustment, 2, '10:30')
run_daily(sell_stocks, time='10:00') # 止损函数
run_daily(trade_afternoon, time='14:25') # 检查持仓中的涨停股是否需要卖出
run_daily(trade_afternoon, time='14:55') # 检查持仓中的涨停股是否需要卖出
run_daily(close_account, '14:50')

  
转换后的Ptrade实盘源码(部分)
 
def before_trading_start(context, data):
log.info('================= 盘前运行开始:{} '.format(str(context.blotter.current_dt)))
g.__portfolio = PositionManager()
g.order_set = set()
# g.__lock = threading.Lock()


def remove_st_stock(all_stock_list):
st_dict = get_stock_status(all_stock_list, query_type='ST', query_date=None)
st_list = []
for k, v in st_dict.items():
if v:
st_list.append(k)
return st_list


def remove_halt_stock(all_stock_list):
halt_dict = get_stock_status(all_stock_list, query_type='HALT', query_date=None)
halt_list = []
for k, v in halt_dict.items():
if v:
halt_list.append(k)
return halt_list


def all_codes_in_market():
all_stock_set = set(get_Ashares(date=None))
for ignore_code in IGNORE_MARKET:
market = MARKET_DICT.get(ignore_code)
if market == '科创板':
all_stock_set = all_stock_set - set(filter(lambda x: x.startswith('68'), all_stock_set))
if market == '创业板':
all_stock_set = all_stock_set - set(filter(lambda x: x.startswith('3'), all_stock_set))

return all_stock_set
 
待续

国盛Ptrade get_Ashare函数返回为空

Ptrade李魔佛 发表了文章 • 0 个评论 • 2099 次浏览 • 2025-07-04 12:22 • 来自相关话题

难绷。国盛感觉数据质量比较堪忧。
 
在实盘中,运行下面代码:
# author: 公众号:可转债量化分析
import datetime


def initialize(context):
# 初始化策略
pass

def before_trading_start(context, data):
log.info('盘前函数运行')
previous_tradeing_func(context) # 执行盘前函数


def previous_tradeing_func(context):
all_stock_set = get_Ashares(date=None)
print(all_stock_set)

def handle_data(context, data):
pass
运行结果:
2025-07-04 12:18:10 - INFO - 盘前函数运行
2025-07-04 12:18:10 - INFO - []
数据的是一个空的list.......
 
一个十分基础的数据。
 
反馈了几年,依然如是。。
 
还是多开几家,多对比。各有各的优势。 查看全部
难绷。国盛感觉数据质量比较堪忧。
 
在实盘中,运行下面代码:
# author: 公众号:可转债量化分析
import datetime


def initialize(context):
# 初始化策略
pass

def before_trading_start(context, data):
log.info('盘前函数运行')
previous_tradeing_func(context) # 执行盘前函数


def previous_tradeing_func(context):
all_stock_set = get_Ashares(date=None)
print(all_stock_set)

def handle_data(context, data):
pass

运行结果:
2025-07-04 12:18:10 - INFO - 盘前函数运行
2025-07-04 12:18:10 - INFO - []

数据的是一个空的list.......
 
一个十分基础的数据。
 
反馈了几年,依然如是。。
 
还是多开几家,多对比。各有各的优势。

谁说ptrade代码不安全容易泄露的?

Ptrade李魔佛 发表了文章 • 0 个评论 • 2935 次浏览 • 2025-07-03 11:52 • 来自相关话题

以前有人说ptrade代码是部署到券商机房,怕自己的代码泄露,或者怕被券商看到了,拿去白嫖了。
 
实际上现在的ptrade可以对策略进行加密





 
可以对你的策略进行加密下载,然后把策略删除了,然后在选择上传策略。
 
然后策略上传之后,你是无法看到具体代码的了,只能选择启动,删除策略。
 
连日志里面的打印数据也不会输出。
 
只会显示买入 卖出 的信息。
 
大大的提高了策略的安全性。

 
需要开通ptrade的读者朋友,可以关注公众号联系:
 
低佣 - 低门槛,提供 技术支持
  查看全部
以前有人说ptrade代码是部署到券商机房,怕自己的代码泄露,或者怕被券商看到了,拿去白嫖了。
 
实际上现在的ptrade可以对策略进行加密

20250703114717.png

 
可以对你的策略进行加密下载,然后把策略删除了,然后在选择上传策略。
 
然后策略上传之后,你是无法看到具体代码的了,只能选择启动,删除策略。
 
连日志里面的打印数据也不会输出。
 
只会显示买入 卖出 的信息。
 
大大的提高了策略的安全性。

 
需要开通ptrade的读者朋友,可以关注公众号联系:
 
低佣 - 低门槛,提供 技术支持
 

ptrade查看日志报错:远程服务器返回错误: (502) 错误的网关

Ptrade李魔佛 发表了文章 • 0 个评论 • 2032 次浏览 • 2025-06-30 18:59 • 来自相关话题

目前在国盛的ptrade上屡次出现的错误,因为ptrade服务器的资源已经不够了。
访问这个API的时候就已经报错。
 
502异常代码,是服务器端的报错。和本地无关。
 
有时候能够正常查询到日志,但大部分时候查询日志的时候就出现上面的502异常。
 





 
揪心,就不能买多几台服务器么.....
 
  查看全部
目前在国盛的ptrade上屡次出现的错误,因为ptrade服务器的资源已经不够了。
访问这个API的时候就已经报错。
 
502异常代码,是服务器端的报错。和本地无关。
 
有时候能够正常查询到日志,但大部分时候查询日志的时候就出现上面的502异常。
 

20250630185908.png

 
揪心,就不能买多几台服务器么.....
 
 

Ptrade获取的L2逐笔数据和同花顺的逐笔数据对不上的原因

Ptrade李魔佛 发表了文章 • 0 个评论 • 2361 次浏览 • 2025-06-12 16:40 • 来自相关话题

部分大单在同花顺上看不到。有点神奇。
 






后面有群友 发现了问题。
 

 
部分大单在同花顺上看不到。有点神奇。
 

20250612164358.png


后面有群友 发现了问题。
 

 

国泰海通支持Ptrade,万一免5

Ptrade李魔佛 发表了文章 • 0 个评论 • 3837 次浏览 • 2025-06-06 13:33 • 来自相关话题

国泰君安和海通合并后,叫国泰海通。
 
支持ptrade和qmt,不过没有miniqmt。





 
 
 



费率做到万0.854免5,起步0.01
 
实盘版下载链接:
https://dl2.app.gtja.com/dzswem/softwareVersion/202504/07/PTrade1.0-Client-V202403-07-005(PTrade).zip
 
需要开通和调佣的,可以关注公众号联系:

  查看全部
国泰君安和海通合并后,叫国泰海通。
 
支持ptrade和qmt,不过没有miniqmt。

20251230163506.png

 
 
 
20250606121828.png

费率做到万0.854免5,起步0.01
 
实盘版下载链接:
https://dl2.app.gtja.com/dzswem/softwareVersion/202504/07/PTrade1.0-Client-V202403-07-005(PTrade).zip
 
需要开通和调佣的,可以关注公众号联系: