qvpfkxmw
Advertisement
PARTNER SERWISU
lnqmtlmt
2 3 4 5 6

kącik AmiBroker

chilltrade
0
Dołączył: 2013-01-15
Wpisów: -39
Wysłane: 14 lutego 2013 10:09:25
Cytat:
Dobre wyniki wychodziły przy OPEN bez przesunięcia czasowego.
Złe wyniki przy OPEN z przesunięciem o 1 dzień.


Czyli cofałeś się w czasie :)
Przy testach musisz ustawić zakup jako cena close, lub open na następny dzień :)


cyzo
3
Grupa: SubskrybentP1
Dołączył: 2009-06-17
Wpisów: 753
Wysłane: 17 lutego 2013 00:32:46
OK - oto kolejne moje wyzwanie :)
Znalazłem n/w kod do wskaźnika Chande's Trendscore ( zakładam, że jest poprawny).
Z uwagi na fakt, że nie jest to wskaźnik std. "wbudowany" do Amika - nie mogę po prostu wklepać w exploracji warunku: CTS>0 tylko, (jak sądzę) muszę najpierw odnieść się do jakiegoś kodu.

Chciałbym, aby warunkiem był poziom wskaźnika > np.3.

Mam najpierw wstawić cały kod wskaźnika w edytorze a po tym wklepać ( w przypadku exploracji)Filter=CTMS>3 czy trzeba w jakiś inny sposób załadować własny wskaźnik do bibliotek?

SmoothingPeriod = 5;

CTS=IIf(C>=Ref(C,-11),1,-1)+IIf(C>=Ref(C,-12),1,-1)+IIf(C>=Ref(C,-13),1,-1)+IIf(C>=Ref(C,-14),
1,-1)+IIf(C>=Ref(C,-15),1,-1)+IIf(C>=Ref(C,-16),1,-1)+IIf(C>=Ref(C,-17),1,-1)+IIf(C>=Ref(C,-18),
1,-1)+IIf(C>=Ref(C,-19),1,-1)+IIf(C>=Ref(C,-20),1,-1);

CTSM = WMA(CTS,SmoothingPeriod);
Histo = IIf(CTSM==10,5,IIf(CTS==-10,-5,Null));


Plot(CTSM, "CTSM", colorBlack, styleLine );
Plot(Histo, "", colorGreen, styleHistogram );

Plot(12,"",colorRed,styleLine);
Plot(-12,"",colorRed,styleLine);

[EDIT]: Nadmienię, że wczoraj przy exploracji najpierw wstawiłem kod, później wpisałem filtrowanie dla CTSM>9 i wyświetliło mi kilka piapierów dla którym wartość CTS w ostatnim dniu było <9 d'oh!

No i pytanie: CTS>0 czy CTSM>0 ?
Edytowany: 8 sierpnia 2019 15:17

chilltrade
0
Dołączył: 2013-01-15
Wpisów: -39
Wysłane: 17 lutego 2013 13:36:58
1. tak

Cytat:
Mam najpierw wstawić cały kod wskaźnika w edytorze a po tym wklepać ( w przypadku exploracji)Filter=CTMS>3



2.
Cytat:
wyświetliło mi kilka piapierów dla którym wartość CTS w ostatnim dniu było <9


nie wiem ;]


cyzo
3
Grupa: SubskrybentP1
Dołączył: 2009-06-17
Wpisów: 753
Wysłane: 20 marca 2013 22:24:26
Cześć,

Będzie ktoś tak miły i zweryfikuje moje poniższe dzieło? :)
Założenia:

1. +DI w tygodniowym interwale musi być > -DI
2. ADX w tygodniowym interwale jest rosnące
3. Warunek kupna w interwale dziennym: przecięcie ceny z EMA
4. Warunek sprzedaży : stop kroczący na podstawie ATR(14)*2.5

Cena kupna OPEN następnego dnia
Cena sprzedaży OPEN następnego dnia.

Coś mi się wydaje, że namieszałem przy napisaniu Stopa. Ostatnio Chill podał mi prostą formułę, al e nie potrafię jej wyrysować :/

Mój kod:
/* przełącza interwał na tygodniowy */
TimeFrameSet( inWeekly );

war1=PDI(14)>MDI(14); //linia +DI jest > niz - DI
war2=ADX(14)>Ref(ADX(14),-1);// linia ADX jest rosnąca


TimeFrameRestore();

/* rozciągnięcie obliczonego war1 i war2 do interwału dziennego, aby można było go użyć z sygnałami z danych dziennych */
war1 = TimeFrameExpand( war1, inWeekly );
war2 = TimeFrameExpand( war2, inWeekly );

syg=EMA(C,14);
warK=Cross(C,syg);


Buy=warK AND war1 AND war2;

SL=2.5*ATR(14);
LINIA_STOP=Ref(HHV((H-SL),Buy),-1);
Sell=Cross(LINIA_STOP,C);


Buy = ExRem( Buy, Sell );
Sell = ExRem( Sell, Buy );


