Избранное трейдера Сергей Урускин
У оптимистов сбываются мечты, у пессимистов-кошмары
Государство хочет повысить привлекательность инвестиций в фондовый рынок для частных инвесторов. Также ему необходимы длинные деньги. Для этих целей оно подготовило специальную программу налоговых вычетов — индивидуальный инвестиционный счет (ИИС). В этой статье рассмотрим ее подробности.
Цель введения индивидуальных инвестиционных счетов — повысить привлекательность вложений в фондовый рынок для частных инвесторов.
ИИС позволяет покупать и продавать финансовые инструменты самостоятельно либо при помощи управляющей компании (УК). В обоих случаях можно также получать вычеты по подоходному налогу. В зависимости от выбранного типа вычета это повышает доходность инвестиций либо приносит дополнительную фиксированную прибыль.
Торгую на Американском фондовом рынке с Interactive Brokers (IB) более трех лет на сегодняшний день используя разные стратегии. До недавнего времени все это было вручную, внутридневка и средний срок. Моя торговая жизнь изменилась, когда я, закончив курсы по созданию и алгоритмизации торговых систем с использованием платформы TSLab, решила выйти на Америку со своими роботами.
Вооружившись знаниями с курса по поиску рыночных закономерностей и отточив навык по нахождению смещения вероятности в своей торговой системе, я создала портфель из десятка роботов и горела нетерпением запустить их на своем боевом счету у Interactive Brokers. В процессе обучения на курсе я проходила практику на Российском срочном рынке в течение нескольких месяцев, поэтому сложности как настроить и запустить агентов в платформе TSLab не возникало. Меня интересовало другое- как сконнектировать TSLab с платформой брокера Trader Workstation (TWS), так как она не является особо user-friendly, достаточно громоздка и не совсем интуитивно понятна, а для алготрейдинга нужно только торговать через эту платформу. Вот тут-то и оказалось, что кроме краткого руководства по подключению TSLab к брокеру IB особо ничего и нет. Перелопатив сотни страниц интернета, русско- и англоязычных блогов и сайтов, я нашла часть необходимой информациии, а недостающая часть была получена методом тыка, путем проб и ошибок в процессе запуска и работы на реале.
Settings= { Name = "Piton", N = 100, legend = "price2", line = { { Name = "Sint", Color = RGB(0, 132, 0), Type = TYPE_LINE, Width = 1 } } } function Init() return 1 end Candles = {}; function OnCalculate(index) local numCandles = getNumCandles(Settings.legend); if index <= Settings.N or numCandles <= Settings.N then return nil; end Candles, n, _ = getCandlesByIndex(Settings.legend, 0, index - Settings.N, Settings.N); if n ~= Settings.N then return nil; end -- Предварительный расчет sum1, sum2, sum3 = advancePaynemt(index); -- расчет коэффициента корреляции Пирсона r = sum3/math.sqrt(sum1*sum2); return r; end -- Предварительный расчет ---------------------------------------- function advancePaynemt(index) local sum1 = 0; local sum2 = 0; local sum3 = 0; local j = 0; -- Вычислить среднее арифметическое for i=index - Settings.N + 1, index, 1 do sum1 = sum1 + C(i); sum2 = sum2 + Candles[j].close; j = j + 1; end aver1 = sum1/Settings.N; aver2 = sum2/Settings.N; -- Вычислить сумму квадратов отклонений sum1 = 0; sum2 = 0; j = 0; for i=index - Settings.N+1, index, 1 do sum1 = sum1 + math.pow(C(i) - aver1, 2); sum2 = sum2 + math.pow(Candles[j].close - aver2, 2); j = j + 1; end -- Вычислить сумму произведений разности j=0; for i=index - Settings.N+1, index, 1 do sum3 = sum3 + (aver1 - C(i))*(aver2 - Candles[j].close); j = j + 1; end return sum1, sum2, sum3; endКак запустить и настроить: