АЛГОТРЕЙДИНГ: НОВЫЕ ГОРИЗОНТЫ
ДЛЯ ВЫПУСКНИКОВ РОССИЙСКИХ ВУЗОВ
Высокочастотная торговля — технически насыщенная дисциплина; она привлекает самых лучших кандидатов из различных областей науки и техники — математики, физики, информатики и электронной техники.
Для кого это?
Высокочастотная торговля — это, в основном, игра на выдержку и ожидание (Tick-To-Trade), что означает, быстроту реагирования вашей стратегии на поступающую рыночную информацию. Ультрасовременные компании, на самом деле, уже имеют дело с единицами микросекунд или даже суб-микросекундной задержкой (ультра-высокочастотная торговля) с новейшим сложным и настраиваемым оборудованием.
Высокочастотная торговля - очень конкурентоспособная отрасль в том смысле, что вы должны непрерывно развивать вашу систему. И не смотря на то, что большую часть времени она приносит прибыль, бывает досадно, когда многие месяцы напряженной работы и исследований идут насмарку, если биржа внезапно меняет свою архитектуру, вводит новую законодательную базу или ваш конкурент сможет достичь большей скорости, чем вы.
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];
После трех междупраздничных убыточных дней торгов (с учетом 29-го апреля 4-х дней подряд), по закрытию дня 6 мая у меня включился «фильтр пилы» в RI, Si, SBER и GAZP. Пока этот фильтр включен, рассчитывать на большие прибыли (как и большие убытки) в системах на этих инструментах не приходится. И если доля моих систем в RI в моем портфеле невелика: 12% от доли Автоследования ИК Форум, т. е. 4%, то доли GAZP+SBER и Si составляют по 33% или 58% от рисковой части портфеля (62% с учетом RI). В GAZP и Si этот «фильтр» выключился только по закрытию торгов 18 мая (в Si лучше б он этого не делал :( ). Зато 20 мая по закрытию торгов «фильтр пилы» включился в GMKN, восстановив статус-кво на споте. По RI и SBER фильтр «продержался» до закрытия дня 26-го мая.
И если в Si включение «фильтра пилы» даже чуть ухудшило месячный результат, то в остальных инструментах он уменьшил убытки в 2-2,5 раза. Впрочем, как я уже написал выше, на результате Автоследования ИК Форум это отразилось слабо, так как в этом портфеле у меня стоят только мои системы на RI, в доле указанной выше. Собственно последнему портфелю и «обязано» небольшое увеличение просадки моего счета. Впрочем, пока она по прежнему далека от расчетных 15%.
Многие трейдеры на Московской бирже хотели бы автоматизировать свои торговые алгоритмы, но не знают с чего начать. А ведь давно есть проработанные решения, которые максимально облегчают первые шаги в алготрейдинге.
Язык MQL5 изначально поддерживает все торговые возможности платформы MetaTrader 5 — в нем множество торговых функций для работы с ордерами, позициями и торговыми запросами. При этом не имеет значения, на каком рынке вы торгуете - фьючерсы, акции, опционы и т.д.
Средствами MQL5 вы можете создать торговый запрос и отослать его на сервер с помощью функций OrderSend() или OrderSendAsync(), получить результат его выполнения, просмотреть торговую историю, узнать спецификацию контракта для инструмента, обработать