Jak używać wartości zmiennych w alertach

Żeby uzyskać dostęp do wartości zmiennych w wiadomości alertu, możesz skorzystać ze specjalnych symboli zastępczych. Na przykład, możesz utworzyć alert na NASDAQ:AAPL i dołączyć następującą wiadomość: 

{{exchange}}:{{ticker}}, price = {{close}}, volume = {{volume}}

Po uruchomieniu alertu otrzymasz następujący komunikat z odpowiednimi wartościami:

Oto lista dostępnych symboli zastępczych:

1. {{ticker}} - ticker symbolu użytego w alercie (AAPL, BTCUSD itp.).

2. {{exchange}} - egiełda, na której notowany jest symbol użyty w alercie (NASDAQ, NYSE, MOEX, itp.). Zwróć uwagę, że jeżeli dane podawane są z opóźnieniem, dołączany jest parametr “_DL” lub “_DLY”. Na przykład “NYMEX_DL”.

3. {{close}}, {{open}}, {{high}}, {{low}}, {{time}}, {{volume}} - wartości odpowiadające danym słupka, który aktywował alert. Należy pamiętać, że alerty dotyczące wskaźników, niestandardowych wykresów i rysunków zależą od interwału, natomiast proste alerty cenowe (np. cena przekracza pewną wartość) są zawsze obliczane na słupkach 1-minutowych. {{time}} to czas słupka w strefie UTC w formacie yyyy-MM-ddTHH:mm:ssZ. Na przykład 2019-08-27T09:56:00Z. Wszystkie pozostałe wartości są w formacie dziesiętnym, ale z kropką zamiast przecinka (format amerykański), na przykład 1245.25.

4. {{timenow}} - dokładny czas uruchomienia alertu. Jest sformatowany w ten sam sposób co czas słupka {{time}}. Czas jest dokładny co do sekundy niezależnie od wybranego interwału.

5. {{plot_0}}, {{plot_1}}, ... {{plot_19}} - wartości odpowiadające serii danych wskaźnika wybranego do ustawienia alertu. Należy pamiętać, że wykresy są numerowane od zera. Maksymalny plot ID to 19 (można uzyskać dostęp do maksymalnie 20 zestawów danych). Serie wyjściowe są wartościami wskaźnika, które można zobaczyć na wykresie. Na przykład wbudowany wskaźnik wolumenu ma 2 serie wyjściowe: Wolumen i Średni wolumen. Możesz utworzyć alert w oparciu o ten wskaźnik i napisać w wiadomości:

Volume: {{plot_0}}, Volume average: {{plot_1}}

6. {{interval}} - zwraca interwał wykresu, na którym tworzony jest alert. Zauważ, że ze względów technicznych, w niektórych przypadkach, ten symbol zastępczy zwróci “1” zamiast interwału wykresu. Zwykłe alerty cenowe (z warunkami takimi jak “AAPL Crossing 120” lub “AMZN Greater Than 3600”) są oparte na ostatniej wartości symbolu, więc interwał wykresu nie ma znaczenia dla alertu. W związku z tym wszystkie alerty cenowe są w rzeczywistości obliczane na interwale 1m, a symbol zastępczy będzie zawsze zwracał wartość “1”. Ponadto wykresy typu Zakres są również obliczane na podstawie danych 1m, więc symbol zastępczy {{interval}} będzie zawsze zwracał wartość “1” dla każdego alertu utworzonego na wykresie typu Zakres. W przypadku alertów tworzonych na rysunkach i wskaźnikach ten symbol zastępczy będzie działał zgodnie z oczekiwaniami.

7. {{syminfo.currency}} - zwraca kod waluty bieżącego symbolu („EUR”, „USD” itp.).

8. {{syminfo.basecurrency}} - zwraca podstawowy kod waluty bieżącego symbolu, jeśli symbol odnosi się do pary walutowej. W przeciwnym razie zwraca 'na'. Na przykład zwraca „EUR”, gdy symbolem jest „EURUSD”.

