# 異常取引アラート照会
- Python
- Proto
- C#
- Java
- C++
- JavaScript
get_option_event_alert(count=200, page=None)
説明
設定済みのオプション異常取引アラートリストを照会します。ページネーション対応。
パラメータ
パラメータ 型 説明 count int ページあたりの数量 範囲 [1,500]、デフォルト 200page str ページングマーカー 初回は None を渡す、ページングは next_page を渡す戻り値
パラメータ 型 説明 ret RET_CODE インターフェース呼び出し結果 data dict ret == RET_OK の場合、アラートデータを返す str ret != RET_OK の場合、エラー説明を返す data 辞書含有:
フィールド 型 説明 alert_list pandas.DataFrame アラート設定リスト next_page str 次ページマーカー(空文字列は次ページなし) all_count int アラート項目総数 alert_list DataFrame 各列フィールド:
フィールド 型 説明 key int アラート一意識別子 enable bool アラートスイッチ option_market str 市場カテゴリ(OptionMarket 列挙値) watchlist_group_name str ウォッチリストグループ名 underlying str 指定原資産コード option_type str オプションタイプ(CALL/PUT) side_type_list list 約定方向リスト(EventTickerType 列挙値) order_type_list list 注文タイプリスト(AlertOrderType 列挙値) market_cap_range_min float 原資産時価総額下限 market_cap_range_max float 原資産時価総額上限 market_cap_min_inclusive bool 原資産時価総額下限が閉区間かどうか market_cap_max_inclusive bool 原資産時価総額上限が閉区間かどうか expiry_days_range_min float 満期までの日数下限 expiry_days_range_max float 満期までの日数上限 expiry_days_min_inclusive bool 満期までの日数下限が閉区間かどうか expiry_days_max_inclusive bool 満期までの日数上限が閉区間かどうか price_range_min float 異常取引約定価格下限 price_range_max float 異常取引約定価格上限 price_min_inclusive bool 異常取引約定価格下限が閉区間かどうか price_max_inclusive bool 異常取引約定価格上限が閉区間かどうか size_range_min float 異常取引約定数量下限(枚) size_range_max float 異常取引約定数量上限(枚) size_min_inclusive bool 異常取引約定数量下限が閉区間かどうか size_max_inclusive bool 異常取引約定数量上限が閉区間かどうか premium_range_min float 異常取引約定金額下限 premium_range_max float 異常取引約定金額上限 premium_min_inclusive bool 異常取引約定金額下限が閉区間かどうか premium_max_inclusive bool 異常取引約定金額上限が閉区間かどうか iv_range_min float インプライドボラティリティ下限(%) iv_range_max float インプライドボラティリティ上限(%) iv_min_inclusive bool インプライドボラティリティ下限が閉区間かどうか iv_max_inclusive bool インプライドボラティリティ上限が閉区間かどうか earnings_date_begin str 決算日フィルタ開始日(yyyy-MM-dd) earnings_date_end str 決算日フィルタ終了日(yyyy-MM-dd) note str メモ
Example
from futu import *
quote_ctx = OpenQuoteContext(host='127.0.0.1', port=11111)
ret, data = quote_ctx.get_option_event_alert()
if ret == RET_OK:
print(data['alert_list'])
print('all_count:', data['all_count'])
else:
print('error:', data)
quote_ctx.close()
2
3
4
5
6
7
8
9
10
11
12
- Output
key enable option_market watchlist_group_name underlying option_type side_type_list order_type_list market_cap_range_min market_cap_range_max market_cap_min_inclusive market_cap_max_inclusive expiry_days_range_min expiry_days_range_max expiry_days_min_inclusive expiry_days_max_inclusive price_range_min price_range_max price_min_inclusive price_max_inclusive size_range_min size_range_max size_min_inclusive size_max_inclusive premium_range_min premium_range_max premium_min_inclusive premium_max_inclusive iv_range_min iv_range_max iv_min_inclusive iv_max_inclusive earnings_date_begin earnings_date_end note
0 14743 False US_SECURITY N/A N/A CALL N/A [SWEEP] N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A 100.0 N/A True N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A test
all_count: 1
2
3
# Qot_GetOptionEventAlert.proto
説明
設定済みのオプション異常取引アラートリストを照会
パラメータ
message C2S {
optional int32 count = 1;
optional string page = 2;
}
message Request {
required C2S c2s = 1;
}
2
3
4
5
6
7
8
- 戻り値
message EventAlertItem {
optional int64 key = 1;
optional bool enable = 2;
optional int32 optionMarket = 10;
optional string watchlistGroupName = 11;
optional Qot_Common.Security underlying = 12;
optional int32 optionType = 20;
repeated int32 sideTypeList = 21;
repeated int32 orderTypeList = 22;
optional Qot_OptionCommon.Interval marketCapRange = 30;
optional Qot_OptionCommon.Interval expiryDaysRange = 31;
optional Qot_OptionCommon.Interval priceRange = 32;
optional Qot_OptionCommon.Interval sizeRange = 33;
optional Qot_OptionCommon.Interval premiumRange = 34;
optional Qot_OptionCommon.Interval ivRange = 35;
optional string earningsDateBegin = 41;
optional string earningsDateEnd = 42;
optional string note = 50;
}
message S2C {
repeated EventAlertItem alertList = 1;
optional string nextPage = 2;
optional int32 allCount = 3;
}
message Response {
required int32 retType = 1 [default = -400]; //RetType、戻り結果
optional string retMsg = 2;
optional int32 errCode = 3;
optional S2C s2c = 4;
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
- インターフェース呼び出し結果、構造は RetType を参照
プロトコル ID
3308
uint GetOptionEventAlert(Qot_GetOptionEventAlert.Request req); virtual void OnReply_GetOptionEventAlert(FTAPI_Conn client, uint nSerialNo, Qot_GetOptionEventAlert.Response rsp);
説明
設定済みのオプション異常取引アラートリストを照会
パラメータ
message C2S {
optional int32 count = 1;
optional string page = 2;
}
message Request {
required C2S c2s = 1;
}
2
3
4
5
6
7
8
- 戻り値
message EventAlertItem {
optional int64 key = 1;
optional bool enable = 2;
optional int32 optionMarket = 10;
optional string watchlistGroupName = 11;
optional Qot_Common.Security underlying = 12;
optional int32 optionType = 20;
repeated int32 sideTypeList = 21;
repeated int32 orderTypeList = 22;
optional Qot_OptionCommon.Interval marketCapRange = 30;
optional Qot_OptionCommon.Interval expiryDaysRange = 31;
optional Qot_OptionCommon.Interval priceRange = 32;
optional Qot_OptionCommon.Interval sizeRange = 33;
optional Qot_OptionCommon.Interval premiumRange = 34;
optional Qot_OptionCommon.Interval ivRange = 35;
optional string earningsDateBegin = 41;
optional string earningsDateEnd = 42;
optional string note = 50;
}
message S2C {
repeated EventAlertItem alertList = 1;
optional string nextPage = 2;
optional int32 allCount = 3;
}
message Response {
required int32 retType = 1 [default = -400]; //RetType、戻り結果
optional string retMsg = 2;
optional int32 errCode = 3;
optional S2C s2c = 4;
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
- インターフェース呼び出し結果、構造は RetType を参照
プロトコル ID
3308
int getOptionEventAlert(Qot_GetOptionEventAlert.Request req) onReply_GetOptionEventAlert(FTAPI_Conn client, int nSerialNo, Qot_GetOptionEventAlert.Response rsp)
説明
設定済みのオプション異常取引アラートリストを照会
パラメータ
message C2S {
optional int32 count = 1;
optional string page = 2;
}
message Request {
required C2S c2s = 1;
}
2
3
4
5
6
7
8
- 戻り値
message EventAlertItem {
optional int64 key = 1;
optional bool enable = 2;
optional int32 optionMarket = 10;
optional string watchlistGroupName = 11;
optional Qot_Common.Security underlying = 12;
optional int32 optionType = 20;
repeated int32 sideTypeList = 21;
repeated int32 orderTypeList = 22;
optional Qot_OptionCommon.Interval marketCapRange = 30;
optional Qot_OptionCommon.Interval expiryDaysRange = 31;
optional Qot_OptionCommon.Interval priceRange = 32;
optional Qot_OptionCommon.Interval sizeRange = 33;
optional Qot_OptionCommon.Interval premiumRange = 34;
optional Qot_OptionCommon.Interval ivRange = 35;
optional string earningsDateBegin = 41;
optional string earningsDateEnd = 42;
optional string note = 50;
}
message S2C {
repeated EventAlertItem alertList = 1;
optional string nextPage = 2;
optional int32 allCount = 3;
}
message Response {
required int32 retType = 1 [default = -400]; //RetType、戻り結果
optional string retMsg = 2;
optional int32 errCode = 3;
optional S2C s2c = 4;
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
- インターフェース呼び出し結果、構造は RetType を参照
プロトコル ID
3308
Futu::u32_t GetOptionEventAlert(const Qot_GetOptionEventAlert::Request &stReq);
virtual void OnReply_GetOptionEventAlert(Futu::u32_t nSerialNo, const Qot_GetOptionEventAlert::Response &stRsp) = 0;
説明
設定済みのオプション異常取引アラートリストを照会
パラメータ
message C2S {
optional int32 count = 1;
optional string page = 2;
}
message Request {
required C2S c2s = 1;
}
2
3
4
5
6
7
8
- 戻り値
message EventAlertItem {
optional int64 key = 1;
optional bool enable = 2;
optional int32 optionMarket = 10;
optional string watchlistGroupName = 11;
optional Qot_Common.Security underlying = 12;
optional int32 optionType = 20;
repeated int32 sideTypeList = 21;
repeated int32 orderTypeList = 22;
optional Qot_OptionCommon.Interval marketCapRange = 30;
optional Qot_OptionCommon.Interval expiryDaysRange = 31;
optional Qot_OptionCommon.Interval priceRange = 32;
optional Qot_OptionCommon.Interval sizeRange = 33;
optional Qot_OptionCommon.Interval premiumRange = 34;
optional Qot_OptionCommon.Interval ivRange = 35;
optional string earningsDateBegin = 41;
optional string earningsDateEnd = 42;
optional string note = 50;
}
message S2C {
repeated EventAlertItem alertList = 1;
optional string nextPage = 2;
optional int32 allCount = 3;
}
message Response {
required int32 retType = 1 [default = -400]; //RetType、戻り結果
optional string retMsg = 2;
optional int32 errCode = 3;
optional S2C s2c = 4;
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
- インターフェース呼び出し結果、構造は RetType を参照
プロトコル ID
3308
Example
class Program : public FTSPI_Qot, public FTSPI_Conn
{
public:
Program() {
m_pQotApi = FTAPI::CreateQotApi();
m_pQotApi->RegisterQotSpi(this);
m_pQotApi->RegisterConnSpi(this);
}
~Program() {
if (m_pQotApi != nullptr) {
m_pQotApi->UnregisterQotSpi();
m_pQotApi->UnregisterConnSpi();
FTAPI::ReleaseQotApi(m_pQotApi);
m_pQotApi = nullptr;
}
}
void Start() {
m_pQotApi->InitConnect("127.0.0.1", 11111, false);
}
virtual void OnInitConnect(FTAPI_Conn* pConn, Futu::i64_t nErrCode, const char* strDesc) {
Qot_GetOptionEventAlert::Request req;
Qot_GetOptionEventAlert::C2S *c2s = req.mutable_c2s();
// TODO: 按 proto 填充 c2s 字段
m_GetOptionEventAlertSerialNo = m_pQotApi->GetOptionEventAlert(req);
}
virtual void OnReply_GetOptionEventAlert(Futu::u32_t nSerialNo, const Qot_GetOptionEventAlert::Response &stRsp) {
if (nSerialNo != m_GetOptionEventAlertSerialNo) return;
string resp_str;
ProtoBufToBodyData(stRsp, resp_str);
cout << UTF8ToLocal(resp_str) << endl;
}
protected:
FTAPI_Qot *m_pQotApi;
Futu::u32_t m_GetOptionEventAlertSerialNo = 0;
};
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
getOptionEventAlert(qotGetOptionEventAlert)
説明
設定済みのオプション異常取引アラートリストを照会
パラメータ
message C2S {
optional int32 count = 1;
optional string page = 2;
}
message Request {
required C2S c2s = 1;
}
2
3
4
5
6
7
8
- 戻り値
message EventAlertItem {
optional int64 key = 1;
optional bool enable = 2;
optional int32 optionMarket = 10;
optional string watchlistGroupName = 11;
optional Qot_Common.Security underlying = 12;
optional int32 optionType = 20;
repeated int32 sideTypeList = 21;
repeated int32 orderTypeList = 22;
optional Qot_OptionCommon.Interval marketCapRange = 30;
optional Qot_OptionCommon.Interval expiryDaysRange = 31;
optional Qot_OptionCommon.Interval priceRange = 32;
optional Qot_OptionCommon.Interval sizeRange = 33;
optional Qot_OptionCommon.Interval premiumRange = 34;
optional Qot_OptionCommon.Interval ivRange = 35;
optional string earningsDateBegin = 41;
optional string earningsDateEnd = 42;
optional string note = 50;
}
message S2C {
repeated EventAlertItem alertList = 1;
optional string nextPage = 2;
optional int32 allCount = 3;
}
message Response {
required int32 retType = 1 [default = -400]; //RetType、戻り結果
optional string retMsg = 2;
optional int32 errCode = 3;
optional S2C s2c = 4;
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
- インターフェース呼び出し結果、構造は RetType を参照
プロトコル ID
3308
Example
import ftWebsocket from "futu-api";
import { Common, Qot_Common, Qot_OptionCommon } from "futu-api/proto";
import beautify from "js-beautify";
function QotGetOptionEventAlert(){
const { RetType } = Common
const { OptionMarket } = Qot_OptionCommon
const { OptionType } = Qot_Common
let [addr, port, enable_ssl, key] = ["127.0.0.1", 33333, false, '7522027ccf5a06b1'];
let websocket = new ftWebsocket();
websocket.onlogin = (ret, msg)=>{
if (ret) {
const req = {
c2s: {
count: 10,
page: "",
},
};
websocket.GetOptionEventAlert(req)
.then((res)=>{
let { errCode, retMsg, retType, s2c } = res
console.log("GetOptionEventAlert: errCode %d, retMsg %s, retType %d", errCode, retMsg, retType);
if(retType == RetType.RetType_Succeed){
let data = beautify(JSON.stringify(s2c), { indent_size: 2, space_in_empty_paren: true });
console.log(data);
}
})
.catch((error)=>{ console.log("error:", error); });
} else {
console.log("start error", msg);
}
};
websocket.start(addr, port, enable_ssl, key);
setTimeout(()=>{ websocket.stop(); process.exit(); }, 5000);
}
QotGetOptionEventAlert()
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
- Output
GetOptionEventAlert: errCode 0, retMsg , retType 0
{
"alertList": [
{
"key": "1700000000001",
"enable": true,
"optionMarket": 0,
"optionType": 1,
"orderTypeList": [1],
"sizeRange": { "filterMin": { "value": 100, "includes": true } },
"note": "test"
}
],
"nextPage": "",
"allCount": 1
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
インターフェース制限
- 30秒以内に最大60回の異常取引アラート照会インターフェースリクエスト(ページング対応のインターフェースは初回呼び出しのみカウント)
- Python
- Proto
- C#
- Java
- C++
- JavaScript
get_option_event_alert(count=200, page=None)
説明
設定済みのオプション異常取引アラートリストを照会します。ページネーション対応。
パラメータ
パラメータ 型 説明 count int ページあたりの数量 範囲 [1,500]、デフォルト 200page str ページングマーカー 初回は None を渡す、ページングは next_page を渡す戻り値
パラメータ 型 説明 ret RET_CODE インターフェース呼び出し結果 data dict ret == RET_OK の場合、アラートデータを返す str ret != RET_OK の場合、エラー説明を返す data 辞書含有:
フィールド 型 説明 alert_list pandas.DataFrame アラート設定リスト next_page str 次ページマーカー(空文字列は次ページなし) all_count int アラート項目総数 alert_list DataFrame 各列フィールド:
フィールド 型 説明 key int アラート一意識別子 enable bool アラートスイッチ option_market str 市場カテゴリ(OptionMarket 列挙値) watchlist_group_name str ウォッチリストグループ名 underlying str 指定原資産コード option_type str オプションタイプ(CALL/PUT) side_type_list list 約定方向リスト(EventTickerType 列挙値) order_type_list list 注文タイプリスト(AlertOrderType 列挙値) market_cap_range_min float 原資産時価総額下限 market_cap_range_max float 原資産時価総額上限 market_cap_min_inclusive bool 原資産時価総額下限が閉区間かどうか market_cap_max_inclusive bool 原資産時価総額上限が閉区間かどうか expiry_days_range_min float 満期までの日数下限 expiry_days_range_max float 満期までの日数上限 expiry_days_min_inclusive bool 満期までの日数下限が閉区間かどうか expiry_days_max_inclusive bool 満期までの日数上限が閉区間かどうか price_range_min float 異常取引約定価格下限 price_range_max float 異常取引約定価格上限 price_min_inclusive bool 異常取引約定価格下限が閉区間かどうか price_max_inclusive bool 異常取引約定価格上限が閉区間かどうか size_range_min float 異常取引約定数量下限(枚) size_range_max float 異常取引約定数量上限(枚) size_min_inclusive bool 異常取引約定数量下限が閉区間かどうか size_max_inclusive bool 異常取引約定数量上限が閉区間かどうか premium_range_min float 異常取引約定金額下限 premium_range_max float 異常取引約定金額上限 premium_min_inclusive bool 異常取引約定金額下限が閉区間かどうか premium_max_inclusive bool 異常取引約定金額上限が閉区間かどうか iv_range_min float インプライドボラティリティ下限(%) iv_range_max float インプライドボラティリティ上限(%) iv_min_inclusive bool インプライドボラティリティ下限が閉区間かどうか iv_max_inclusive bool インプライドボラティリティ上限が閉区間かどうか earnings_date_begin str 決算日フィルタ開始日(yyyy-MM-dd) earnings_date_end str 決算日フィルタ終了日(yyyy-MM-dd) note str メモ
Example
from moomoo import *
quote_ctx = OpenQuoteContext(host='127.0.0.1', port=11111)
ret, data = quote_ctx.get_option_event_alert()
if ret == RET_OK:
print(data['alert_list'])
print('all_count:', data['all_count'])
else:
print('error:', data)
quote_ctx.close()
2
3
4
5
6
7
8
9
10
11
12
- Output
key enable option_market watchlist_group_name underlying option_type side_type_list order_type_list market_cap_range_min market_cap_range_max market_cap_min_inclusive market_cap_max_inclusive expiry_days_range_min expiry_days_range_max expiry_days_min_inclusive expiry_days_max_inclusive price_range_min price_range_max price_min_inclusive price_max_inclusive size_range_min size_range_max size_min_inclusive size_max_inclusive premium_range_min premium_range_max premium_min_inclusive premium_max_inclusive iv_range_min iv_range_max iv_min_inclusive iv_max_inclusive earnings_date_begin earnings_date_end note
0 14743 False US_SECURITY N/A N/A CALL N/A [SWEEP] N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A 100.0 N/A True N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A test
all_count: 1
2
3
# Qot_GetOptionEventAlert.proto
説明
設定済みのオプション異常取引アラートリストを照会
パラメータ
message C2S {
optional int32 count = 1;
optional string page = 2;
}
message Request {
required C2S c2s = 1;
}
2
3
4
5
6
7
8
- 戻り値
message EventAlertItem {
optional int64 key = 1;
optional bool enable = 2;
optional int32 optionMarket = 10;
optional string watchlistGroupName = 11;
optional Qot_Common.Security underlying = 12;
optional int32 optionType = 20;
repeated int32 sideTypeList = 21;
repeated int32 orderTypeList = 22;
optional Qot_OptionCommon.Interval marketCapRange = 30;
optional Qot_OptionCommon.Interval expiryDaysRange = 31;
optional Qot_OptionCommon.Interval priceRange = 32;
optional Qot_OptionCommon.Interval sizeRange = 33;
optional Qot_OptionCommon.Interval premiumRange = 34;
optional Qot_OptionCommon.Interval ivRange = 35;
optional string earningsDateBegin = 41;
optional string earningsDateEnd = 42;
optional string note = 50;
}
message S2C {
repeated EventAlertItem alertList = 1;
optional string nextPage = 2;
optional int32 allCount = 3;
}
message Response {
required int32 retType = 1 [default = -400]; //RetType、戻り結果
optional string retMsg = 2;
optional int32 errCode = 3;
optional S2C s2c = 4;
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
- インターフェース呼び出し結果、構造は RetType を参照
プロトコル ID
3308
uint GetOptionEventAlert(Qot_GetOptionEventAlert.Request req); virtual void OnReply_GetOptionEventAlert(MMAPI_Conn client, uint nSerialNo, Qot_GetOptionEventAlert.Response rsp);
説明
設定済みのオプション異常取引アラートリストを照会
パラメータ
message C2S {
optional int32 count = 1;
optional string page = 2;
}
message Request {
required C2S c2s = 1;
}
2
3
4
5
6
7
8
- 戻り値
message EventAlertItem {
optional int64 key = 1;
optional bool enable = 2;
optional int32 optionMarket = 10;
optional string watchlistGroupName = 11;
optional Qot_Common.Security underlying = 12;
optional int32 optionType = 20;
repeated int32 sideTypeList = 21;
repeated int32 orderTypeList = 22;
optional Qot_OptionCommon.Interval marketCapRange = 30;
optional Qot_OptionCommon.Interval expiryDaysRange = 31;
optional Qot_OptionCommon.Interval priceRange = 32;
optional Qot_OptionCommon.Interval sizeRange = 33;
optional Qot_OptionCommon.Interval premiumRange = 34;
optional Qot_OptionCommon.Interval ivRange = 35;
optional string earningsDateBegin = 41;
optional string earningsDateEnd = 42;
optional string note = 50;
}
message S2C {
repeated EventAlertItem alertList = 1;
optional string nextPage = 2;
optional int32 allCount = 3;
}
message Response {
required int32 retType = 1 [default = -400]; //RetType、戻り結果
optional string retMsg = 2;
optional int32 errCode = 3;
optional S2C s2c = 4;
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
- インターフェース呼び出し結果、構造は RetType を参照
プロトコル ID
3308
int getOptionEventAlert(Qot_GetOptionEventAlert.Request req) onReply_GetOptionEventAlert(MMAPI_Conn client, int nSerialNo, Qot_GetOptionEventAlert.Response rsp)
説明
設定済みのオプション異常取引アラートリストを照会
パラメータ
message C2S {
optional int32 count = 1;
optional string page = 2;
}
message Request {
required C2S c2s = 1;
}
2
3
4
5
6
7
8
- 戻り値
message EventAlertItem {
optional int64 key = 1;
optional bool enable = 2;
optional int32 optionMarket = 10;
optional string watchlistGroupName = 11;
optional Qot_Common.Security underlying = 12;
optional int32 optionType = 20;
repeated int32 sideTypeList = 21;
repeated int32 orderTypeList = 22;
optional Qot_OptionCommon.Interval marketCapRange = 30;
optional Qot_OptionCommon.Interval expiryDaysRange = 31;
optional Qot_OptionCommon.Interval priceRange = 32;
optional Qot_OptionCommon.Interval sizeRange = 33;
optional Qot_OptionCommon.Interval premiumRange = 34;
optional Qot_OptionCommon.Interval ivRange = 35;
optional string earningsDateBegin = 41;
optional string earningsDateEnd = 42;
optional string note = 50;
}
message S2C {
repeated EventAlertItem alertList = 1;
optional string nextPage = 2;
optional int32 allCount = 3;
}
message Response {
required int32 retType = 1 [default = -400]; //RetType、戻り結果
optional string retMsg = 2;
optional int32 errCode = 3;
optional S2C s2c = 4;
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
- インターフェース呼び出し結果、構造は RetType を参照
プロトコル ID
3308
Moomoo::u32_t GetOptionEventAlert(const Qot_GetOptionEventAlert::Request &stReq);
virtual void OnReply_GetOptionEventAlert(Moomoo::u32_t nSerialNo, const Qot_GetOptionEventAlert::Response &stRsp) = 0;
説明
設定済みのオプション異常取引アラートリストを照会
パラメータ
message C2S {
optional int32 count = 1;
optional string page = 2;
}
message Request {
required C2S c2s = 1;
}
2
3
4
5
6
7
8
- 戻り値
message EventAlertItem {
optional int64 key = 1;
optional bool enable = 2;
optional int32 optionMarket = 10;
optional string watchlistGroupName = 11;
optional Qot_Common.Security underlying = 12;
optional int32 optionType = 20;
repeated int32 sideTypeList = 21;
repeated int32 orderTypeList = 22;
optional Qot_OptionCommon.Interval marketCapRange = 30;
optional Qot_OptionCommon.Interval expiryDaysRange = 31;
optional Qot_OptionCommon.Interval priceRange = 32;
optional Qot_OptionCommon.Interval sizeRange = 33;
optional Qot_OptionCommon.Interval premiumRange = 34;
optional Qot_OptionCommon.Interval ivRange = 35;
optional string earningsDateBegin = 41;
optional string earningsDateEnd = 42;
optional string note = 50;
}
message S2C {
repeated EventAlertItem alertList = 1;
optional string nextPage = 2;
optional int32 allCount = 3;
}
message Response {
required int32 retType = 1 [default = -400]; //RetType、戻り結果
optional string retMsg = 2;
optional int32 errCode = 3;
optional S2C s2c = 4;
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
- インターフェース呼び出し結果、構造は RetType を参照
プロトコル ID
3308
Example
class Program : public MMSPI_Qot, public MMSPI_Conn
{
public:
Program() {
m_pQotApi = MMAPI::CreateQotApi();
m_pQotApi->RegisterQotSpi(this);
m_pQotApi->RegisterConnSpi(this);
}
~Program() {
if (m_pQotApi != nullptr) {
m_pQotApi->UnregisterQotSpi();
m_pQotApi->UnregisterConnSpi();
MMAPI::ReleaseQotApi(m_pQotApi);
m_pQotApi = nullptr;
}
}
void Start() {
m_pQotApi->InitConnect("127.0.0.1", 11111, false);
}
virtual void OnInitConnect(MMAPI_Conn* pConn, Moomoo::i64_t nErrCode, const char* strDesc) {
Qot_GetOptionEventAlert::Request req;
Qot_GetOptionEventAlert::C2S *c2s = req.mutable_c2s();
// TODO: 按 proto 填充 c2s 字段
m_GetOptionEventAlertSerialNo = m_pQotApi->GetOptionEventAlert(req);
}
virtual void OnReply_GetOptionEventAlert(Moomoo::u32_t nSerialNo, const Qot_GetOptionEventAlert::Response &stRsp) {
if (nSerialNo != m_GetOptionEventAlertSerialNo) return;
string resp_str;
ProtoBufToBodyData(stRsp, resp_str);
cout << UTF8ToLocal(resp_str) << endl;
}
protected:
MMAPI_Qot *m_pQotApi;
Moomoo::u32_t m_GetOptionEventAlertSerialNo = 0;
};
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
getOptionEventAlert(qotGetOptionEventAlert)
説明
設定済みのオプション異常取引アラートリストを照会
パラメータ
message C2S {
optional int32 count = 1;
optional string page = 2;
}
message Request {
required C2S c2s = 1;
}
2
3
4
5
6
7
8
- 戻り値
message EventAlertItem {
optional int64 key = 1;
optional bool enable = 2;
optional int32 optionMarket = 10;
optional string watchlistGroupName = 11;
optional Qot_Common.Security underlying = 12;
optional int32 optionType = 20;
repeated int32 sideTypeList = 21;
repeated int32 orderTypeList = 22;
optional Qot_OptionCommon.Interval marketCapRange = 30;
optional Qot_OptionCommon.Interval expiryDaysRange = 31;
optional Qot_OptionCommon.Interval priceRange = 32;
optional Qot_OptionCommon.Interval sizeRange = 33;
optional Qot_OptionCommon.Interval premiumRange = 34;
optional Qot_OptionCommon.Interval ivRange = 35;
optional string earningsDateBegin = 41;
optional string earningsDateEnd = 42;
optional string note = 50;
}
message S2C {
repeated EventAlertItem alertList = 1;
optional string nextPage = 2;
optional int32 allCount = 3;
}
message Response {
required int32 retType = 1 [default = -400]; //RetType、戻り結果
optional string retMsg = 2;
optional int32 errCode = 3;
optional S2C s2c = 4;
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
- インターフェース呼び出し結果、構造は RetType を参照
プロトコル ID
3308
Example
import mmWebsocket from "moomoo-api";
import { Common, Qot_Common, Qot_OptionCommon } from "moomoo-api/proto";
import beautify from "js-beautify";
function QotGetOptionEventAlert(){
const { RetType } = Common
const { OptionMarket } = Qot_OptionCommon
const { OptionType } = Qot_Common
let [addr, port, enable_ssl, key] = ["127.0.0.1", 33333, false, '7522027ccf5a06b1'];
let websocket = new mmWebsocket();
websocket.onlogin = (ret, msg)=>{
if (ret) {
const req = {
c2s: {
count: 10,
page: "",
},
};
websocket.GetOptionEventAlert(req)
.then((res)=>{
let { errCode, retMsg, retType, s2c } = res
console.log("GetOptionEventAlert: errCode %d, retMsg %s, retType %d", errCode, retMsg, retType);
if(retType == RetType.RetType_Succeed){
let data = beautify(JSON.stringify(s2c), { indent_size: 2, space_in_empty_paren: true });
console.log(data);
}
})
.catch((error)=>{ console.log("error:", error); });
} else {
console.log("start error", msg);
}
};
websocket.start(addr, port, enable_ssl, key);
setTimeout(()=>{ websocket.stop(); process.exit(); }, 5000);
}
QotGetOptionEventAlert()
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
- Output
GetOptionEventAlert: errCode 0, retMsg , retType 0
{
"alertList": [
{
"key": "1700000000001",
"enable": true,
"optionMarket": 0,
"optionType": 1,
"orderTypeList": [1],
"sizeRange": { "filterMin": { "value": 100, "includes": true } },
"note": "test"
}
],
"nextPage": "",
"allCount": 1
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
インターフェース制限
- 30秒以内に最大60回の異常取引アラート照会インターフェースリクエスト(ページング対応のインターフェースは初回呼び出しのみカウント)
← オプション異常取引 異常取引アラート設定 →