MultiCharts łączy wykresy, handel ręczny i automatyczne strategie. Przy wyborze liczy się zgodność języka, danych i rachunku oraz sposób testowania wspólnego portfela. Sama liczba funkcji nie zapewnia wiarygodnego backtestu. Zacznij od jednego prostego modelu, którego transakcje potrafisz odtworzyć krok po kroku.

Która wersja pasuje do twojego kodu?

Podstawowa edycja korzysta z PowerLanguage, języka zgodnego w dużym zakresie z EasyLanguage. MultiCharts x .NET obsługuje C# i VB.NET. Dokumentacja wskazuje .NET Framework 4.8, więc dostępność zewnętrznej biblioteki nie gwarantuje zgodności jej najnowszej wersji. Strona oferty nadal wymienia Python w becie, lecz Help Center informuje, że MultiCharts x Python nie jest już aktywnie rozwijany ani wspierany. Przed wyborem tego środowiska uzyskaj od dostawcy potwierdzenie statusu i zgodności konkretnej wersji.

Istniejący wskaźnik z TradeStation może być dobrym punktem startu, ale kompilacja nie dowodzi identycznego zachowania. Sprawdź funkcje, sesje, indeksowanie świec, moment obliczeń i składania zlecenia. Wskaźnik opisujący zamkniętą świecę i strategia działająca podczas jej tworzenia mogą dawać różne rezultaty.

Przy przenoszeniu systemu przygotuj mały zestaw kontrolny: kilka świec, oczekiwane wartości wskaźnika i listę zleceń. Dopiero po zgodności tych wyników uruchamiaj dłuższą historię. Biblioteka strategii nie jest gotowym dowodem przewagi; obcy kod wymaga przeczytania i sprawdzenia zależności.

Do poznania samego interfejsu nie musisz od razu programować. Możesz przejrzeć dostępne wykresy i symulację ręcznych zleceń. Jeżeli celem jest wyłącznie obserwacja rynku, rozbudowane narzędzia optymalizacji nie muszą uzasadniać płatnego planu.

Plan licencji i źródło danych to osobne wybory

Aktualna oferta rozróżnia Free, Standard i Advanced. Free korzysta z przykładowych danych historycznych oraz symulatora; nie daje dowolnego strumienia rynkowego na żywo. Standard obejmuje połączenia z brokerami i dostawcami danych oraz handel ręczny i automatyczny. Advanced dodaje m.in. Portfolio Trader, optymalizację Matrix i walk-forward.

To odrębny podział od wyboru edycji językowej. Sprawdzaj oba pola w cenniku. Bezpłatny plan nie jest tym samym co 30-dniowy okres próbny pełnych funkcji. Producent oferuje różne okresy rozliczenia; aktualną kwotę, walutę i warunki odnowienia sprawdź dla wybranej konfiguracji.

Koszt platformy nie opisuje całego budżetu. Oddziel licencję, abonament danych, uprawnienia giełdowe, prowizje transakcyjne i ewentualny serwer. Nie dodawaj depozytu zabezpieczającego do miesięcznych opłat: to inne zobowiązanie. Brak opłaty za program również nie usuwa kosztów i ryzyka samego handlu.

Co naprawdę odtwarza tester?

Dane OHLC opisują otwarcie, maksimum, minimum i zamknięcie. Nie mówią, w jakiej kolejności wystąpiły wszystkie ceny. MultiCharts stosuje założenia ruchu wewnątrz świecy, jeśli nie ma dokładniejszej informacji. Nie można więc opisywać każdego wyniku jako odtworzenia rzeczywistych ticków, spreadu i kolejki zleceń.

Bar Magnifier służy do wykorzystania bardziej szczegółowych danych w testowaniu. Intra-Bar Order Generation dotyczy z kolei obliczeń i generowania zleceń wewnątrz świecy. To powiązane, ale różne ustawienia. Sprawdź ich dostępność i współdziałanie w konkretnym trybie testu; nie przenoś automatycznie możliwości wykresu na Portfolio Trader.

Przykład: po wejściu przy 100 ustawiono stop 95 i cel 108. Świeca ma maksimum 110 oraz minimum 90. Obydwa poziomy mieszczą się w jej zakresie. Wynik +8 albo −5 przed kosztami zależy od kolejności zdarzeń i reguł wykonania. Bez dokładniejszych danych samo OHLC nie rozstrzyga tego wyniku.

Nawet historia tickowa nie jest pełnym modelem rzeczywistego wykonania. Zapis notowań może nie zawierać twojego miejsca w kolejce, opóźnienia infrastruktury ani wpływu zlecenia na rynek. Oddziel precyzję danych od realizmu modelu wykonania i wyraźnie opisz przyjęte uproszczenia.

Portfel potrzebuje wspólnego kapitału

