매동 maedong.kr

공개 API

인증 없음 · 분당 60회 · JSON · 색인(JSON)

화면이 보여주는 값을 그대로 기계가 읽습니다. 시그널 목록과 그 목록의 과거 성과, 지금 어떤 규칙이 먹히는 장인지까지 같은 계산을 씁니다.

빨리 써보기

curl -s "https://maedong.kr/api/v1/regime" | jq '.label, .lists[:3]'
curl -s "https://maedong.kr/api/v1/signals?signal=high-52w&limit=5"
curl -s "https://maedong.kr/api/v1/signals/high-52w/stats?window=recent60"
curl -s "https://maedong.kr/api/v1/stock/005930/signals?from=2026-01-01"
curl -s "https://maedong.kr/api/v1/market"

기준일은 전일 마감입니다. 모든 응답의 metadata_date·lag_business_days·next_update 가 들어 있으니 실시간으로 오해하지 않게 그 값을 그대로 쓰세요.

단위 규약

이름만 보고 단위를 알 수 있게
접미사
_pct퍼센트(%)avg_pct · change_pct · win_rate_pctavg_pct · change_pct · win_rate_pct
_pp퍼센트포인트(%p)excess_pp · yield_gap_ppexcess_pp · yield_gap_pp
_krwclose_krw · value_krw · market_cap_krwclose_krw · value_krw · market_cap_krw
없음배수·건수·비율 그 자체per · pbr · nper · pbr · n

관계식excess_pp = avg_pct - market_avg_pct. 목록 평균에서 같은 날들의 전 종목 평균(거래대금 10억 이상)을 뺀 값입니다. 판정은 전체 기간 20거래일 excess_pp 가 ±0.5%p 를 벗어나는지로 매깁니다.

시그널 목록 29종

has_stats 가 false 면 과거 성과를 집계하지 않습니다
slug이름묶음성과
value-surge 거래대금 급증이례 시그널 이례 시그널 집계
value-top 거래대금 상위순위 순위 집계
gainers 상승률 상위순위 순위 집계
losers 하락률 상위순위 순위 집계
high-52w 52주 신고가이례 시그널 이례 시그널 집계
low-52w 52주 신저가이례 시그널 이례 시그널 집계
market-cap 시가총액 상위순위 순위 집계
large-gainers 대형주 상승률 상위순위 순위 집계
turnover 회전율 상위순위 순위 집계
gap-up 갭 상승이례 시그널 이례 시그널 집계
streak-up 연속 상승이례 시그널 이례 시그널 집계
low-per 저PER팩터 팩터 미집계
momentum-12-1 12-1 모멘텀 상위팩터 팩터 집계
drawdown-52w 52주 고점 대비 낙폭 상위팩터 팩터 집계
surge-pullback 급증 뒤 되돌림반전 후보 반전 후보 집계
turnover-gapdown 과열 뒤 갭하락반전 후보 반전 후보 집계
low52-surge 신저가 부근 거래대금 급증반전 후보 반전 후보 집계
high-dividend 고배당팩터 팩터 미집계
disparity-hot 20일선 과열반전 후보 반전 후보 집계
disparity-cold 20일선 과냉반전 후보 반전 후보 집계
dry-surge 조용하다 돈이 몰린반전 후보 반전 후보 집계
foreign-buy-streak 외국인 연속 순매수수급 수급 집계
accumulation 안 올랐는데 계속 산수급 수급 집계
distribution 올랐는데 계속 판수급 수급 집계
both-buy 기관·외국인 동반 순매수수급 수급 집계
retail-only 개인만 받는수급 수급 집계
short-surge 공매도 비중 급증수급 수급 집계
short-top 공매도 비중 상위수급 수급 집계
program-buy 프로그램 순매수 상위수급 수급 집계

저PER · 고배당 두 목록만 성과를 집계하지 않습니다. 재무(PER·배당)로 뽑는 목록이라 그날 알 수 있었던 재무가 아니라 지금 재무로 과거를 다시 세우면 미래 정보가 섞입니다 — 그 편향을 없앨 수 있을 때까지 숫자를 내놓지 않습니다.

