Posiadacze kont Premium mogą teraz doświadczyć bardziej realistycznej realizacji zleceń podczas testowania swoich strategii za pomocą funkcji The Bar Magnifier. To narzędzie wykorzystuje kontrolę intrabar w celu uzyskania głębszej szczegółowości ruchu ceny w obrębie słupka. Pozwala to na wykonywanie zleceń z większą dokładnością. Po wybraniu trybu Bar Magnifier, zastępuje on założenia, które emulator brokera musi przyjąć w przypadku ruchu ceny, jedynie wartościami OHLC dla słupków historycznych.
Ramy czasowe intrabar używane z lupą (Bar Magnifier) dynamicznie dopasowują się do ram czasowych wykresu. Poniższa tabela przedstawia ramy czasowe intrabar używane do coraz wyższych ram czasowych wykresu:
Ramy czasowe wykresu, T | Wykorzystane ramy czasowe intrabar |
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 |
Tabela 1. Zastosowane ramy czasowe intrabar
Oto przykład strategii, która wykorzystuje zlecenie stop bez użycia opcji Bar Magnifier:
//@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)
Emulator brokera umieszcza zlecenie stop na słupku #10381 10381 i wypełnia zlecenie z ceną 157,0 na następnym słupku, gdy tylko warunek stop = 157.0 zostanie spełniony. Emulator brokera szacuje, że wewnątrz samego słupka cena przechodzi od “close” do “low”, następnie do “high” (powodując wejście), a następnie do “close”. ”. Po kilku słupkach (11 dni dla bieżącego przedziału czasowego) wyzwalany jest warunek wyjścia z pozycji z stop price = 156.0:
Gdy funkcja Bar Magnifier jest włączona (parametr use_bar_magnifier = true), ceny wyjścia i wejścia pozostają niezmienione; jednak wyjście z pozycji następuje wewnątrz tego samego słupka, w którym nastąpiło wejście:
//@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)
Jeśli sprawdzimy wykres na niższym przedziale czasowym dla tego samego symbolu (wykres 60-minutowy, zgodnie z tabelą przedziałów czasowych intrabar) i znajdziemy przedział czasu odpowiadający słupkowi 10382, zobaczymy, że na przedziale godzinowym, po osiągnięciu 157.0 i uruchomieniu wejścia, cena spada poniżej 156.0, spełniając warunek stop = 156.0 :
Po włączeniu Bar Magnifier emulator brokera uzyskuje dostęp do zmian cen z niższych ram czasowych podczas backtestów, dzięki czemu jego zachowanie jest bardziej podobne do tego, co miałoby miejsce podczas testowania strategii w tym samym okresie.
Poniżej możesz zobaczyć przykład strategii, która wykorzystuje niższy interwał, aby uzyskać dokładniejsze wypełnianie zlecenia limit i stop:
//@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)
Przy włączonej opcji Bar Magnifier wyniki strategii są bliższe tym, jakie byłyby w czasie rzeczywistym. Zyski z naszej strategii testowej są o 50% gorsze, gdy jest ona włączona, co jest ogólnie zniechęcające w przypadku strategii, ale pokazuje, jak ważne może być użycie danych z niższych ram czasowych dla uzyskania dokładniejszych danych z testów historycznych:
Opcję Bar Magnifier można zmienić, przełączając odpowiednie dane wejściowe w oknie „Ustawienia/Właściwości” strategii:
Po wyłączeniu opcji strategia jest przeliczana zgodnie ze starą logiką, pokazując nam mniej dokładne informacje o zachowaniu strategii:
Aby być na bieżąco z nowymi funkcjami Pine, zapoznaj się z informacjami w Podręczniku Użytkownika. Konto PineCoders transmituje również aktualizacje z kanału Squawk Box na Telegramie, konta na Twitterze oraz z publicznego czatu „Pine Script™ Q&A” na TradingView.
Mamy nadzieję, że te ulepszenia okażą się przydatne. Prosimy o dalsze przesyłanie nam swoich opinii. Tworzymy TradingView dla naszych użytkowników i uwielbiamy kontakt z Wami.