Portfolio Trader pozwala analizować wiele strategii i instrumentów w ramach portfela. Praktyczny sens takiego testu polega m.in. na sprawdzeniu, które sygnały można wykonać jednocześnie przy wspólnych ograniczeniach. Dodanie trzech niezależnych krzywych kapitału może pomijać konkurencję o środki.

Rozważ własny przykład dydaktyczny: kapitał 10 000 zł, limit planowanego ryzyka otwartych pozycji 2%, czyli 200 zł. Każdy z trzech sygnałów zakłada 100 zł straty przy wykonaniu stopa zgodnie z planem. Żadna pozycja jeszcze się nie zamknęła.

Przykład wspólnego budżetu ryzyka: kapitał 10 000 zł, limit 200 zł
SygnałRyzyko nowej pozycjiSuma po przyjęciuOcena względem limitu
A100 zł100 złMieści się
B100 zł200 złWyczerpuje limit
C100 zł300 złPrzekracza limit

Trzeciego sygnału nie można przyjąć w tej wielkości bez zmiany reguł. System powinien rozstrzygać kolejność albo priorytet sygnałów z wyprzedzeniem, a nie wybierać po fakcie korzystniejszą transakcję. Sprawdź również wymagany margin i dostępne środki; limit ryzyka nie zastępuje kontroli depozytu.

Kwota 200 zł jest sumą założonych strat przy stopach, nie gwarantowanym maksimum. Luki, poślizg i koszty mogą zwiększyć stratę. Wspólny czynnik rynkowy może uruchomić kilka stopów naraz. Trzy różne symbole nie muszą oznaczać trzech niezależnych ekspozycji.

Optymalizacja nie zastępuje sprawdzianu

Zmiana parametrów pozwala zobaczyć wrażliwość strategii, ale wyszukanie najlepszego wyniku historycznego sprzyja dopasowaniu do szumu. Zapisz zakresy i liczbę prób. Porównaj sąsiednie ustawienia, koszt transakcji oraz okresy słabszego działania, zamiast wybierać wyłącznie najwyższy zysk.

W walk-forward parametry dobiera się na wcześniejszym fragmencie i ocenia na kolejnym. Jeżeli wielokrotnie zmieniasz cały pomysł po obejrzeniu tych wyników, również ta część historii wpływa na projekt. Pozostaw odrębny końcowy sprawdzian i ujawnij, kiedy został wykorzystany.

Wyniki porównuj dla tego samego kapitału, kosztów, walut, sesji i zasad wielkości pozycji. Podaj również liczbę transakcji oraz obsunięcie. Pięć korzystnych wykonań nie zapewnia takiej samej podstawy do oceny jak długa próba obejmująca różne warunki rynkowe.

SMA na początku wykresu może wymagać cen, których nie widać na ekranie

Widoczny wycinek i historia wczytana do obliczeń to różne zakresy. Sprawdźmy własną SMA(3), zanim uznamy puste początkowe wartości za błąd wskaźnika.

Przesuń diagram w bok, aby zobaczyć całość

Wartość SMA zależy również od danych sprzed widocznego wycinkaWłasny model średniej arytmetycznej z trzech kolejnych Close. Starsze wartości 92 i 96 poprzedzają widoczne 100, 104, 108, 112 i 116. Z tymi danymi pierwsza widoczna SMA wynosi 96. Bez starszej historii pierwsze dwie SMA są niedostępne, a pierwsza policzona wartość wynosi 104 przy trzeciej widocznej cenie. Niebieski przebieg to Close, różowy to SMA w wariancie z historią. Numery punktów nie są datami.TEN SAM WIDOK, INNY POCZĄTEKWłasna SMA(3): ostatnie 3 wartości CloseStarsze dane92100108116Widoczny odcinek−2−112345Z historią: pierwsza SMA = 96.Bez historii: dwie pierwsze SMA — brak.Pierwsza dostępna SMA = 104, w punkcie 3.

Własny fikcyjny szereg Close: starsze 92 i 96, następnie widoczne 100, 104, 108, 112 i 116 w równych krokach. Autorski algorytm liczy średnią dopiero po dostępności trzech kolejnych obserwacji i nie zastępuje braków zerami. To nie zrzut MultiCharts ani określenie domyślnego MaxBarsBack jego konkretnego wskaźnika. Dokument MultiCharts — What is MaxBarsBack potwierdza: MaxBarsBack określa minimalny wcześniejszy zakres danych potrzebny do obliczeń wskaźnika lub sygnału.

Niebieski przebieg pokazuje Close, różowy SMA w wariancie z pełnym krótkim szeregiem. Szare tło oznacza dane poprzedzające widoczny wycinek.

