Избранное трейдера Александр
Рекомендую к прочтению первых две части:
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, длину сообщения нужно считать без учета концовки и первых двух полей заголовка. А именно:
С длиной сообщения разобрались. Теперь про разделитель. Пока в моем скрине это ";". В документациях западных написано что это символ SOH. Чтобы однозначно ответить на этот вопрос, я запустил прилагаемого клиента биржи и сниффером стал перехватывать сообщения между клиентом и биржей. Кстати, программа ведет логи, и их общение выглядит так (зеленое — передача запроса на биржу, красное — ответ от биржи)://Получаем 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