Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions cpp/src/XtpTradeAdapter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -701,4 +701,44 @@ JNIEXPORT jint JNICALL Java_com_zts_xtp_trade_api_TradeApi_queryOptionAuctionInf


return ptrade->QueryOptionAuctionInfo(req, sessionId, requestId, false);
}

JNIEXPORT jstring JNICALL Java_com_zts_xtp_trade_api_TradeApi_getTradingDay(JNIEnv *env, jobject clazz) {
// get the trader pointer
Trade *ptrade = getHandle<Trade>(env, clazz);

const char *tradingDay = ptrade->GetTradingDay();
return env->NewStringUTF(tradingDay);
}

JNIEXPORT jstring JNICALL Java_com_zts_xtp_trade_api_TradeApi_getApiVersion(JNIEnv *env, jobject clazz) {
// get the trader pointer
Trade *ptrade = getHandle<Trade>(env, clazz);

const char* version = ptrade->GetApiVersion();
return env->NewStringUTF(version);
}

JNIEXPORT jshort JNICALL Java_com_zts_xtp_trade_api_TradeApi_getClientIDByXTPID(JNIEnv *env, jobject clazz, jstring orderXTPId) {
// get the trader pointer
Trade *ptrade = getHandle<Trade>(env, clazz);

uint64_t xtpId;
const char *char_xtpOrderId = env->GetStringUTFChars(orderXTPId, 0);
std::stringstream(char_xtpOrderId) >> xtpId;

env->ReleaseStringUTFChars(orderXTPId, char_xtpOrderId);
return ptrade->GetClientIDByXTPID(xtpId);
}

JNIEXPORT jstring JNICALL Java_com_zts_xtp_trade_api_TradeApi_getAccountByXTPID(JNIEnv *env, jobject clazz, jstring orderXTPId) {
// get the trader pointer
Trade *ptrade = getHandle<Trade>(env, clazz);

uint64_t xtpId;
const char *char_xtpOrderId = env->GetStringUTFChars(orderXTPId, 0);
std::stringstream(char_xtpOrderId) >> xtpId;

const char* account = ptrade->GetAccountByXTPID(xtpId);
return env->NewStringUTF(account);
}
20 changes: 20 additions & 0 deletions cpp/src/include/XtpTradeApi.h
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,26 @@ class Trade : public XTP::API::TraderSpi {
}
return api_->QueryOptionAuctionInfo(&query_param, session_id, request_id);
}

const char* GetTradingDay()
{
return api_->GetTradingDay();
}

const char* GetApiVersion()
{
return api_->GetApiVersion();
}

uint8_t GetClientIDByXTPID(uint64_t order_xtp_id)
{
return api_->GetClientIDByXTPID(order_xtp_id);
}

const char* GetAccountByXTPID(uint64_t order_xtp_id)
{
return api_->GetAccountByXTPID(order_xtp_id);
}
private:

JNIEnv* preInvoke();
Expand Down
48 changes: 40 additions & 8 deletions cpp/src/include/com_zts_xtp_trade_api_TradeApi.h

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,14 @@ public enum PositionEffectType {
XTP_POSITION_EFFECT_FORCEOFF,
/**本地强平*/
XTP_POSITION_EFFECT_LOCALFORCECLOSE,
/**信用业务追保强平*/
XTP_POSITION_EFFECT_CREDIT_FORCE_COVER,
/**信用业务清偿强平*/
XTP_POSITION_EFFECT_CREDIT_FORCE_CLEAR,
/**信用业务合约到期强平*/
XTP_POSITION_EFFECT_CREDIT_FORCE_DEBT,
/**信用业务无条件强平*/
XTP_POSITION_EFFECT_CREDIT_FORCE_UNCOND,
/**未知的开平标识类型*/
XTP_POSITION_EFFECT_UNKNOWN
}
2 changes: 1 addition & 1 deletion src/main/java/com/zts/xtp/common/jni/JNILoadLibrary.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public static void loadLibrary(String libraryPath) {
osIsWindows = (os.indexOf("windows") != -1);
if(osIsWindows){
String arch = System.getProperty("os.arch");
if(arch=="x86")
if("x86".equals(arch))
libraryPath = "cpp/lib/win32/dll:cpp/buildcpp/win32:"+libraryPath; //加载工程目录下lib/win32下的xtp的dll
else
libraryPath = "cpp/lib/win64/dll:cpp/buildcpp/win64:"+libraryPath; //加载工程目录下lib/win64下的xtp的dll
Expand Down
28 changes: 28 additions & 0 deletions src/main/java/com/zts/xtp/trade/api/TradeApi.java
Original file line number Diff line number Diff line change
Expand Up @@ -254,6 +254,34 @@ public void init(short clientId, String key, String logFolder, XtpLogLevel xtpA
*/
public native int queryOptionAuctionInfo(OptionAuctionInfoRequest optionAuctionInfoRequest, String sessionId, int requestId);

/**
* 获取当前交易日
* 只有登录成功后,才能得到正确的交易日
* @return 获取到的交易日
*/
public native String getTradingDay();

/**
* 获取API的发行版本号
* @return 返回api发行版本号
*/
public native String getApiVersion();

/**
* 通过报单在xtp系统中的ID获取下单的客户端id
* @remark 由于系统允许同一用户在不同客户端上登录操作,每个客户端通过不同的client_id进行区分
* @param orderXtpId 报单在xtp系统中的ID
* @return 返回客户端id,可以用此方法过滤自己下的订单
*/
public native short getClientIDByXTPID(String orderXtpId);

/**
* 通过报单在xtp系统中的ID获取相关资金账户名
* @remark 只有资金账户登录成功后,才能得到正确的信息
* @param orderXtpId 报单在xtp系统中的ID
* @return 返回资金账户名
*/
public native String getAccountByXTPID(String orderXtpId);

//====================================Callback Functions==========================================
private void onDisconnect(String sessionId, int reason) {
Expand Down
30 changes: 30 additions & 0 deletions src/test/java/com/zts/xtp/trade/TradeApiTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -263,9 +263,39 @@ public void testQueryOptionAuctionInfo(){
System.out.println("testQueryOptionAuctionInfo");
int result = tradeApi.queryOptionAuctionInfo(null, sessionId, 13);
Assert.assertEquals(result, 0);
}

@Test
public void testGetTradingDay() {
System.out.println("testGetTradingDay");
String tradingDay = tradeApi.getTradingDay();
System.out.println("testGetTradingDay tradingDay: " + tradingDay);
Assert.assertNotNull(tradingDay);
}

@Test
public void testGetApiVersion() {
System.out.println("testGetApiVersion");
String version = tradeApi.getApiVersion();
System.out.println("testGetApiVersion version: " + version);
Assert.assertEquals("1.1.18.19", version);
}

@Test
public void testGetClientIDByXTPID() {
System.out.println("testGetClientIDByXTPID");
short clientId = tradeApi.getClientIDByXTPID("1009073519666951445");
System.out.println("testGetClientIDByXTPID clientId: " + clientId);
Assert.assertNotNull(clientId);
}

@Test
public void testGetAccountByXTPID() {
System.out.println("testGetAccountByXTPID");
String account = tradeApi.getAccountByXTPID("396628509490944857");
System.out.println("testGetAccountByXTPID account: " + account);
Assert.assertNotNull(account);
}

//==============Common Functions=========
private String insertOrder() {
Expand Down