프로그래밍과 트레이딩: ‘상수’와 ‘변수’
const int FIXED_VALUE = 100; // 상수
int variable_value = 50; // 변수
// FIXED_VALUE = 200; // 오류: 상수는 변경 불가
variable_value = 75; // 정상: 변수는 변경 가능
프로그래밍에서 상수(고정된 값)와 변수(바뀔 수 있는 값)는 결과를 좌우하는 핵심 요소이다. 예를 들어, 하나의 프로그램이라도 상수·변수 값을 어떻게 정하느냐에 따라 출력이 달라진다.
트레이딩 전략에서도 마찬가지이다. 고정값(Fixed Values)과 변동값(Variable Values)을 어떤 기준으로 설정하고 어떻게 운용하느냐가 성과와 리스크 관리를 결정한다. 매매에 앞서 “어떤 부분은 웬만하면 바꾸지 않는 고정값으로 둘 것인지, 어떤 부분은 시장 흐름에 맞춰 유연하게 변경할 변동값으로 둘 것인지”를 구분해놓아야 한다.
고정값: 전략의 중심을 잡아주는 ‘상수’
고정값은 프로그래밍에서의 상수처럼, 거의 바꾸지 않거나 매우 구체적인 조건이 충족될 때만 변경하는 기준이다. 다음과 같은 예시가 있다.
- “과거에 지지·저항이 확실하게 나타난 수준이니, 여기에서 진입을 고려한다.”
- "오실레이터 20 이하를 과매도, 80 이상을 과매수로 본다."
- “익절 20틱, 손절 10틱”처럼 특정 틱(tick)을 기준으로 고정한다."
- "항상 동일한 계약 수로만 진입해, 계좌 변동성을 통제한다."
이렇게 고정값을 설정하면 시장이 예상치 못하게 흔들리더라도 최소한의 원칙이 유지된다. 심리적으로 흔들릴 때 참고할 ‘중심축’이 생긴다는 점이 가장 큰 장점이다.
변동값: 시장 환경에 맞춰 유연하게 바뀌는 ‘변수’
변동값은 프로그래밍에서의 변수처럼, 시장 상황이나 종목 특성에 따라 바뀔 수 있는 기준이다. 시장 변동성이 커지거나, 추세가 바뀌거나, 종목별 거래 특성이 달라지면 이를 조정할 필요가 있다. 예시로는 다음과 같은 것들이 있다.
- "이동평균선 20일선이 잘 맞을 때가 있고, 60일선이 더 유효할 때가 있다."
- "볼린저밴드 폭이 좁아졌다가 크게 넓어지는 타이밍을 변동성 확대를 예상한다"
- "장이 극단적으로 출렁이면, 계약 수나 손절 범위를 줄이고, 반대로 장이 조용해지면 다시 늘리는 식으로 대응한다."
변동값은 일정 주기(예: 월간·분기별)나 특정 이벤트가 발생할 때마다 재점검해, 현재 시장과 가장 잘 맞는 조합으로 조정해야 한다.
함께 써야 하는 이유: Confluence(맥점)
트레이딩에서는 “고정값만 쓰면 시장 변화에 유연하게 대응하기 어렵고, 변동값만 쓰면 전략이 자주 바뀌어 노이즈에 지친다”는 문제가 생긴다. 그래서 둘을 함께 잘 활용하는 것이 중요하다. 이를 흔히 Confluence(맥점)라고도 부른다.
- 고정값만 지나치게 고수하면, 시장 흐름이 바뀔 때 크게 대응하지 못한다.
- 변동값만 쫓아다니면, 매 순간 기준이 바뀌어 심리적으로나 실전에서나 매매가 흔들린다.
때로는 지지·저항으로 추정되는 가격대(고정값)와, 이동평균선의 방향이나 변동성 지표(변동값)가 함께 일치하는 구간을 찾으면 높은 확률의 매매 기회가 생긴다. 이것이 Confluence, 즉 맥점이다.
결국 유연성과 균형이 중요하다.
트레이딩은 변동성이 큰 시장에서 장기적으로 일관성 있는 수익을 추구하는 과정이다.고정값으로는 ‘반드시 지켜야 할 기준’을 설정해 전략의 중심축을 잡고, 변동값으로는 ‘시장 상황에 맞게 조정할 수 있는 옵션’을 확보해 유연성을 갖추는 방식이 바람직하다.
"안전펀(고정값)과 유연성(변동값)의 균형을 바탕으로
장기적으로 일관성 있는 수익을 추구하는 것이 트레이더의 궁극적 목표이다"
이 둘을 조화롭게 운영하기 위해서는 매매 일지를 작성하고, 주기적으로 과거 매매 결과를 리뷰하며 시장이 어떻게 바뀌었는지 체크하는 습관이 필요하다. 결국 우리는 지속 가능한 트레이딩 시스템을 만들기 위해 고정값과 변동값의 최적 조합을 찾고, 이를 시장 흐름에 맞춰 적절히 튜닝하되, 과도하게 자주 바꾸지 않는 균형감을 지녀야 한다.