상태 플래그

가격제한폭이 없는 종목을 다른 종목과 같은 자에 놓지 않도록
codelabel
liquidation 정리매매가격제한폭이 없다 — 등락률을 다른 종목과 같은 자에 놓을 수 없다 가격제한폭이 없다 — 등락률을 다른 종목과 같은 자에 놓을 수 없다
delisting 상장폐지 예정상장폐지 절차가 진행 중이다 — 아직 제한폭 안에서 거래된다 상장폐지 절차가 진행 중이다 — 아직 제한폭 안에서 거래된다
halted 거래정지거래소가 막았다 — 정지 공시의 최신 상태가 정지이고 그날 거래량도 0인 종목 거래소가 막았다 — 정지 공시의 최신 상태가 정지이고 그날 거래량도 0인 종목
no_trade 무거래그날 한 주도 거래되지 않았다 — 정지일 수도 있고 유동성이 없을 수도 있다 그날 한 주도 거래되지 않았다 — 정지일 수도 있고 유동성이 없을 수도 있다

한 종목에 여러 개가 붙을 수 있습니다. 라벨은 다듬을 수 있지만 code 는 계약이라 바꾸지 않습니다 — 분기는 code 로 하세요. liquidation 종목은 상승률·하락률 순위에서 제외하고 응답의 excluded 에 따로 담습니다.

GET /api/v1/signals

기준일의 목록 구성원. signal 을 생략하면 목록별 건수만 준다
파라미터설명
date기준일 YYYY-MM-DD. 생략하면 최신 거래일
signal목록 slug. 생략하면 건수 색인
limit1~200, 기본 50
cursor이전 응답의 next_cursor 를 그대로
curl -s "https://maedong.kr/api/v1/signals?signal=value-surge&limit=2"
{
  "date": "2026-09-11",
  "signal": "value-surge",
  "label": "거래대금 급증",
  "rule": "최근 20영업일 평균 거래대금보다 2배 이상 돈이 몰린 종목. 매매 주체는 몰라도 돈이 몰린 곳은 보인다.",
  "metric_label": "20일 평균 대비",
  "count": 2,
  "items": [
    {
      "code": "203650",
      "name": "드림시큐리티",
      "market": "KOSDAQ",
      "close_krw": 2620,
      "change_pct": 23.29,
      "value_krw": 129820956244,
      "market_cap_krw": 266500000000,
      "metric_text": "×73.6",
      "flags": []
    },
    {
      "code": "217820",
      "name": "원익피앤이",
      "market": "KOSDAQ",
      "close_krw": 2820,
      "change_pct": 6.62,
      "value_krw": 33060657268,
      "market_cap_krw": 133800000000,
      "metric_text": "×68.2",
      "flags": []
    }
  ],
  "next_cursor": "2",
  "excluded": [],
  "meta": {
    "as_of": "2026-09-13T22:10:36+09:00",
    "data_date": "2026-09-11",
    "lag_business_days": 1,
    "next_update": "9월 15일(화) 오전 11시 30분 전후",
    "source": "공공데이터포털 금융위원회 시세 · 한국은행 ECOS · 금융감독원 DART · 한국투자증권 Open API(수급·공매도·프로그램매매)",
    "license": "출처 표기 후 자유 사용 · 재배포 시 원출처를 함께 표기해 주세요",
    "disclaimer": "전일 마감 데이터이며 투자 참고용입니다. 특정 종목의 매수·매도를 권유하지 않습니다."
  }
}

next_cursor 가 null 이면 마지막 페이지다. excluded 에는 순위에서 뺀 정리매매 종목이 담긴다.

GET /api/v1/signals/{signal}/stats

