프로그램 매매란 주식을 거래할 때 투자자가 일일이 주문을 넣지 않고, 컴퓨터 프로그램에 일정한 매매 조건을 미리 설정하여 그 조건이 충족될 때 일괄적으로 주문이 집행되도록 하는 거래 방식을 의미한다. 일반적으로 지수 구성 종목 중 15개 이상의 종목을 묶어서 한꺼번에 거래하는 '바스켓 매매' 형태를 띠며, 대규모 자금을 운용하는 기관투자자나 외국인 투자자들이 주로 활용한다. 개별 종목의 가치 변화보다는 시장 전체의 흐름이나 지수의 움직임에 대응하여 대량의 주문을 신속하게 처리하기 위한 목적이 크다.
프로그램 매매는 성격에 따라 차익거래와 비차익거래로 구분된다. 차익거래는 주식 시장의 현물 가격과 선물 시장의 선물 가격 차이를 이용해 수익을 얻는 방식이다. 현물과 선물의 가격 차이인 베이시스(Basis)를 관찰하다가, 선물이 현물보다 비싼 상태인 콘탱고(Contango)가 발생하면 선물을 팔고 현물을 사는 매수 차익거래를 진행한다. 반대로 현물이 선물보다 비싸지는 백워데이션(Backwardation) 상태에서는 현물을 팔고 선물을 사는 매도 차익거래를 통해 무위험 수익을 추구한다.
비차익거래는 선물 가격과의 연계성 없이 현물 주식만을 대상으로 15종목 이상의 바스켓을 일시에 매매하는 방식이다. 이는 주로 특정 업종 전체에 투자하거나 펀드의 포트폴리오를 재구성할 때, 혹은 지수 추종형 펀드(ETF 등)의 설정과 해지 과정에서 사용된다. 비차익거래는 차익거래보다 시장에 미치는 영향력이 더 큰 경우가 많으며, 외국인이나 기관의 대규모 순매수 또는 순매도는 대개 이 비차익거래를 통해 이루어져 시장의 방향성을 결정짓는 주요 변수가 된다.
프로그램 매매는 시장의 유동성을 높이고 효율적인 가격 형성을 돕는 긍정적인 기능이 있으나, 단기간에 대량의 물량이 쏟아지며 시장의 변동성을 급격히 확대시키는 단점도 존재한다. 특히 선물과 옵션의 만기일이 겹치는 날에는 프로그램 매매 물량이 집중되면서 주가가 장 막판에 급등하거나 급락하는 현상이 자주 발생하는데, 이를 '마녀의 시간(Witching Hour)'이라고 부르기도 한다. 특정 지수 구간에서 알고리즘에 의한 기계적 매도가 매도를 부르는 연쇄 반응은 시장의 불안정성을 가중시키는 요인이 된다.
이러한 부작용을 방지하기 위해 거래소는 프로그램 매매를 제어하는 여러 안전장치를 운용하고 있다. 대표적인 예로 선물 가격이 전일 종가 대비 일정 비율 이상 급등락하여 1분 이상 지속될 경우 프로그램 매매 호가의 효력을 5분간 정지시키는 '사이드카(Sidecar)' 제도가 있다. 이는 과도한 프로그램 매매로 인해 현물 시장이 요동치는 것을 막고 투자자들에게 냉정한 판단 시간을 제공하기 위한 조치로, 프로그램 매매가 현대 주식 시장에서 가지는 막대한 영향력을 상징한다.