原创文章第149篇,专注“个人成长与财富自由、世界运作的逻辑,AI量化投资"。
01 drf-jwt
前后端分离,token认证是绕不过去的一个话题。前后端分离后,django的优势丢失了一半,因为之前那些view, form表单,模板引擎不再使用。DRF restapi框架很好地补足了这个短板。
fastapi如何要实现jwt,由于它本身没有提供model,所以是需要自己实现用户mdel,然后去校验用户信息,生成token,反解token之类的。而django可以自动完成这一切。
settings.py加入:
'rest_framework_simplejwt',
导入:
from rest_framework_simplejwt.views import (
TokenObtainPairView,
TokenRefreshView,
TokenVerifyView,
)
url路由里加入:
path('api/token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
path('api/token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
path('api/token/verify/', TokenVerifyView.as_view(), name='token_verify'),
会自动多出如上三个接口。
可以输入django的auth-user的用户名,密码可以换token。
其中access就是登录成功后的token。
02 drf-apiview
我们把获取验证码的代码从fastapi迁移过来。
import string
from random import random
from django.http import HttpResponse
from rest_framework.views import APIView
class ImageCodeAPIVIew(APIView):
def get(self, request, image_code_id):
print(image_code_id)
class ImageCodeAPIVIew(APIView):
def get(self, request, image_code_id):
# 1. 生成4位的随机字符串
s = ''.join(random.sample(string.ascii_letters + string.digits, 4))
# 2. 生成图片
img = ImageCaptcha()
image = img.generate(s)
# 3. 利用redis模块,生成一个redis客户端, redis客户端获取的数据是编码后的数据,因此需要对响应结果进行解码
redis_cli = redis.Redis(decode_responses=True)
# 4. 利用redis客户端将 图片验证码存入redis
redis_cli.setex(str(image_code_id), 60 * 10, s)
# 5. 返回图片
return HttpResponse(image, content_type='image/png')
03 投资逻辑
关于投资的逻辑,目前我找到的确定性就是大类资产配置,定期再平衡。可以获得长期市场beta回报。
估值是左侧交易等均值回归,动量是右侧交易“追涨杀跌”,周期的不同阶段,也有超额收益,有时候回撤不好说。
可转债大于130以后,本质就是股票了,与投资正股也没有什么区别。
想来还是ETF的动量策略可以做一做。
04 岁末年初
岁末年初,又是总结与规划的一年。
翻看三年来的规划,有完成的,有没完成的。比较感慨。
我们有时候确实比较容易高估一年的收获,确低估十年甚至三年的收成。所以,心怀希望,勇敢向前吧。
大疫三年,各行各业都不容易。好多人,来了又离开,有点感慨。
回头看一年,想的事情比较相似,但回头看三年,还是有不少的成长。
2023年,务实,扎实。
企业级平台相发+AI量化平台整合成一个项目来做。量化又是一个策略这么简单,应该是一个投资决策平台,至少是一个辅助平台。
这里会融合结构化数据,自然语言处理,量化模型,因子挖掘等等。
联系客服