그 목록에 오른 종목이 이후 어땠는지
파라미터설명
windowall(전체 기간) 또는 recent60(최근 60시그널일)
curl -s "https://maedong.kr/api/v1/signals/value-surge/stats"
{
  "signal": "value-surge",
  "label": "거래대금 급증",
  "window": "all",
  "since": "2020-01-03",
  "signal_days": 1623,
  "verdict": "시장 하회",
  "verdict_band_pp": 0.5,
  "horizons": [
    {
      "trading_days": 1,
      "n": 32456,
      "avg_pct": -0.16,
      "median_pct": -0.7,
      "win_rate_pct": 41.6,
      "market_avg_pct": 0.01,
      "market_win_rate_pct": 44.7,
      "excess_pp": -0.17
    },
    {
      "trading_days": 5,
      "n": 32449,
      "avg_pct": -0.67,
      "median_pct": -2.33,
      "win_rate_pct": 39.1,
      "market_avg_pct": 0.03,
      "market_win_rate_pct": 44.9,
      "excess_pp": -0.7
    },
    {
      "trading_days": 20,
      "n": 32459,
      "avg_pct": -1.28,
      "median_pct": -5.04,
      "win_rate_pct": 36.6,
      "market_avg_pct": 0.16,
      "market_win_rate_pct": 43.3,
      "excess_pp": -1.44
    }
  ],
  "distribution_20d": {
    "median": -5.04,
    "q1": -14.55,
    "q3": 5.84,
    "min": -93.0,
    "max": 581.1
  },
  "basis": "시그널이 난 날 종가에 사고 N거래일 뒤 종가에 판 것으로 계산 · 거래비용 미반영",
  "meta": {
    "as_of": "2026-09-13T22:10:36+09:00",
    "data_date": "2026-09-11",
    "lag_business_days": 1,
    "next_update": "9월 15일(화) 오전 11시 30분 전후",
    "source": "공공데이터포털 금융위원회 시세 · 한국은행 ECOS · 금융감독원 DART · 한국투자증권 Open API(수급·공매도·프로그램매매)",
    "license": "출처 표기 후 자유 사용 · 재배포 시 원출처를 함께 표기해 주세요",
    "disclaimer": "전일 마감 데이터이며 투자 참고용입니다. 특정 종목의 매수·매도를 권유하지 않습니다."
  }
}

horizons 는 1·5·20거래일이다. median_pct 는 평균이 대박 한 건에 끌릴 때를 위해 같이 준다.

GET /api/v1/stock/{code}/signals

이 종목이 언제 어느 목록에 올랐고 그 뒤 어땠는지
파라미터설명
from / to기간 YYYY-MM-DD
limit1~200, 기본 100
curl -s "https://maedong.kr/api/v1/stock/005930/signals?limit=2"
{
  "code": "005930",
  "name": "삼성전자",
  "market": "KOSPI",
  "flags": [],
  "count": 2,
  "hits": [
    {
      "date": "2026-09-10",
      "signal": "market-cap",
      "label": "시가총액 상위",
      "ret_1d_pct": null,
      "ret_5d_pct": null,
      "ret_20d_pct": null
    },
    {
      "date": "2026-09-10",
      "signal": "value-top",
      "label": "거래대금 상위",
      "ret_1d_pct": null,
      "ret_5d_pct": null,
      "ret_20d_pct": null
    }
  ],
  "note": "수익률이 null 이면 아직 그 거래일이 지나지 않았습니다.",
  "meta": {
    "as_of": "2026-09-13T22:10:36+09:00",
    "data_date": "2026-09-11",
    "lag_business_days": 1,
    "next_update": "9월 15일(화) 오전 11시 30분 전후",
    "source": "공공데이터포털 금융위원회 시세 · 한국은행 ECOS · 금융감독원 DART · 한국투자증권 Open API(수급·공매도·프로그램매매)",
    "license": "출처 표기 후 자유 사용 · 재배포 시 원출처를 함께 표기해 주세요",
    "disclaimer": "전일 마감 데이터이며 투자 참고용입니다. 특정 종목의 매수·매도를 권유하지 않습니다."
  }
}

