Przejdź do treści
Moduł 1 z 2
  1. Co to jest Edge i Expectancy - Fundament Systemu
  2. TradingView Pine Script od Zera
  3. Backtesting Bez Oszustw - Overfitting i Lookahead
  4. Excel jako Laboratorium Tradingu
Algo Systematic Lekcja 04

Excel jako Laboratorium Tradingu

Zanim napiszesz pierwszą klasę w Pythonie, Twoim najlepszym przyjacielem jest Excel lub Google Sheets. Dlaczego? Bo w Excelu widzisz każdą transakcję, każdy R-multiple, każdą formułę. Nie chowasz się za biblioteką. Trading systemowy wymaga audytu, a audyt najłatwiej zrobić w...

Ilustracja do lekcji: Excel jako Laboratorium Tradingu
4 / 7
Autor
Zordon Intelligence Sp. z o.o.
Aktualizacja
Czas czytania
7 min
Źródła
2

Wstęp

Zanim napiszesz pierwszą klasę w Pythonie, Twoim najlepszym przyjacielem jest Excel lub Google Sheets. Dlaczego? Bo w Excelu widzisz każdą transakcję, każdy R-multiple, każdą formułę. Nie chowasz się za biblioteką. Trading systemowy wymaga audytu, a audyt najłatwiej zrobić w arkuszu.

W tej lekcji zamienisz eksport z TradingView w prawdziwe laboratorium: policzysz expectancy w R, Profit Factor, SQN, Max Drawdown, testy stabilności, Monte Carlo w Excelu. To jest most między Pine Script a Pythonem. Jeśli nie potrafisz policzyć systemu w Excelu, nie zrozumiesz co Python liczy pod spodem.

Struktura laboratorium - jeden arkusz to jedno źródło prawdy

Stwórz skoroszyt lab_system_v01.xlsx z 4 zakładkami:

ZakładkaCo zawiera
Trades_RAWEksport z TradingView / brokera: data, entry, exit, PnL $, prowizja
Trades_RPrzeliczenie na R, czas trzymania, MFE/MAE jeśli masz
MetricsPF, EV, SQN, WinRate, Payoff, MaxDD, Z-Score
MonteCarlo500 symulacji equity z reshuffle transakcji

Formuły zawsze otwarte, nigdy na sztywno wpisane liczby.

Formuły bazowe w Trades_R:

R-multiple = PnL_netto / Ryzyko_początkowe
Gdzie Ryzyko_początkowe = Entry - SL w $ * wielkość pozycji. Jeśli nie masz SL z TV, użyj ATR*mult jako proxy.

PnL_netto = PnL_brutto - Prowizja - Poślizg_estymowany

Win = IF(R>0,1,0)

Metryki które musisz policzyć - wzory gotowe do kopiowania

Załóż że kolumna D to R-multiple, 2:1000 to zakres transakcji, $ to PnL netto.

Liczba transakcji:
N = COUNTA(D2:D1000)

WinRate:
=COUNTIF(D2:D1000,">0")/N

AvgWin_R:
=AVERAGEIF(D2:D1000,">0")

AvgLoss_R:
=ABS(AVERAGEIF(D2:D1000,"<0"))

Expectancy EV w R:
= (WinRate*AvgWin_R) - ((1-WinRate)*AvgLoss_R)

Profit Factor:
=SUMIF(D2:D1000,">0")/ABS(SUMIF(D2:D1000,"<0"))

Payoff Ratio:
=AvgWin_R / AvgLoss_R

SQN (Van Tharp):
= SQRT(N) * (AVERAGE(D2:D1000)/STDEV(D2:D1000))

Z-Score dla serii (czy wygrane łączą się w serie - wykrywa uzależnienie):
Potrzebujesz kolumny W streak. Wzór uproszczony w Excelu wymaga policzenia run. Lepiej w Pythonie, ale w Excelu możesz użyć:
= (2*WinCount*LossCount / N) -> oczekiwane runy i porównać z faktycznymi
MetrykaPróg akceptacji dla swing H1/D1
EV w R>0.15R po kosztach
PF>1.3 po kosztach x1.5, >1.15 po kosztach x2
SQN>1.8 (minimalnie), >2.5 dobrze
MaxDD w R<15R dla konta 100R, <20% equity
N na OOS>100

