Jump to content
Co nového? Mé kurzy
Komunita:
Diskuze Sledované příspěvky Žebříčky

Doporučené příspěvky

Odesláno

Když se podívám na detailní výpisy obchodů, tak uzavření je při 0,2% až 0,3%. Je to jako, kdyby byla chyba v jedné desetinné čárce. Ale nevím, co by mělo být přesně nastavené u titulů v nastavení ?!?
No, zítra je taky den ... zatím díky ;-)
R.

Odesláno

V tom případě máte problém s logikou, zdá se mi, že používáte Entryprice, přestrože pozice není definována a to bude dělat problém, zkuste něco takového (přidal jsem nákupní příkaz):

Inputs: Pocet_akcii(100),PT_procent(2),SL_procent(2);
Variables: SL(0),PT(0);

If H > H[1] and MarketPosition = 0 then begin
buy Pocet_akcii shares next bar market;
SL = SL_procent/100 * Pocet_akcii * C;
PT = PT_procent/100 * Pocet_akcii * C;
end;

SetStopLoss(SL);
SetProfitTarget(PT);

Tj. hodnotu SL a PT si určete přímo v baru, kde jdete na trh od daného close. Pokud jste mimo pozici, můžete si hodnoty vynulovat, ale je to zbytečné. Doporučuji si kontrolovat hodnoty proměnných pomocí Commentary, dobrá pomůcka, pokud nemůžete přijít na chybu, stačí dát na konec kódu toto:


if AtCommentaryBar then
Commentary(
"SL = ", SL, NewLine,
"PT = ", PT, NewLine,
);

Poté si kliknete v toolbaru na ikonku commentary a kliknete myší na bar, kde chcete zjistit hodnoty proměnných.

Odesláno

Honza K.:
Díky moc, už tomu rozumím. Že tomu zatím moc nerozumím a mám se ještě co učit ;-).
Takhle mi ten kód taky chodí.
Kód pro komentář a zobrazení proměnných je určitě šikovný. Díky.

Ještě se zeptám na pár detailů:
Moje myšlenka byla kód rozdělovat na samostatný vstupní signál a samostatný výstupní signál. Ale teď mi příjde, že je lepší psát vždy rovnou strategii do jednoho kódu pro vstup+výstup. Jak to řešíte vy??

Když rozeberu tenhle kód a budu chtít mít přesto výstupní signál v samostatném kódu, tak mě napadá takovéto řešení:
Vidíte na něm nějaká úskalí??
Inputs: Pocet_akcii(100),PT_procent(2),SL_procent(2);
Variables: SL(0),PT(0);

SL = SL_procent/100 * Pocet_akcii * O[BarsSinceEntry];
PT = PT_procent/100 * Pocet_akcii * O[BarsSinceEntry];

SetStopLoss(SL);
SetProfitTarget(PT);

Ještě jednou díky za řešení a ochotu ;-)
Renda

Odesláno

O[BarsSinceEntry] bych vám nedoporučoval používat, dostáváte se do podobného problému jako při Entryprice, musíte si ověřit, že jste v pozici, jinak se vám bude stop a PT měnit podle aktuálního baru.
Osobně preferuji mít kód pohromadě, tj. vstupy i výstupy jsou řešeny v jednom kódu, ušetříte si tak hodně "omáčky" kolem vstupů a výstupů. Nicméně v rámci kódu buduju "logické celky" tak, abych části mohl lehce najít, případně použít jinde.

Odesláno

Jj, nejjednodušší mi teď příjde při pevných PT a SL definovat si je rovnou při vstupu, jak jste to psal prvně.
A psát kód pohromadě.
Díky za tipy. Určitě se tu ještě podělím se svými výtvory, nebo "neřešitelnostmi". ;-)
R.

  • 3 týdny později...
Odesláno

Zdravím,
opět chci požádat o radu.
Mám kód napsaný pro timeframe 3min. V kódu potřebuji pracovat i s klouz. průměrem 20day. Jak ho tam dostat?

Tento zápis nefunguje, nelíbí se mu tam fce=CloseD:
Variables: MA20(0);
MA20 = XAverage(CloseD, 20);

Napadá mě vložit do grafu 2. datovou řadu, kde nastavím timeframe na 1day, a pak bych napsal toto:
MA20 = XAverage(Close Data(2), 20);

Dotaz zní, jestli lze vložit MA20 (day) jiným zápisem bez použití vložení 2.datové řady ???
Díky moc za info. Soft MCH8.
Renda

Odesláno

Díky moc za rychlé odpovědi.
Já to právě chtěl pokud možno bez použití DATA2. Pokud to vůbec lze. Mám to v grafu, kde už mám DATA3 a musel bych přidat DATA4 - není to moc přehledné ani praktické.
Když pracuju na stejném TF a vyhodnocuju 3 denní High, Low zpět bez použití DATA2, tak se to dalo obejít takto:
Variables: High3D(0);
High3D = MaxList(HighD(1),HighD(2),HighD(3));

