I tak sobie wykombinowałem, że może warto poeksperymentować. Wybrałem sobie kilka moim zdaniem "dobrze rokujących" wskaźników i na ich podstawie skleiłem prosty EA. Coś tam zaczęło nawet z tego wychodzić, ale pracochłonność straszna. Przyjmijmy: mamy EA, który optymalizujemy dla T=6 miesięcy od stycznia do czerwca. Wyniki optymalizacji testujemy od lipca powiedzmy do grudnia i chcemy wiedzieć ile zarobił/stracił w przedziałach 4-tygodniowych. Dalej optymalizujemy system od połowy stycznia do połowy lipca i testujemy wyniki od połowy lipca do połowy stycznia itd. Dosłownie można się zajechać.
Wyciągnąłem gdzieś stare Delphi i napisałem programik, który na wejściu dostaje taki plik:
Takie coś optymalizuje nasz system w okresach 140-dniowych z krokiem co 7 dni od lutego 2007 do maja 2012. Następnie wybiera najlepszy wynik (Choice1=Best) i dla jego parametrów bada wynik systemu dla 14, 28, 42..., 140 dni. MetaTrader odpala się automatycznie przez 2 dni i 3 noce. Normalnie coś takiego zajęłoby pewnie z rok.Strategy=lukaszbiegtf
Strategy_cofig_file=lukaszbiegtf.set
Symbol=EURUSD
TimeFrame=H1
TestModel=2
Start_date=2007-02-26
End_date=2012-05-19
Step=7
Optimization_period=140
Test_Short=14
Test_Long=140
Test_Step=14
Choice1=Best
ReportFile=report.csv
W rezultacie dostajemy plik csv, który sobie wrzucamy do Excela i możemy z tego robić wykresy, nakładać dodatkowe filtry.
Struktura rekordu w csv jest taka:
data początku optymalizacji; data końca optymalizacji; liczba dni testu; wynik; liczba dni testu; wynik; ....;
parametry zoptymalizowane; wynik systemy dla okresu optymalizacji; wskaźnik zysku dla okresu optymalizacji; przewidywany zysk; największa strata; % największa strata.
Przykładowy csv w załączniku.
Pytanie: co o tym sądzicie, jakie macie jeszcze pomysły na linijkę "Choice1=Best"?
Można tu np. dodawać warunki "Choice2=MinProfit=200;MaxProfit=400;MinExpectedProfit=30" itp. To oznaczałoby, że jako wynik optymalizacji wybrany zostanie wynik dający minimalny zysk=200 i nie przekraczający 400 oraz z minimalnym "expected profit"=30.
Póki co program ma tylko opcję "Choice1=Best", ale zamierzam to rozbudować. Tu czekam na ew. propozycje.
Jeżeli ktoś byłby zainteresowany, program mogę udostępnić (kwestia kilku dni). W zamian oczekiwałbym tylko podzielenia się swoimi systemami, które dopracowane zostałyby przy pomocy mojego programu. Optymalne byłoby, gdyby udało nam się stworzyć kilkanaście systemów działających równolegle ze sobą, zupełnie niezależnie. Taka kompilacja w długim terminie profitowych nawet w umiarkowanym stopniu systemów, ale przy tym takich, które nie dają dużych drawdownów dałaby to, o co tu wszystkim chodzi.