Symbole zastępcze z prefiksem "strategy" mogą być używane tylko w alertach strategii:

  • {{strategy.position_size}} - zwraca wartość tego samego słowa kluczowego w Pine, czyli rozmiar bieżącej pozycji.
  • {{strategy.order.action}} - zwraca ciąg “buy” lub “sell” dla zrealizowanego zlecenia.
  • {{strategy.order.contracts}} - zwraca liczbę kontraktów zrealizowanego zlecenia.
  • {{strategy.order.price}} - zwraca cenę, po której zostało zrealizowane zlecenie.
  • {{strategy.order.id}} - zwraca ID zrealizowanego zlecenia (ciąg używany jako pierwszy parametr w jednym z wywołań funkcji generujących zlecenia: strategy.entry, strategy.exit lub strategy.order).
  • {{strategy.order.comment}} - zwraca komentarz do wykonanego zlecenia (ciąg używany w parametrze komentarza w jednym z wywołań funkcji generujących zlecenia: strategy.entry, strategy.exit lub strategy.order). Jeśli nie podano żadnego komentarza, wówczas zostanie użyta wartość strategy.order.id.
  • {{strategy.order.alert_message}} - zwraca wartość parametru alert_message, który może zostać wykorzystany w kodzie Pine strategii przy wywołaniu jednej z funkcji służących do składania zleceń: strategy.entry, strategy.exit lub strategy.order. Ta funkcja jest obsługiwana tylko przez Pine v4.
  • {{strategy.market_position}} - zwraca bieżącą pozycję strategii w formie ciągu: “long”, “flat”, lub “short”.
  • {{strategy.market_position_size}} - zwraca rozmiar aktualnej pozycji jako wartość bezwzględną, tzn. liczbę nieujemną.
  • {{strategy.prev_market_position}} - zwraca poprzednią pozycję strategii w formie ciągu: “long”, “flat”, lub “short”.
  • {{strategy.prev_market_position_size}} - zwraca rozmiar poprzedniej pozycji jako wartość bezwzględną, tzn. liczbę nieujemną.

Po uruchomieniu alertu otrzymasz następujący komunikat z odpowiednimi wartościami:

Te same zasady dotyczą skryptów napisanych w Pine. Serie są liczone zgodnie z kolejnością wywołania w kodzie. Lista funkcji, których serie można użyć w powiadomieniach:

  • plot;
  • plotshape;
  • plotchar;
  • plotarrow;
  • plotbar;
  • plotcandle.

Jeżeli argument serii tych funkcji zawiera wartość logiczną, w wiadomości powiadomienia zostanie podana wartość 0 lub 1. Należy pamiętać, że niektóre funkcje — plotcandle oraz plotbar — mają po 4 serie i każda z nich zostanie uwzględniona w mechanizmie numeracji.

Ta metoda pobierania wartości nie zawsze jest wygodna. Dla ułatwienia dodaliśmy obsługę wywoływania funkcji plot po nazwie. Żeby to zrobić, użyj symbolu zastępczego {{plot("Name")}}, gdzie Name jest nazwą serii.

W przypadku wskaźników wbudowanych obsługiwane są tylko nazwy używane w angielskiej wersji językowej. W przykładzie ze wskaźnikiem Wolumen, żeby uzyskać dostęp do serii korzystając z ich nazw, należy dołączyć do wiadomości następujący komunikat:

Volume: {{plot("Volume")}}, Volume average: {{plot("Volume MA")}}

Analogicznie w przypadku Pine Script, żeby uzyskać dostęp do serii, należy podać nazwę z argumentu tytułu odpowiedniej funkcji (dla wszystkich funkcji plot oprócz plotcandle i plotbar). Jeżeli nie masz dostępu do kodu, nazwę można zobaczyć w ustawieniach stylu.

Na przykład, żeby uzyskać dostęp do wartości tego skryptu:

//@version=4
study("My script")
plot(close, title="series")

Dołącz {{plot("series")}} do wiadomości alertu.

Ta sama nazwa jest wyświetlana w ustawieniach skryptu:

Jeżeli używasz kilku wskaźników w jednym alercie, możesz odwołać się do wartości tylko pierwszego z nich — tego wskazanego na pierwszej liście rozwijanej. Zobacz poniższy przykład.

Gdy alert zawiera te ustawienia, możesz się odwołać tylko do wartości MA. Żeby uzyskać dostęp do wartości skryptu “My script,” należy go wybrać na pierwszej liście rozwijanej.

Możesz także określić nowe symbole zastępcze w argumencie wiadomości funkcji alertcondition. Na przykład:

//@version=4
study("My script")
alertcondition(close>open, message="price {{ticker}} = {{close}}")

Komunikat z argumentu jest automatycznie wciągany do okna komunikatu w oknie dialogowym tworzenia alertu.

Zwróć uwagę, że gdy alert zostanie utworzony z warunkiem pochodzącym z funkcji alertcondition, zamiana wartości będzie miała zastosowanie tylko dla skryptów v4 i wyższych.

Wartości uzyskane z aktywowanych alertów można wykorzystać razem z webhookami, wysyłając zmienne zawarte w wiadomości na pożądany adres. Lub przy użyciu zewnętrznych aplikacji innych firm, takich jak TradingView Alerts to MT4/MT5, które już mogą korzystać z wartości dynamicznych. Niektóre przykłady zastosowania można znaleźć w tym przykładzie. Otwiera to jeszcze więcej możliwości dla tych, którzy często używają alertów.