프리미엄 어카운트 홀더는 이제 바 돋보기 옵션을 써서 스트래티지 백테스트를 할 때 좀 더 현실적인 주문 체결을 얻을 수 있습니다. 이 툴은 바 내부를 조사하여 좀 더 깊은 프라이스 무브먼트를 읽어 내어 훨씬 더 정확한 주문 체결을 하도록 해줍니다. 바 돋보기를 고르면 바 돋보기 모드가 브로커 이뮬레이터가 과거 바에 대해 오로지 OHLC 밸류만을 전제로 한 프라이스 무브먼트에 대한 가정을 대체합니다.
바 돋보기와 함께 쓰이는 인트라바 타임프레임은 차트 타임프레임에 따라 다이내믹하게 조절됩니다. 아래 테이블에 차트 타임프레임 크기에 따른 인트라바 타임프레임이 적혀 있습니다:
차트 타임프레임, T | 쓰인 인트라바 타임프레임 |
1S < T < 30S | 1S |
30S <= T < 5 | 5S |
5 <= T < 30 | 15S |
30 <= T < 60 | 1 |
60 <= T < 240 | 5 |
240 <= T < D | 15 |
D <= T < W | 60 |
W <= T < 2W | 120 |
T >= 2W | D |
테이블 1. 쓰이는 인트라바 타임프레임
아래 스트래티지 보기에 바 돋보기 옵션을 쓰지 않으면서 스탑 오더를 쓰는 스트래티지가 있습니다:
//@version=5
strategy("bar_magnifier_demo", overlay = true, use_bar_magnifier = false)
if bar_index == 10381
strategy.entry("Long", strategy.long, stop = 157.0)
strategy.exit("Exit", stop = 156.0)
브로커 이뮬레이터가 바 #10381 에 스탑 오더를 내고 stop = 157.0 조건이 만족되자마자 다음 바에서 157.0 에 오더가 체결됩니다. 브로커 이뮬레이터는 그 바 안에서 프라이스가 “클로즈” 에서 ” 로우”로 갔다가 그 다음 “하이” (엔트리 트리거) 로, 끝으로 “클로즈”로 간 것으로 가정합니다. 두어 개의 바 다음 (현재 타임프레임으로 보면 11날) 에, stop price = 156.0 으로 포지션을 청산하는 조건이 트리거 됩니다:

바 돋보기가 켜져 있을 때 (파라미터 use_bar_magnifier = true), 엑싯과 엔트리 프라이스는 바뀌지 않습니다; 하지만 포지션 엑싯이 엔트리가 일어났던 바로 그 바안에서 일어납니다:
//@version=5
strategy("bar_magnifier_demo", overlay = true, use_bar_magnifier = true)
if bar_index == 10381
strategy.entry("Long", strategy.long, stop = 157.0)
strategy.exit("Exit", stop = 156.0)

같은 심볼에 대해 더 낮은 타임프레임을 체크해 보면 (인트라바 테이블에 따라 60-분 차트) 그리고 바 10382 에 대응하는 타임 레인지를 찾아 보면 시간 타임프레임에서 157.0 에 다다라 엔트리를 트리거한 뒤, 프라이스가 156.0 아래로 내려가서 stop = 156.0 컨디션을 만족하게 됩니다:

바 돋보기가 온이면 브로커 이뮬레이터는 백테스팅할 때 낮은 타임프레임으로부터 프라이스 체인지를 읽어 같은 타임 피어리어드에 대해 스트래티지 포워드 태스팅하는 동안 일어나는 것과 비슷한 행동을 나타내게 됩니다.
아래에 리밋과 스탑 오더에 대해 좀 더 정밀한 체결을 얻기 위해 낮은 타임프레임을 쓰는 스트래티지 보기가 나와 있습니다:
//@version=5
strategy(
title = "Magnifier On",
overlay = true,
calc_on_order_fills = true,
calc_on_every_tick = true,
precision = 3,
default_qty_type = strategy.cash,
currency = currency.USD,
default_qty_value = 1000,
initial_capital = 1000,
use_bar_magnifier = true)
trailPoints = input.int(150, "Trail Points (in ticks)")
trailOffset = input.int(100, "Trail Offset (in ticks)")
stopSize = input.int(300, "Stop Offset (in ticks)")
longCondition = bar_index % 25 == 0 and not (strategy.closedtrades.exit_bar_index(strategy.closedtrades - 1) == bar_index)
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit("Exit", loss = stopSize, trail_points = trailPoints, trail_offset = trailOffset)
바 돋보기 옵션이 온이면 스트래티지 결과는 리얼타임일 때의 결과에 더 가까워 집니다. 테스트 스트래티지의 프라핏은 온일 때 50% 더 안 좋아 스트래티지 자체가 문제가 있지만, 좀더 정확한 백테스팅 데이터를 얻기 위해 낮은 타임프레임 데이터를 쓰는 것이 얼마나 중요한 것인지를 보여줍니다.

바 돋보기 옵션은 스트래티지 “세팅/프로퍼티” 윈도우에서 해당 인풋을 토글하여 바꿀 수 있습니다:

옵션을 끈 뒤에는 스트래티지는 다이 올드 로직으로 다시 셈이 되어 스트래티지 행동에 대해 훨씬 덜 정확한 정보를 보여주게 됩니다:

새로운 파인 피처 정보를 받으려면 유저 매뉴얼의 릴리즈 노트에 관심을 가지도록 하십시오. 또한 파인코더즈 어카운트는 자신의 스쿼크 박스 텔리그램 채널, 트위터 어카운트, 그리고 “파인 스크립트™ Q&A” 퍼블릭 챗방으로 부터 트레이딩뷰에 대한 업데이트를 브로드캐스트합니다.
이번 개선 사항이 쓸모가 있기를 바라며 여러분의 피드백을 기다리고 있습니다. 당사 유저를 위해 트레이딩뷰를 만들고자 하며 여러분들의 목소리를 들려 주십시오.