Jump to content
Co nového? Mé kurzy
Všude

llaaddaa

Members
  • Počet příspěvků

    45
  • Registrace

  • Poslední návštěva

 Content Type 

Diskuze

Aktuality

Články v klientské sekci

Info

Články a tutoriály

Slovnik

Vše publikováno uživatelem llaaddaa

  1. Ctrl + F5 nepomohlo. Tak jsem musel doinstalovat Gogole Chrome a na tom to funguje. Díky
  2. Mám W10 s posledními aktualizacemi, IE11 s předchozím nefunkčním obrázkem A v Edge mám úplně prázdno. To chce nejšpíš nějaký doplněk do prohlížeče, ale nevím jaký. Kód stránky nestačím tak rychle analyzovat, protože je složitější
  3. Nemám obraz, nemám zvuk, nemám ani tlačítko
  4. llaaddaa

    Programování v MT4

    To hodně záleží na strategii. MT4 používají převážně forexoví brokeři a ti s daty zejména v demo platformách s daty pěkně manipulují. Stačí si je poctivě projít a zjistíš, že jim tam občas nějaká svíčka chybí, či má úplně nesmyslné údaje. To potom samozřejmě hodně ovlivňuje strategie a pokud jsou strategie hodně otimalizované, tak pak v reálu má kvůli tomu podstatně horší výsledky. Data musí být z opravdu kvalitních zdrojů, kterým věříš. Testuje se pak tak, že strategii vyladíš na cca 2/3 dat histore a pak takto odladěnou strategii pustíš na následující 1/3 dat, která se ladění neúčastnila, aby jsi viděla nakolik je strategie robusní. Hodně také záleží na tom zda obchoduješ intradenně a pozici držíš jen relativně krátkou dobu (tady se každá manipulace s daty extrémně projeví na výsledku, protože bereš malý zisk, který i malá manipulace výrazně zkresluje), nebo swingově, kde se sice také manipulace projeví, ale ne už tak moc - bereš totiž velký zisk (řekněme v řádu několika procent), který malá manipulace (řekněme v řádu desetiny procenta) tolik nezkreslí, ale pochopitelně ovlivní.
  5. llaaddaa

    Programování v MT4

    Nevěš hlavu, to půjde. Je to v principu jenom slepení několika kodů dohromady. Stačí si jen dát s tím práci, postahovat různé komentované příklady, prostudovat je a "vykuchat" z nich jen tu část kódu kterou potřebuješ (v něčem budeš mít příklad jen na přehrávání zvukových souborů, v jiném zase odesílání e-mailů...). No a když Ti to ani přesto nebude dělat, co chceš, tak sem dáš kód a v programování zkušenější uživatelé Ti poradí, kde je bota. Když je vidět, že si s tím dá člověk práci a i tak se dostane do úzkých, tak mu většinou někdo tady poradí. Pokud však čekáš, že Ti to tu někdo přímo naprogramuje na základě zadání, tak to se asi nedočkáš. Na to si každý příliš váží svého času. Laďa
  6. llaaddaa

    Programování v MT4

    Ano, dá se to naprogramovat. Vyjdi z Bolinger bands indikátoru - v něm je naprogramovaná standartní odchylka a přidej si pak do toho jen podmínku je-li Bolinger bands větší než 0,2315 a zároveň předchozí svíčka menší než 0,2315, přehraj zvukový soubor (nebo odešli e-mail podle toho, co potřebuješ). Laďa
  7. Nejsem také žádný daňový expert - daně si nechávám zpracovávat u své daňové poradkyně a za minulý rok (2012) mě stálo vypracování daňového přiznání včetně podání směšných 500 Kč. Takže daně raději konzultujte se svojí daňovou poradkyní, jednoznačně se to vyplatí, než si to dělat sám a spoléhat se na odpovědi z fóra. To co tu napsal hanybany tak to platí pouze pokud jste fyzická osoba - zaměstanec (zaměstnavatel za Vás platí zdravotní pojištění i sociální zabezpečení). Pokud jste však podnikatel, tak si k 15% dani musíte připočítat zdravotní pojištění (to je povinné) a potom ještě sociální zabezpečení. No a díky tomu pak státu odevzdáte pořádný podíl svého výdělku :( .
  8. llaaddaa

    Programování v MT4

    To záleží na tom, jak to je naprogramované. Podle popisu to vypadá, že si to bere vstup ze svíček v časovém intervalu, na který jsi aktálně přepnutý. Bez vložení zdrojového kódu AOS na tento dotaz ale nebude schopen nikdo odpovědět, kde je bota. Laďa
  9. llaaddaa

    nastavení stop-loss v TWS

    Vstoupil jsem současně long xxx kusů do titulu A a short yyy kusů do titulu B (strategie statistické arbitráže). Potřeboval bych vědět, zda vůbec jde a případně jak provést u InteractiveBorkers kombinovaný výstupní příkaz: Stoploss -jakmile součet zisků a ztrát z otevřených titulů A i B dosáhne úrovně – 100 (ztráta ), potom aby se současně tituly A i B ukončily (sell xxx kusů titulu A, buy yyy titulu B ). Současně by se vyrušil profit target příkaz (one cancel another) Profit target -jakmile součet zisků a ztrát z otevřených titulů A i B dosáhne úrovně + 120 (celkový kumulovaný zisk z obou pozic ), potom aby se také současně tituly A i B ukončily (sell xxx kusů titulu A, buy yyy titulu B ). Současně by se vyrušil stop loss příkaz (one cancel another) Díky za rady a nápady.
  10. llaaddaa

    Programování v MT4

    MACDOpenLevel a MACDCloseLevel jsou globální proměnné, které si uživatel nastavuje z aplikace. Pokud pak indikátor MACD protne hranici MACDOpenLevel nebo MACDCloseLeve, je odeslán odpovídající otevírací či zavírací pokyn
  11. llaaddaa

    Programování v MT4

    Robe, těch důvodů, proč se příkaz nevyplní může být hodně. Nemusíš mít dost volného kapitálu, broker zablokoval účet.... . Proto musíš dodržovat programátorskou zásadu - vždy si ověřovat, že příkaz prošel a případně podle návratové hodnoty zahlásit nějaký problém, aby na něj obsluha mohla zareagovat. To v kódu nemáš a tak se na něj nemůžeš spolehnout, že vždy udělá přesně to, co požaduješ. Proto si tam doplň něco takového: ticket=OrderSend(Symbol(),OP_SELL,0.1,Bid,3,0,0,"dolu",1,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) { Print("Prodejni prikaz ",ticket," na ",symbol," byl uspesne odeslan."); return(0); } else { Print("Prodejni prikaz vraci chybu : ",GetLastError()); return(-1); } } Potom podle kódu chyby poznáš, k jakému problému došlo a podle toho se zachováš.
  12. llaaddaa

    Programování v MT4

    Robe, toto jsou úplné základy. Aktuální svíčka má index 0. Předchozí svíčka má index 1. Chceš-li se dotázat na jakoukoliv cenu (pro příklad třeba open cenu předchozí svíčky), potom: double PredchoziOpen = Open[1] ; Chceš-li vědět hodnotu CCI, potom použij obdobně přímo funkci Metatraderu iCCI. V nápovědě je zdokumentovaná.
  13. llaaddaa

    Programování v MT4

    Ten můj příspěvek o 2 stránky dříve je plně funkční. Jsou tam jen pak další podmínky, které musí být splněny při nové svíčce. To si musíš vyhodit, aby to fungovalo. Takže by jsi tam měl mít něco takového: bool NewBar() { static datetime lastbar = 0; datetime curbar = Time[0]; if(lastbar!=curbar) { lastbar=curbar; return (true); } else { return(false); } } // příklad použití if (NewBar() == true) { // máme open nové svíčky. Sem vlož, co se má provádět. Má-li se provádět ještě nějaká další dodatečná kotrnola jako křížení, musíš to dát sem } Laďa
  14. llaaddaa

    Programování v MT4

    Ahoj Robe. O 2 stránky dříve jsem to v tomto vlákně přesně takový kód dával. Jedná se o příspěvek z September 16, 2011 10:28AM Funkcí NewBar() si otestuji, zda se jedná o novou svíčku. Pak tam mám podmínky obchodu a následuje zvukový alert (PlaySound("alert.wav");). Tak Ti stačí jen si upravit tu podmínku tak, aby Ti vyhovovala a místo alertu dát pokyn na vstup/výstup z obchodu Laďa
  15. llaaddaa

    Programování v MT4

    Ahoj, jestli myslíš počet pips od aktuální otevírací svíčky, tak není nic jednoduššího než si do indikátoru dát double rozdil = Bid - Open[0] ;
  16. llaaddaa

    Programování v MT4

    Aktuální svíčka má index 0 a předposlední 1. Nemáš posunuté jen o 1 indexy?
  17. llaaddaa

    Programování v MT4

    Harry001, moc nepopisuješ, jak by jsi si představoval to omezení, tak se na to špatně reaguje. Zkus si přidat do kódu funkci PocetOtevrenychPrikazuNaTitul. Ta vrací, kolik máš otevřených příkazů na daný titul. Dá se volat 2 způsoby: Způsob a - bez parametru: int pocet = PocetOtevrenychPrikazuNaTitul(); V tomto případě to kontroluje titul, který máš v okně. Způsob b - s parametrem názvu titulu: int pocet = PocetOtevrenychPrikazuNaTitul("EURUSD"); V tomto případě to kontroluje titul EURUSD; int PocetOtevrenychPrikazuNaTitul(string Symb=Symbol()) { int TotalSymbolOreders=0; // Amount of orders for(int i=1; i>=OrdersTotal(); i++) // Loop through orders { if (OrderSelect(i-1,SELECT_BY_POS)==true && OrderSymbol()==Symb) // If there is the next one { // Analyzing orders: TotalSymbolOreders++; // Counter of market orders } } return(TotalSymbolOreders); } // Použití: if(PocetOtevrenychPrikazuNaTitul() = 0) { // nemáme žádné otevřené příkazy na titul, můžeme otevřít obchod // sem vlož kód pro otevření obchodu } else { // máme otevřenou pozici, proto ji nebudeme zvyšovat. Nebudeme dělat nic } Píšu to z hlavy, bez možnosti ověření v MT takže to máš bez záruky. Vyzkoušej si to před ostrým použitím. Laďa
  18. llaaddaa

    Programování v MT4

    Zkus si tam přidat funkci NewBar(), která vrací true, když je nová svíčka no a pak to zapracuj podle potřeb podobně, jako to je v příkladu. Píšu to z hlavy, takže doufám, že v tom nejsou chyby. Nemám to odladěné a ověřené bool NewBar() { static datetime lastbar = 0; datetime curbar = Time[0]; if(lastbar!=curbar) { lastbar=curbar; return (true); } else { return(false); } } // příklad použití if (NewBar() == true) { if (( Close[2] >= Close[1]) && (Close[2] >= x) && (Close[1] PlaySound("alert.wav"); } Laďa
  19. llaaddaa

    Programování v MT4

    DarkMan Napsal: ------------------------------------------------------- > Index 0 by ma vzdy dle kodu hodnotu, ostatni > buffery jsou tam jen kvuli obarveni .... > Nad timto bufferem pouzij stejnou logiku jako pro > obarveni a mas vyreseno kdy vstupovat long / short > > > btw: kdyby ten indikator nebyl decompilovanej tak > by byl i vic citelnej a nemusis do toho cucet > tyden..... > > Snažím se použít stejnou logiku, ale když si přidám k VP-Oscilator zkušební vypis (viz příloha OvereniBarev.mq4), tak ladící hlášení barvy neodpovídá skutečné barvě na oscilátoru. Pořád tam přeskakují hlášení červená zelená a přitom na grafu je jiná barva.
  20. llaaddaa

    Programování v MT4

    Jenomže já ani nevím, jakou kombinaci má ten žlutý. Se 3 Buffery na 1 indikátor jsem se ještě nesetkal (Metatrader se teprve učím) Nechal jsem si vypisovat hodnoty 3 bufferů, ale žádnou logiku v tom nevidím. Asi se to nějak přepíná tím, že se do jednoho bufferu dá EMPTY_VALUE, ale když jsem si vypisoval hodnoty všech proměnných v jednu chvíli, tak různé barvy měly stejné kombinace. Tak si s tím lámu hlavu už týden. Žlutou barvu má indikátor když jde na grafu do kopce i z kopce, takže jen nějakým jednoduchým porovnáváním to asi nepůjde.
  21. llaaddaa

    Programování v MT4

    Dobrý den, potřeboval bych poradit. Mám oscilátor, který má části 1 křivky vykreslený červenou ,žlutou, nebo zelenou barvou. Barva odpovídá tomu, zda jít long, short či být mimo trh. Přidávám tento oscilátor přidat do své strategie ( double OldOscilator88 = iCustom(Symbol(), NULL, "VP-Oscilator", 7, 0, 0, 1); pro každý z bufferů), ale vůbec se mi nedaří přijít na to, jak vzhledem k použití 3 bufferů rozpoznat, jaká je právě aktuální barva. Můžete mě prosím nakopnout, jak na to? Díky
  22. llaaddaa

    OPCE - základní info

    Vysvětlit se to dá jednoduše. Volume je objem zobchodovaného podkladového aktiva za daný časový úsek. Tedy bylo zobchodováno 6095 ks podkladového aktiva (akcie) za daný časový úsek (den). Open Interest je ale počet otevřených opčních pozic Put se strike 25 a exspirací v nov 2009. Neříká to nic o tom, v jakém časovém úseku byly opční pozice otevřeny, ale jen to, že na tomto strike a dané exspiraci je otevřených 78 opčních kontraktů. Byly otevírány opce a nikoliv akcie – to jsou 2 naprosto odlišné pojmy a tak v počtech mícháš hrušky s jablky. Opce se v akcie promění a tedy započítá do volume až v tom případě, kdy bude opce uplatněna a tedy vypisovatel za 1 opci dodá či odkoupí za stanovenou strike cenu 100 akcií podkladového aktiva. Těch 78 opčních pozic nebylo otevřeno během jednoho dne (či jiného časového úseku), podle kterého je vypočítávané Volume akcie - ty mohly být otevírány týden, 14dní či měsíc…. No a protože 1 opční kontrakt obvykle bývá 100 ks podkladového aktiva (akcie), tak to znamená jinými slovy, že na strike 25 je síla 7 800 akcií tlačících trh na stranu put (pokles). V akcie se opce přemění pouze v tom případě, když je 1) někdo uplatní. 2) v době exspirace budou In the money (v penězích) a vypisovatel bude muset dostát svým závazkům dodat 100ks podkladového aktiva za každou vypsanou opci – až v tomto případě se to započítá do volume ale až v časovém úseku, kdy ke konverzi opce na akcii dojde. Laďa
  23. llaaddaa

    Prevod penez od Interactive Brokers do Ceska

    Tak ladem v krabicích jim to rozhodně ladem neleží. Už si mě finančák předvolal k podání vysvětlení. Vysvětlení jsem finančnímu úřadu podal, doložil jsem zdanění v USA a odkázal jsem sa na smlouvu o zamezení dvojího zdanění. Při odchodu mi pak úřednice místo pozdravu nadala, že daním v zahraničí a ne v ČR
  24. llaaddaa

    Je tady někdo kdo stejně jako já válčí s IB API?

    Předchozí kód podával příkaz, který byl směřovaný na konkrétní burzu a to je dražší, než příkaz bez určení burzy. Kód, který přikládám nyní již neurčuje, kam je příkaz směrovaný a tak za stejný pokyn jako v předchozím kódu je poplatek jen 150 USD. Kódy jsou si velmi podobné, jenom se změnil název burzy na SMART, ale zejména jsem musel přidat řádek s určením měny USD. Bez zadání měny USD v SMART příkazu Interactive Brokes vrací hlášení o chybě zadaného obchodovaného titulu, což je značně zavádějící, když ho tam máte číslem ConID jednoznačně určený. Přijít na takovou drobnost mi trvalo hodně dlouho, tak si na to dejte pozor. Kód je následující: // Bear Call Spread (kreditní spekulace na pokles) // Pojišťovací opce Call 47 která vyprší 18. dubna 2008 ComboLeg CL47 = new ComboLeg(); CL47.ConId = 48570229; CL47.Ratio = 1; CL47.Action = ActionSide.Buy; CL47.Exchange = "SMART"; CL47.OpenClose = 0; // Vypsaná opce Call 46 která vyprší 18. dubna 2008 ComboLeg CL46 = new ComboLeg(); CL46.ConId = 48570224; CL46.Ratio = 1; CL46.Action = ActionSide.Sell; CL46.Exchange = "SMART"; CL46.OpenClose = 0; Contract OptContr = new Contract((int)334); OptContr.Symbol = "QQQQ"; OptContr.Exchange = "SMART"; OptContr.SecurityType = SecurityType.Bag; OptContr.Currency = "USD"; OptContr.ComboLegs.Clear(); OptContr.ComboLegs.Add(CL47); OptContr.ComboLegs.Add(CL46); Order OptOrder = new Order(); OptOrder.Action = ActionSide.Buy; OptOrder.OutsideRth = false; OptOrder.OrderType = OrderType.Market; OptOrder.TotalQuantity = 100; int orderId = NextOrderId; NextOrderId += 1; if (client.Connected == true) { System.Windows.Forms.MessageBox.Show("Jsi připojený, proto můžeme umístit příkaz na trh"); try { client.PlaceOrder(orderId, OptContr, OptOrder); } catch(System.Exception ex) { System.Windows.Forms.MessageBox.Show("Nastala výjimka při umisťování příkazu na trh: " + ex.ToString() ); } } else { System.Windows.Forms.MessageBox.Show("Nejsi připojený. Nejdříve se musíš připojit a až potom umisťovat příkazy na trh. Příkaz nebyl podán"); } Laďa
  25. llaaddaa

    Je tady někdo kdo stejně jako já válčí s IB API?

    Pavle, rozhodoval jsem se, do kterého vlákna to zařadit. Protože spíše předpokládám, že jsem v kódu nenastavil nějaký příznak, o kterém nevím, že bych jej měl nastavit, tak jsem zvolil toto vlákno. Součástí mého příspěvku je totiž i kód využívající API s odkazem na zdroje. Myslím si, že tyto informace mohou obohatit čtenáře tohoto vlákna, i když se příspěvek tematicky dotýká i jiných vhodných vláken. Dělali jste někdo takový program? Já to mohu řešit klidně tak, že programově otevřu každou nohu zvlášť, tím bych se sice dostal na stejné poplatky, ale zase bych se okradl o možnost zadávat limitní příkazy. Laďa
×
×
  • Vytvořit...