Max Drawdown i Time to Recovery - Excel nie kłamie

Większość platform liczy MaxDD źle (intraday vs close). Policz sam:

Krok 1: Equity Curve skumulowana
E2 = D2 (pierwsze R)
E3 = E2 + D3 itd = SUM(D$2:D3)

Krok 2: Running Peak
P2 = MAX(E$2:E2)

Krok 3: Drawdown
DD2 = E2 - P2 (ujemny lub 0)

Krok 4: MaxDD = MIN(DD:D)
Krok 5: Zlicz bary w DD > 5R - to czas bólu
Formuła MaxDD w Excelu:
Equity w kol E, Peak w F, DD w G
F2 = MAX(E$2:E2)
G2 = E2 - F2
MaxDD = MIN(G:G)
MaxDD_duration = COUNTIF(G:G,"&lt;-5") - ocena czy wytrzymasz psychicznie

Jeśli Twój system ma MaxDD 25R i Ty ryzykujesz 1% na transakcję = 25% drawdown konta. Czy jesteś gotowy psychicznie? To pytanie z Excela, nie z teorii.

Monte Carlo w Excelu - 30 minut które ratuje konto

Najprostsze Monte Carlo: tasujesz kolejność transakcji 500 razy i patrzysz na rozkład końcowego equity i MaxDD. Uczy że ta sama EV może mieć 10 różnych equity curves.

Excel Monte Carlo (bez VBA):

1. W zakładce MonteCarlo masz kolumnę z losowym indeksem: =RANDBETWEEN(1,N) dla 500 wierszy = jedna symulacja
2. Pobierz R dla tego indeksu: =INDEX(Trades_R!D$2:D$1000, losowy_indeks)
3. Zsumuj equity, policz MaxDD dla tej symulacji jak wyżej

Powtórz 500 razy (wiersze to symulacje, kolumny to skumulowane equity po N transakcjach)

Lub użyj Data Table: 
=TABLE(, ) z losowością - w Google Sheets użyj 500 wierszy i RANDBETWEEN

Lepiej: użyj prostego VBA lub zrób w Pythonie w lekcji 7, ale zrozumiesz logikę w Excelu.

Wynik Monte Carlo 500 symulacjiCo oznacza
5% najgorszych kończy na < -10R5% ryzyka ruiny przy aktualnym ryzyku - za duże
Median MaxDD = 12R, 95th percentile MaxDD = 22RPrzygotuj się na 22R DD, nie medianę
80% symulacji kończy na plus po kosztachSystem ma szansę, ale nie gwarancję

Optymalizacja w Excelu - jak nie oszukać samego siebie

Użyj Solver tylko do 1-2 parametrów i tylko z OOS. Przykład: optymalizujesz ATR mult dla SL (1.0-3.0).

Krok: 
IS = pierwsze 70% transakcji chronologicznie
OOS = ostatnie 30%
Optymalizuj EV w R na IS zmieniając ATR mult
Sprawdź EV na OOS - jeśli spada >40% -> overfit

Nigdy nie optymalizuj w Excelu więcej niż 2 parametrów jednocześnie. To prowadzi do surface fitting.

Kiedy plan mówi nie handluj

  1. Gdy nie masz arkusza Trades_R: Handlujesz na equity curve z brokera która miesza PLN, USD i różne wielkości pozycji. To nie jest pomiar.
  2. Gdy nie policzyłeś MaxDD w R i w czasie (dni/transakcje w drawdown): Nie wiesz na co się piszesz psychicznie.
  3. Gdy Monte Carlo pokazuje 20% szansy na -20R a Ty ryzykujesz 2% na trade: Masz 40% konta w ryzyku w najgorszym scenariuszu. Stop.
  4. Gdy PF spada poniżej 1.2 po dodaniu 50% kosztów: System jest zbyt kruchy na real.
  5. Gdy N < 50 w próbie: Excel pokaże Ci SQN i PF ale to szum. Nie podejmuj decyzji handlowych na N<100.

