# 銘柄スクリーニング V2

get_stock_screen(request)

  • 説明

    条件付き銘柄スクリーニング V2。旧 API get_stock_filter と比較して、指標カバレッジがより広く(11 種類で計 244+ 個の指標)、数値はすべて原始値で渡します(OpenD が自動的に倍率変換)。単一フィールドまたは複数フィールドのソートに対応し、取得属性を明示的に宣言します。結果は value_type に応じて sval / ival / aval / dval に振り分けられます。

  • パラメータ

    パラメータ タイプ 説明
    request StockScreenRequest 条件付きスクリーニングリクエストオブジェクト。builder 方式で構築
    • StockScreenRequest フィールド:

      フィールド タイプ 説明
      page_from int ページング開始位置
      page_count int 1 ページあたりの最大返却件数
    • フィルタ条件 builder メソッド(呼び出すごとにフィルタ条件を 1 件追加。すべての数値フィールドは原始値を直接渡し、OpenD が自動的に倍率変換):

      メソッド 説明
      add_simple_field(field, values) 市場 / 取引所 / 指数 / お気に入り銘柄などの列挙フィールドフィルタ
      add_plate(plate_ids, parent_plate_id=None) プレートフィルタ
      add_simple_property(name, lower=None, upper=None) シンプル相場属性区間フィルタ
      add_cumulative_property(name, days=1, lower=None, upper=None) 累積相場属性
      add_financial_property(name, term=None, year=None, lower=None, upper=None, ...) 財務属性
      add_indicator_positional(first_indicator_name, period_type, position, second_indicator=None, ...) テクニカル指標の位置関係
      add_indicator_pattern(name, period_type, ...) テクニカル指標形態(ゴールデンクロス、デッドクロス、ダイバージェンスなど)
      add_featured_property(name, intervals=None, value_set=None, period=None, range_period=None, first_custom_param=None) 特色指標(チップ、ヒート、アナリスト評価、資金フローなど)
      add_broker_holdings(name, days=None, param=None, intervals=None) ブローカー保有比率指標
      add_kline_shape(name, period=None, value_set=None) ローソク足形態(ダブルボトム、ヘッドアンドショルダーなど)
      add_option(name, intervals=None, param=None, period=None) オプション指標(原株 IV、HV など)
    • 取得属性 builder メソッド(返す属性を宣言;宣言しないと stock_id のみ返す):

      メソッド 説明
      add_retrieve_basic(name) コード / 名称 / 業界
      add_retrieve_simple(name) シンプル相場属性
      add_retrieve_cumulative(name, days=1, period_average=None) 累積属性
      add_retrieve_financial(name, term=None, year=None, ...) 財務属性
      add_retrieve_indicator(name, period=None, indicator_params=None) テクニカル指標
      add_retrieve_featured(name, period=None, range_period=None, first_custom_param=None) 特色属性
      add_retrieve_broker(name, days=None, param=None) ブローカー
      add_retrieve_option(name, param=None, period=None) オプション属性
      add_retrieve_kline_shape(name, period=None) ローソク足形態
    • ソート builder メソッド:

      メソッド 説明
      set_sort(direction, property_type, property_params) 単一フィールドソート
      add_sort(direction, property_type, property_params) 複数フィールドソート
  • 戻り値

    パラメータ タイプ 説明
    ret RET_CODE API 呼び出し結果
    data tuple ret == RET_OK のとき、(last_page, all_count, items) を返す
    str ret != RET_OK のとき、エラー記述を返す
    • 戻り値 tuple フィールド:

      フィールド タイプ 説明
      last_page bool 最終ページか否か
      all_count int 条件を満たす総件数
      items list[dict] 現ページの結果リスト、要素構造は {'stock_id': int, 'results': [result, ...]}
    • 単一 result の構造:

      フィールド タイプ 説明
      type str 属性タイプ
      property dict 対応する property 記述(name / days / term などを含む)
      value_type int 値タイプ
      sval str 文字列値(value_type=1 のとき存在)
      ival int 整数値(value_type=2 のとき存在)
      aval list[int] 整数配列値(value_type=3 のとき存在)
      dval float 浮動小数点値(value_type=4 のとき存在)
      enum_type_name str ival が列挙コードの場合、対応する列挙型名(例:'KlineShapeType')
      enum_name str ival が列挙コードの場合、OpenD/SDK がデコードした列挙名(例:'DOUBLE_BOTTOMS'、'NONE')
      end_time int 決算終了タイムスタンプ
  • Example

from moomoo import OpenQuoteContext, RET_OK, StockScreenRequest
from moomoo.quote.stock_screen_const import (
    ScrMarket, ScrSortDir, SimpleField, SimpleProperty,
    CumulativeProperty, FinancialProperty, Term,
    Indicator, Period, Position, Pattern,
    BasicProperty, KlineShapeProperty, KlineShapeType,
)

quote_ctx = OpenQuoteContext(host='127.0.0.1', port=11111)

