EasyFut

EasyFut - 开源期货HTTP行情&交易接口API - 基于TqSdk

基于通用HTTP协议,任何语言可轻松接入。

Time is money. You just need to think quickly and try quickly.

立即开始 Gitee码云 Github

#!/bin/sh
host_url='http://127.0.0.1:8888'
#获取账户信息
curl ${host_url}/account
#获取当前持仓
curl ${host_url}/position
#获取实时行情
curl ${host_url}/quote/SHFE.rb2301
#获取K线行情
curl ${host_url}/klines/SHFE.rb2301_60_20
#获取Tick序列
curl ${host_url}/ticks/SHFE.rb2301_20   
#委托下单
curl -X POST -H "Content-type: application/json" -d '{"symbol":"SHFE.rb2301", "direction":"BUY","offset":"OPEN","volume":1,"limit_price":"UPPER_LIMIT"}' ${host_url}/order
#取消委托单
curl -X POST -H "Content-type: application/json" -d '{"order_id":"f1786bea1ad045199925deea3cd6f1c7"}' ${host_url}/order/cancel
#获取委托单信息
curl ${host_url}/order/fbcce9326a3a4f8c80295b0e6e07434a
#获取当日可撤委托
curl ${host_url}/order/alive
import requests
host_url = 'http://127.0.0.1:8888'
#获取账户信息
requests.get(host_url+'/account').json()
#获取当前持仓
requests.get(host_url+'/position').json()
#获取实时行情
requests.get(host_url+'/quote/SHFE.rb2301').json();
#获取K线行情
requests.get(host_url+'/klines/SHFE.rb2301_60_20').json()
#获取Tick序列
requests.get(host_url+'/ticks/SHFE.rb2301_20').json()    
#委托下单
requests.post(host_url+'/order', json={
    'symbol' : 'SHFE.rb2301', 
    'direction' : 'BUY',
    'offset': 'OPEN',
    'volume': 1,
    'limit_price': 'UPPER_LIMIT'
}).json()
#取消委托单
requests.post(host_url+'/order/cancel', json={
    'order_id' : 'fbcce9326a3a4f8c80295b0e6e07434a', 
}).json()    
#获取委托单信息
requests.get(host_url+'/order/fbcce9326a3a4f8c80295b0e6e07434a').json()
#获取当日可撤委托
requests.get(host_url+'/order/alive').json()
<?php
function my_curl($url, $method = 'GET', $data = ''){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    if($method == 'POST'){
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS , $data);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Content-Length:' . strlen($data)));
    }
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $output = curl_exec($ch);
    curl_close($ch);     
    return $output;
}
$host_url = 'http://127.0.0.1:8888';
//获取账户信息
my_curl($host_url.'/account');
//获取当前持仓
my_curl($host_url.'/position');
//获取实时行情
my_curl($host_url.'/quote/SHFE.rb2301');
//获取K线行情
my_curl($host_url.'/klines/SHFE.rb2301_60_20');
//获取Tick序列
my_curl($host_url.'/ticks/SHFE.rb2301_20');
//委托下单
my_curl($host_url.'/order', 'POST', json_encode([
    'symbol' => 'SHFE.rb2301', 
    'direction' => 'BUY',
    'offset'=> 'OPEN',
    'volume'=> 1,
    'limit_price'=> 'UPPER_LIMIT'
]));    
//取消委托
my_curl($host_url.'/order/cancel', 'POST', json_encode([
    'order_id' => 'fbcce9326a3a4f8c80295b0e6e07434a', 
]));
//获取委托单信息
my_curl($host_url.'/order/fbcce9326a3a4f8c80295b0e6e07434a');	    
//获取当日可撤委托
my_curl($host_url.'/order/alive');
var request = require('request');
//服务地址
var host_url='http://127.0.0.1:8888';
//获取账户信息
request(host_url+'/account',  function (error, response, body){
    console.log(body);
});
//获取当前持仓
request(host_url+'/position',  function (error, response, body){
    console.log(body);
});
//获取实时行情
request(host_url+'/quote/SHFE.rb2301',  function (error, response, body){
    console.log(body);
});
//获取K线行情
request(host_url+'/klines/SHFE.rb2301_60_20',  function (error, response, body){
    console.log(body);
});
//获取Tick序列
request(host_url+'/ticks/SHFE.rb2301_20',  function (error, response, body){
    console.log(body);
});
//委托下单
request.post(
    { 
        url: host_url+'/order', 
        headers: {}, 
        json: {"symbol":"SHFE.rb2301", "direction":"BUY","offset":"OPEN","volume":1,"limit_price":"UPPER_LIMIT"}
    }, 
    function(error, response, body) { 
        console.log(body);
    }
); 
//取消委托单
request.post(
    { 
        url: host_url+'/order/cancel', 
        headers: {}, 
        json: {"order_id":"fbcce9326a3a4f8c80295b0e6e07434a"}
    }, 
    function(error, response, body) { 
        console.log(body);
    }
); 
//获取委托单信息
request(host_url+'/order/fbcce9326a3a4f8c80295b0e6e07434a',  function (error, response, body){
    console.log(body);
});
//获取当日可撤委托
request(host_url+'/order/alive',  function (error, response, body){
    console.log(body);
});
package main
import (
    "bytes"
    "io/ioutil"
    "fmt"
    "net/http"
)
func httpGet(url string) (string) {
    response, err := http.Get(url)
    if err != nil {
        panic(err)
    }
    defer response.Body.Close()
    body, err2 := ioutil.ReadAll(response.Body)
    if err2 != nil {
        panic(err2)
    }
    return string(body)
}
func httpPost(url string, jsonStr string) (string) {
    var json = []byte(jsonStr)
    req, err := http.NewRequest("POST", url, bytes.NewBuffer(json))
    req.Header.Set("Content-Type", "application/json")
    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()
    body, err2 := ioutil.ReadAll(resp.Body)
    if err2 != nil {
        panic(err2)
    }
    return string(body)
}
func main(){
    //服务地址
    var host_url = "http://127.0.0.1:8888";
    //获取账户信息
    fmt.Println(httpGet(host_url+"/account"))
    //获取当前持仓
    fmt.Println(httpGet(host_url+"/position"))
    //获取实时行情
    fmt.Println(httpGet(host_url+"/quote/SHFE.rb2301"))
    //获取K线行情
    fmt.Println(httpGet(host_url+"/klines/SHFE.rb2301_60_20"))
    //获取Tick序列
    fmt.Println(httpGet(host_url+"/ticks/SHFE.rb2301_20"))
    //委托下单
    fmt.Println(httpPost(host_url+"/order",`{"symbol":"SHFE.rb2301", "direction":"BUY","offset":"OPEN","volume":1,"limit_price":"UPPER_LIMIT"}`))
    //取消委托单
    fmt.Println(httpPost(host_url+"/order/cancel",`{"order_id":"fbcce9326a3a4f8c80295b0e6e07434a"}`))
    //获取委托单信息
    fmt.Println(httpGet(host_url+"/order/fbcce9326a3a4f8c80295b0e6e07434a"))
    //获取当日可撤委托
    fmt.Println(httpGet(host_url+"/order/alive"))
}
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class MyHttp {

    public static void main(String[] args) throws Exception {
        MyHttp myHttp = new MyHttp();
        //服务地址
        String hostUrl = "http://127.0.0.1:8888";
        //获取账户信息
        System.out.println(myHttp.sendGet(hostUrl+"/account"));
        //获取当前持仓
        System.out.println(myHttp.sendGet(hostUrl+"/position"));
        //获取实时行情
        System.out.println(myHttp.sendGet(hostUrl+"/quote/SHFE.rb2301"));
        //获取K线行情
        System.out.println(myHttp.sendGet(hostUrl+"/klines/SHFE.rb2301_60_20"));
        //获取Tick序列
        System.out.println(myHttp.sendGet(hostUrl+"/ticks/SHFE.rb2301_20"));
        //委托下单
        System.out.println(myHttp.sendPost(hostUrl+"/order","{\"symbol\":\"SHFE.rb2301\", \"direction\":\"BUY\",\"offset\":\"OPEN\",\"volume\":1,\"limit_price\":\"UPPER_LIMIT\"}"));
        //取消委托单
        System.out.println(myHttp.sendPost(hostUrl+"/order/cancel","{\"order_id\":\"fbcce9326a3a4f8c80295b0e6e07434a\"}"));
        //获取委托单信息
        System.out.println(myHttp.sendGet(hostUrl+"/order/fbcce9326a3a4f8c80295b0e6e07434a"));
        //获取当日可撤委托
        System.out.println(myHttp.sendGet(hostUrl+"/order/alive"));
    }

    private String sendGet(String url) throws Exception {
        URL obj = new URL(url);
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        con.setRequestMethod("GET");
        int responseCode = con.getResponseCode();
        BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
        String inputLine;
        StringBuffer response = new StringBuffer();
        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
        in.close();
        return response.toString();
    }

    private String sendPost(String url, String jsonStr) throws Exception {
        URL obj = new URL(url);
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        con.setRequestMethod("POST");
        con.setRequestProperty("Content-Type","application/json");
        con.setDoOutput(true);
        DataOutputStream wr = new DataOutputStream(con.getOutputStream());
        wr.writeBytes(jsonStr);
        wr.flush();
        wr.close();
        int responseCode = con.getResponseCode();
        BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
        String inputLine;
        StringBuffer response = new StringBuffer();
        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
        in.close();
        return response.toString();
    }
}