Plot(LINIA_STOP,"LINIA_STOP",colorRed,styleLine);

Z góry dziękuję :)




cyzo
3
Grupa: SubskrybentP1
Dołączył: 2009-06-17
Wpisów: 753
Wysłane: 24 marca 2013 08:42:58
No więc popełniłem system, którego wyniki na obecną chwilę mnie zadowalają.
Optymalizacji poddałem 2 parametry. Oczywiście wyniki są różne w zależności od spółki, ale na każdej wyniki są zadowalające. Czy jest jakiś sposób, abym przeciągnął test przez wszystkie spółki z Watchlisty tak, aby wypluło najlepsze - uśrednione wyniki? Np. Najbardziej optymalne ustawienie dające najniższy drawdawn?

Uruchomiłem optymalizację dla wybranej Watchlisty używając filtra (w ustawieniach Backtester'a) ale w zasadzie nie wiem co Amik policzył :/
Czy może pozostaje mi ręczna optymalizacja każdej ze spółek i ręczne uśrednienie wyników w Excellu?

Spartakus007
0
Dołączył: 2011-09-16
Wpisów: 21
Wysłane: 24 marca 2013 11:19:58
Mam pytanie do znawców Amibrokera
Jakoś udaje mi się napisać swoje pomysły na system, warunki Buy i Sell, ale zawsze mam problem z jednym zadaniem:
załóżmy, że po skanowaniu rynku kilka spółek spełnia zadany warunek Buy (np. sygnał MACD). Chcę aby system kupił 2 spółki o najwyższym np. ADX.
No właśnie - jak posortować rynek wg jakiegoś wskaźnika i następnie wybrać np. dwie najlepsze spółki?
Jako to napisać w języku Amibrokera?

rottor
0
Dołączył: 2011-05-17
Wpisów: 141
Wysłane: 24 marca 2013 13:03:38
zobacz PositionScore i MaxOpenLong

chilltrade
0
Dołączył: 2013-01-15
Wpisów: -39
Wysłane: 24 marca 2013 19:33:14
positionscore=adx(); //kupi zaczynając od tych z najwyższym adx
positionsize=-50;// przeznaczy na spółki 50% kasy

Spartakus007
0
Dołączył: 2011-09-16
Wpisów: 21
Wysłane: 24 marca 2013 19:49:41
Dziękuję bardzo za pomoc. O to właśnie chodziło. thumbright

pgrob
0
Dołączył: 2013-04-19
Wpisów: 2
Wysłane: 19 kwietnia 2013 20:27:40
Pytanie od początkującego użytkownika
Co zrobić aby w backtest dla kontraktu profit był podany w punktach i testowanie cały czas odbywało sie dla jednej pozycji, bez jej zwiększania w miarę wzrostu profit?


cyzo
3
Grupa: SubskrybentP1
Dołączył: 2009-06-17
Wpisów: 753
Wysłane: 25 kwietnia 2013 07:08:47
Cześć,

Tak dla pewności - jeżeli chcę dowolnie przeskanować spółkę w interwale tygodniowym, wystarczy, że przełączę widok wykresu z układu dziennego na tygodniowy i odpalę skaner lub explorera? Nie muszę nic więcej ustawiać ani klepać w kodzie?

chilltrade
0
Dołączył: 2013-01-15
Wpisów: -39
Wysłane: 25 kwietnia 2013 10:21:58
pgrob napisał(a):
Pytanie od początkującego użytkownika
Co zrobić aby w backtest dla kontraktu profit był podany w punktach i testowanie cały czas odbywało sie dla jednej pozycji, bez jej zwiększania w miarę wzrostu profit?


Jeśli ustawisz sobie wielkość pozycji na 1 kontrakt to wynik będzie w PLN, dzielisz go przez 10 i masz w punktach.

Żeby ustawić stałą wielkość pozycji spróbuj coś takiego:

PositionSize=MarginDeposit=1;






cyzo napisał(a):
Cześć,

Tak dla pewności - jeżeli chcę dowolnie przeskanować spółkę w interwale tygodniowym, wystarczy, że przełączę widok wykresu z układu dziennego na tygodniowy i odpalę skaner lub explorera? Nie muszę nic więcej ustawiać ani klepać w kodzie?



Samo przełączenie interwału tak że Twoje oko widzi świeczkę dzienną/tygodniową nic nie da dla exploracji. Kliknij w zakładce "analisys" ikonkę z kluczem i śrubokrętem --> Periodicity: Daily/Weekly

Jeśli tak zrobisz to w kodzie nie musisz grzebać ;]
Edytowany: 25 kwietnia 2013 10:26

cyzo
3
Grupa: SubskrybentP1
Dołączył: 2009-06-17
Wpisów: 753
Wysłane: 25 kwietnia 2013 19:36:13
A widzisz Pan - to cenna podpowiedź - dzięki.

Idąc dalej tym tropem chcę zmontować prosty skaner, który (na interwale dziennym) generuje syg. kupna po przecięciu C i EMA(12), ale tylko dla spółek, w których TYGODNIOWE +DMI > -DMI.

