Jump to content
Co nového? Mé kurzy
Komunita:
Všude
Diskuze Sledované příspěvky Žebříčky
  1. Otevřená sekce

    1. 44
      44 příspěvků
  2. Uzavřené diskuze pro absolventy kurzů Finančníka

    1. TechLab

      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.

      8,1k
      8,1k příspěvků
      • 4fx
    2. Trading Room

      Diskuzní skupina v rámci Trading Roomu.

      2k
      2k příspěvků
    3. 422
      422 příspěvků
      • petr
    4. Základy práce s programem Amibroker

      Uzavřená diskuze pro účastníky online kurzu Základy práce s programem Amibroker.

      189
      189 příspěvků
      • petr
    5. FIMS A–Z: Profesionální daytrading orderflow

      Diskuze o intradenním obchodování v rámci informací prezentovaných v kurzu FIMS A–Z: Profesionální daytrading orderflow.

      29,3k
      29,3k příspěvků
      • Jack
  3. Archiv původních anonymních diskuzích

    1. 201,1k
      201,1k příspěvků
  • Statistiky uživatelů

    31 449
    Celkem uživatelů
    467
    Nejvíce online
    lubsort
    Nejnovější uživatel
    lubsort
    Registrace
  • Všechny poslední příspěvky

    • Dobrý den, u mně verze 0.0.62 funguje dobře, ale musím používat vlastní výpočet benchmarku. portfolio.index = pd.to_datetime(portfolio.index) portfolio = portfolio.sort_index() benchmark_price = yf.download('^GSPC', start=portfolio.index.min(), end=portfolio.index.max())['Close'] benchmark_returns = benchmark_price.pct_change().dropna() benchmark_returns = benchmark_returns.reindex(portfolio.index).fillna(0) pak u řádku reportu nahradím benchmark uvedený titulem na obsah načtený z proměnné benchmark_returns. qs.reports.metrics(portfolio["Total_chg"], benchmark=benchmark_returns) B.
    • Zdravím, mám nějaké menší problémy: 1) 15:31 se mi nenačte otevírací cena, tím pádem se ukončí script. Někdy se mi podaří 15:32 - 15:35.Potom Ok. 2) U simu se mi příkazy vyplní bez potvrzení, ale u live musím odeslat "Transmit". ( asi je potřeba někde zrušit v TWS. 3) Musím potvrzovat propojení "connect" a to dvakrát. Chtěl bych spouštět dávkou a nevím jak na to.
    • Diky za reakci I ja k tomu nakonec pristoupim stejne.  Tzn. kazdy report je samostatny a dividendy jsou za me jeden report (od noveho uctu) pro oba ucty Hezky vikend
    • Aktualizovaná výkonnost strategií dashboardu k 5.4.2025: V akciových trzích vládnou opravdu silné výprodeje díky ohlášeným Trumpovým clům. Od minulého týdne už se toho u mě ale na systematickém účtu tolik nedělo. SMO NDX je bez pozic, v intradenním breakoutu jsem měl jen několik obchodů (zlato a bitcoin) a ve swingových strategiích příliš živo nebylo (až na pátek, kdy se mi otevřely nové pozice). Byť mám za sebou v prvním čtvrtletní na účtu desítky, ne-li stovky obchodů (nepočítal jsem), jsem na svém účtu u IB prakticky "na nule". Což z pohledu toho, co předvádí trhy jako celek je vlastně docela dobrý průběžný výsledek: Equity mého obchodování intradenního breakoutu u IB (jde o součást výše uvedeného screenu z IB): Takto vypadají mé denní zisky/ztráty (vztaženo ke kapitálu 100K dolarů): V dubnu jsem zatím se strategií neměl mnoho ziskových dnů, tak věřím, že brzy přijde opět plodnější období. Dlouho jsem neměl například signál na QQQ/SPY a tudíž se mi neobchodovaly ani opce. Jejich živá equity vs SPX ovšem vypadá nyní docela působivě: Zelená křivka stav opčního účtu, modrá index S&P 500. Pro zajímavost - takto vypadá letošního backtestová výkonnost trhu QQQ skrz základní podobu vyvíjeného momentum intradenního systému: Zisk cca 7,5% - je patrné, že tento přístup může solidně diverzifikovat stávající breakout.
    • Aktuální výkonnost miniportfolia (modrá linka) vůči výkonnosti S&P 500 (červená linka): Jsou to myslím právě podobná období, kdy si člověk uvědomí, jakou výhodou v řízení risku coby tradeři máme. A to přitom obchodujeme v miniportfoliu jen velmi jednoduché strategie: NDX SMO - rotační momentum strategie. Držíme každý měsíc top 5 akcií indexu Nasdaq 100, pokud samotný index roste (např. je nad MA200) Deep Dip - nakupujeme pullback pokud je pokles trhu vyšší než implikovaná volatilita. Princip je popsán v článku Časování návratu k průměru pomocí implikované volatility.  MR3000L a MR3000S. Typický swingový mean reversion. Základní pravidla velmi podobného systému jsou popsána ve výuce. Monday Byuer - nákup korekce do trendu v akciích s nižší volatilitou - systém popsán v knize Od myšlenku k reálným obchodům. Samotná výkonnost jednotlivých strategií není nijak závratná. Takto vypadají equity křivky jednotlivých systémů: SMO NDX: Monday Buyer: Deep Dip: MR3000L: MR3000S: A přesto jako celek toto vše tvoří již velmi solidní portfolio: Navíc přestože každému systému alokujeme 40% celkového kapitálu, jako celek portfolio prakticky nevyužívá obchodován na margin: Z mého pohledu se vyplatí investovat čas do stavby podobného (a lepšího řešení). Přičemž dobrým startem může být pustit se do portfolia, které bude složené z podobných ultra jednoduchých principů jako to, s jehož obchodováním jste zde začali. Pokouší se někdo o replikaci takto postaveného portfolia? Pokud ano a bojujete s nějakými dotazy = ptejte se.
    • No mají v tom podle mě trochu nepořádek.  U mě se účetní úmorně snažila navázat jeden report na druhý a myslím, že úplně to nesedělo vůbec. Já jsem tedy bral oba reporty samostatně, ale dividendy jsem tedy neřešil (resp. o vše se stará daňová poradkyně a v tomto ohledu jsme nic nediskutovali).
    • Dobry den, omlouvam se , ale nemohl jsem najit kam jinam tento dotaz polozit. Pote co IB v 2024 migrovalo ucty z Madarska do Irska, tak nam zaroven zmenili cisla uctu, coz nam pridelalo vrasky pri automatizovanem obchodovani. Tyto jsem vsak zvladli 🙂 Ted jsem se pustil do dani  a jsem lehce zmaten: samozrejme  mimo klasickych 3 souboru ( formular 1042S, FX report a Divident report) jich ted mam 6  tj. pro stary  a novy ucet Mel jsem za to, ze bud: novy ucet ma v sobe i data ze stareho uctu nebo proste mam dve sady reportu , kde cisla se nedubluji Report aktivit se jevi , ze se data nedubluji Bohuzel jak jsem se do toho ponoril , tak jsem zjistitl ze v Dividend reportu noveho uctu jsou obsažena data i stareho uctu, ale u FX reportu toto neplati. Na 1024S uz jsem nemel silu 😞 Prosim ma toto uz nekdo za sebou muze rict , ktere reporty (stary a novy ucet) pro dane pouzil? Diky moc Doufam, ze v tom Vs nespamuji necim co sem nepatri a vy jste to davno vyresily
    • Dobrý den, zpřístupnili jsme další obsah minikurzu. Tentokrát se jedná o praktickou ukázku využití dosavadních znalostí získaných v průběhu minikurzu. B.
    • Dobrý den, v generátoru je chyba, která omezuje režim Amibroker, mám už provedenou opravu v příštím týdnu otestuji a zpřístupním novou verzi. B.
    • Zdravím. Dále řeším nastavení Monday Buyer. Chci ho navázat na Amibroker, ale vůbec se mi nedaří. Cesta v settings.py mám nastavenou, tak jak uvádím v strategis.py  # cesta ke slozce s projekty Amibrokeru, vyuziva generator.py pro privpravu vstupnich signalu amibroker = {               'ProjectPath' : 'c:/AmiBroker/Projects/' # strategie Monday Buyer mob = { 'Enabled' : True,     'Name' : 'MOB',     'Desc' : 'Monday Buyer',         'Action' : 'BUY',         'OrderType' : 'LMT',     'InputFile' : 'data/mob.csv',         'InputFileExits' : False,     'MaxOpenTrades' : 10,     'MaxDayTrades' : 10,         'CapitalType' : '$',         'CapitalValue' : 20000,         'Margin' : False,     'StopLoss' : 0,         'ProfitTaker' : False,                 'ProfitTargetValue' : 0,         'ProfitType' : 'MOC',         'ProfitTif' : 'GTC',         'ExitStrategy' : 8,         'Period' : 'D',         'SignalSource' : 'AmiBroker',         'ContractType' : 'STK',         'Currency' : 'USD',         'ExitClose' : False  
    • Zdravím a děkuji, vše proběhlo v pořádku. Ukážu v čem je rozdíl uvozovky a HASH na konci. moje nastavení  "DDIP" : 'https://tradingroom.financnik.cz/download/DEEPDIP/csv=HASH', vaše nastavení 'DDIP' : 'https://tradingroom.financnik.cz/download/DEEPDIP/csv/'
    • Dobrý den, chtěl jsem se optat, jestli někdo neřešil stažení Historických Tickový dat z Darwinex a jejich úprava a import do AMB. Přes FTP server je mám stažené, ale je to velké množství zip souborů rozdělených ještě na BID/ASK. umím je stáhnou, ale nevím jak je sloučit ASK/BID, abych mohl v AMR testovat na TF 5, 15, 30min, 1hod.  Zajímají mě v tuto chvíli WS30, NDX, forex. Děkuji za případné nasměrování jak to udělat.
    • Snad se nám to podařilo vyřešit. Zkuste prosím, jestli už máte nástroj dostupný. Petr
    • Ano, takto by to mělo fungovat. A pokud nebude tak místo jednoduchého lomítka dejte dvojité zpětné lomítko.
    • Áno, určite by bol, aspoň za mňa áno. Ja som na začiatok skúšal v TS si v grafe na každý deň vizualizovať noise area, robil som to s ChatGpt ale neuspešne. Ďalej som tomu nevenoval čas . Pomôže to aj mne a verím že aj ostatným s ďaľším backtestom.😊 Prajem pekný deň. Timi
    • Vím že to asi nepatří úplně sem, jestliže mám vygenerované vlastní signály jak v config doplním, že má načíst moje signály a ne ty v dasbordu. Resp. jaký to má mít formát?. SignalSource: https://www.financnik.cz/exe/tradingroom1/FinwinSignals.csv Takto? SignalSource: C:/Dokumenty/signal.csv Moc děkuji Ruda
    • Díky. Až to budu mít v nějaké použitelné podobě, můžu to sem hodit. Teda jestli by byl zájem?
    • Děkuji za zprávu. Původní dashboard tedy ještě necháme jak je. V novém dashboardu nejprve aktualizujeme vše tak, aby to odpovídalo původnímu dashboardu (tj. včetně finwinu, datumu aktualizace atd). Ad MR3000 - v novém dashboardu je také systém pod označením MR3000. Jen jsou tam všechny signály, nejsou filtrované na earnings a shorting fee (proto je tam signálů více). Připravím do nového dashboardu verzi, která bude naprosto shodná se starým dashboardem.
    • Dobrý den, pokud dám quantstats 0.0.62. tak se mi nenačte už od qs.reports.basic(qsData, 'SPY') nic, pokud dám quantstats 0.0.64.tak to vypadá takto a nenačte se pouze konec. Performance Metrics   Benchmark Strategy ------------------ ----------- ---------- Start Period 2024-09-04 2024-09-04 End Period 2025-04-01 2025-04-01 Risk-Free Rate 0.0% 0.0% Time in Market 99.0% 100.0% Cumulative Return 2.57% 8.78% CAGR﹪ 3.11% 10.69% Sharpe 0.42 1.13 Prob. Sharpe Ratio 61.78% 80.36% Sortino 0.56 1.96 Sortino/√2 0.4 1.39 Omega 1.37 1.37 Max Drawdown -9.3% -6.29% Longest DD Days 44 52 Gain/Pain Ratio 0.07 0.37 Gain/Pain (1M) 0.3 0.95 Payoff Ratio 0.69 1.84 Profit Factor 1.07 1.37 Common Sense Ratio 0.79 2.99 CPC Index 0.42 1.24 Tail Ratio 0.74 2.19 Outlier Win Ratio 4.53 5.17 Outlier Loss Ratio 3.4 6.7 MTD 0.28% -0.53% 3M -4.0% 0.26% 6M -1.6% 3.2% YTD -4.0% 0.26% 1Y 2.57% 8.78% 3Y (ann.) 3.11% 10.69% 5Y (ann.) 3.11% 10.69% 10Y (ann.) 3.11% 10.69% All-time (ann.) 3.11% 10.69% Avg. Drawdown -1.55% -1.41% Avg. Drawdown Days 10 11 Recovery Factor 0.33 1.43 Ulcer Index 0.03 0.02 Serenity Index 0.15 0.88   Strategy Visualization     In [18]:         qs.reports.full(qsData, 'SPY')       Performance Metrics   Benchmark Strategy ------------------------- ----------- ---------- Start Period 2024-09-04 2024-09-04 End Period 2025-04-01 2025-04-01 Risk-Free Rate 0.0% 0.0% Time in Market 99.0% 100.0% Cumulative Return 2.57% 8.78% CAGR﹪ 3.11% 10.69% Sharpe 0.42 1.13 Prob. Sharpe Ratio 61.78% 80.36% Smart Sharpe 0.41 1.11 Sortino 0.56 1.96 Smart Sortino 0.55 1.93 Sortino/√2 0.4 1.39 Smart Sortino/√2 0.39 1.36 Omega 1.37 1.37 Max Drawdown -9.3% -6.29% Longest DD Days 44 52 Volatility (ann.) 13.85% 15.2% R^2 0.0 0.0 Information Ratio 0.04 0.04 Calmar 0.33 1.7 Skew -0.61 1.54 Kurtosis 1.33 18.79 Expected Daily % 0.02% 0.06% Expected Monthly % 0.32% 1.06% Expected Yearly % 1.28% 4.3% Kelly Criterion -7.44% 21.6% Risk of Ruin 0.0% 0.0% Daily Value-at-Risk -1.41% -1.51% Expected Shortfall (cVaR) -1.41% -1.51% Max Consecutive Wins 7 7 Max Consecutive Losses 4 11 Gain/Pain Ratio 0.07 0.37 Gain/Pain (1M) 0.3 0.95 Payoff Ratio 0.69 1.84 Profit Factor 1.07 1.37 Common Sense Ratio 0.79 2.99 CPC Index 0.42 1.24 Tail Ratio 0.74 2.19 Outlier Win Ratio 4.53 5.17 Outlier Loss Ratio 3.4 6.7 MTD 0.28% -0.53% 3M -4.0% 0.26% 6M -1.6% 3.2% YTD -4.0% 0.26% 1Y 2.57% 8.78% 3Y (ann.) 3.11% 10.69% 5Y (ann.) 3.11% 10.69% 10Y (ann.) 3.11% 10.69% All-time (ann.) 3.11% 10.69% Best Day 2.49% 6.1% Worst Day -2.98% -4.77% Best Month 5.96% 9.4% Worst Month -5.57% -5.79% Best Year 6.84% 8.5% Worst Year -4.0% 0.26% Avg. Drawdown -1.55% -1.41% Avg. Drawdown Days 10 11 Recovery Factor 0.33 1.43 Ulcer Index 0.03 0.02 Serenity Index 0.15 0.88 Avg. Up Month 5.1% 3.01% Avg. Down Month -3.23% -3.36% Win Days % 56.15% 49.24% Win Month % 50.0% 50.0% Win Quarter % 75.0% 75.0% Win Year % 50.0% 100.0% Beta - 0.06 Alpha - 0.17 Correlation - 5.36% Treynor Ratio - 149.36%   None   Worst 5 Drawdowns     Start Valley End Days Max Drawdown 99% Max Drawdown 1 2025-03-03 2025-04-01 2025-04-01 30 -6.291359 -5.788768 2 2024-12-24 2025-02-06 2025-02-13 52 -6.273296 -5.911027 3 2024-11-19 2024-11-29 2024-12-03 15 -1.968072 -1.956797 4 2024-10-21 2024-11-06 2024-11-08 19 -1.551679 -1.420171 5 2024-09-17 2024-09-18 2024-09-18 2 -1.040891 -0.813942   Strategy Visualization           C:\Users\todar\OneDrive\Desktop\Denik komplet X 1.3 - zkouška\.xxx\Lib\site-packages\seaborn\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead. with pd.option_context('mode.use_inf_as_na', True): C:\Users\todar\OneDrive\Desktop\Denik komplet X 1.3 - zkouška\.xxx\Lib\site-packages\seaborn\_oldcore.py:1075: FutureWarning: When grouping with a length-1 list-like, you will need to pass a length-1 tuple to get_group in a future version of pandas. Pass `(name,)` instead of `name` to silence this warning. data_subset = grouped_data.get_group(pd_key) C:\Users\todar\OneDrive\Desktop\Denik komplet X 1.3 - zkouška\.xxx\Lib\site-packages\seaborn\_oldcore.py:1075: FutureWarning: When grouping with a length-1 list-like, you will need to pass a length-1 tuple to get_group in a future version of pandas. Pass `(name,)` instead of `name` to silence this warning. data_subset = grouped_data.get_group(pd_key) C:\Users\todar\OneDrive\Desktop\Denik komplet X 1.3 - zkouška\.xxx\Lib\site-packages\seaborn\_oldcore.py:1075: FutureWarning: When grouping with a length-1 list-like, you will need to pass a length-1 tuple to get_group in a future version of pandas. Pass `(name,)` instead of `name` to silence this warning. data_subset = grouped_data.get_group(pd_key) C:\Users\todar\OneDrive\Desktop\Denik komplet X 1.3 - zkouška\.xxx\Lib\site-packages\seaborn\_oldcore.py:1075: FutureWarning: When grouping with a length-1 list-like, you will need to pass a length-1 tuple to get_group in a future version of pandas. Pass `(name,)` instead of `name` to silence this warning. data_subset = grouped_data.get_group(pd_key) C:\Users\todar\OneDrive\Desktop\Denik komplet X 1.3 - zkouška\.xxx\Lib\site-packages\seaborn\_oldcore.py:1075: FutureWarning: When grouping with a length-1 list-like, you will need to pass a length-1 tuple to get_group in a future version of pandas. Pass `(name,)` instead of `name` to silence this warning. data_subset = grouped_data.get_group(pd_key)     C:\Users\todar\OneDrive\Desktop\Denik komplet X 1.3 - zkouška\.xxx\Lib\site-packages\quantstats\_plotting\core.py:294: FutureWarning: Passing additional kwargs to DatetimeIndexResampler.sum has no impact on the result and is deprecated. This will raise a TypeError in a future version of pandas. returns = returns.last() if compound is True else returns.sum(axis=0)   --------------------------------------------------------------------------- UnsupportedFunctionCall Traceback (most recent call last) Cell In[18], line 1 ----> 1 qs.reports.full(qsData, 'SPY') File ~\OneDrive\Desktop\Denik komplet X 1.3 - zkouška\.xxx\Lib\site-packages\quantstats\reports.py:628, in full(returns, benchmark, rf, grayscale, figsize, display, compounded, periods_per_year, match_dates, **kwargs) 625 print("\n\n") 626 print("[Strategy Visualization]\nvia Matplotlib") --> 628 plots( 629 returns=returns, 630 benchmark=benchmark, 631 grayscale=grayscale, 632 figsize=figsize, 633 mode="full", 634 periods_per_year=periods_per_year, 635 prepare_returns=False, 636 benchmark_title=benchmark_title, 637 strategy_title=strategy_title, 638 active=active, 639 ) File ~\OneDrive\Desktop\Denik komplet X 1.3 - zkouška\.xxx\Lib\site-packages\quantstats\reports.py:1346, in plots(returns, benchmark, grayscale, figsize, mode, compounded, periods_per_year, prepare_returns, match_dates, **kwargs) 1340 if len(returns.columns) > 1: 1341 small_fig_size = ( 1342 figsize[0], 1343 figsize[0] * (0.33 * (len(returns.columns) * 0.66)), 1344 ) -> 1346 _plots.daily_returns( 1347 returns, 1348 benchmark, 1349 grayscale=grayscale, 1350 figsize=small_fig_size, 1351 show=True, 1352 ylabel='', 1353 prepare_returns=False, 1354 active=active, 1355 ) 1357 if benchmark is not None: 1358 _plots.rolling_beta( 1359 returns, 1360 benchmark, (...) 1367 prepare_returns=False, 1368 ) File ~\OneDrive\Desktop\Denik komplet X 1.3 - zkouška\.xxx\Lib\site-packages\quantstats\_plotting\wrappers.py:512, in daily_returns(returns, benchmark, grayscale, figsize, fontname, lw, log_scale, ylabel, subtitle, savefig, show, prepare_returns, active) 508 returns = returns - benchmark 510 plot_title = "Daily Active Returns" if active else "Daily Returns" --> 512 fig = _core.plot_timeseries( 513 returns, 514 None, 515 plot_title, 516 ylabel=ylabel, 517 match_volatility=False, 518 log_scale=log_scale, 519 resample="D", 520 compound=False, 521 lw=lw, 522 figsize=figsize, 523 fontname=fontname, 524 grayscale=grayscale, 525 subtitle=subtitle, 526 savefig=savefig, 527 show=show, 528 ) 529 if not show: 530 return fig File ~\OneDrive\Desktop\Denik komplet X 1.3 - zkouška\.xxx\Lib\site-packages\quantstats\_plotting\core.py:294, in plot_timeseries(returns, benchmark, title, compound, cumulative, fill, returns_label, hline, hlw, hlcolor, hllabel, percent, match_volatility, log_scale, resample, lw, figsize, ylabel, grayscale, fontname, subtitle, savefig, show) 292 if resample: 293 returns = returns.resample(resample) --> 294 returns = returns.last() if compound is True else returns.sum(axis=0) 295 if isinstance(benchmark, _pd.Series): 296 benchmark = benchmark.resample(resample) File ~\OneDrive\Desktop\Denik komplet X 1.3 - zkouška\.xxx\Lib\site-packages\pandas\core\resample.py:1183, in Resampler.sum(self, numeric_only, min_count, *args, **kwargs) 1146 """ 1147 Compute sum of group values. 1148 (...) 1180 Freq: MS, dtype: int64 1181 """ 1182 maybe_warn_args_and_kwargs(type(self), "sum", args, kwargs) -> 1183 nv.validate_resampler_func("sum", args, kwargs) 1184 return self._downsample("sum", numeric_only=numeric_only, min_count=min_count) File ~\OneDrive\Desktop\Denik komplet X 1.3 - zkouška\.xxx\Lib\site-packages\pandas\compat\numpy\function.py:376, in validate_resampler_func(method, args, kwargs) 374 if len(args) + len(kwargs) > 0: 375 if method in RESAMPLER_NUMPY_OPS: --> 376 raise UnsupportedFunctionCall( 377 "numpy operations are not valid with resample. " 378 f"Use .resample(...).{method}() instead" 379 ) 380 raise TypeError("too many arguments passed in") UnsupportedFunctionCall: numpy operations are not valid with resample. Use .resample(...).sum() instead
    • Super, že to zvládáte v TradeStation. Position sizing mají ve studii dělaný jako tradiční cílení na anualizovalizovanou volatilitu vypočítanou z podkladového aktiva. Nejprve se tedy počítá anualizovaná volatilita podkladu - jde o standardní odchylku za 15 dnů, která se násobí odmocninou z 252 (počet obchodních dnů v roce = anualizujeme). Počítají to na denních grafech: df_daily.set_index('Date', inplace=True) df_daily['ret'] = df_daily['Close'].pct_change() df_daily['daily_vol_15d'] = df_daily['ret'].rolling(window=15, min_periods=14).std() * np.sqrt(252) následně přemapují na intradenní úsečky, kde hodnotu ze sloupce daily_vol_15d máme v proměnné spx_vol a pozice se počítají zde:   leverage = min(target_vol / spx_vol, max_leverage) if not pd.isna(spx_vol) and spx_vol > 0 else max_leverage base_shares = round(previous_aum / open_price * leverage) if open_price > 0 else 0 leverage je minimální hodnota z target_vol (tu zadáváme jako proměnnou na vstupu) / spx_vol a max_leverage (tu také zadáváme na vstupu). počet shares pak počítají jako stav kapitálu/otevírací cena * leverage ATR se v této souvislosti podle mě tolik nepoužívá. V NDX SMO pracuji také s anualizovanou směrodatnou odchylkou.  
×
×
  • Vytvořit...