ret_*_pct 가 null 이면 아직 그 거래일이 지나지 않았다.

GET /api/v1/regime

지금 어떤 규칙이 먹히는 장인가
파라미터설명
as_of기준일. 생략하면 최신
window비교 창(거래일) 20~250, 기본 60
curl -s "https://maedong.kr/api/v1/regime"
{
  "window_trading_days": 60,
  "signal_window": {
    "from": "2026-05-18",
    "to": "2026-08-13"
  },
  "settle_lag_trading_days": 20,
  "label": "전 축이 시장 하회 · 대형·우량이 가장 덜 밀렸다",
  "axes": [
    {
      "name": "대형·우량",
      "excess_pp": -1.2,
      "lists": 3,
      "note": "큰 종목으로 돈이 몰릴 때 먹힌다"
    },
    {
      "name": "반전",
      "excess_pp": -2.14,
      "lists": 5,
      "note": "빠진 것을 담을 때 먹힌다"
    },
    {
      "name": "돌파 추종",
      "excess_pp": -6.63,
      "lists": 3,
      "note": "신고가·연속 상승을 따라갈 때 먹힌다"
    },
    {
      "name": "단기 과열 추격",
      "excess_pp": -7.59,
      "lists": 4,
      "note": "급등 당일에 담을 때 먹힌다"
    }
  ],
  "lists": [
    {
      "signal": "low-52w",
      "label": "52주 신저가",
      "n": 842,
      "avg_pct": -1.14,
      "excess_pp": 5.26
    },
    {
      "signal": "accumulation",
      "label": "안 올랐는데 계속 산",
      "n": 185,
      "avg_pct": 10.14,
      "excess_pp": 5.24
    },
    {
      "signal": "low52-surge",
      "label": "신저가 부근 거래대금 급증",
      "n": 624,
      "avg_pct": -2.41,
      "excess_pp": 3.9
    },
    {
      "signal": "short-surge",
      "label": "공매도 비중 급증",
      "n": 295,
      "avg_pct": 1.15,
      "excess_pp": 3.57
    },
    {
      "signal": "market-cap",
      "label": "시가총액 상위",
      "n": 1220,
      "avg_pct": -3.38,
      "excess_pp": 2.83
    },
    {
      "signal": "short-top",
      "label": "공매도 비중 상위",
      "n": 860,
      "avg_pct": -0.84,
      "excess_pp": 1.39
    },
    {
      "signal": "retail-only",
      "label": "개인만 받는",
      "n": 600,
      "avg_pct": 4.8,
      "excess_pp": 0.93
    },
    {
      "signal": "distribution",
      "label": "올랐는데 계속 판",
      "n": 220,
      "avg_pct": 5.03,
      "excess_pp": 0.13
    },
    {
      "signal": "disparity-cold",
      "label": "20일선 과냉",
      "n": 1188,
      "avg_pct": -6.14,
      "excess_pp": 0.07
    },
    {
      "signal": "drawdown-52w",
      "label": "52주 고점 대비 낙폭 상위",
      "n": 1220,
      "avg_pct": -7.0,
      "excess_pp": -0.79
    },
    {
      "signal": "both-buy",
      "label": "기관·외국인 동반 순매수",
      "n": 600,
      "avg_pct": 2.43,
      "excess_pp": -1.44
    },
    {
      "signal": "foreign-buy-streak",
      "label": "외국인 연속 순매수",
      "n": 560,
      "avg_pct": 3.15,
      "excess_pp": -1.93
    },
    {
      "signal": "losers",
      "label": "하락률 상위",
      "n": 1214,
      "avg_pct": -8.35,
      "excess_pp": -2.14
    },
    {
      "signal": "program-buy",
      "label": "프로그램 순매수 상위",
      "n": 1000,
      "avg_pct": -6.18,
      "excess_pp": -2.29
    },
    {
      "signal": "value-top",
      "label": "거래대금 상위",
      "n": 1220,
      "avg_pct": -8.93,
      "excess_pp": -2.72
    },
    {
      "signal": "large-gainers",
      "label": "대형주 상승률 상위",
      "n": 1220,
      "avg_pct": -9.93,
      "excess_pp": -3.72
    },
    {
      "signal": "streak-up",
      "label": "연속 상승",
      "n": 1078,
      "avg_pct": -10.18,
      "excess_pp": -3.97
    },
    {
      "signal": "surge-pullback",
      "label": "급증 뒤 되돌림",
      "n": 1031,
      "avg_pct": -10.25,
      "excess_pp": -3.98
    },
    {
      "signal": "value-surge",
      "label": "거래대금 급증",
      "n": 1220,
      "avg_pct": -11.87,
      "excess_pp": -5.66
    },
    {
      "signal": "gap-up",
      "label": "갭 상승",
      "n": 1212,
      "avg_pct": -12.07,
      "excess_pp": -5.86
    },
    {
      "signal": "dry-surge",
      "label": "조용하다 돈이 몰린",
      "n": 449,
      "avg_pct": -13.14,
      "excess_pp": -6.93
    },
    {
      "signal": "momentum-12-1",
      "label": "12-1 모멘텀 상위",
      "n": 1220,
      "avg_pct": -13.4,
      "excess_pp": -7.19
    },
    {
      "signal": "gainers",
      "label": "상승률 상위",
      "n": 1219,
      "avg_pct": -13.64,
      "excess_pp": -7.43
    },
    {
      "signal": "high-52w",
      "label": "52주 신고가",
      "n": 650,
      "avg_pct": -15.47,
      "excess_pp": -8.73
    },
    {
      "signal": "disparity-hot",
      "label": "20일선 과열",
      "n": 1218,
      "avg_pct": -15.49,
      "excess_pp": -9.28
    },
    {
      "signal": "turnover",
      "label": "회전율 상위",
      "n": 1220,
      "avg_pct": -17.62,
      "excess_pp": -11.41
    },
    {
      "signal": "turnover-gapdown",
      "label": "과열 뒤 갭하락",
      "n": 184,
      "avg_pct": -20.48,
      "excess_pp": -15.11
    }
  ],
  "basis": "모든 목록이 같은 거래일 창을 본다 · 20거래일이 지나 성과가 확정된 시그널만",
  "coverage": {
    "lists_total": 29,
    "lists_scored": 27,
    "excluded": [
      "저PER",
      "고배당"
    ],
    "not_settled": [],
    "note": "전체 29종 중 27종. 저PER·고배당은 재무 기반이라 뺐습니다 — 과거 날짜에 지금의 재무를 쓰면 그때는 알 수 없던 것을 쓰는 셈이라(미래 참조) 성적이 실제보다 좋게 나옵니다."
  },
  "meta": {
    "as_of": "2026-09-13T22:10:36+09:00",
    "data_date": "2026-09-11",
    "lag_business_days": 1,
    "next_update": "9월 15일(화) 오전 11시 30분 전후",
    "source": "공공데이터포털 금융위원회 시세 · 한국은행 ECOS · 금융감독원 DART · 한국투자증권 Open API(수급·공매도·프로그램매매)",
    "license": "출처 표기 후 자유 사용 · 재배포 시 원출처를 함께 표기해 주세요",
    "disclaimer": "전일 마감 데이터이며 투자 참고용입니다. 특정 종목의 매수·매도를 권유하지 않습니다."
  }
}

label 은 축 사이 격차가 2%p 이상일 때만 붙는다(아니면 null — 혼재). 1위 축도 시장을 못 이겼으면 '우위' 라고 쓰지 않는다.

GET /api/v1/market

기준일의 지수·시장 폭·밸류에이션·매크로
파라미터설명
date기준일. 생략하면 최신 거래일
curl -s "https://maedong.kr/api/v1/market"
{
  "date": "2026-09-11",
  "indices": [
    {
      "market": "KOSPI",
      "close": 6909.91,
      "change_pct": -1.76,
      "value_krw": 19674136000000
    },
    {
      "market": "KOSDAQ",
      "close": 820.64,
      "change_pct": -1.95,
      "value_krw": 6414353000000
    }
  ],
  "breadth": {
    "up": 976,
    "down": 1477,
    "unchanged": 197,
    "limit_up": 12,
    "limit_down": 1
  },
  "valuation": [
    {
      "market": "KOSPI",
      "per": 23.7,
      "pbr": 1.86,
      "div_yield_pct": 1.05,
      "yield_gap_pp": -2.96,
      "coverage_pct": 96.7,
      "percentiles": {
        "per": {
          "percentile_pct": 66,
          "n": 1582,
          "since": "2020-04-01"
        },
        "pbr": {
          "percentile_pct": 96,
          "n": 1582,
          "since": "2020-04-01"
        },
        "div_yield": {
          "percentile_pct": 4,
          "n": 1582,
          "since": "2020-04-01"
        },
        "yield_gap": {
          "percentile_pct": 1,
          "n": 1582,
          "since": "2020-04-01"
        }
      }
    },
    {
      "market": "KOSDAQ",
      "per": 74.6,
      "pbr": 1.57,
      "div_yield_pct": 1.36,
      "yield_gap_pp": -2.65,
      "coverage_pct": 96.8,
      "percentiles": {
        "per": {
          "percentile_pct": 76,
          "n": 1341,
          "since": "2020-04-01"
        },
        "pbr": {
          "percentile_pct": 46,
          "n": 1582,
          "since": "2020-04-01"
        },
        "div_yield": {
          "percentile_pct": 32,
          "n": 1582,
          "since": "2020-04-01"
        },
        "yield_gap": {
          "percentile_pct": 1,
          "n": 1582,
          "since": "2020-04-01"
        }
      }
    }
  ],
  "macro": [
    {
      "series": "usdkrw",
      "label": "원/달러",
      "value": 1338.2,
      "unit": "원",
      "change": 0.02,
      "change_text": "+0.02%",
      "held": false,
      "date": "2026-09-11"
    },
    {
      "series": "jpykrw",
      "label": "원/100엔",
      "value": 866.5,
      "unit": "원",
      "change": -0.68,
      "change_text": "-0.68%",
      "held": false,
      "date": "2026-09-11"
    },
    {
      "series": "eurkrw",
      "label": "원/유로",
      "value": 1553.5,
      "unit": "원",
      "change": -0.22,
      "change_text": "-0.22%",
      "held": false,
      "date": "2026-09-11"
    },
    {
      "series": "ktb3y",
      "label": "국고채 3년",
      "value": 4.014,
      "unit": "%",
      "change": 0.084,
      "change_text": "+0.084%p",
      "held": false,
      "date": "2026-09-11"
    },
    {
      "series": "ktb10y",
      "label": "국고채 10년",
      "value": 4.54,
      "unit": "%",
      "change": 0.087,
      "change_text": "+0.087%p",
      "held": false,
      "date": "2026-09-11"
    },
    {
      "series": "base_rate",
      "label": "기준금리",
      "value": 3.0,
      "unit": "%",
      "change": 0.25,
      "change_text": "+0.25%p · 8/27부터 동결",
      "held": true,
      "date": "2026-09-09"
    },
    {
      "series": "gold",
      "label": "금 1g",
      "value": 191500.0,
      "unit": "원",
      "change": 0.26,
      "change_text": "+0.26%",
      "held": false,
      "date": "2026-09-10"
    },
    {
      "series": "btc",
      "label": "비트코인",
      "value": 10515.0,
      "unit": "만원",
      "change": 0.42,
      "change_text": "+0.42%",
      "held": false,
      "date": "2026-09-11"
    }
  ],
  "value_vs_20d_avg": 0.84,
  "meta": {
    "as_of": "2026-09-13T22:10:36+09:00",
    "data_date": "2026-09-11",
    "lag_business_days": 1,
    "next_update": "9월 15일(화) 오전 11시 30분 전후",
    "source": "공공데이터포털 금융위원회 시세 · 한국은행 ECOS · 금융감독원 DART · 한국투자증권 Open API(수급·공매도·프로그램매매)",
    "license": "출처 표기 후 자유 사용 · 재배포 시 원출처를 함께 표기해 주세요",
    "disclaimer": "전일 마감 데이터이며 투자 참고용입니다. 특정 종목의 매수·매도를 권유하지 않습니다."
  }
}

