Składnia Systemu

 

Reguły transakcji są zapisywane przy pomocy tej samej składni co wskaźniki. Reguła powinna dawać w wyniku wartość "Prawda" (True) lub "Fałsz" (False). Jeżeli otrzymaną regułą transakcji jest prawda to system dokonuje odpowiedniej transakcji (np. otwiera "longa" lub "szorta").
Jeżeli otrzymaną regułą transakcji jest fałsz to system nie podejmuje żadnego działania.

Przykładowa reguła inwestycyjna :
Enter Long :
cross(CLOSE, mov(CLOSE,12,Simple))

Jeżeli formuła ta zostanie wprowadzona do systemu jako reguła otwarcia pozycji długiej to system otworzy ją w chwili gdy cena zamknięcia przetnie od dołu linię 12-okresowej średniej z cen zamknięcia.
Podobnie jest w kolejnym przykładzie : pozycja długa jest otwierana w chwili gdy MACD będzie> 0 ("macd()" jest wbudowaną funkcją).

Enter Long:
macd()> 0

W skład reguł mogą wchodzić wszystkie wskaźniki stworzone przez użytkownika. Służy do tego funkcja fml() - formuła poniżej :

Enter Short:
fml("My Formula")> 0

Możesz łączyć kilka funkcji w ramach jednej reguły, służą do tego operatory logiczne "AND" i "OR".

Enter Long:
macd()> 0 AND CLOSE> mov(CLOSE,12,S)

Reguła powyżej wymaga spełnienia dwóch warunków jednocześnie - MACD> zera i cena zamknięcia> 12-okresowej średniej z cen zamknięcia.
Poniższa reguła wykorzystuje operator "OR" by otworzyć pozycję w chwili gdy MACD spadnie
Close Long:
macd() <0 OR CLOSE
Operatory "AND" i "OR" mogą występować w ramach reguły wielokrotnie.
Najlepszą drogą do kontrolowania poprawności wykonywania działań jest odpowiednie stosowanie nawiasów - tak jak poniżej.

Enter Long:
(macd()> 0 AND C> 100) OR H-L>5

Transakcja powyższa zostanie wygenerowana w chwili gdy zostaną spełnione następujące warunki:
  • MACD jest powyżej zera i cena zamknięcia jest powyżej 100 (warunki muszą byś spełnione jednocześnie).
  • Różnica między ceną najwyższą i najniższą jest większa od pięciu.
W trakcie edycji możesz posługiwać się przyciskiem "Functions" by wybrać z dialogu "Pasting Functions Into Formulas" odpowiednią funkcję i wstawić ją. Podwójne klikniecie wstawia wybraną funkcję do pola edycji.

Odsetki uzyskane z kapitału, w czasie gdy system był "poza rynkiem".
Stopa procentowa jest definiowana w polu "System Testing Options - Annual Interest Rate %".

Pola reguł możesz pozostawić puste - jednaj taka nieokreślona reguła nie wygeneruje odpowiedniej transakcji.
Regułą transakcji może odwoływać się jedynie do danych waloru (O,H,L,C,V,OI) i funkcji wskaźników. Nie można wykorzystać odwołania do tego samego systemu transakcyjnego (np. do liczby dni od poprzedniej transakcji wygenerowanej przez system).
Jednak niektóre linie STOP mogą wykorzystać tego typu odwołanie.

Zmienne mogą być używane w granicach reguł testera systemu. Jednak formuły wskaźników z kilkoma przebiegami ( tj., czyli takie, w których rezultacie powstaje wskaźnik zawierający więcej niż jedną linię) są dopuszczalne, ale tester systemu użyje tylko ostatniej linii formuły.

Więcej:

Użycie funkcji Alert()

Funkcja alert() jest stosowana w połączeniu z innymi funkcjami w celu przedłużenia ważności danego sygnału przez określony czas. Odpowiedni sygnał jest przedłużany przez ten czas nawet wtedy gdy zostanie wygenerowany kolejny sygnał.

Poniższy przykład przedstawia zastosowanie tej funkcji:

Enter Long:
RSI(14) <30 AND alert(VOLUME> 500,3)

System otworzył by tak określoną pozycję długą gdy RSI było by mniejsze od 30 a wolumen większy od 500 w dowolnym momencie w czasie trzech okresów poprzedzających spadek wartości RSI. Warunek "Volume> 500" będzie spełniony nawet jeżeli w trakcie tych trzech okresów wolumen spadnie poniżej 500.
Jeżeli usuniesz funkcję alert() z powyższej reguły oba warunki (RSI(14) <30 i VOLUME> 500) musiały by być spełnione jednocześnie . Użycie funkcji alert() pozwala na przedłużenie raz spełnionego warunku na kolejne okresy.


Wróć