Błędy które kosztują najwięcej

  1. Liczenie w $ zamiast w R. Konto rośnie z 10k na 12k ale ryzykowałeś raz 500 a raz 50. $ nieporównywalne. R tak.
  2. Uśrednianie strat - “jeszcze Excel to pociągnie”. Excel pozwala przesuwać SL w backteście. Rynek nie.
  3. Ignorowanie czasu w rynku. System który trzyma pozycję średnio 30 dni vs 30 minut ma inny koszt swap, inny MaxDD czasowy. Licz Avg Bars Held.
  4. Brak tagowania reżimu. Kolumna Regime (trend / range / high vol) pozwala zobaczyć gdzie system zarabia a gdzie traci. Bez niej optymalizujesz średnią z dwóch różnych rynków.
  5. Zapisywanie tylko zwycięzców. Eksportujesz tylko zamknięte zyskowne z brokera. Straty pomijasz bo “to był błąd”. To survivorship w Twoim dzienniku.

Ćwiczenie mierzalne

Cel: Zbudować laboratorium dla dowolnego systemu i przeprowadzić audyt.

Zadanie 2h:

  1. Weź eksport CSV z lekcji 2 (min 100 transakcji) lub wygeneruj losowy plik z brokera demo.
  2. Zbuduj 4 zakładki jak wyżej. Policz w Metrics:
N, WinRate, EV, PF, SQN, MaxDD_R, MaxDD_duration, AvgTrade_R
Koszt x1 i x2 - dwa wiersze metryk
  1. Dodaj kolumnę Regime: jeśli ATR 14 > SMA ATR 100 -> HighVol else LowVol. Policz EV osobno dla HighVol i LowVol.
=IF(ATR> SMA_ATR, "HighVol","LowVol")
EV_HV = AVERAGEIF(Regime,"HighVol",R_range)
  1. Odpowiedz: Czy EV LowVol i HighVol różnią się o >50%? Jeśli tak, rozważ filtr reżimu.

  2. Zrób mini Monte Carlo 100 symulacji reshuffle (RANDBETWEEN) i zapisz 95 percentyl MaxDD.

Jeśli 95% MaxDD > 2 * Twojej tolerancji - zmniejsz ryzyko o 50%.

Sprawdź się

  1. Dlaczego musisz liczyć w R-multiple zamiast w PLN/USD?
  2. Policz MaxDD: transakcje R = [+1, +2, -1, -3, -2, +4]. Jaka jest krzywa equity i jaki MaxDD?
  3. Czym jest Profit Factor i dlaczego PF 1.1 po kosztach to za mało dla realnego handlu?
  4. Jakie 4 zakładki powinien mieć Twój arkusz laboratoryjny i co każda zawiera?
  5. Masz PF 1.5 na IS i 0.9 na OOS. Co to mówi o Twoim systemie?

Częste pytania

Excel vs Google Sheets - co wybrać? Excel ma Solver, Power Query, VBA i szybszy dla 10k wierszy. Sheets ma lepsze współdzielenie i GOOGLEFINANCE. Dla laboratorium 100-5000 transakcji oba wystarczą. Wybierz ten który naprawdę otworzysz.

Czy muszę znać VBA? Nie na start. RANDBETWEEN + INDEX wystarczą na 100-500 symulacji Monte Carlo. VBA przyspiesza do 10k symulacji, ale to już temat Pythona w lekcji 5 i 7.

Skąd wziąć MFE/MAE w Excelu? Z TradingView nie wyeksportujesz bezpośrednio. W Pythonie policzysz łatwo: max profit w trakcie trwania transakcji vs close. W Excelu przybliż: High-Low bara z MFE jeśli masz dane 1min.

Ile systemów mogę trzymać w jednym pliku? Jeden plik = jeden system = jedna logika. Nie mieszaj 3 systemów w jednym arkuszu bo pomieszasz PF i MaxDD. Twórz wersje: v01, v02_filtrowany itd.

Czy mogę użyć Excela do forward testu live? Tak, przez DDE lub API brokera i Power Query. Ale to jest ułomny bot. Używaj Excela do audytu, nie do egzekucji. Egzekucja to Python / broker API z lekcji 6.


Reklama

