VORM v.1.0 beta
Autor: Tomasz Wolny ~Ykee
Napisz, gdy używasz: ykee@wp.pl
Data: 19.05.2009r.
Opis funkcji.
W skład zestawu wchodzą pliki:
●
VORM_EA.ex4 – plik Expert Advisor'a,
●
VORM_InfoBox.ex4 – plik Indicator'a
VORM to półautomat, nie ma nas wyręczać w handlu, a jedynie go ułatwić. :)
VORM to połączenie mojego RiskManagera, o którym pisałem na stronie forum:
http://www.forex.nawigator.biz/dyskusje/viewtopic.php?t=6227&highlight=risk+manager
(
jego ewolucja zmierzała nieuchronnie w kierunku, którego owocem jest VORM_InfoBox) – a Expertem
„Luktum Visual Order Editor”, którego najnowszą wersję można pobrać ze strony autora:
http://luktom.biz/blog/h/ea/luktom-visual-order-editor
. Jednakże mój VORM_EA został mocno
przerobiony.
Najciekawsze funkcje VORM_EA:
1. Oprócz funkcji, które były dostępne w „LuktumVisualOrderEditor”, jak BreakEven, ClosePart,
automatycznie ustawianych zleceń SL i TP...
2. Multiplikacja poziomów ClosePart.
3. Funkcja TrailingStop z następującymi opcjami:
○
Stepping – czyli standardowy TS. SL podąża za ceną w zadanej odległości
○
Jumping – Skaczący TS. SL ustawi się za ceną w zadanej odległości, ale najpierw cena musi
oddalić się o wartość większą od JumpingLevel.
○
MovingAverage – TS podąża ze ceną po średniej kroczącej
○
ClosePart – TS zajmuje pozycję na poprzednim poziomie CP
Najciekawsze funkcje VORM_InfoBox:
1. RiskManager – czyli informacje związane z zarządzaniem ryzykiem w jednym oknie z wykresem;
2. Wyświetlanie ustawień VORM_EA
3. Blok z informacjami o aktualnych zleceniach.
4. Blok z informacjami o historycznych zleceniach, wraz z podsumowaniem Profit/Loss w pipsach.
5. Najważniejsze: z poziomu ustawień VORM_InfoBox, można również zmienić ustawienia
VORM_EA, nie trzeba wyłączać, lub wyrzucać Experta, aby ponownie wprowadzić go z nowymi
ustawieniami.
Ustawenia Experta VORM_EA
1. Instalacja
Plik VORM_EA.ex4 należy skopiować do katalogu '\experts'
(Np.: C:\Program Files\X-Trader 4 XTB PLN\experts ) - ( jak widać korzstam z usług XTB i jakoś nie
narzekam... )
2. Po ponownym uruchomieniu Terminala, z okna 'Navigator' przenieś myszką Strategię VORM_EA w
okno wykresu.
3. Należy pamiętać, aby w parametrach ogólnych do strategii zaznaczyć opcję 'Umożliw handel'.
Zakładka 'Wpisz parametry' nie interesuje nas, ponieważ parametry te będziemy modyfikować z
poziomu Indicatora.
4. Włączamy strategię w Terminalu i jeśli w prawym górnym rogu okna wykresu pojawiła nam się
nazwa VORM_EA, i obok uśmiechnięta buźka, tzn że udało nam się uruchomić Strategię (EA –
Expert Advisor, eksperta...). Przechodzimy do wskaźnika.
Ustawienia VORM_infoBox
1. Aby wstawić nasz wskaźnik (Indicator) VORM_InfoBox, do wykresu, można to zrobić podobnie jak
z Expertem, lub z głównego menu terminala wybieramy opcję:
'Wstaw' 'Wskaźniki' 'Własne' 'VORM_InfoBox'
→
→
→
2. Jeśli wyświetli się nam okno z ustawieniami to przechodzimy do pkt.3, jeśli nie, to klikamy prawym
klawiszem myszy w oknie wykresu i wybieramy opcję 'Lista wskaźników' – a następnie z listy, która
nam się ukaże wybieramy VORM_InfoBox i naciskamy klawisz 'Edytuj'. Tym razem interesuje nas
zakładka 'Wpisz parametry'. Uwaga! Tak również będziemy modyfikować parametry już podczas
pracy obu narzędzi.
3. Opis parametrów i ich zastosowanie:
RiskManager
- RiskManager i InfoBox zawierają parametry, od których zależy to co się
wyswietli w bloku 1 wskaźnika.
●
RM_Parameters – To tylko tytuł dla bloku parametrów, żeby się nie pogubić... :), a blok
pierwszy to Parametry RiskManager'a
●
MTD – Maksymalny depozyt w %, czyli ile procent z naszej kasy jesteśmy skłonni
zaryzykować... tzn. przeznaczyć na zakup lotów ;). Linia 'Max
Margin' na wskaźniku
●
MTD_Descript – opis powyzszego
●
MLR – Maksymalna dopuszczalna strata w %, jaką skłonni jesteśmy ponieść. Linia 'Max Loss'
●
MLR_Descript – opis powyższego
●
Precision – Parametr określa liczbę miejsc po przecinku dla voluminu -
1 – dla minilotów (0.1),
2 – dla mikrolotów (0.01)
●
Precision_Descript – opis powyższego
InfoBox
●
InfoBox_parameters – blok parametrów indicatora
●
VisibleBox – true/false – Pokaż/Ukryj cały blok 1 'RISK
MANAGER'.
●
VisibleMaxMargin – true/false – pokaż/ukryj wiersz 'Max Margin'.
●
VisibleMaxLoss – true/false – pokaż/ukryj wiersz 'Max Loss'.
●
VisibleMaxVolume – true/false – widoczność wiersza 'Max Volume' – to tutaj jest informacja
dla handlowca ile lotów (volumen) może nabyć przy wcześniejszych założeniach, oraz ile wart
jest 1 pips, przy danym volumenie
●
VisibleCurrSpread – true/false – pokaż/ukryj wiersz 'Curr.Spread' – czyli różnicę między ceną
Ask, a ceną Bid dla aktualnej pary walutowej.
●
VisibleMaxVolSL – true/false – pokaz/ukryj maksymalny, dopuszczalny poziom SL w pipsach
dla danego volumenu, wyliczonego dla wartości 'Max Margin' i 'Max Loss'
●
VisibleStopLossLevel – true/false – pokaż/ukryj poziom SL ustawiony dla VORM_EA, a przy
okazji jaki możemy maksymalnie otworzyć volumen, przy założeniach MaxMargin/MaxLoss. Jak
widać na przykładowym rysunku (blok. 1) wyliczony SL miałem na poziomie 26 pipsów, a ja
miałem ustawiony SL na 25 pipsach, tak czy siak maksymalnie mogłem otworzyć 0.2 lota, żeby
nie stracić więcej niż 3% :).
●
InMainWindow – true/false – pokaż w głównym oknie wykresu, lub w pierwszym widocznym
sub-oknie np. innego wskaźnika. Warto jednak pamiętać, że można z tego skorzystać, jeśli
mamy zamiar korzystać wyłącznie z jednego bloku informacyjnego, bo całość zajmuje sporo
miejsca w pionie...
●
X_InfoBox – prawy margines w pikselach.
●
Y_InfoBox – górny margines w pikselach
●
LabelFontColor – kolor dla Labelek (opisów). Domyślnie: FireBrick
●
ValueFontColor – kolor dla wartości. Domyślnie: Gold :)
●
Other_RM_helpers – inne 'pomoce' związane z RiskManagerem,
np.:
●
ShowTimeLeftToBarEnd – true/false – pokaż ukryj czas do
zamknięcia świecy dla danego okresu.
●
Space - :) przerywnik między parametrami dla RiskManagera i jego
boxu, a parametrami dla Experta VORM_EA i boxu informacyjnego z
nim związanego.
VisualOrder InfoBox
●
VO_InfoBox_Params – Nazwa kolejnego bloku parametrów, tym razem dotyczących
InfoBoxu w głównym oknie wykresu
●
VisibleVO_Box – true/false – pokaż/ukryj boksy z
informacjami z działalności VORM_EA
●
VisibleVO_Settings – true/false – pokaż/ukryj aktualne
ustawienia dla VORM_EA. Blok 'VO SETTINGS' - patrz
rysunek 2. Jak widać w boxie prezentowane są ustawienia
typu TP, SL, BreakEven, ClosePart i TrailingStop.
●
VisibleVO_OrderStatus – true/false – pokaż/ukryj info z
aktualnymi zleceniami – blok 'ACTIVE ORDER'. np. tak jak
na rys. 3. Jest otwarte jedno zlecenie na parze EURJPY,
typu SELL, z ustawionym TP na 120pipsów i SL na
25pipsów. W tej chwili cena jest na -18 pipsów, dlatego
typ zlecenia, jak i łączna ilość punktów zdobytych jest w
kolorze StopLossColor, inaczej byłoby w kolorze
TakeProfitColor – więcej o tych parametrach w części o
parametrach VORM_EA.
Trades Statistic
●
TradesStatistic_Params – nazwa bloku parametrów
dotyczących Statystyki trade'ów historycznych
●
Visible_TradesStatistic - true/false – pokaż/ukryj blok
statystyki
●
Show_nLastOrdersDescript – tu wpisujemy liczbę
ostatnich trade'ów, które mają być wyświetlone w bloku
'LAST n ORDERS'. Na rys.4 widać 3 ostatnie. Widać date, godzinę, symbol pary walutowej, a
poniżej liczba pipsów na plus, lub na minus, oraz typ zlecenia.
●
HistoryOrdersPeriod – Parametr dotyczy ostatniego bloku informacyjnego w naszym
InfoBoxie – 'PROFIT/LOSS' – Jest to podsumowanie wszystkich trade'ów z wybranego okresu,
oraz z całej historii. Wybrany okres wpisujemy w tym parametrze, wybierając jedną z opcji:
0 - All history,
- cała historia
1 - Today,
- dzisiejszy dzień
2 - Last 3 days,
- Ostatnie 3 dni
3 - Last week,
- Aktualny tydzień
4 - Last month,
- Aktualny miesiąc
5 - Last 3 months,
- Ostatnie 3 miesiące
6 - Last 6 months,
- Ostatnie 6 miesiecy
7 – other
- inny okres – czyli taki jaki podamy w poniższych parametrach.
Ważne! Należy wcześniej w terminalu wybrać zakładkę 'Historia rachunku' i prawym klawiszem
wybrać opcję 'Cała Historia'. Inaczej pomimo wybranych opcji we wskaźniku i tak będziemy
ograniczeni tylko do okresu zaznaczonego w terminalu.
●
HOP_FirstDate – Wpisujemy datę początku okresu – zachowując przykładowy format daty.
●
HOP_LastDate – Wpisujemy datę końca interesującego nas okresu.
VisualOrderEA
●
VO_Parameters – Nazwa bloku parametrów związanych z działaniem Experta
●
StopLossColor – Określamy kolor dla linii reprezentującej poziom Stop Loss
●
StopLossStyle – Określamy styl linii. Do wyboru mamy następujące opcje:
0 – STYLE_SOLID
– linia ciągła
1 – STYLE_DASHED
- linia przerywana: kreska – kreska
2 – STYLE_DOT
- linia kropkowana: kropka – kropka
3 – STYLE_DASHDOT
- linia przerywana: kreska – kropka
4 – STYLE_DASHDOTDOT
- linia: kreska - kropka - kropka
●
StopLossLevel – poziom SL – standardowo ustawiony jest na 25 pipsów. Jeśli wpiszemy 0, lub
mniej niż wynosi spread dla danej pary walutowej, to zostanie ustawiony SL wyliczony z
RiskManagera.
●
TakeProfitColor – Określamy kolor linii reprezentującej poziom Take Profit
●
TakeProfitStyle – Styl linii TP. Dostępne opcje są takie jak przy SL
●
TakeProfitLevel – Określamy poziom TP. Standardowo ustawiony jest na 120 pipsów. Jeśli
wpiszemy 0, to zostanie ustawiony na 3*SL – trzykrotność poziomu SL.
●
PendingSellColor – Kolor dla zleceń oczekujących typu SELL: SELL STOP, SELL LIMIT
●
PendingBuyColor – Kolor dla zleceń oczekujących typu BUY: BUY STOP, BUY LIMIT
●
OrderLimitStyle – Styl linii dla zleceń oczekujących typu LIMIT: SELL LIMIT, BUY LIMIT
●
OrderStopStyle – Styl linii dla zleceń oczekujących typu STOP: SELL STOP, BUY STOP
●
BE_Function – Nazwa dla bloku parametrów dotyczących funkcji BreakEven.
BreakEven to funkcja mająca za zadanie obronę zlecenia, gdy ustawisz poziom BE, a cena go
przebije, twoje zlecenie zostanie zabezpieczone - stop loss zostanie przesunięty tak, abyś w
razie powrotu nie stracił.
●
BreakEvenEnable – true/false – włącz/wyłącz funkcję BreakEven
●
BreakEvenColor – kolor dla linii reprezentującej poziom BE
●
BreakEvenStyle – styl linii dla BE
●
BreakEvenLevel – domyslny poziom w pipsach. Standardowo ustawiony jest na 35 pipsów
●
CP_Function – nazwa dla bloku parametrów dotyczących funkcji ClosePart. Funckja ta ma za
zadanie zamknąć część zlecenia po przekroczeniu przez cenę określonego poziomu. W
VORM_EA możemy określić dodatkowo ile tych poziomów ma być. Każdy będzie odsunięty od
poprzedniego o określoną liczbę pipsów.
●
ClosePartEnable – true/false – włącz/wyłącz funkcję CP
●
ClosePartColor – kolor dla linii CP
●
ClosePartStyle – styl linii (dostępne opcje dokładnie takie same jak przy SL, TP czy BE)
●
ClosePartLevel – poziom w pipsach dla ceny, po przekroczeniu którego część zlecenia zostanie
zamknięta. Standardowo ustawiony jest na 35 pipsow
●
ClosePartLots – Wielkość voluminu, czyli jaka duża część zlecenia ma zastać zamknięta.
Standardowo ustawiony jest na 0.1 lota i jest to minimalna wartość.
●
CP_MultiplyLevels – czyli ile tych poziomów ma być. Standardowo ustawione jest na 3, ale
jeśli np. ustawimy ClosePartLevel na powiedzmy 55 pipsów, a TakeProfit na 120 pipsów, to
trzeci poziom CP wyjdzie na 165 pipsach. Taki poziom nie będzie rysowany. Czyli że będzie
widać tylko dwa poziomy.
●
TS_Function – Nazwa dla bloku parametrów związanych z funkcją TrailinStop, czyli ruchomego
StopLoss
●
TrailingStopEnable – true/false – włącz/wyłącz funkcję TS
●
TrailingStopType – wybieramy typ TS, a do wyboru mamy:
0 - stepping (standard), kroczący, czyli zwykły TrailingStop. Po każdej zmianie
ceny w pożądanym kierunku, poziom SL jest natychmiast przesuwany zachowując
określony w parametrze TS_Distance dystans
1 - jumping, skaczący TrailingStop – poziom SL jest przesuwany na określony dystans,
dopiero po oddaleniu się ceny o określony w parametrze TS_JumpingLevels
poziom. Przykladowo mamy ustawiony TS_Distance na 20 p i TS_JumpingLevel na
25p – to SL zostanie przesunięty za ceną zachowując odległość 20 p dopiero wtedy
gdy cena oddali się o 25 pipsów od poziomu SL.
2 - MovingAverage, - TrailingStop podążający za ceną w odległości jaką określa
średnia krocząca. Jedna z ciekawszych funkcji moim zdaniem – czasami można
złapać niezły ciąg, gdy sami zamknęlibyśmy zlecenie dużo wcześniej. Wszystko
zależy od ustawnia.
3 - CloseParts – TS współpracujący z funkcją ClosePart (Funkcja CP musi być
uruchomiona). Linia StopLoss jest przesuwana na poprzedni poziom CP, gdy cena
przebija kolejny poziom CP.
●
TS_Distance – w pipsach, czyli w jakiej odległości od ceny ma podążać StopLoss (zachowując
oczywiście pożądany przez nas kierunek :). Parametr dla TrailingStopType: 0 i 1.
●
TS_JumpingLevels – odległość jaką musi pokonać cena od SL, żeby SL został przesunięty.
Parametr dla TrailingStopType: 1
●
TS_MAPeriod – wpisujemy okres dla średniej kroczącej. Muszę tu zaznaczyć, że MA jest
wyliczana od ceny otwarcia, dzięki temu SL nie skacze eliminując wahania ceny.
●
TS_MAMethod – określamy metodę w jakiej liczona jest średnia krocząca. Dostępne opcje:
0 – MODE_SMA - Simple Moving Average
1 – MODE_EMA - Exponential Moving Average
2 – MODE_SMMA - Smoothed Moving Average
3 – MODE_LWMA - Linear Weighted Moving Average
●
TS_ActivatedLevel – Tutaj możemy określić poziom dla ceny, po przekroczeniu którego
aktywuje się funkcja TS i SL będzie przesuwany. Jeśli wpiszemy 0, to TS będzie działać po
przekroczeniu ceny otwarcia zlecenia.
Dodatkowo jest jeszcze parametr TimerEnabled, ustawiony na true i lepiej tego nie zmieniać. Dzięki
temu przesuwanie linii na wykresie cenowym jest możliwe w czasie rzeczywistym, a nie tylko w chwili
odebrania tick'a (mówiąc prosto – takiego pojedynczego tyknięcia ceny ;).
Ważne! Pomimo tego, że klikając na linię reprezentująca dane zlecenie (SL, TP, BE, CP) i przesuwając
mamy wpływ na owe zlecenia, to w rzeczywistości są one realizowane na serwerze brokera dopiero z
nadchodzącym tick'iem. Do tego dochodzi czas opóźnienia na łączach itp. Trzeba o tym pamiętać.
A na obrazku widać VORM'a w akcji, choć akurat niefortunnie zlecenie było SELL, a cena poszła w górę,
widać linię czerwoną, przerywaną zlecenia SL. (Zielona linia: kreska – kropa – kreska, to akurat
standardowa linia ceny otwarcia...). Obok zaś działający VORM_InfoBox...
Pozdrawiam i życzę miłego trade'owania. :)
Szczególne pozdrowienia dla Luktum, za Jego LuktumVisualOrderEditor, na którym VORM był wzorowany.
Stary piękna robota! :)
Pzdr.:
Tomasz Wolny ~Ykee
p.s.: Ponieważ jest to wersja beta, wszelkie uwagi nt błędów będą mile widziane... potem już nie. ;)