# 例 1:香港株の大型株 + MACD ゴールデンクロス
req = StockScreenRequest()
req.add_simple_field(field=SimpleField.MARKET, values=[ScrMarket.HK])
req.add_simple_property(name=SimpleProperty.PRICE, lower=10.0)                   # 最新値 ≥ 10
req.add_simple_property(name=SimpleProperty.MARKET_CAP, lower=10_000_000_000.0)  # 時価総額 ≥ 100 億
req.add_simple_property(name=SimpleProperty.PE_TTM, lower=10.0, upper=50.0)      # PER(TTM) 10~50
req.add_indicator_pattern(name=Pattern.MACD_GOLD_CROSS, period_type=Period.DAY)  # MACD ゴールデンクロス
# 取得フィールド
req.add_retrieve_basic(name=BasicProperty.CODE)
req.add_retrieve_basic(name=BasicProperty.NAME)
req.add_retrieve_simple(name=SimpleProperty.PRICE)
req.add_retrieve_simple(name=SimpleProperty.MARKET_CAP)
req.add_retrieve_simple(name=SimpleProperty.PE_TTM)
# ソート
req.set_sort(direction=ScrSortDir.DESC, property_type='simple',
             property_params={'name': int(SimpleProperty.MARKET_CAP)})
req.page_count = 50

ret, data = quote_ctx.get_stock_screen(req)
if ret == RET_OK:
    last_page, all_count, items = data
    print(f"総件数 {all_count}, 現在の返却 {len(items)} 件")
    for it in items[:3]:
        print(it['stock_id'], it['results'])
else:
    print('error: ', data)

# 例 2:財務指標 + 累積変化率
req = StockScreenRequest()
req.add_simple_field(field=SimpleField.MARKET, values=[ScrMarket.HK])
req.add_cumulative_property(name=CumulativeProperty.PRICE_CHANGE_PCT,
                            days=5, lower=-0.05, upper=0.05)                     # 5 日変化率 -5%~5%(小数で渡す)
req.add_financial_property(name=FinancialProperty.NET_PROFIT,
                           term=Term.ANNUAL, lower=0.0)                          # 年次決算純利益 > 0
req.add_retrieve_basic(name=BasicProperty.CODE)
req.add_retrieve_simple(name=SimpleProperty.PRICE)
req.page_count = 200
ret, data = quote_ctx.get_stock_screen(req)

# 例 3:K 線パターン(W ボトム + ヘッドアンドショルダーボトム)
req = StockScreenRequest()
req.add_simple_field(field=SimpleField.MARKET, values=[ScrMarket.HK])
req.add_kline_shape(name=KlineShapeProperty.SHAPE_TYPE, period=Period.DAY,
                    value_set=[KlineShapeType.DOUBLE_BOTTOMS,
                               KlineShapeType.HEAD_SHOULDERS_BOTTOM])
req.add_retrieve_basic(name=BasicProperty.CODE)
req.add_retrieve_kline_shape(name=KlineShapeProperty.SHAPE_TYPE, period=Period.DAY)
ret, data = quote_ctx.get_stock_screen(req)

quote_ctx.close()
1
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
  • Output
合計 1, 今回 154047868453564 [{'type': 'basic', 'property': {'name': 1101}, 'value_type': 1, 'sval': '00700'},
                {'type': 'basic', 'property': {'name': 1102}, 'value_type': 1, 'sval': 'テンセント・ホールディングス'},
                {'type': 'simple', 'property': {'name': 2201}, 'value_type': 4, 'dval': 460.0},
                {'type': 'simple', 'property': {'name': 2301}, 'value_type': 4, 'dval': 4194280264040.0},
                {'type': 'simple', 'property': {'name': 2303}, 'value_type': 4, 'dval': 15.75126}]
