Pracovní skupina poskytovaná tradery pro tradery. Naleznete v ní odpovědi na své technické otázky týkající se programů Amibroker, Python, InteractiveBrokers TWS a TradeStation Global.
Dobrý den,
Petře nedaří se mi nahrát 7 strategií. Když jsem zkoušel jednu po druhé samostatně, tak to šlo a výsledky byly v pořádku. Když ale chci nahrát více strategií najednou nebo když nahrávám postupně další strategie, tak se dostanu k tomu, že se mi zobrazí max 3 a pak mám třeba takovouto hlášku:
Pavel
Dobry den
pri zmene obchodniho prikazu ma burze TSE jsem vystupnim souboru pro AT mel:
Systém,Ticker,Příkaz,Info,Typ Příkazu,Platnost,Shares,Alokováno $,Price,Připojit PT,ProfitTarget,Připojit SL,StopLoss
TDMR1 Long,ATX,Sell,Close,MOC,Day,,,,,0,,0
Po pruchodu AT mi to zadalo:
2024-04-19 10:25:48: TMR - PermID 1792958118, ATX SELL OPG MKT 695.0, PreSubmitted
nevíte proč se mi to cestou "změnilo"?
TSE mi samozrejme OPG nevzalo, ale to byl ten důvod proč jsem to chtěl změnit
dekuji za reakci
P
Zdravím,
jak už jsem psal minule, s podobným problémem jsem se nesetkal, snad jen vyzkoušet jinou instalaci.
Zkusil jsem oba uvedené kódy na svém počítači (příště kód vkládejte prosím v textové podobě, z obrázku se to pracně opisuje) a v obou případech se příkazy zadaly do TWS správně.
B.
Exekuce skrz 0TDE opce mají určitě svá specifika. Například se hůře škáluji. Například včera mi autotrader otevřel na risk 300 dolarů jen jednu put opci za 1.59, protože dvě už se do 300 dolarů nevešly. A tak jsem skončil prakticky s polovičním profitem, než v případě živé pozice, která trhy shortovala s pomocí akcií.
O víkendu připravím další informace o tom, jak konkrétně 0TDE backtestuji (a budete moci dělat to samé). Používám minutová opční data, takže simulace jsou dost přesná. A tam jsou naplno vidět výhody, které tento typ exekuce přináší.
Petre, v prve rade dekuji za toto tema. Velice me to zaujalo. Premyslel jsem nad tim pouzitim 0DTE opci namisto klasickeho SL: hlavni vyhoda jak pisete je, ze nam to pomuze vyresit situace, kdy by nam trh zasahnul SL a potom se otocil zpet nasim smerem. Zkusil jsem si nasimulovat vysledky puvodniho backtestu z TradeStation s timto pristupem. Nechal jsem test projet bez SL a pak jsem u ztratovych obchodu nastavil ztratu na -300$ (tzn. obchody, ktere skoncily na konci dne ve vetsi ztrate jsem zastropoval na -300 a ty z mensi ztratou jsem navysil na -$300, protoze u opci neni nic mezi). Tato uprava navysila Avg Trade z $51 na $58. Asi to nebude uplne nejpresnejsi zpusob, ale myslim, ze to potvrzuje, ze se jedna o pristup zvysujici vykonnost. Uz se tesim na dalsi prispevky k 0DTE.
Zdravím vás, jsem nyní v lekci 6 (obchodování více trhů najednou, řešení úkolu). Mohl bych vás požádat o zaslání Afl kódu k této lekci, ať si v látce udělám více jasno. Moc děkuji za pomoc.
Díky za otázky. je jasné, že TS může být pro řadu z vás nové prostředí a pokud budu vědět, budu se snažit v tomto ohledu odpovídat.
ad) V definici proměnných je na začátku jednou jestli uvedeme v závorkách False nebo True?
Každou proměnnou je třeba v TS inicializovat. Tj. první řádek jen říká s jakou hodnotou proměnná startuje. V kontextu skriptu tam není nic podstatného, protože hned po startu se všechny proměnné nastavují znovu. Bez toho, aniž by s nějakou hodnotou byly promenné vypsané (deklarované) na začátku, by skript nefungoval.
ad kód:
If Date <> Date[1] Then Begin
tradeTakenToday = False;
End;
Tato část kódu resetuje proměnnou tradeTakenToday na začátku každého dne. Tedy zajišťuje, že se v jeden obchodní den zobchoduje jen jeden obchod.
ad HL_MAD1 a HL_MAD2:
zápis je správně - bere se průměrná cena počítaná funkcí Average za 5 dnů. Hodnota v hranaté závorce [1] říká, že chceme získat hodnotu za předchozí den.
ad ATR(5)/C - zápis ATRC = YesterdaysATR / BuyPrice; normalizuje ATR vůči nákupní ceně. Určitě by šlo použít i
ATRC = YesterdaysATR / YesterdayClose a výsledky budou jistě velmi podobné. Je to jen záležitost konkrétní implementace.
ad MarketPosition = 0 (znamená není pozice) and not tradeTakenToday - to znamená jen jeden obchod denně?
Ano, toto zajistí, že se příkaz zadá jen pokud není otevřena žádná pozice a pokud nebyla dnes žádná pozice otevřena (protože pak se tradeTakenToday nastaví na True).
ad YesterdaysATR>0 - tato podmínka by měla být vždy kladná... je potřeba ji zadávat?
Je to trochu přebytečné, defacto je to taková pojistka, která se jistí, že máme správně načtená data za předchozí den.
Dobrý den, Petře,
snažím se pochopit uvedený kód pro TS, ale u některých částí kódu bych potřeboval bližší popis nebo objasnění. Děkuji.
V definici proměnných je na začátku jednou jestli uvedeme v závorkách False nebo True?
Vars: BuyPrice(0), BuyStopPrice(0),YesterdaysATR(0),YesterdayClose(0),YesterdayOpen(0),
HL(0),HL_MAD(0),HL_MAD1(0),HL_MAD2(0),ShortPrice(0),ShortStopPrice(0),tradeTakenToday(False),VolCond(True),ATRC(0);
Tento zápis znamená, že není a nebyl otevřen žádný obchod?
If Date <> Date[1] Then Begin
tradeTakenToday = False;
End;
V níže uvedeném kódu jde o podmínku HL_MAD1>HL_MAD2 (průměrný rozkmit úsečky H-L za posledních 5 dnů je vyšší než průměrný rozkmit předchozí den).
HL_MAD1 = Average((High-Low),5) of data2;
HL_MAD2 = Average((High-Low),5)[1] of data2;
Nerozumím tomu, že HL_MAD2 je také počítáno za posledních 5 dnů? Byl by tento zápis špatně?
HL_MAD1 = AvgTrueRange( 5 ) of data2;
HL_MAD2 = ( ;
S druhoutnou podmínkou, kdy vyhledávám normalizovanou volatilitu ATR(5)/C alespoň 0.008 .....
If BuyPrice>0 then begin
ATRC = YesterdaysATR / BuyPrice;
end
Else begin ATRC=0;
end;
VolCond = ATRC>0.008; end;
Nerozumím proč se ATRC vypočítá ATRC = YesterdaysATR / BuyPrice; když má byt ATR(5)/C
Jestliže mám definovanou proměnou ATRC (0), nestačilo by zapsat takto:
ATRC = YesterdaysATR / YesterdayClose;
VolCond = ATRC > 0.008;
MarketPosition = 0 (znamená není pozice) and not tradeTakenToday - to znamená jen jeden obchod denně?
YesterdaysATR>0 - tato podmínka by měla být vždy kladná... je potřeba ji zadávat?
If Time > 0940 and time<1530 and MarketPosition = 0 and YesterdayClose<YesterdayOpen and HL_MAD1>HL_MAD2 and not tradeTakenToday and VolCond and YesterdaysATR>0 t
Dobrý den,
pro filtrování záznamů je třeba nejdříve uložit obsah tabulky do proměnné
denik = diary.getDiary()
denik[denik.strategy == 'IMR']
Uvedený zápis umožňuje výběr dat pouze jednoho systému.
B.
ano, mel jsem na mysli PDT. Super, jestli je to jak pisete. Zkousel jsem to nejak dohledat na IB strankach, ale je to tam matouci. Dekuji za odpoved, Petre.
To netuším, ale moc se mi to nezdá. Opce lze obchodovat s malým kapitálem, netuším proč by byl vyžadován účet 25000. Pokud myslíte kvůli "pattern daytrader" - omezení daytradovat akcie, tak ten se na rezidenty EU už delší dobu nevztahuje.
Dobry den, otazka na Petra nebo jine zkusenejsi kolegy. Predpokladam, ze pokud bych chtel vyhledove obchodovat ODTE opce, tak u interactive brokers budu muset prepnout na cash type ucet (pokud nebudu mit 25000 USD). Je muj predpoklad spravny? dekuji. Pavel
Upozornění: Všechny informace poskytované na Financnik.cz jsou určeny výhradně ke studijním účelům témat týkajících se obchodování na burze a neslouží v žádném případě coby konkrétní investiční či obchodní doporučení. Provozovatel serveru ani jednotliví autoři nejsou registrovanými brokery či investičním poradcem ani makléřem. Jsou-li na stránkách zmiňovány konkrétní finanční produkty, komodity, akcie, forex či opce, vždy a pouze za účelem studia obchodování na burze. Vydavatel serveru není zodpovědný za konkrétní rozhodnutí jednotlivých uživatelů. Burzovní obchodování a investování s finančními instrumenty (a komoditami obzvláště) je vysoce rizikové. Rozhodnutí obchodovat komodity a akcie je odpovědností každého jednotlivce a jedině on sám nese za svá rozhodnutí plnou odpovědnost. Nikdy se nepouštějte do obchodů, jejichž podstatě plně nerozumíte. Pamatujte, že burza má svá pravidla, kterým je třeba porozumět, než začnu riskovat své vlastní peníze!