Избранное трейдера Александр
Рекомендую к прочтению первых две части:
3-НДФЛ почему так важно декларировать убытки (часть 1)
3-НДФЛ почему так важно декларировать убытки (часть 2)
Сегодня 3-я часть, в которой пройдемся по законодательной базе.
И так, приступим.
«Налоговый кодекс Российской Федерации (часть вторая)» от 05.08.2000 N 117-ФЗ (ред. от 27.12.2019, с изм. от 28.01.2020) (с изм. и доп., вступ. в силу с 28.01.2020)
НК РФ Статья 214.1. Особенности определения налоговой базы, исчисления и уплаты налога на доходы по операциям с ценными бумагами и по операциям с производными финансовыми инструментами
7. В целях настоящей статьи доходами по операциям с ценными бумагами признаются доходы от реализации (погашения) ценных бумаг, полученные в налоговом периоде.
(в ред. Федерального закона от 28.12.2010 N 395-ФЗ)
(см. текст в предыдущей редакции)
Доходы в виде процента (купона, дисконта), полученные в налоговом периоде по ценным бумагам (за исключением доходов в виде процента (купона, дисконта), полученных по обращающимся облигациям российских организаций, номинированным в рублях и эмитированным после 1 января 2017 года), включаются в доходы по операциям с ценными бумагами, если иное не предусмотрено настоящей статьей.