1
2
3
4
5
6
  • フィールド別例(カテゴリ別)

    以下の例はすべて HK 市場を対象とします:まず req = StockScreenRequest()、次に req.add_simple_field(field=SimpleField.MARKET, values=[ScrMarket.HK])、 続けて各セクションのフィルタ / 取得 / ソート条件を重ね、最後に quote_ctx.get_stock_screen(req)(last_page, all_count, items) を取得します。 実測の headresults 配列内の対応 property 値を展開しています(code/name は BasicProperty.CODE/NAME から、ファクター列名は SDK のフィールド名小文字)。

    # シンプル相場属性 SimpleProperty

    add_simple_property(name, lower, upper) で渡す。lower/upper は元の値を直接渡す(円/株/百分率 5% は 5.0)

    # PRICE(id=2201 · simple · SimpleProperty) 現在値

    単位:通貨建て;lower/upper は元の価格をそのまま渡す、OpenD が自動倍率変換

    req.add_simple_property(name=SimpleProperty.PRICE, lower=10.0)
    req.add_retrieve_simple(name=SimpleProperty.PRICE)
    req.set_sort(direction=ScrSortDir.DESC, property_type='simple',
                 property_params={'name': int(SimpleProperty.PRICE)})
    
    1
    2
    3
    4

    実測返却(HK · all_count=485、ヒット 5 行、head 先頭 5):

          stock_id   code    name   price
    47704201761008  04336  应用材料-T  1620.0
    87836376173009  02513      智谱  1097.0
    47704201761005  04333    思科-T   750.0
    86839943761574  03750    宁德时代   672.5
    87840671141778  03986    兆易创新   653.5
    
    1
    2
    3
    4
    5
    6
    # MARKET_CAP(id=2301 · simple · SimpleProperty) 時価総額

    単位:通貨建て;lower=100 億は 10_000_000_000 と記述

    req.add_simple_property(name=SimpleProperty.MARKET_CAP, lower=10_000_000_000.0)
    req.add_retrieve_simple(name=SimpleProperty.MARKET_CAP)
    req.set_sort(direction=ScrSortDir.DESC, property_type='simple',
                 property_params={'name': int(SimpleProperty.MARKET_CAP)})
    
    1
    2
    3
    4

    実測返却(HK · all_count=591、ヒット 5 行、head 先頭 5):

          stock_id   code    name        market_cap
    54047868453564  00700    腾讯控股   4222484299075.2
    83820581829436  80700  腾讯控股-R   3641391766113.6
    86839943761574  03750    宁德时代   3111406771825.0
    47704201761005  04333    思科-T   2956075998750.0
    57754425230710  01398    工商银行  2573253176182.58
    
    1
    2
    3
    4
    5
    6
    # PE_TTM(id=2303 · simple · SimpleProperty) PE(TTM)

    通常の区間フィルタ;負値も可

    req.add_simple_property(name=SimpleProperty.PE_TTM, lower=5.0, upper=20.0)
    req.add_retrieve_simple(name=SimpleProperty.PE_TTM)
    req.set_sort(direction=ScrSortDir.ASC, property_type='simple',
                 property_params={'name': int(SimpleProperty.PE_TTM)})
    
    1
    2
    3
    4

    実測返却(HK · all_count=830、ヒット 5 行、head 先頭 5):

          stock_id   code      name  pe_ttm
    28604482191640  00280      景福集团     5.0
    67345087202619  01339  中国人民保险集团   5.037
    68629282424057  01273      香港信贷  5.0847
    76063870813891  01731    其利工业集团  5.0877
    35433480192608  00608      达利国际  5.0877
    
    1
    2
    3
    4
    5
    6
    # VOLUME_RATIO(id=2217 · simple · SimpleProperty) 出来高比率

    当日出来高 / N 日平均出来高;> 2 で大量取引

    req.add_simple_property(name=SimpleProperty.VOLUME_RATIO, lower=2.0)
    req.add_retrieve_simple(name=SimpleProperty.VOLUME_RATIO)
    req.set_sort(direction=ScrSortDir.DESC, property_type='simple',
                 property_params={'name': int(SimpleProperty.VOLUME_RATIO)})
    
    1
    2
    3
    4

    実測返却(HK · all_count=340、ヒット 5 行、head 先頭 5):

          stock_id   code      name  volume_ratio
    50796578209975  00183      宏辉集团         600.0
    45999099741384  01224      中渝置地       404.642
              1543  01543  中盈盛达融资担保       400.714
    24142011170996  00180      开达集团       314.999
     5033701671181  00269    中国资源交通         200.0
    
    1
    2
    3
    4
    5
    6
    # DIVIDEND_RATIO(id=2305 · simple · SimpleProperty) 配当利回り

    単位:% ;配当利回り ≥ 5% は 5.0 と渡す

    req.add_simple_property(name=SimpleProperty.DIVIDEND_RATIO, lower=5.0)
    req.add_retrieve_simple(name=SimpleProperty.DIVIDEND_RATIO)
    req.set_sort(direction=ScrSortDir.DESC, property_type='simple',
                 property_params={'name': int(SimpleProperty.DIVIDEND_RATIO)})
    
    1
    2
    3
    4

    実測返却(HK · all_count=0、ヒット 0 行):データなし。理由:HK の現在サンプルに配当利回り ≥ 5% の銘柄なし。lower 閾値を下げて再試行可

    # 累積相場属性 CumulativeProperty

    add_cumulative_property(name, days, lower, upper) で渡す。百分率系(騰落率/出来高回転率)は小数で渡す(5% は 0.05)

    # PRICE_CHANGE_PCT(id=3102 · cumulative · CumulativeProperty) N 日騰落率 %

    百分率は小数で渡す:5% は 0.05;days は N 日累計ウィンドウ

    req.add_cumulative_property(name=CumulativeProperty.PRICE_CHANGE_PCT,
                                days=5, lower=0.05)
    req.add_retrieve_cumulative(name=CumulativeProperty.PRICE_CHANGE_PCT, days=5)
    req.set_sort(direction=ScrSortDir.DESC, property_type='cumulative',
                 property_params={'name': int(CumulativeProperty.PRICE_CHANGE_PCT), 'days': 5})
    
    1
    2
    3
    4
    5

    実測返却(HK · all_count=363、ヒット 5 行、head 先頭 5):

          stock_id   code      name  change_pct_5d
    88510686038921  02953     嬴集团股权            4.0
    77640123811704  01912       康特隆         2.7679
    47704201761005  04333      思科-T         2.2029
    88467736365964  02956  中国健康科技股权         1.6667
    47704201761008  04336    应用材料-T         1.4384
    
    1
    2
    3
    4
    5
    6
    # AMPLITUDE(id=3103 · cumulative · CumulativeProperty) N 日振幅 %

    PRICE_CHANGE_PCT と同じ、百分率は小数で渡す

    req.add_cumulative_property(name=CumulativeProperty.AMPLITUDE,
                                days=20, lower=0.1)
    req.add_retrieve_cumulative(name=CumulativeProperty.AMPLITUDE, days=20)
    req.set_sort(direction=ScrSortDir.DESC, property_type='cumulative',
                 property_params={'name': int(CumulativeProperty.AMPLITUDE), 'days': 20})
    
    1
    2
    3
    4
    5

    実測返却(HK · all_count=2345、ヒット 5 行、head 先頭 5):

          stock_id   code    name  amp_20d
    47704201761008  04336  应用材料-T  43.3783
    55671366092780  02028    映美控股   9.0893
    59558311493749  00117  天利控股集团   8.0532
    42623255446398  00894    万裕科技     7.59
    88433376627363  02723    深演智能   6.3243
    
    1
    2
    3
    4
    5
    6
    # AVG_VOLUME(id=3104 · cumulative · CumulativeProperty) N 日平均出来高

    単位:株;N 日出来高の算術平均

    req.add_cumulative_property(name=CumulativeProperty.AVG_VOLUME,
                                days=20, lower=1_000_000)
    req.add_retrieve_cumulative(name=CumulativeProperty.AVG_VOLUME, days=20)
    req.set_sort(direction=ScrSortDir.DESC, property_type='cumulative',
                 property_params={'name': int(CumulativeProperty.AVG_VOLUME), 'days': 20})
    
    1
    2
    3
    4
    5

    実測返却(HK · all_count=2295、ヒット 5 行、head 先頭 5):

          stock_id   code    name  avg_vol_20d
    84688165145005  02477    经纬天地  15586288027
    58506044508119  02007     碧桂园  11318232417
    69325067126991  02255  海昌海洋公园  10691740000
    81462644703252  00020    商汤-W   9517974535
    79671643350793  09993    金辉控股   7418314265
    
    1
    2
    3
    4
    5
    6
    # TURNOVER_RATIO(id=3106 · cumulative · CumulativeProperty) N 日累計売買代金率

    単位:% ;百分率は小数で渡す(5% は 0.05)

    req.add_cumulative_property(name=CumulativeProperty.TURNOVER_RATIO,
                                days=20, lower=0.05)
    req.add_retrieve_cumulative(name=CumulativeProperty.TURNOVER_RATIO, days=20)
    req.set_sort(direction=ScrSortDir.DESC, property_type='cumulative',
                 property_params={'name': int(CumulativeProperty.TURNOVER_RATIO), 'days': 20})
    
    1
    2
    3
    4
    5

    実測返却(HK · all_count=800、ヒット 5 行、head 先頭 5):

          stock_id   code   name  turnover_ratio_20d
    58196806861368  00568   山东墨龙              6.7527
    84688165145005  02477   经纬天地              3.8966
    88089779243675  02715    埃斯顿              3.7288
    84434762074537  02473  喜相逢集团              3.4646
    87230785784391  02631   天岳先进              3.2208
    
    1
    2
    3
    4
    5
    6

    # 財務属性 FinancialProperty

    add_financial_property(name, term, year, lower, upper) で渡す。termTerm 列挙(年報=100、Q1=1、TTM 系は term 不要);比率系は小数で渡す(15% は 0.15)

    # NET_PROFIT(id=4101 · financial · FinancialProperty) 純利益

    単位:通貨建て;term=ANNUAL(100) 年報、Q1=1、Q2/Q3/Q4 は部分期間

    req.add_financial_property(name=FinancialProperty.NET_PROFIT,
                               term=Term.ANNUAL, lower=1_000_000_000.0)
    req.add_retrieve_financial(name=FinancialProperty.NET_PROFIT, term=Term.ANNUAL)
    req.set_sort(direction=ScrSortDir.DESC, property_type='financial',
                 property_params={'name': int(FinancialProperty.NET_PROFIT),
                                  'term': int(Term.ANNUAL)})
    
    1
    2
    3
    4
    5
    6

    実測返却(HK · all_count=437、ヒット 5 行、head 先頭 5):

          stock_id   code    name      net_profit
    57754425230710  01398    工商银行  412328868600.0
    56186762167211  00939    建设银行  377880459000.0
    63586990818568  01288    农业银行  324736536300.0
    57118770073492  03988    中国银行  286850625600.0
    83820581829436  80700  腾讯控股-R  255561692100.0
    
    1
    2
    3
    4
    5
    6
    # ROE(id=4110 · financial · FinancialProperty) 自己資本利益率

    単位:% ;百分率は小数で渡す(15% は 0.15);term=ANNUAL

    req.add_financial_property(name=FinancialProperty.ROE,
                               term=Term.ANNUAL, lower=0.15)
    req.add_retrieve_financial(name=FinancialProperty.ROE, term=Term.ANNUAL)
    req.set_sort(direction=ScrSortDir.DESC, property_type='financial',
                 property_params={'name': int(FinancialProperty.ROE),
                                  'term': int(Term.ANNUAL)})
    
    1
    2
    3
    4
    5
    6

    実測返却(HK · all_count=322、ヒット 5 行、head 先頭 5):

          stock_id   code    name      roe
    62487479191132  01628    禹洲集团   40.644
    69823283339309  08237    华星控股  12.6906
    52845277610549  00565  锦艺集团控股   3.0644
    86882893433405  02621    手回集团   2.7027
    64969970288874  02282   美高梅中国   2.6886
    
    1
    2
    3
    4
    5
    6
    # REVENUE_GROWTH(id=4106 · financial · FinancialProperty) 売上前年比成長率

    単位:% ;百分率は小数で渡す(20% は 0.20);term=ANNUAL

    req.add_financial_property(name=FinancialProperty.REVENUE_GROWTH,
                               term=Term.ANNUAL, lower=0.20)
    req.add_retrieve_financial(name=FinancialProperty.REVENUE_GROWTH, term=Term.ANNUAL)
    req.set_sort(direction=ScrSortDir.DESC, property_type='financial',
                 property_params={'name': int(FinancialProperty.REVENUE_GROWTH),
                                  'term': int(Term.ANNUAL)})
    
    1
    2
    3
    4
    5
    6

    実測返却(HK · all_count=638、ヒット 5 行、head 先頭 5):

          stock_id   code    name  revenue_growth
    46772193854353  00913    港湾数字        106.7922
    88377542057458  07666  剂泰科技-P          73.067
    53047141075220  02324    首都创投         63.5792
    43589623088228  01124    沿海家园         26.7323
    74259984551169  03329    交银国际         20.5256
    
    1
    2
    3
    4
    5
    6
    # BASIC_EPS(id=4801 · financial · FinancialProperty) 基本一株利益

    単位:通貨建て;term=ANNUAL

    req.add_financial_property(name=FinancialProperty.BASIC_EPS,
                               term=Term.ANNUAL, lower=1.0)
    req.add_retrieve_financial(name=FinancialProperty.BASIC_EPS, term=Term.ANNUAL)
    req.set_sort(direction=ScrSortDir.DESC, property_type='financial',
                 property_params={'name': int(FinancialProperty.BASIC_EPS),
                                  'term': int(Term.ANNUAL)})
    
    1
    2
    3
    4
    5
    6

    実測返却(HK · all_count=324、ヒット 5 行、head 先頭 5):

          stock_id   code             name      basic_eps
    86998857554659  06883             颖通控股  123007487.548
    88261577939456  06656             思格新能        139.457
    69290707392656  06288  FAST RETAIL-DRS         74.984
    80418967660265  09961           携程集团-S         56.044
    85439784425509  06181             老铺黄金         31.388
    
    1
    2
    3
    4
    5
    6
    # DIVIDENDS_TTM_RATIO(id=4219 · financial · FinancialProperty) TTM 配当利回り

    単位:% ;百分率は小数で渡す;TTM 系は term/year 不要

    req.add_financial_property(name=FinancialProperty.DIVIDENDS_TTM_RATIO, lower=0.05)
    req.add_retrieve_financial(name=FinancialProperty.DIVIDENDS_TTM_RATIO)
    req.set_sort(direction=ScrSortDir.DESC, property_type='financial',
                 property_params={'name': int(FinancialProperty.DIVIDENDS_TTM_RATIO)})
    
    1
    2
    3
    4

    実測返却(HK · all_count=463、ヒット 5 行、head 先頭 5):

          stock_id   code    name  div_ttm_ratio
    50856707752105  00169  万达酒店发展         4.0526
              2136  02136    利福中国         0.6562
    77622943942788  02180    万宝盛华         0.3752
    75419625726233  08473  弥明生活百货         0.3303
    64896955845349  02789    远大中国         0.2994
    
    1
    2
    3
    4
    5
    6

    # テクニカル指標位置関係 Indicator

    add_indicator_positional(first_indicator_name, period_type, position, second_indicator=None, value=None, first_indicator_params=None) で渡す。positionPosition(OVER=1、BELOW=2、CROSS_UP=3、CROSS_DOWN=4)

    # MA5 / MA20(id=11 · indicator · Indicator) MA5 が MA20 を上抜け

    add_indicator_positional:first/second はいずれも Indicator 列挙の名称

    req.add_indicator_positional(first_indicator_name=Indicator.MA5,
                                 period_type=Period.DAY,
                                 position=Position.CROSS_UP,
                                 second_indicator=Indicator.MA20)
    
    1
    2
    3
    4

    実測返却(HK · all_count=67、ヒット 5 行、head 先頭 5):

          stock_id   code    name
    88356067214548  01236   乐动机器人
    88313117542845  02493  迈威生物-B
    88179973556902  02726    瀚天天成
    87033217287972  01828    富卫集团
    86968792779992  03288    海天味业
    
    1
    2
    3
    4
    5
    6
    # RSI(id=52 · indicator · Indicator) RSI 買われ過ぎ(>70)

    指標パラメータは first_indicator_params で渡す、例:RSI 周期 14

    req.add_indicator_positional(first_indicator_name=Indicator.RSI,
                                 period_type=Period.DAY,
                                 position=Position.OVER, second_value=70,
                                 first_indicator_params=[14])
    
    1
    2
    3
    4

    実測返却(HK · all_count=97、ヒット 5 行、head 先頭 5):

          stock_id   code     name
    88502096109937  08561  爱世纪集团股权
    88476326299379  01779   天辰生物-B
    88450556496782  02958  远见控股(旧)
    88416196762328  06872   丹诺医药-B
    88407606823814  02950  升能集团(旧)
    
    1
    2
    3
    4
    5
    6
    # MACD_DIF(id=41 · indicator · Indicator) MACD DIF が 0 軸上

    second_value は単一閾値;position=OVER は DIF > value の意味

    req.add_indicator_positional(first_indicator_name=Indicator.MACD_DIF,
                                 period_type=Period.DAY,
                                 position=Position.OVER, second_value=0)
    
    1
    2
    3

    実測返却(HK · all_count=786、ヒット 5 行、head 先頭 5):

          stock_id   code      name
    88476326299379  01779    天辰生物-B
    88467736365964  02956  中国健康科技股权
    88450556496782  02958   远见控股(旧)
    88437671594888  02952  杭品生活科技股权
    88433376627363  02723      深演智能
    
    1
    2
    3
    4
    5
    6
    # PRICE / BOLL_UPPER(id=1 · indicator · Indicator) 株価がボリンジャー上限突破

    PRICE(1) と BOLL_UPPER(61) の位置関係を比較

    req.add_indicator_positional(first_indicator_name=Indicator.PRICE,
                                 period_type=Period.DAY,
                                 position=Position.CROSS_UP,
                                 second_indicator=Indicator.BOLL_UPPER)
    
    1
    2
    3
    4

    実測返却(HK · all_count=50、ヒット 5 行、head 先頭 5):

          stock_id   code    name
    87544318404244  09876  大洋环球控股
    85864986184208  02576  太美医疗科技
    84482006714840  02520    山西安装
    83000243002163  06963    阳光保险
    82961588291781  02245    力勤资源
    
    1
    2
    3
    4
    5
    6

    # テクニカル指標形状 Pattern

    add_indicator_pattern(name, period_type) で渡す。namePattern 列挙

    # MACD_GOLD_CROSS(id=21 · pattern · Pattern) MACD ゴールデンクロス

    add_indicator_pattern:name は Pattern 列挙

    req.add_indicator_pattern(name=Pattern.MACD_GOLD_CROSS, period_type=Period.DAY)
    
    1

    実測返却(HK · all_count=116、ヒット 5 行、head 先頭 5):

          stock_id   code      name
    88502096109937  08561   爱世纪集团股权
    88416196764014  08558  麦迪森控股(旧)
    88265872906147  06051        有赞
    86998857553944  06168       周六福
    86822763895471  06831      绿茶集团
    
    1
    2
    3
    4
    5
    6
    # KDJ_GOLD_CROSS(id=11 · pattern · Pattern) KDJ ゴールデンクロス

    同上、K が D を上抜け

    req.add_indicator_pattern(name=Pattern.KDJ_GOLD_CROSS, period_type=Period.DAY)
    
    1

    実測返却(HK · all_count=179、ヒット 5 行、head 先頭 5):

          stock_id   code           name
    88480621267856  02960  ALCO HOLD RTS
    88420491725703  02951        京玖康疗(旧)
    88179973556702  02526           德适-B
    87746181861167  03887  HASHKEY HLDGS
    87741886892639  02655           果下科技
    
    1
    2
    3
    4
    5
    6
    # BOLL_BREAK_UPPER(id=41 · pattern · Pattern) 株価がボリンジャー上限突破

    BOLL 形状系 41~44

    req.add_indicator_pattern(name=Pattern.BOLL_BREAK_UPPER, period_type=Period.DAY)
    
    1

    実測返却(HK · all_count=50、ヒット 5 行、head 先頭 5):

          stock_id   code    name
    87544318404244  09876  大洋环球控股
    85864986184208  02576  太美医疗科技
    84482006714840  02520    山西安装
    83000243002163  06963    阳光保险
    82961588291781  02245    力勤资源
    
    1
    2
    3
    4
    5
    6

    # 特色指標 FeaturedProperty

    add_featured_property(name, intervals, value_set, period, range_period, first_custom_param) で渡す。区間は intervals=[{...}]、列挙は value_set=[...]

    # SHORT_POSITION(id=5110 · featured · FeaturedProperty) 空売り残高

    単位:株;intervals 不要

    req.add_featured_property(name=FeaturedProperty.SHORT_POSITION)
    req.add_retrieve_featured(name=FeaturedProperty.SHORT_POSITION)
    req.set_sort(direction=ScrSortDir.DESC, property_type='featured',
                 property_params={'name': int(FeaturedProperty.SHORT_POSITION)})
    
    1
    2
    3
    4

    実測返却(HK · all_count=0、ヒット 0 行):データなし。理由:当該 featured ファクターは HK ではデータ未公開、US 市場へ切替えて照会

    # ANALYST_RATING(id=5401 · featured · FeaturedProperty) アナリスト評価

    列挙値:1=強い買い、2=買い、3=保有、4=売り、5=強い売り;value_set 配列を渡す

    req.add_featured_property(name=FeaturedProperty.ANALYST_RATING, value_set=[1, 2])
    req.add_retrieve_featured(name=FeaturedProperty.ANALYST_RATING)
    req.set_sort(direction=ScrSortDir.ASC, property_type='featured',
                 property_params={'name': int(FeaturedProperty.ANALYST_RATING)})
    
    1
    2
    3
    4

    実測返却(HK · all_count=0、ヒット 0 行):データなし。理由:カバレッジの高い US 市場へ切替えるか value_set を緩和

    # ANALYST_TARGET_PRICE(id=5403 · featured · FeaturedProperty) アナリスト目標株価

    単位:通貨建て;区間は dict 配列 [{'lower': {'value': X, 'includes': True}}]

    req.add_featured_property(name=FeaturedProperty.ANALYST_TARGET_PRICE,
                              intervals=[{'lower': {'value': 100.0, 'includes': True}}])
    req.add_retrieve_featured(name=FeaturedProperty.ANALYST_TARGET_PRICE)
    req.set_sort(direction=ScrSortDir.DESC, property_type='featured',
                 property_params={'name': int(FeaturedProperty.ANALYST_TARGET_PRICE)})
    
    1
    2
    3
    4
    5

    実測返却(HK · all_count=0、ヒット 0 行):データなし。理由:カバレッジの高い US 市場へ切替えるか intervals 下限を緩和

    # HIST_PERCENTILE_PE(id=5502 · featured · FeaturedProperty) 現在 PE の履歴パーセンタイル

    range_period 必須:RangePeriod 列挙 (THREE_MONTHS=1、SIX_MONTHS=2、ONE_YEAR=3、THREE_YEARS=4)

    req.add_featured_property(name=FeaturedProperty.HIST_PERCENTILE_PE,
                              range_period=RangePeriod.THREE_YEARS,
                              intervals=[{'upper': {'value': 0.30, 'includes': True}}])
    req.add_retrieve_featured(name=FeaturedProperty.HIST_PERCENTILE_PE,
                              range_period=RangePeriod.THREE_YEARS)
    req.set_sort(direction=ScrSortDir.ASC, property_type='featured',
                 property_params={'name': int(FeaturedProperty.HIST_PERCENTILE_PE),
                                  'rangePeriod': int(RangePeriod.THREE_YEARS)})
    
    1
    2
    3
    4
    5
    6
    7
    8

    実測返却(HK · all_count=0、ヒット 0 行):データなし。理由:HK の一部銘柄は履歴 PE データなし。range_period / intervals を緩和可

    # CASH_FLOW_MAIN_NET_IN(id=5901 · featured · FeaturedProperty) 主力資金純流入

    単位:通貨建て;資金流入は CashFlowPeriod 列挙 (DAY=1、WEEK=2、MONTH_P=3、QUARTER=4)

    req.add_featured_property(name=FeaturedProperty.CASH_FLOW_MAIN_NET_IN,
                              range_period=CashFlowPeriod.DAY,
                              intervals=[{'lower': {'value': 10_000_000.0, 'includes': True}}])
    req.add_retrieve_featured(name=FeaturedProperty.CASH_FLOW_MAIN_NET_IN,
                              range_period=CashFlowPeriod.DAY)
    req.set_sort(direction=ScrSortDir.DESC, property_type='featured',
                 property_params={'name': int(FeaturedProperty.CASH_FLOW_MAIN_NET_IN),
                                  'rangePeriod': int(CashFlowPeriod.DAY)})
    
    1
    2
    3
    4
    5
    6
    7
    8

    実測返却(HK · all_count=0、ヒット 0 行):データなし。理由:HK 実測でデータなし。US 市場かより短い周期を推奨

    # ブローカー保有 BrokerProperty

    add_broker_holdings(name, days, param, intervals) で渡す。HK のみdays パラメータは無効。

    • サポート指標:6101 集中度 / 6103 数 / 6106 中央決済保有割合 / 6107 中央決済保有変動
    • 非サポート指標:6102 保有変動、6104 ブローカーランキング、6105 ブローカー保有量
    • 倍率:6101 / 6106 / 6107 倍率 1000、百分率で渡す(20% は 20);6103 は倍率なし(整数)
    • intervals の使い方:dict 配列、キーは filterMin / filterMaxlower / upper ではない)、片側/両側区間に対応。例:[{'filterMin': {'value': 20.0, 'includes': True}}] あるいは [{'filterMin': {'value': 20.0, 'includes': True}, 'filterMax': {'value': 50.0, 'includes': False}}]
    # CONCENTRATED_DISTRIBUTION(id=6101 · broker · BrokerProperty) ブローカー集中度

    HK のみ;intervals は dict 配列で渡す、単位 %(20% は 20.0)

    req.add_broker_holdings(name=BrokerProperty.CONCENTRATED_DISTRIBUTION,
                            intervals=[{'filterMin': {'value': 20.0, 'includes': True}}])
    req.add_retrieve_broker(name=BrokerProperty.CONCENTRATED_DISTRIBUTION)
    req.set_sort(direction=ScrSortDir.DESC, property_type='broker',
                 property_params={'name': int(BrokerProperty.CONCENTRATED_DISTRIBUTION)})
    
    1
    2
    3
    4
    5
    # CENTRAL_HOLDINGS_RATIO(id=6106 · broker · BrokerProperty) 中央決済保有割合

    HK のみ;intervals は dict 配列、単位 %

    req.add_broker_holdings(name=BrokerProperty.CENTRAL_HOLDINGS_RATIO,
                            intervals=[{'filterMin': {'value': 10.0, 'includes': True}}])
    req.add_retrieve_broker(name=BrokerProperty.CENTRAL_HOLDINGS_RATIO)
    req.set_sort(direction=ScrSortDir.DESC, property_type='broker',
                 property_params={'name': int(BrokerProperty.CENTRAL_HOLDINGS_RATIO)})
    
    1
    2
    3
    4
    5
    # BROKER_NUM(id=6103 · broker · BrokerProperty) 当該銘柄保有のブローカー数

    HK のみ;整数(intervals は dict 配列)

    req.add_broker_holdings(name=BrokerProperty.BROKER_NUM,
                            intervals=[{'filterMin': {'value': 100, 'includes': True}}])
    req.add_retrieve_broker(name=BrokerProperty.BROKER_NUM)
    req.set_sort(direction=ScrSortDir.DESC, property_type='broker',
                 property_params={'name': int(BrokerProperty.BROKER_NUM)})
    
    1
    2
    3
    4
    5

    # K 線形状 KlineShapeProperty

    add_kline_shape(name, period, value_set) で渡す。period 必須、現在は日 K(Period.DAY=11) と 1 時間 K(Period.HOUR_1=5) のみ対応

    # SHAPE_TYPE(id=6200 · kline_shape · KlineShapeProperty) K 線形状検出

    period 必須:日 K=11、1 時間 K=5(実測で SDK ドキュメント表記と差異あり)

    req.add_kline_shape(name=KlineShapeProperty.SHAPE_TYPE, period=Period.DAY,
                        value_set=[KlineShapeType.DOUBLE_BOTTOMS,
                                   KlineShapeType.HEAD_SHOULDERS_BOTTOM])
    req.add_retrieve_kline_shape(name=KlineShapeProperty.SHAPE_TYPE, period=Period.DAY)
    
    1
    2
    3
    4

    実測返却(HK · all_count=0、ヒット 0 行):データなし。理由:指定形状+区間でヒットなし、value_set を緩和可

    # RISE_PROB(id=6201 · kline_shape · KlineShapeProperty) 形状後の上昇確率

    単位:% ;SHAPE_TYPE と併用

    req.add_kline_shape(name=KlineShapeProperty.SHAPE_TYPE, period=Period.DAY,
                        value_set=[KlineShapeType.DOUBLE_BOTTOMS])
    req.add_retrieve_kline_shape(name=KlineShapeProperty.RISE_PROB, period=Period.DAY)
    req.set_sort(direction=ScrSortDir.DESC, property_type='kline_shape',
                 property_params={'name': int(KlineShapeProperty.RISE_PROB),
                                  'period': int(Period.DAY)})
    
    1
    2
    3
    4
    5
    6

    実測返却(HK · all_count=0、ヒット 0 行):データなし。理由:SHAPE_TYPE と併用;HK サンプルでヒットなし

    # オプション属性 OptionProperty

    add_option(name, intervals, param, period) で渡す。原資産の IV / HV などオプション軸で絞り込みに使用

    # STOCK_IV(id=1000 · option · OptionProperty) 原資産オプションの IV

    単位:% ;intervals は dict 配列;period は OptionHVPeriod 列挙

    req.add_option(name=OptionProperty.STOCK_IV,
                   intervals=[{'lower': {'value': 30.0, 'includes': True}}])
    req.add_retrieve_option(name=OptionProperty.STOCK_IV)
    req.set_sort(direction=ScrSortDir.DESC, property_type='option',
                 property_params={'name': int(OptionProperty.STOCK_IV)})
    
    1
    2
    3
    4
    5

    実測返却(HK · all_count=0、ヒット 0 行):データなし。理由:オプションが揃う市場(US)へ切替えるか intervals 下限を緩和

    # STOCK_IV_RANK(id=1001 · option · OptionProperty) 原資産 IV ランク

    0~100;現在の IV が履歴範囲に占める相対位置(intervals は dict 配列)

    req.add_option(name=OptionProperty.STOCK_IV_RANK,
                   intervals=[{'lower': {'value': 50.0, 'includes': True}}])
    req.add_retrieve_option(name=OptionProperty.STOCK_IV_RANK)
    req.set_sort(direction=ScrSortDir.DESC, property_type='option',
                 property_params={'name': int(OptionProperty.STOCK_IV_RANK)})
    
    1
    2
    3
    4
    5

    実測返却(HK · all_count=0、ヒット 0 行):データなし。理由:オプションが揃う市場(US)へ切替えるか intervals 下限を緩和

    # STOCK_HV(id=1006 · option · OptionProperty) 原資産ヒストリカルボラ

    単位:% ;intervals は dict 配列;period は OptionHVPeriod 列挙

    req.add_option(name=OptionProperty.STOCK_HV,
                   intervals=[{'lower': {'value': 20.0, 'includes': True}}])
    req.add_retrieve_option(name=OptionProperty.STOCK_HV)
    req.set_sort(direction=ScrSortDir.DESC, property_type='option',
                 property_params={'name': int(OptionProperty.STOCK_HV)})
    
    1
    2
    3
    4
    5

    実測返却(HK · all_count=0、ヒット 0 行):データなし。理由:オプションが揃う市場(US)へ切替えるか intervals 下限を緩和

APIレート制限

  • 30秒以内に銘柄スクリーニング API を最大10回までリクエスト可能です