Czy ta formuła będzie poprawna?:

/* przełącza interwał na tygodniowy */
TimeFrameSet( inWeekly );
war1=PDI(14)>MDI(14);

/* rozciągnięcie obliczonego war1 do interwału dziennego, aby można było go użyć z sygnałami z danych dziennych */
TimeFrameRestore();
war1 = TimeFrameExpand( war1, inWeekly );

warkup=Cross(Close,EMA(C,12));

Buy=warkup AND war1;
Sell=0;

chilltrade
0
Dołączył: 2013-01-15
Wpisów: -39
Wysłane: 25 kwietnia 2013 20:44:28
przeskanuj i będziesz widział czy działa poprawnie :)

cyzo
3
Grupa: SubskrybentP1
Dołączył: 2009-06-17
Wpisów: 753
Wysłane: 26 kwietnia 2013 07:37:53
No właśnie nie do końca działa poprawnie.
Zerknij proszę na Grajewo z 25/04/2013.
Wystąpił warunek kupna na wykresie dziennym(cross c, EMA12) ale tygodniowe +DMI jest ewidentnie < -DMI.

I nie wiem teraz, czy jest to jakiś przypadkowy błąd, czy po prostu formuła jest "walnięta".
Poza tym (po błędzie z Grajewem) nie mam absolutnie żadnej pewności, czy wyświetlone zostały wszystkie papiery spełniające warunek. Można by sprawdzić to "na piechotę", ale przecież nie o to chodzi:/

pgrob
0
Dołączył: 2013-04-19
Wpisów: 2
Wysłane: 27 kwietnia 2013 22:22:53
chilltrade napisał(a):
[quote=pgrob]Pytanie od początkującego użytkownika
Co zrobić aby w backtest dla kontraktu profit był podany w punktach i testowanie cały czas odbywało sie dla jednej pozycji, bez jej zwiększania w miarę wzrostu profit?


Jeśli ustawisz sobie wielkość pozycji na 1 kontrakt to wynik będzie w PLN, dzielisz go przez 10 i masz w punktach.

Żeby ustawić stałą wielkość pozycji spróbuj coś takiego:

PositionSize=MarginDeposit=1;






Dziękuję bardzo za pomoc.

Inną możliwością testowania tylko jedną pozycją jest zastosowanie formuły:
SetPositionSize( 1, spsShares )

toopaz
0
Dołączył: 2009-05-20
Wpisów: 19
Wysłane: 24 lipca 2013 22:22:15
jeszcze co do 1 pozycji, gram 1 kontraktem bez wychodzenia z rynku i chciałbym żeby w testach pozycje były w ten sposób odwracane, jak to zapisać w AFL? short np. 2250 i odwracam na L po 2250
znalazłem coś takiego ale nie działa
Short=Sell;
Cover=Buy;
Long=Flip(Buy,Sell OR Cover);
Shrt=Flip(Sell,Buy OR Cover);

chilltrade
0
Dołączył: 2013-01-15
Wpisów: -39
Wysłane: 24 lipca 2013 23:12:33
sygnalKupna=xxx;
sygnalSprz=yyy;

buy=sygnalKupna;
sell=sygnalSprz;
short=sygnalSprz;
cover=sygnalKupna;

toopaz
0
Dołączył: 2009-05-20
Wpisów: 19
Wysłane: 24 lipca 2013 23:41:36
mam zapisane coś takiego, to nie jest to samo?

Buy = exitshort;
Sell = exitlong;
Short = Sell;
Cover = Buy;

cyzo
3
Grupa: SubskrybentP1
Dołączył: 2009-06-17
Wpisów: 753
Wysłane: 5 września 2013 10:35:40
Cześć,

Zlecę zakodowanie prostego systemu w Amibrokerze.
Zainteresowanych proszę o kontakt na priv.

Pzdr.,

Użytkownicy przeglądający ten wątek Gość


2 3 4 5 6

Na silniku Yet Another Forum.net wer. 1.9.1.8 (NET v2.0) - 2008-03-29
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.
Czas generowania strony: 0,530 sek.

rlliuepx
oxmfclnx
yhcgwtbo
Portfel StockWatch
Data startu Różnica Wartość
Portfel 4 fazy rynku
01-01-2017 +75 454,67 zł +377,27% 95 454,67 zł
Portfel Dywidendowy
03-04-2020 +60 637,62 zł 254,44% 125 556,00 zł
Portfel ETF
01-12-2023 +4 212,35 zł 20,98% 24 333,09 zł
olnzcarx
fejyvuox
cookie-monstah

Serwis wykorzystuje ciasteczka w celu ułatwienia korzystania i realizacji niektórych funkcjonalności takich jak automatyczne logowanie powracającego użytkownika czy odbieranie statystycznych o oglądalności. Użytkownik może wyłączyć w swojej przeglądarce internetowej opcję przyjmowania ciasteczek, lub dostosować ich ustawienia.

Dostosuj   Ukryj komunikat