using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using System.Text;
using System.Timers;
using System.Threading;
using XlDde;namespace ConsoleApplication2
{
class Program
{
const string service = «myDDE»;
const string candleSPOT = «SPOT»;
static void Main(string[] args)
{
using (XlDdeServer server = new XlDdeServer(service))
{
server.AddChannel(candleSPOT, new SPOTChannel());
server.Register();Console.WriteLine(«DDE server ready. Press Enter to exit.\n\n»);
Console.ReadLine();
}
}
}
// **********************************************************************
// * Классы DDE каналов с обработчиками данных *
// **********************************************************************
class SPOTChannel: XlDdeChannel
{
//static int time2 = 1000;
static int em = 7;
static int m = 1200;
static int[] NM = new int[em];
static int NMM = 0;
static int LastMinute = 0;
static int mm = 1638400;
static double[] Price_trade = new double[mm];
string[] EM_trade = new string[mm];
static int[] Time_trade_I = new int[mm];
static int[] Volume_trade = new int[mm];
static int[,] Time = new int[em,m];
static double[,] O = new double[em,m];
static double[,] H = new double[em,m];
static double[,] L = new double[em,m];
static double[,] C = new double[em,m];
static double[,] V = new double[em,m];
protected override void ProcessTable(XlTable xt)
{
//int time3 = 1000;
int[] nach = new int[em];
int nach1 = 0;
int i = 0;
int j = 0;
int s = 0;
int curHour = 0;
int curMin = 0;
int curDay = 0;
int curSec = 0;
int curDay_1 = 0;
string name;
string[] bf;
string[] EM = new string[em];
DateTime moment;
string[] Time_trade = new string[mm];
Здесь приведен перевод статьи www.quantinsti.com/blog/algorithmic-trading-system-architecture/
Алгоритмическая автоматизированная торговля или алгоритмическая торговля в течение нескольких последних лет находится в центре внимания торгового мира. Доля объемов, относящихся к этой форме торговли, растет все это время. В результате, она стала высоко конкурентным рынком, в значительной степени зависящим от технологий. Далее, базовая архитектура претерпела значительные изменения за последнее десятилетие и этот процесс продолжается. Сегодня необходимо внедрять технологические новшества для того, чтобы конкурировать в мире алгоритмической торговли, что делает его местом большой концентрации достижений в области компьютерных и сетевых технологий.
Традиционная архитектура
Любая торговая система — концептуально — это не более, чем вычислительный блок, который взаимодействует с
У нас появилась видеозапись лекции Сергея Трошина и Антона Антонова в МГУ, о которой мы писали на прошлой неделе. Напомним, 19 марта наши коллеги, директор по инфраструктуре и руководитель группы операционной поддержки, провели лекцию для студентов МГУ и рассказали об алгоритмической торговле.
Впрочем, смотрите сами:
Слайды презентации для вашего удобства мы выложили на Slideshare.
Исходники примера можно скачать здесь: https://bitbucket.org/SergeyTroshin/exante-fix-sample
Задача о блуждании пьяницы возле бара — задача смешная и удобная для иллюстрации такой важной математической абстракции как случайное блуждание точки по прямой. Но с давних времён движение пьяных волновало людей меньше, чем движение капиталов. Именно финансовые задачи были исторически одними из первых в теории вероятностей. Например, в ещё 1650-х годах знаменитые учёные Блез Паскаль и Христиан Гюйгенс начали исследовать так называемую задачу о разорении игроков. Она имеет много разных формулировок, но мы сосредоточимся на одной из них — особенно парадоксальной.
Игрок покупает у казино M фишек, каждая из которых стоит доллар (деньги, заплаченные за фишки — его плата за участие в игре). Раз в минуту крупье бросает монету. Когда она падает решкой, он забирает одну из фишек игрока. Когда орлом — даёт игроку дополнительную фишку. Число фишек у казино не ограничено, так что разориться казино не может. Зато игрок — может. Игра идёт до тех пор, пока игрок не потратит все фишки. Таким образом, выиграть деньги он не может. Это игра “в одни ворота”. Но пока она идёт, игрок имеет право бесплатно пить, есть, общаться с другими игроками и как-то иначе развлекаться за счёт казино (ему не обязательно присутствовать рядом с крупье, который всё делает честно).
Решил написать цикл статей про алгоритмическую торговлю с моего взгляда и опыта, как я это вижу и применяю, т.е. буду описывать мой субъективный взгляд ;) Начну с самых простых вещей и буду двигаться к более сложным…
P.S. Описание содержит (или отталкивается от) практику торговли фьючерсами на CME
Исходные данные:
Все, что у нас есть это исторические данные, даже наш опыт это тоже «исторические данные» в известном смысле, и будущего не знает никто. Поэтому работаем только от истории. Поступающие в реальном времени данные, тут же становится историческими т.к. уже случились.
Наша задача – найти закономерности на имеющейся истории, дающие статистическое преимущество и эксплуатируя их получать профит. Но сами «закономерности» должны обладать определенными свойствами. Например, любая закономерность должна область определенной степенью «стационарности» (стабильности), что бы она могла дать нам себя поэксплуатировать, (об этом я расскажу в будущих статьях). Еще одно из таких свойств – техническая возможность ее эксплуатировать, но это больше касается HFT, а этот цикл не о высокочастотной торговле.
Из опыта первой статьи вы наверное вспомните, что я предложил под каждый блок сообщения делать класс и на основе этих классов строить сообщение. Переспав с этой идеей, сегодня за кружкой чая, я решил остановиться на этой идее. А именно: Если говорить образно. То, чтобы отправить сообщение на сервер, нам просто нужно сформировать нужную строку со всеми данными и отправить ее на биржу. Ну например:
8=FIX.4.4;9=78;35=A;49=FG;56=tgFhcfx901U05;34=1;52=20160212-11:42:51.812;98=0;108=3000;141=Y;10=047;

Если быть внимательным, то мы увидим, что кол-во символов в строке у нас 100, а в заголовке сообщения мы передаем, что 78 (9 = 78). По правилам протокола FIX, длину сообщения нужно считать без учета концовки и первых двух полей заголовка. А именно:

Зеленым я отметил именно разделители. Как вы уже видите, это просто в шестнадцатеричном виде код 01. То есть, в нашу строку в виде разделителей, нужно вставлять код 01. Также я отметил для себя последовательность полей в сообщении. Почему то в другом порядке у меня вызывало ошибки (возможно тут я не прав)
Ну и контрольная сумма. Контрольная сумма считается над всем сообщением, за исключением концовки. То есть в расчет берется только заголовок и само сообщение. Для этого, мы переводим каждый символ в его Ascii код и вычисляем их сумму. Полученную сумму делим по модулю 256. Это и будет контрольной суммой сообщения. При этом, значение должно быть трехзначным. Если мы получаем 2 знака, то подставляем 0 слева (например, если контрольная сумма = 68, то должны передать значении 068).
Как видим, первый метод строит нужную строку из полей. Обратите внимание, там присутствует наш разделитель в виде спец символа \u0001. Второй метод вычисляет размер заголовка (чтобы потом высчитывать размер сообщения). Надо обратить внимание, что при передачи времени, миллисекунды должны указываться в трехзначном формате (даже если миллисекунды = 52, то передаем 052). Следующие классы строятся по аналогии.

//Получаем ip сервера
IPAddress ipAddr = IPAddress.Parse(server);
IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, port);
//Создаем заголовк
HeaderMessage msHeader = new HeaderMessage
{
BeginString = «FIX.4.4»,
MsgType = «A», //Тип сообщения на установку сессии
SenderCompID = "",
TargetCompID = «FG»,
MsgSeqNum = 1
};
//Создаем сообщение на подключение onLogon
LogonMessage msLogon = new LogonMessage
{
EncryptMethod = 0,
HeartBtInt = 3000,
ResetSeqNumFlag = true
};//Вычисляем длину сообщения
msHeader.BodyLength = msHeader.GetHeaderSize() + msLogon.GetMessageSize();
//Создаем концовку сообщения
TrailerMessage msTrailer = new TrailerMessage(msHeader.ToString() + msLogon.ToString());//Формируем полное готовое сообщение
string fullMessage = msHeader.ToString() + msLogon.ToString() + msTrailer.ToString();
Console.WriteLine(«Сообщение для отправки {0}»,fullMessage);//Создаем сокет для подключения
sSender = new Socket(ipAddr.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
//Подключаемся
sSender.Connect(ipEndPoint);
Console.WriteLine(«Сокет соединился с {0} », sSender.RemoteEndPoint.ToString());
byte[] msg = Encoding.UTF8.GetBytes(fullMessage);
//Отправляем сообщение
int bytesSent = sSender.Send(msg);
Console.WriteLine(«Отправил {0} байт», bytesSent.ToString());
//Получаем ответ от сервера
byte[] bytes = new byte[1024];
int bytesRec = 0;
bytesRec = sSender.Receive(bytes);
Console.WriteLine(«Ответ от сервера: {0}», Encoding.UTF8.GetString(bytes, 0, bytesRec));




Представляю вашему вниманию программу для вывода значения свечей и индикаторов из Квик в Эксель. Она позволит за несколько минут настроить экспорт, БЕЗ НАПИСАНИЯ КОДА И РЕДАКТИРОВАНИЯ СКРИПТОВ.
Программа позволит алгоритмизироваться огромному количеству людей.
И это статья/инструкция о том, как ей пользоваться.
План:
1) Как создать скрипт для Quik при помощи TableFromQuikToExcel;
2) Как запустить скрипт и вывести таблицу Quik;
3) Как импортировать данные свечей и индикаторов в Excel;
4) Заключение
1 Как создать скрипт для Quik при помощи TableFromQuikToExcel