percentiles 는 2020-04 이후 분포에서의 위치다. coverage_pct 는 재무가 있는 종목의 시총 비중.

한도와 오류

요청 한도IP 당 분당 60회. 넘으면 429Retry-After: 60 을 줍니다.
인증없습니다. 공개 데이터라 키를 받지 않습니다.
CORSAccess-Control-Allow-Origin: * — 브라우저에서 바로 호출할 수 있습니다.
캐시Cache-Control: public, max-age=300. 기준일이 하루 한 번 바뀌므로 그 이상 자주 부를 이유가 없습니다.
오류{"detail": "..."} 형태의 JSON. 404(없는 목록·종목·날짜) · 400(형식) · 422(범위) · 429(한도).

계산 방법

성과는 매일 그 목록 상위 20종목을 그날 종가에 사서 N거래일 뒤 종가에 판 것으로 계산합니다. 거래비용·세금·슬리피지는 반영하지 않습니다. 비교 기준(market_avg_pct)은 같은 날들의 거래대금 10억 이상 전 종목 평균입니다 — 같은 날을 비교해야 장 전체가 오른 날의 상승이 시그널의 공으로 잡히지 않습니다.

/regime 은 모든 목록이 같은 거래일 창을 봅니다. 목록마다 '최근 60시그널일' 을 따로 잡으면 서로 다른 기간을 비교하게 되기 때문입니다. 20거래일이 지나 성과가 확정된 시그널만 세므로 창의 끝은 기준일보다 20거래일 앞입니다.

