通知设置 新通知
ptrade查看日志报错:远程服务器返回错误: (502) 错误的网关
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 44 次浏览 • 2025-06-30 18:59
目前在国盛的ptrade上屡次出现的错误,因为ptrade服务器的资源已经不够了。
访问这个API的时候就已经报错。
502异常代码,是服务器端的报错。和本地无关。
有时候能够正常查询到日志,但大部分时候查询日志的时候就出现上面的502异常。
揪心,就不能买多几台服务器么.....
查看全部
访问这个API的时候就已经报错。
502异常代码,是服务器端的报错。和本地无关。
有时候能够正常查询到日志,但大部分时候查询日志的时候就出现上面的502异常。
揪心,就不能买多几台服务器么.....
查看全部
谁说ptrade代码不安全容易泄露的?
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 45 次浏览 • 2025-07-03 11:52
以前有人说ptrade代码是部署到券商机房,怕自己的代码泄露,或者怕被券商看到了,拿去白嫖了。
实际上现在的ptrade可以对策略进行加密
可以对你的策略进行加密下载,然后把策略删除了,然后在选择上传策略。
然后策略上传之后,你是无法看到具体代码的了,只能选择启动,删除策略。
连日志里面的打印数据也不会输出。
只会显示买入 卖出 的信息。
大大的提高了策略的安全性。
需要开通ptrade的读者朋友,可以关注公众号联系:
低佣 - 低门槛,提供 技术支持
查看全部
实际上现在的ptrade可以对策略进行加密
可以对你的策略进行加密下载,然后把策略删除了,然后在选择上传策略。
然后策略上传之后,你是无法看到具体代码的了,只能选择启动,删除策略。
连日志里面的打印数据也不会输出。
只会显示买入 卖出 的信息。
大大的提高了策略的安全性。
需要开通ptrade的读者朋友,可以关注公众号联系:
低佣 - 低门槛,提供 技术支持
查看全部
国盛Ptrade get_Ashare函数返回为空
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 22 次浏览 • 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.......
一个十分基础的数据。
反馈了几年,依然如是。。
还是多开几家,多对比。各有各的优势。 查看全部
难绷。国盛感觉数据质量比较堪忧。
在实盘中,运行下面代码:
运行结果:
数据的是一个空的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 个评论 • 8 次浏览 • 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
待续 查看全部
最近好几个策略需要转换的。
Mark一下,写完之后分享一下。
聚宽的也不是完全的按照市值,也会根据换手率,涨停,跌停来判断是否卖出。
聚宽源码(部分)
转换后的Ptrade实盘源码(部分)
待续
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
待续