量化交易

编程入门 行业动态 更新时间:2024-10-23 05:37:08

量化交易

量化交易

一、主要流程

其实还是相对简单的。

1、本地保存数据

2、拉取本地数据,使用java调用python算法,并返回结果

3、判断开仓还是平仓。

4、阿里云ecs ,不要买国内的,要不然速度 啥的,都会有问题。

可能觉得为啥要用java调Python,多此一举。主项目几个原因吧

1、本人擅长java,python不够熟练。而bna的java sdk非常友好。

2、talib的java版本,不好用。

3、此应用中,还搭载了其他业务功能,都是java写的。

 

二、java调用python的实践

@Overridepublic String calcMinDis(String startPoint, String endPoint, String points, String edgs) {Process proc;try {String exe = "python3";//解释器String command = pythonFile();if(command == null){return null ;}//传入参数,为字符串类型String[] cmdArr = new String[]{exe, command, startPoint, endPoint, points, edgs};proc = Runtime.getRuntime().exec(cmdArr);BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));String result = null;String line = null;while ((line = in.readLine()) != null) {System.out.println(line);result = line;}in.close();in = null;proc.waitFor();proc.destroy();return result;} catch (Exception e) {log.error("calcMinDis_error,startPoint={},endPoint={},points={},degs={}", startPoint, endPoint, points,edgs);}return null;}

import numpy as np
import random
from random import shuffle
from sys import argv
#dis_cube=np.array(
#[[0,1,2,3],
# [1,0,4,5],
# [2,4,0,3],
# [3,5,3,0]
#]
#)
#names = ['a','b','c','d']
#epoc = 100
# start = 'a', end = 'd', names = 'a,b,c,d'],dis_cube = ,0,1,2,3,1,0,4,5,2,4,0,3,3,5,3,0
def montcalo():start = argv[1].strip()end = argv[2].strip()names = [w.strip() for w in argv[3].strip().split(',')]dis_cube = [float(w.strip()) for w in argv[4].strip().split(',')]。。。。。。。。。。。。return [start]+res+[end]result = montcalo()
print(result)

附:

画图的工具是vscode+puml 的插件完成的,还是非常方便的。

更多推荐

量化交易

本文发布于:2023-06-27 08:11:11,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/908592.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!