量化交易---主要流程---003

一、主要流程

其实还是相对简单的。

1、本地保存数据

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

3、判断开仓还是平仓。

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

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

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

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

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

 

二、java调用python的实践


    @Override
    public 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 的插件完成的,还是非常方便的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值