Z historią poprzedzającą ekran pierwsza widoczna średnia wynosi (92 + 96 + 100) / 3 = 96. Po wczytaniu wyłącznie widocznych danych nie można policzyć SMA dla pierwszych dwóch punktów: brakuje składników. Dopiero przy 108 dostępne są 100, 104 i 108, więc wynik to 104. Dokumentacja MultiCharts opisuje MaxBarsBack jako wymagany zakres wcześniejszych danych dla obliczeń. Faktyczny start konkretnego skryptu zależy od jego logiki i ustawień; nie przenoś licznika z tego modelu na każdy wskaźnik. Przy porównaniu wykresów zapisz zarówno wyświetlany wycinek, jak i początek wczytanej historii.

Sprawdź historię i połączenie brokerskie

Lista obsługiwanych połączeń obejmuje brokerów i osobnych dostawców danych. To nie są zamienne role. Możesz analizować inne źródło niż to, które obsługuje wykonania, co wymaga zgodności symboli, jednostek i godzin sesji. Dostępność konektora nie potwierdza możliwości otwarcia rachunku przez każdego mieszkańca Polski.

Zanim pobierzesz dużą historię, ustal jej zakres, rozdzielczość i braki. Dla futures określ serię, sposób łączenia kontraktów oraz ewentualne korekty cen. Deklaracja „pięć lat danych” bez informacji o tickach, świecach i instrumentach nie wystarcza do oceny przydatności.

Łączenie serii może stworzyć sygnał bez ruchu w tej samej serii

Przed testem na kontrakcie ciągłym oddziel zmianę ceny od zmiany serii. W hipotetycznym modelu stara seria ma ostatnie dwie ceny 100 i 100, a nowa pierwsze dwie 110 i 110. Różnica 10 jest umownie stałą różnicą wyceny między seriami; żadna z serii nie zmieniła swojej ceny w pokazanych obserwacjach.

Te same cztery obserwacje, inne przygotowanie historii
Zapis do analizyZmiany między odczytamiPrzekroczenie 105
100, 100, 110, 1100, + 10, 0Tak, przy zmianie serii
Stare ceny + 10: 110, 110, 110, 1100, 0, 0Nie: cena była już powyżej

W drugim wierszu zastosowaliśmy własną korektę historyczną o różnicę serii. Nie twierdzimy, że jest ona domyślnym ustawieniem MultiCharts ani właściwą metodą dla każdej strategii. Pokazuje, dlaczego sam symbol ciągły nie wystarcza do odtworzenia sygnału.

Zachowaj surowe serie, moment przełączenia i regułę korekty. Poziom narysowany na skorygowanej starej historii nie jest ceną, po której faktycznie zawarto wcześniejszą transakcję. Test cenowy oraz rozliczenie rolowania potrzebują osobnych danych. Stała korekta nie rozwiązuje automatycznie problemu wszystkich procentowych wskaźników ani chronologii późniejszych zmian historii.

Jak porównać MultiCharts z MT5?

MT5 również obsługuje testy wielowalutowe i rzeczywiste ticki, jeżeli odpowiednie dane są dostępne. Nie zakładaj z góry przewagi szybkości MultiCharts. Uczciwy pomiar wymaga tego samego sprzętu, zbioru, reguł i ustawień; czas obliczeń jest tylko jednym z kryteriów.

Wybierz model mieszczący się w kilkunastu transakcjach kontrolnych. Zachowaj wersję kodu, parametry, źródło danych i eksport wykonań. Wyjaśnij każdą różnicę czasu, ceny i wielkości pozycji. Pomocne są omówienia funkcji MT5 oraz sposobów testowania strategii.

Sprawdź, czy rozumiesz

Jedno krótkie ćwiczenie

Około 2 min · możesz spróbować ponownie

Wczytano tylko Close 100, 104, 108, 112, 116. Własna SMA(3) wymaga trzech kolejnych wartości i nie uzupełnia braków. Co powinno pojawić się jako pierwsza policzona średnia?

  • 100 przy pierwszym widocznym punkcie.
  • 104 przy trzecim widocznym punkcie.
  • 96 przy pierwszym widocznym punkcie.
Sprawdź odpowiedź i wyjaśnienie

104 przy trzecim widocznym punkcie.

Dopiero wtedy dostępne są trzy wartości: 100, 104 i 108. Ich suma 312 podzielona przez 3 daje 104.

Jeszcze jedno ćwiczenie

Kapitał wynosi 10 000 zł, limit planowanego ryzyka 2%, a dwie otwarte pozycje wykorzystują po 100 zł. Ile zostaje na trzecią?

Sprawdź odpowiedź

0 zł w ramach tego limitu: 10 000 × 2% = 200 zł, a 100 + 100 = 200 zł. Dodatkowa pozycja wymagałaby zmniejszenia istniejącego ryzyka albo naruszałaby regułę. Sam stop nie gwarantuje ograniczenia rzeczywistej straty.

Następny temat: Forex Tester a tester MT4 i MT5 — jak wybrać i sprawdzić backtest →

Porównanie Forex Testera i testerów MetaTradera pomoże przenieść kontrolę zakresu danych na wybór sposobu backtestu.