Interactive Brokers

  1. Аватар Sergey Solod
    InterActiveBrokers, дивиденды: готовим данные для налоговой декларации 3НДФЛ
    Осталось всего несколько дней, чтобы подать налоговую декларацию.
    Для тех счастливчиков, кто получал дивиденды через InterActiveBrokers и немного знаком с Python, выкладываю несколько строк кода, который приведет (почти) данные из Activity-Annual этого брокера в вид, дружелюбный для переноса в российскую декларацию.
    # -*- coding: utf-16 -*-
    import os
    import pandas as pd
    import xml.etree.ElementTree as et
    import lxml.html as lh
    import numpy as np
    #%%
    path_curencies_rates = os.path.join('..//', 'Market_Data')# folder where data is kept
    
    # RUB against USD and EUR
    rub_USD_2020 = 'USD_RUB_exchange_rate_20200101-20201231.xlsx'
    rub_EUR_2020 = 'EUR_RUB_exchange_rate_20200101-20201231.xlsx'
    # dataframe where indicies are dates of 2020 and columns are rates RUB_USD and RUB_EUR
    # all dates of 2020
    dates = pd.date_range(start='1/1/2020', end='12/31/2020')
    rub_currencies_rates = pd.DataFrame(index=dates, columns=['EUR', 'USD'])
    # USD
    df_rub_USD_CBRF = pd.read_excel(os.path.join(path_curencies_rates, rub_USD_2020), index_col=1)
    df_rub_USD_CBRF = df_rub_USD_CBRF[['curs']]
    # EUR
    df_rub_EUR_CBRF = pd.read_excel(os.path.join(path_curencies_rates, rub_EUR_2020), index_col=1)
    df_rub_EUR_CBRF = df_rub_EUR_CBRF[['curs']]
    
    rub_currencies_rates.USD = df_rub_USD_CBRF.curs
    rub_currencies_rates.EUR = df_rub_EUR_CBRF.curs
    
    # fill empty dates
    rub_currencies_rates.EUR = pd.DataFrame.ffill(rub_currencies_rates.EUR)
    rub_currencies_rates.USD = pd.DataFrame.ffill(rub_currencies_rates.USD)
    <br /><br />#%%
    annual_activity_statement = 'Activity-Annual_2020_2020.htm' 
    table_name = 'Dividends' # table that contains dividends only
    report_full = lh.parse(annual_activity_statement)
    parent = report_full.xpath(".//div[contains(text(), '{}')]".format(table_name))[0].getnext()
    element = parent.getchildren()[0].getchildren()[0]
    html = et.tostring(element)
    div_df = pd.read_html(html)[0]
    div_df.Amount = pd.to_numeric(div_df.Amount, errors='coerce')
    div_df.Date = pd.to_datetime(div_df.Date, errors='coerce').dt.date
    div_df = div_df.dropna(subset=['Date'])
    div_df = div_df[div_df.Amount.notnull()]
    
    # If nominated in EUR, taxation was NOT applyed 
    div_df['Currency'] = np.where(div_df.Description.str.contains('EUR'), 'EUR', 'USD')
    
    div_df['Taxes_paid'] = np.where(div_df.Description.str.contains('EUR'), 0, (div_df.Amount*0.1).round(decimals=2))
    
    eur_rub_dict = rub_currencies_rates.EUR.to_dict()
    usd_rub_dict = rub_currencies_rates.USD.to_dict()
    # eur_rub_dict
    div_EUR = div_df[div_df.Currency=='EUR']
    div_EUR['rate_RUB'] = div_EUR['Date'].map(eur_rub_dict)
    
    div_USD = div_df[div_df.Currency=='USD']
    div_USD['rate_RUB'] = 0
    div_USD['rate_RUB'] = div_USD['Date'].map(usd_rub_dict)#rub_currencies_rates.USD
    
    div_total = pd.concat([div_EUR, div_USD], axis=0)
    
    div_total['RUS_tax'] = div_total.Amount * 0.13
    div_total['Taxes_TO_pay'] = ((div_total.RUS_tax - div_total.Taxes_paid) * div_total.rate_RUB).round(decimals=2)
    
    div_total.Taxes_TO_pay.sum().round(decimals=1)
    
    div_total.Description = div_total.Description.str.split(' Cash').str[0]
    
    for i, d in div_total.Date.iteritems():
        ds = d.strftime('%d.%m.%Y')
        div_total.at[i, 'Date'] = ds
    
    #%%
    # To fill in field `'ОКСМ'` of Rus Tax Form ISIN will be used, 
    # it consists of two alphabetic characters, which are the ISO 3166-1 alpha-2 code for the issuing country. 
    # DataBase is `'country_ISO_codes.csv'`
    country_codes = pd.read_csv('country_ISO_codes.csv')
    country_codes = dict(zip(country_codes['alpha-2'], country_codes['country-code']))
    
    def assign_country_code(name, country_codes):
        '''
        Returns a country numeric ICO code.
        Two first symbols of ISIN represent Country ISO-3166 Alpha Code.
        Parameters:
            name : string, field Description from IBKR report;
            country_codes : dictionary, keys are ISO Alpha Codes, values are corresponding ISO Num Codes.
            
        '''
        if '(' and ')' in name:
            start = name.find('(') + 1
            end = name.find(')')
            isin = name[start : end]
            country_Alpha_code = isin[0:2]
            try:
                country_Num_code = country_codes[country_Alpha_code]
            except Exception as e:
                country_Num_code = name
            
            return country_Num_code
        
        return name
    
    div_total['Country_Num_Code'] = div_total['Description'].apply(assign_country_code, country_codes=country_codes)
    
    #%%
    # get all attributes of Rus Tax Form as a list
    path_to_form = 'Tax_form_2020_draft_20210419.xml'
    tree = et.parse(path_to_form)
    root = tree.getroot()
    for el in root.iter('ДоходИстИно'):
        for child in el[0:1]:
            attributes_Rus_Tax_Form = list(child.attrib.keys())
    
    # DataFrame Rus Tax Form with indices from div_total
    df_rus_tax_form = pd.DataFrame(index=div_total.index, columns=attributes_Rus_Tax_Form)
    # fill all fields in with data from corresponing columns
    # do some calculations as well
    df_rus_tax_form['ОКСМ'] = div_total.Country_Num_Code
    df_rus_tax_form['НаимИстДох'] = div_total.Description
    df_rus_tax_form['КодВалют'] = np.where(div_total.Currency=='EUR', '978', '840')
    df_rus_tax_form['КодВидДох'] = '22' # check it out
    df_rus_tax_form['КурсВалютДох'] = div_total.rate_RUB
    df_rus_tax_form['ДатаДох'] = div_total.Date
    df_rus_tax_form['ДатаУплНал'] = div_total.Date
    df_rus_tax_form['ДоходИноВал'] = div_total.Amount
    df_rus_tax_form['ДоходИноРуб'] = (df_rus_tax_form['ДоходИноВал'] * df_rus_tax_form['КурсВалютДох']).round(decimals=2)
    df_rus_tax_form['КурсВалютНал'] = div_total.rate_RUB
    df_rus_tax_form['НалУплИноВал'] = div_total.Taxes_paid
    df_rus_tax_form['НалУплИноРуб'] = (df_rus_tax_form['НалУплИноВал'] * df_rus_tax_form['КурсВалютДох']).round(decimals=2)
    df_rus_tax_form['НалЗачРФОбщ'] = (df_rus_tax_form['ДоходИноРуб'] * 0.13).astype(int)
    df_rus_tax_form['НалогЗачРФОбщ'] = df_rus_tax_form['НалУплИноРуб'].astype(int)
    
    # all data in a xml-object should be str
    form_to_export = df_rus_tax_form.applymap(str)
    
    # create a root
    income_abroad = et.Element('ДоходИстИно')
    tree = et.ElementTree(income_abroad)
    
    # add children with a relevant tag 
    # each child has attributes that is a dict representing a row from DataFrame
    for i, r in form_to_export.iterrows():
        d = r.to_dict()
        et.SubElement(income_abroad, tag='РасчДохНалИно', attrib=d)    
    
    tree.write('rus_tax_form_experiment.xml', encoding='WINDOWS-1251')
    
    
    
    Файлы 
    USD_RUB_exchange_rate_20200101-20201231.xlsx
    EUR_RUB_exchange_rate_20200101-20201231.xlsx
    можно скачать с сайта ЦБ.
    Tax_form_2020_draft_20210419.xml — моя 3-НДФЛ, сохраненная из налогового личного кабинета. 
    country_ISO_codes.csv — коды стран, файлом могу поделиться.

    За критику и правки буду благодарен.

    Авто-репост. Читать в блоге >>>
  2. Аватар Svetochka 88888
    Будет ли действовать трехлетняя налоговая льгота на владение ц.б. у иностранного брокера? Interactive Brokers
    Приобретала бумаги иностранных эмитентов у российского брокера три года назад, но в 2020 году перевела их в  Interactive Brokers. Подскажите, будет ли в данном случае действовать трехлетняя льгота на владение ценными бумагами, если я продам их в IB?  

    Авто-репост. Читать в блоге >>>
  3. Аватар igor12
    Российские брокерские компании прекратили работать с американской Interactive Brokers по ее требованию.
    Дождались...

    www.rbc.ru/finances/23/04/2021/60829e429a794703ffb211d8?from=from_main_1

    Авто-репост. Читать в блоге >>>
  4. Аватар Виктор Бавин
    Актуальное Interactive Brokers

    Какие плечи  (Леверидж)при торговле акциями в США.
    Три типа аккаунта и их  условия.

     

    3 типа аккаунта:

    1.Reg-T маржин

    2. портфолио маржин

    3. Простой КЕШ-аккаунт 

     

    Леверидж -  они же плечи (далее по тексту)

    Информация по акциям (Плечи и леверидж), как там, что происходит.

     Далее, механизмы и примеры.

     

    Акции, плечи — Леверидж. В  Interactive Brokers  — есть два типа аккаунтов для МАРЖИ.

    Это Reg-T маржин и портфолио маржин.

    ------------------------------------------------------------------------------------------------------------------------------------------

    Reg-T маржин —  это маржа дает аккаунту  плечи от 1-4 го.

    Стандартилизовано.

    В течение дня — плечо на акции от 1- 4х. Это – тип Reg-T маржин.

     

    Пример:

    Если у Вас есть $ 1 000 000, то вы можете купить акции на $ 4 000 000.



    Авто-репост. Читать в блоге >>>
  5. Аватар Игрь
    Клиентов российских брокеров могут отрезать от рынка США
    Ряд крупных российских брокеров в ближайшее время могут перестать предоставлять клиентам прямой доступ к торговле на американском рынке.

    Как сообщает «Банкста», один из крупнейших интернет-брокеров США Interactive Brokers решил больше не работать с российскими брокерскими компаниями.

    IB закрыл счета субброкерам из РФ после того, как Россия попала в список стран с определенным уровнем риска, где для брокеров невозможна услуга счета с неполным раскрытием информации о конечном клиенте (так называемая четвертая группа ND), пояснил finanz источник, знакомый с ситуацией источник.

    На войне как на войне. Возможно только дальнейшее обострение и до окончательной победы над Америкой.



    Авто-репост. Читать в блоге >>>
  6. Аватар CashKing.Ru
    Про Interactive Brokers (Риски для клиентов из РФ)
    Держать толпу танков и зениток в лесу у границы немалых денег стоит, чем дольше все там стоит, тем сильнее хочется воспользоваться. Любой false или не совсем flag, и понесется кавалерия до Приднестровья. Брокер нахер всех тогда выпнет. Есть тут препперы под это дело, кто уже план Б придумал, кроме Спб биржи, которую тоже могут легко обнулить и хер вообще потом что продашь! Все это касается и всяких Ninja Trader Brokerage, AMP Futures и т.д.

    Про Interactive Brokers (Риски для клиентов из РФ)




    Авто-репост. Читать в блоге >>>
  7. Аватар Сергей Иванов

    Сергей Иванов, не знаю, сочуствую вам, гайки закрутили знатно всем россиянам

    Dmitrii Oleinik, спасибо!
  8. Аватар Dmitrii Oleinik
    Сергей Иванов, так вы напишите больше доход и тд, они не проверяют

    Dmitrii Oleinik, у меня проверили. Да я и указал в анкете, что < 40k. Вопрос, что теперь делать. Может согласиться на cash и потом перейти на margin? В инете пишут, что есть upgrade to RegT margin account.

    Сергей Иванов, не знаю, сочуствую вам, гайки закрутили знатно всем россиянам
  9. Аватар Сергей Иванов
    Сергей Иванов, так вы напишите больше доход и тд, они не проверяют

    Dmitrii Oleinik, у меня проверили. Да я и указал в анкете, что < 40k. Вопрос, что теперь делать. Может согласиться на cash и потом перейти на margin? В инете пишут, что есть upgrade to RegT margin account.
  10. Аватар Dmitrii Oleinik
    Не согласны, потому что по деньгам не тяну. Просто написали net income of at least USD 40,000 USD. Я сразу разрешения попросил.
    А если я соглашусь на cash/акции, что нужно, чтобы потом перейти на margin счёт с фьючерсами и опционами? Доторговать до нужного годового дохода?

    Сергей Иванов, так вы напишите больше доход и тд, они не проверяют
  11. Аватар Dmitrii Oleinik
    Не согласны, потому что по деньгам не тяну. Просто написали net income of at least USD 40,000 USD. Я сразу разрешения попросил.
    А если я соглашусь на cash/акции, что нужно, чтобы потом перейти на margin счёт с фьючерсами и опционами? Доторговать до нужного годового дохода?

    Сергей Иванов, нет, это два разных счета, в cash счете там нельзя плечо использовать и расчет 3 дня
  12. Аватар Сергей Иванов
    Не согласны, потому что по деньгам не тяну. Просто написали net income of at least USD 40,000 USD. Я сразу разрешения попросил.
    А если я соглашусь на cash/акции, что нужно, чтобы потом перейти на margin счёт с фьючерсами и опционами? Доторговать до нужного годового дохода?
  13. Аватар Dmitrii Oleinik
    Они согласны открыть, но только cash счёт и акции. Хочется margin счёт с фьючерсами и опционами.

    Сергей Иванов, вы спросите почему они не согласны открывать margin счет?, и на фьючерсы и опционы нужно заправшивать торговые разрешения но это потом, нужно иметь определенное количество сделок в году.
  14. Аватар Сергей Иванов
    Они согласны открыть, но только cash счёт и акции. Хочется margin счёт с фьючерсами и опционами.
  15. Аватар Dmitrii Oleinik
    Подскажите пожалуйста. Пытаюсь открыть счёт в IB. Попросил margin счёт с торговлей фьючерсами и опционами. Деньги пока не переводил, но планировал около $30-40k. Все данные указывал честно, тем более, что потом попросили подтверждение по имуществу/доходу. По net liquid worth $100k прохожу, по $40k годового чистого дохода немного недотягиваю.

    Предлагают только cash счёт и акции. Что, margin счёт с фьючерсами и опционами теперь совсем никак? Или есть варианты?

    Спасибо.

    Сергей Иванов, Что ответили? вам открыли счет или запросили чтото?
  16. Аватар Сергей Иванов
    Подскажите пожалуйста. Пытаюсь открыть счёт в IB. Попросил margin счёт с торговлей фьючерсами и опционами. Деньги пока не переводил, но планировал около $30-40k. Все данные указывал честно, тем более, что потом попросили подтверждение по имуществу/доходу. По net liquid worth $100k прохожу, по $40k годового чистого дохода немного недотягиваю.

    Предлагают только cash счёт и акции. Что, margin счёт с фьючерсами и опционами теперь совсем никак? Или есть варианты?

    Спасибо.
  17. Аватар Дмитрий
    закрыли счет в ib
    Закрыли счет в ib, в связи с подданством рф
    тут кто то покупал карибский, легко ли с ним открыть счет в британском банке онлайн?

    Авто-репост. Читать в блоге >>>
  18. Аватар John Smith
    Citigroup сматывает удочки. Что будет с пополнением счета в IB через них?
    Тут Citigroup собралась свалить с нашего рынка.
    Citigroup сматывает удочки. Что будет с пополнением счета в IB через них?


    А ведь через них работает халявное пополнение счета в IB. И что мы будем теперь делать?

    Авто-репост. Читать в блоге >>>
  19. Аватар AlexGood
    Какие рос. фин. инструменты позволяет торговать IB?
    Друзья,
    чем мэйд ин раша позволяет торговать IB, как с фьючерсами/опционами на РТС, фьючами на МосБиржу, Cбер, ГП, Лукойл, cамими основными рос. акциями, USDRUB спот и т.д.? 

    Авто-репост. Читать в блоге >>>
  20. Аватар Znanie Finans
    Зачем мне счет у interactive brokers. Плюсы и минусы зарубежного брокера
    Это видео для тех, кто только собирается открыть счет у американского брокера interactive brokers. Поговорим о плюсах и минусах инвестиций через зарубежного брокера. Расскажу с какой суммы лучше открывать счет у interactive brokers. Поделюсь с Вами своим опытом и расскажу, почему я держу основную часть капитала у IB


    Авто-репост. Читать в блоге >>>
  21. Аватар Olla
    Пришло электр. письмо, что счет открыт. Логинюсь в аккаунт, написано, что нет допуска к торговле и рыночным данным. Что это такое и как изменить?
  22. Аватар vtlmrtnv
    как же тут регитьсяю столько всего надои доход и знания и одобрения ждать и пополнить сразу. 7 кругов ада

    Tatyana Zubchenko,
    Посмотрите видео Степана Ермакова или Знаниефинанс по открытию счета в IB. Там все досконально показано. Пополнять счет сразу необязательно. Я потом это делал. Кстати по пополнению, тоже есть хорошое видео от Знаниефинанс.
  23. Аватар Tatyana Zubchenko
    как же тут регитьсяю столько всего надои доход и знания и одобрения ждать и пополнить сразу. 7 кругов ада
  24. Аватар pasha sadass
    Куда пропало приложение IBKR из ЭплСтора?
    Никто не знает?

    Выведите на главную, пожалуйста.
    Что-то тут не так.

    Благодарю. Моё почтение

    Авто-репост. Читать в блоге >>>

    John_Travel, смените регион в эп сторе на америку, скачайте приложение и потом верните на россию.
  25. Аватар pasha sadass
    Здравствуйте, подал отчет о движ ден средств в налоговую по счету интерактив брокерс, налоговая просит БИК или Swift. Что делать? где его взять?)внизу отчета есть сноска что свифт или бик нужен если счет открыт в банке.