Najważniejsze wnioski

  • Zanim napiszesz pierwszą klasę w Pythonie, Twoim najlepszym przyjacielem jest Excel lub Google Sheets. Dlaczego? Bo w Excelu widzisz każdą transakcję, każdy R-multiple, każdą formułę. Nie chowasz się za biblioteką. Trading systemowy wymaga audytu, a audyt najłatwiej zrobić w...

Źródła i dokumenty

Materiał opieramy na dokumentach źródłowych. Wartości zmienne — opłaty, limity, wskaźniki regulacyjne — sprawdź u źródła przed podjęciem decyzji.

  • TradingView — Pine Script reference
  • Python for Finance — Yves Hilpisch

Zastrzeżenie

  • KursTradera.pl to serwis edukacyjny o charakterze informacyjnym. Nie prowadzimy działalności maklerskiej, nie przyjmujemy i nie przekazujemy zleceń, nie zarządzamy portfelem, nie oferujemy instrumentów finansowych i nie świadczymy usług doradztwa inwestycyjnego w rozumieniu ustawy o obrocie instrumentami finansowymi. Materiały opisują mechanizmy rynkowe i proces decyzyjny — nie są instrukcją kupna lub sprzedaży jakiegokolwiek instrumentu.
  • Żadna z publikowanych treści nie stanowi rekomendacji inwestycyjnej, informacji rekomendującej ani rekomendacji w rozumieniu Rozporządzenia Parlamentu Europejskiego i Rady (UE) nr 596/2014 (MAR) oraz aktów wykonawczych. Nie jest też ofertą nabycia lub zbycia instrumentów finansowych ani zaproszeniem do składania ofert. Wszelkie przykłady, wykresy, zrzuty ekranu i liczby mają charakter ilustracyjny i odnoszą się do sytuacji hipotetycznych lub historycznych.
  • Inwestowanie i trading wiążą się z ryzykiem utraty części lub całości zainwestowanego kapitału. Wyniki osiągnięte w przeszłości — w tym wyniki przedstawione w materiałach edukacyjnych, backtestach i przykładach — nie gwarantują wyników przyszłych i nie są ich wiarygodnym wskaźnikiem. Żadna opisana metoda ani strategia nie eliminuje ryzyka. Decyzje inwestycyjne podejmujesz samodzielnie, na własną odpowiedzialność i po zapoznaniu się z aktualnymi dokumentami swojego brokera.
  • Instrumenty z dźwignią (CFD, kontrakty terminowe, opcje, transakcje typu margin) mogą generować straty przewyższające wartość wpłaconych środków — możesz stracić więcej, niż zainwestowałeś, i zostać wezwanym do uzupełnienia depozytu (margin call). W Unii Europejskiej dźwignia dla klientów detalicznych handlujących CFD na głównych parach walutowych jest ograniczona decyzją ESMA (interwencja produktowa w sprawie CFD i opcji binarnych), ale ograniczenie dźwigni nie usuwa ryzyka. Odsetek rachunków detalicznych przynoszących straty różni się między brokerami i zmienia się w czasie — aktualną wartość odczytaj z ostrzeżenia ryzyka u swojego brokera i zapisz razem z datą.
  • Backtesty, symulacje i przykładowe wyniki nie są rzeczywistymi wynikami transakcyjnymi. Powstają w warunkach odtwarzanych z danych historycznych, nie uwzględniają w pełni poślizgu cenowego, płynności, spreadu, prowizji, swapu, wpływu własnych zleceń na rynek ani czynnika psychologicznego — a wszystkie te elementy pogarszają wynik w praktyce. Wyniki historyczne nie chronią przed przyszłymi stratami.

Kto to pisze i jak to sprawdzamy

Materiały pisze i weryfikuje Redakcja Kurs Tradera — zasady opisuje o serwisie: każda liczba ma źródło, a braki pokazujemy jawnie. Błąd merytoryczny zgłosisz przez kontakt — poprawki opisujemy w treści.

Postęp kursu 0 / 7
Dalej →

Postęp zapisujemy wyłącznie w tej przeglądarce (localStorage) — nie ma konta ani kopii na serwerze. Wyczyszczenie danych witryny go usunie. Zarządzaj swoimi danymi