더 자세한 규칙은 규칙과 검증, 용어는 용어집에 있습니다. 과거 성과는 미래 수익을 보장하지 않습니다.

MCP 서버

AI 어시스턴트가 이 데이터를 직접 읽는 통로

Claude 같은 어시스턴트에 커스텀 커넥터로 붙이면, 화면을 긁지 않고 같은 계산 결과를 바로 받습니다. 주소는 아래 한 줄이고 인증은 없습니다.

https://maedong.kr/mcp

POST 전용입니다(JSON-RPC 2.0). 브라우저로 열면 405 가 뜨는 것이 정상입니다 — MCP 규격이 SSE 를 제공하지 않는 서버에 GET 405 를 요구합니다.

도구하는 일
maedong_signals기준일에 어떤 종목이 어느 시그널 목록에 올랐는지 조회한다.
maedong_signal_stats그 목록에 오른 종목이 이후 1·5·20거래일에 어땠는지.
maedong_stock_signals한 종목이 언제 어느 목록에 올랐고 그 뒤 어땠는지.
maedong_regime지금 어떤 규칙이 먹히는 장인가.
maedong_market기준일의 지수·시장 폭·밸류에이션·매크로.

도구가 주는 값은 공개 읽기 API와 같은 계산을 씁니다 — 두 곳에서 답이 갈리지 않습니다.

출처 표기

출처 표기 후 자유 사용 · 재배포 시 원출처를 함께 표기해 주세요

원 데이터는 공공데이터포털 금융위원회 시세, 한국은행 ECOS, 금융감독원 DART 입니다. 시그널 정의·성과 집계·레짐 판정은 maedong.kr 이 계산한 값입니다. 표기 예:

출처: maedong.kr (원 데이터: 공공데이터포털 금융위원회 시세 · 한국은행 ECOS · 금융감독원 DART)

문의 [email protected] · 대량 사용이나 필드 추가가 필요하면 알려주세요.