napadá mě toto, když to bude jednoduchý MA:
MA20 = CloseD(1)+CloseD(2)+CloseD(3)+CloseD(4)+................+CloseD(20) / 20;

tohle už mi, ale příjde dost krkolomný...
Rád bych využil fci CloseD(n), ale nevím jak...
Renda

Odesláno

Musel byste vyuzit ARRAYS. Pak by to slo zrejme i s funkci CloseD. Vytvorit Array s poslednimi 20ti CloseD a pocitat prumer Array. Nebo vyuzit dynamickych arrays, pokud chcete i dalsi periody. Ale chce to uz umet s Arrays pracovat. Jina cesta myslim neni.

Odesláno

Mě přijde daleko jednodušší mít data4 než se patlat složitě s tím, co chcete pomocí closeD, je to poměrně neefektivní funkce. Možná by stálo za to zamyslet se, jestli potřebujete 4 timeframes v grafech, netuším, co všechno využíváte pro strategii, ale řada věcí jde určitě zjednodušit.

Odesláno

tomnes: díky, s Arrays nemám zkušenosti, podívám se i na to...

Honza K.: Souhlas. Pomocí strategií se snažím otestovat staré myšlenky. Bohužel zjišťuju, že to o čem jsem si myslel, že je fční, tak dlouhodobě fční není. Proto k tomu zkouším přidat nějaké jednoduché filtry trendu. Beru to jako proces učení. Vesměs všechny staré myšlenky zahazuju. Pro mě paradoxně zjišťuju, že nejlepší strategie jsou ty pracující na timeframech 1Day.

Renda

Odesláno

Problémem denních grafů je, že zkrátka máte málo dat :) Takže ano, ideální timeframe pro "nejlepší strategie" jsou denní, týdenní a měsíční grafy. Je to pak ale podobné tomu, jako když si pro testování intradenních strategií zvolíte třeba 2 týdny. No schválně, zkuste si to, udělejte si nějaký jednoduchý kód strategie, třeba křížení MA, dejte si do inputs hodnoty obou MA a optimalizujte. Vyleze vám určitě výsledek, že budete mít skvělý profit factor, nádherný zisk a drawdown nebude stát za řeč. Až tohle budete mít, pusťte si tuto optimalizovanou strategi na 6 měsících dat bez toho, aniž byste tato data předtím viděl a použil... Asi to nebude zrovna moc pěkný pohled.

Většina těch, kteří obchodují denní grafy proto berou signál TA spíše jako konfirmační signál jejich širších analýz trhu. Abych mluvil za sebe - žádná z mých AOS není "dělaná" pro denní grafy a i když výsledky některých z nich jsou potenciálně výborné, neobchoduji je, není to můj styl obchodování, který bych preferoval.

Odesláno

Honza K:
Určitě souhlas. Asi jsem to napsal nesrozumitelně. Pro mě je právě zklamání, že mi "vychází" jen ty strategie s Day timeframe.
Preferuji ID systémy na 3minutových a vyšších TF. Ale budu muset ještě sakra pohledat. Starší, pro mě "profitabilní" myšlenky, když teď dám do kódu, se ukáží jako katastrofy. Pokud máte pro mě tip, nechám si rád poradit, co je pro Vás zajímavý směr na trhy ES, NQ ;-).

Odesláno

S těmi katastrofami - narážíte zkrátka na problém, že vizuálně v grafech vidíte ty dobré obchody velmi lehce a naopak prakticky přehlédnete naprostou většinu falešných signálů, které se vám jakoby v grafech "ztratí". Nicméně kód jede striktně podle pravidel a pak se situace otáčí. Je to jeden z důvodů, proč naprostá většina začátečníků v live obchodování má problém. Studiem grafů zkrátka získají pocit, že trhy začínají dobře číst a že jsou schopní si najít přesně ty situace, které jim nejvíc vydělají. Udělají si z nich pak systém typu "když close baru zavře nad touhle úrovní a zároveň je nějaký indikátor přeprodaný, tak je to long signál". Na historických datech je pak takových situací poměrně hodně, třeba desítky nebo stovky, takže to vypadá jako "jasnačka". Jenže ouha, takových situací je ve skutečnosti tisíce, jenom je jaksi nevidíte, v grafu jsou jakoby těžko rozeznatelné a narazíte na ně až v reálu, protože zkrátka graf napravo vám chybí.

Dále pak můžete být chycen do řady jiných pastí - jenom namátkou:

1) dělá váš kód opravdu přesně to, co chcete aby dělat?
2) Jsou vaše data správná a bez chyb?
3) Kalkulujete správně slippage, poplatky a jiné náklady?

Každý z těchto bodů by mohl vydat na několik přednášek.

×
×
  • Vytvořit...