Квик + CиШарп + MаtLAb
Я знаю если вы читаете это, то вы трейдер, торгуете или торговали на бирже и с ростом вашего опыта и знаний, постепенно упирались в возможности платформы. Особенно это относиться с алготрейдеру. Надеюсь, что предложенное в этой статье и на видео решение, очень Вас порадует, возможно кого-то сразу, а кто то придет к этому со временем.
В предлагаемой связке Квик + CиШарп + MаtLAb практически нет ограничений.
Квик это великолепный поставщик данных, многие данные эксклюзивны, другие торговые платформы о них просто не знают и не транслируют. Знаю что многие ругают, а зря...
СиШарп — это язык программирования за которым стоит вся мощь фирмы Майкрософт и MATLAB.
MATLAB – один из мощнейших на сегодняшний день пакетов обработки данных. Возможности программы покрывают практически все области математики. Так, пользуясь матлабом, Вы сможете:
Производить всевозможные операции над матрицами, решать линейные уравнения, работать с векторами;
Вычислять корни многочленов любой степени, производить операции над многочленами, дифференцировать, экстраполировать и интерполировать кривые, строить графики любых функций;
Часто в тестировании используют методы бек/форвард тест, иногда устраивают стресс тест, на хаотичных котировках, но в данном примере хотелось показать как смоделировать ситуацию, когда в алгоритме все хорошо, но по той или иной причине нашу заявку не исполнили.
Доброго времени суток коллеги. Я редко пишу на форуме с 2012 года всего несколько статей (сообщений), надеюсь они были полезными и помогли Вам. Наступил новый 2020 год, время подарков…
Каждый трейдер со временем хочет автоматизировать свой труд, облегчить его — создать алгоритмический Грааль. Я очень рассчитываю, что мой подарок поможет многим в этом трудном, не легком, но очень и очень интересном пути.
Подарок – это видеоуроки по программированию торговых роботов на языке С# через торговую платформу Quik. Используется библиотека с открытым исходным кодом которая лежит на GitHub https://github.com/finsight/QUIKSharp
Сами уроки лежат на YouTube вот ссылка на плейлист https://clck.ru/LRGZB
Известно, для того чтобы написать торгового робота, необходимо получить доступу к серверу исторических данных. Такой доступ предоставляет библиотека Atentis, причем абсолютно бесплатно.
Библиотека Atentis (Atentis.Connection) — это программный интерфейс, предназначенный для интеграции внешних приложений с торговой системой «АЛОР-Трейд». Библиотека позволяет создавать приложения и подключать их непосредственно к серверу «АЛОР-Трейд», минуя клиентский терминал.
Atentis может использоваться для написания торговых роботов, интеграции существующих программных продуктов с системой «АЛОР-Трейд» или для разработки собственного торгового терминала.
Библиотека разработана с использованием языка C#, но не ограничивается лишь им. В настоящее время практически всем языкам программирования доступны для работы с библиотекой.
Учим C# зная basic
Цель данной темы: разместить в интернет программы
по каким возможно быстро выучить C# зная basic
Никому никогда ничего не рекомендую и всегда пишу только про себя
Программы созданы мной на основе моей главной программы
где запрограммирован мой алгоритм в нескольких вариантах
и теперь программирую на C# сразу без перевода из basic
? Почему C# & basic?
Потому что компилируемые и есть онлайн компиляторы
и компилятор C# включен в Windows 7 Framework
Программы проверены: работают и каждый может проверить
и лично я компилирую и стартую через простейший bat
Квадратное уравнение qb64
' quadratic equation QB64 DAV INPUT "INPUT A"; A INPUT "INPUT B"; B INPUT "INPUT C"; C D = B ^ 2 - 4 * A * C IF D < 0 THEN PRINT "D<0 ": END PRINT "OTBET: " PRINT "D ="; D X1 = (-B + SQR(D)) / (2 * A) X2 = (-B - SQR(D)) / (2 * A) PRINT "X1 ="; X1 PRINT "X2 ="; X2 ENDКвадратное уравнение C#
// quadratic equation C# DAV using System; using System.Text; using System.IO; namespace DAV { class Program { static void Main(string[] args) { Console.Write("INPUT A: "); long a = Convert.ToInt32(Console.ReadLine()); Console.Write("INPUT B: "); long b = Convert.ToInt32(Console.ReadLine()); Console.Write("INPUT C: "); long c = Convert.ToInt32(Console.ReadLine()); long d = (b * b - 4 * a * c); Console.WriteLine("OTBET: "); Console.Write("D = "); Console.WriteLine(d); var x1 = (-b + Math.Sqrt(d)) / (2 * a); var x2 = (-b - Math.Sqrt(d)) / (2 * a); Console.Write("X1 = "); Console.WriteLine(x1); Console.Write("X2 = "); Console.WriteLine(x2); Console.ReadKey(); } } }
'Угадай число RANDOMIZE TIMER s = INT(RND * 100) t = 0 10 PRINT: t = t + 1: INPUT "your variant"; a IF a < s THEN PRINT "need MORE": GOTO 10 IF a > s THEN PRINT "need less": GOTO 10 PRINT "win by"; t; "steps" END
//Угадай число using System; using System.Text; namespace DAV { class Program { static void Main(string[] args) { Random rand = new Random(); int s = rand.Next(100); int t = 0; dav: Console.WriteLine(); t++; Console.Write("your variant "); string d = Console.ReadLine(); int a = Convert.ToInt32(d); if(a > s) { Console.WriteLine("need less"); goto dav; } else if(a < s) { Console.WriteLine("need MORE"); goto dav; } Console.Write("win by "); Console.Write(t); Console.Write(" steps"); Console.ReadKey(); } } }
'Угадывает 1 из 1000000 RANDOMIZE TIMER t=0:h1=0:h2=10^6 c=INT(RND*h2) 'comp h=INT(RND*h2) 'human 10 t=t+1: PRINT t; c; h; IF h<c THEN PRINT "MORE": a=h: h=INT((h+h2)/2): h1=a: GOTO 10 IF h>c THEN PRINT "less": a=h: h=INT((h1+h)/2): h2=a: GOTO 10 PRINT "win by "; t; " steps" END