얼러트에서 베어리어블 (변수) 을 쓰려면?
얼러트 메시지에서 변수값을 쓰려면 스페셜 플레이스홀더를 써야 합니다. 보기로, NASDAQ:AAPL 에 대한 얼러트를 만들고 메시지 박스에 아래와 같이 넣을 수 있습니다:
{{exchange}}:{{ticker}}, price = {{close}}, volume = {{volume}}
얼러트가 트리거되면 다음과 같은 값을 받게 됩니다:
쓸 수 있는 플레이스 홀더는 다음과 같습니다:
1. {{ticker}} - 얼러트에 쓰인 심볼 티커 (AAPL, BTCUSD, etc.).
2. {{exchange}} - 얼러트에 쓰인 심볼 익스체인지 (NASDAQ, NYSE, MOEX, etc). 딜레이 심볼은 거래소 끝에 “_DL" 이나 “_DLY” 이 붙습니다. 보기:, “NYMEX_DL”.
3. {{close}}, {{open}}, {{high}}, {{low}}, {{time}}, {{volume}} - 얼러트가 트리거된 바에 대한 값들. 인디케이터, 넌스탠다드 차트 및 드로잉에 대한 얼러트는 레졸루션 영향을 받지만 심플 프라이스 얼러트 (보기: 어떤 값 돌파하는 프라이스) 는 언제나 1분 바에서 셈하게 됩니다. {{time}} 은 UTC 이며, 포맷은 yyyy-MM-ddTHH:mm:ssZ 입니다. 보기: 2019-08-27T09:56:00Z. 나머지 값들은 1245.25 처럼 고정 소숫점 포맷입니다.
4. {{timenow}} - 얼러트 발생 타임, 포맷은 {{time}} 과 같습니다. 레졸루션 무관하게 가장 가까운 초값으로 리턴.
5. {{plot_0}}, {{plot_1}}, ... {{plot_19}} - 얼러트에서 쓰이는 인디케이터의 해당 아웃풋 시리즈. 플롯 번호는 0부터 시작합니다. 가장 큰 플롯 ID 는 19 (첫 20 개 아웃풋 시리즈만 액세스할 수 있습니다) 입니다. 아웃풋 시리즈는 차트위에서 볼 수 있는 인디케이터 값들입니다. 보기: 빌트인 볼륨 인디케이터는 두 개의 아웃풋 시리즈가 있습니다: 볼륨과 볼륨 MA. 인디케이터에 대해 얼러트를 만들고 아래와 같은 메시지 박스를 타이핑할 수 있습니다:
Volume: {{plot_0}}, Volume average: {{plot_1}}
6. {{interval}} - 얼러트가 만들어진 차트의 인터벌 (그러니까, 타임프레임/레졸루션) 을 리턴합니다. 기술적인 까닭으로 어떤 경우에는 이 플레이스홀더가 차트의 타임프레임 대신 "1"을 리턴하기도 합니다. 레귤러 프라이스 베이스 얼러트 ("AAPL 크로싱 120" 또는 "AMZN 이 3600 보다 더 큰" 과 같은 컨디션을 가진) 는 모두 심볼의 라스트 밸류를 기초로 하고 있어 차트 타임프레임은 얼러트와는 무관합니다. 이렇기 때문에 모든 프라이스 베이스 얼러트는 사실상 1m 타임프레임에서 셈이 되며 플레이스홀더는 늘 그에 따라 "1" 을 리턴합니다. 덧붙여서, 레인지 차트 또한 1m 데이터를 기초로 셈하기 때문에 {{interval}} 플레이스홀더는 레인지 차트에서 만든 모든 얼러트에 대해 언제나 "1"을 리턴합니다. 드로잉이나 인디케이터에 만든 얼러트에 대해서는 이 플레이스홀더는 잘 돌아갑니다.
7. {{syminfo.currency}} - 는 현재 기호의 통화 코드("EUR", "USD" 등)를 반환합니다.
8. {{syminfo.basecurrency}} - 심볼이 통화쌍을 가리키는 경우 현재 심볼의 기본 통화 코드를 반환합니다. 그렇지 않으면 na를 반환합니다. 예를 들어, 심볼이 "EURUSD"인 경우 "EUR"을 반환합니다.
프레픽스가 "strategy" 인 플레이스홀더는 스트래티지 얼러트에서만 쓸 수 있습니다:
- {{strategy.position_size}} - 파인 키워드와 같은 값을 리턴, 다시 말해, 커런트 포지션 사이즈를 리턴.
- {strategy.order.action}} - 체결된 오더에 대해 “바이” 또는 “셀” 스트링을 보여줌.
- {{strategy.order.contracts}} - 체결 오더의 컨트랙트 수 리턴.
- {{strategy.order.price}} - 체결 프라이스 리턴.
- {{strategy.order.id}} - 체결 오더 ID 리턴 (다음 오더 펑크션의 첫 파라미터로 쓰인 스트링: strategy.entry, strategy.exit or strategy.order).
- {{strategy.order.comment}} - 체결 오더 코멘트 리턴 (다음 오더 펑크션의 코멘트 파라미터로 쓰인 스트링: strategy.entry, strategy.exit or strategy.order). 코멘트가 없으면 strategy.order.id 밸류 리턴.
- {{strategy.order.alert_message}} - 다음 오더 내는 펑크션 콜때 스트래티지의 파인 코드에서 쓰이는 alert_message 파라미터 밸류 리턴: strategy.entry, strategy.exit or strategy.order. 이 피처는 파인 V4 이상에서만 쓸 수있습니다.
- {{strategy.market_position}} - 스트래티지의 커런트 포지션을 다음 스트링 폼으로 리턴: “long”, “flat”, or “short”.
- {{strategy.market_position_size}} - 커런트 포지션 사이즈 리턴.
- {{strategy.prev_market_position}} - 스트래티지의 프리비어스 (이전) 포지션을 다음 스트링 폼으로 리턴: “long”, “flat”, or “short”.
- {{strategy.prev_market_position_size}} - 이전 포지션 사이즈 절대값 (0 이상) 리턴.
얼러트가 트리거되면 해당 밸류를 볼 수 있게 됩니다:
파인 스크립트에도 똑같은 룰이 적용됩니다. 시리즈 카운팅은 코드에서 콜 차례에 따라 매기게 됩니다. 아래 펑크션 리스트를 보시기 바랍니다. 알림 메시지로 이들 시리즈를 쓸 수 있습니다:
- plot;
- plotshape;
- plotchar;
- plotarrow;
- plotbar;
- plotcandle.
이들 펑크션의 시리즈 아규먼트가 불리언 값을 갖게 되면 0 이나 1 로 알림 메시지에 나타나게 됩니다. plotcandle 과 plotbar 같은 펑크션은 각각 4 시리즈를 디스플레이하게 되며 각각 넘버링 로직에 고려됩니다.
하지만 이 플롯 액세스 방법이 늘 편한 것은 아닙니다. 좀 더 편하게 쓸 수 있도록 {{plot("Name")}} 플레이스홀더를 써서 플롯 이름을 부를 수 있게 하였습니다. Name 은 시리즈 네임입니다.
빌트인 인디케이터는 영어 버전에서 쓰이는 이름만 서포트됩니다. 이름으로 시리즈 액세스하는 볼륨 인디케이터 보기에서 다음 메시지를 넣을 수 있습니다:
Volume: {{plot("Volume")}}, Volume average: {{plot("Volume MA")}}
시리즈 액세스하는 파인 스크립트의 경우도 비슷하게 해당 펑크션의 타이틀 아규먼트 네임을 지정하면 됩니다 (plotcandle 과 plotbar 을 뺀 모든 플롯 펑크션 지원). 이 경우 랭귀지는 상관이 없습니다. 코드를 액세스할 수 없다면 스타일 세팅에서 네임을 알 수 있습니다.
보기로, 다음 스크립트 밸류를 액세스하려면:
//@version=4study("My script")plot(close, title="series")
GenericGeneric얼러트 메시지에 {{plot("series")}} 를 넣으면 됩니다.
스크립트 세팅에 같은 이름이 나옵니다:
한 얼러트에 여러 인디케이터를 쓸 때 첫 인디케이터 밸류를 읽을 수 있습니다 - 첫번째 드롭다운 리스트에 표시된 인디케이터. 아래 보기 참조.
얼러트에 이들 세팅이 들어 있으면 MA 밸류만 읽을 수 있습니다. "My script" 스크립트 밸류를 액세스하려면 첫번째 드롭다운 리스트에서 그 스크립트를 골라야 합니다.
alertcondition 펑크션의 메시지 아규먼트에 새 플레이스홀더를 지정할 수 있습니다. 보기:
//@version=4study("My script")alertcondition(close>open, message="price {{ticker}} = {{close}}")
GenericGeneric아규먼트 메시지는 저절로 얼러트 만들기 다이얼로그 메시지 윈도우안에 보여집니다.
alertcondition 펑크션 조건을 가진 얼러트를 만들 때 이러한 밸류 치환은 v4 이상 스크립트에서만 됩니다.
트리거된 얼러트 밸류는 웹훅과 함께 메시지의 베어리어블 밸류를 보내고 싶은 어드레스로 보낼 수 있습니다. 또는 TradingView Alerts to MT4/MT5 와 같은 써드파티 앱을 쓸 수도 있는데 이들 앱은 이미 다이내믹 밸류 사용을 활용하고 있습니다. 이 스크립트 보기에 몇가지 신택스 보기가 나옵니다. 이를 통해 얼러트를 쓰는 분들에게 더 많은 가능성을 열어 줍니다