Избранное трейдера zam

по

Quik->Lua->C++DLL. Опыт разработки и немного кода.

    • 04 февраля 2020, 13:54
    • |
    • 3Qu
  • Еще

Начал вчера работы по реализации "Брошенной стратегии". Хорошо когда есть наработки: взял готовые куски кода, немного доработал под новые нужды, соединил их вместе и уже все готово — почти все необходимые данные передаются в DLL, расставляются по местам и готовы к использованию. С этим почти закончено, остальное будет делаться по ходу пьесы, и по мере необходимости.

С передачей данных закончено, а стратегия даже не начиналась. Система новая и архитектора системы пока не ясна, есть несколько вариантов, выбрать из которых не так просто.
Пока суд, да дело, решил написать о передаче данных из Quik в С++DLL.
О том как сделать простую С++DLL для работы с Quik-Lua написано на сайте https://quikluacsharp.ru  здесь и о передаче данных из Lua — здесь и в других материалах сайта. Наверняка многие из вас все это видели и знают, а некоторые это даже применяют. Я это все не использую, не очень разбирался, но, тем не менее, сам сайт



( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

Рисование графиков в С++

Однажды мне нужно было отрисовать пару графиков в консольной программе, написанной на С++. Можно было решить эту проблему двумя способами:
  1. Сохранить график в файле и нарисовать его в экселе или другой софтине, м.б. даже в онлайн рисовалке
  2. Рисовать график прямиком из программы
Первый способ мне не подходил, так как я проводил тестирование алгоритмов, и лишней возней с копированием данных заниматься не хотелось. Второй способ имеет множество решений, но увы я не нашел быстрого решения, чтобы библиотека для рисования не требовала целую кучу зависимостей. Обычно библиотеки для рисования из С++ программы хотят OpenCV или питон с матлабом. Еще как вариант я знаю SFML и ImGUI. Вопрос — нафига столько всего нужно для обычного графика, если по сути нужен OpenGL и все. Решил исправить эту проблему и набросал header-only С++ библиотеку, которая работает в отдельном потоке и способна рисовать графики зависимостей X от Y и тепловые карты. Из зависимостей библиотека требует FreeGLUT.

( Читать дальше )

Работа с датой и временем в С++

В свое время для алготрейдерских задач мне нужно было много оперировать датой и временем. Конечно, в С++ и Си есть библиотеки для работы с датой и временем. Но мне захотелось сделать свой велосипед, который бы мог легко и удобно превращать строковое представление времени в метку времени, менять часовой пояс, получать время UTC компьютера, преобразовывать метку времени в стандартный формат даты и времени и обратно и т.д. и т.п. Одним словом, целый спектр задач.

В итоге я сделал библиотеку xtime (ну, громко сказано «библиотека», это всего лишь два файла .cpp и .hpp). Для хранения и преобразования меток времени используется тип данных uint64 либо double, поэтому у данной библиотеки нет проблемы 2038 года.

Используемые типы данных:
  • timestamp_t — тип длиной 64 бита для хранения метки времени.
  • ftimestamp_t - тип с плавающей точкой длиной 64 бита для хранения метки времени с дробной частью секунд.
  • oadate_t - тип с плавающей точкой длиной 64 бита для хранения даты автоматизации (OADate)


( Читать дальше )

Торговая система BWS

    • 04 декабря 2018, 07:40
    • |
    • AlexChi
  • Еще

Торговая система BWS

Введение

          В основе человеческой психологии лежит желание купить то, что подешевело, то, что стоило раньше 100, а сейчас, к примеру, 90. Подобные сделки кажутся очень выгодными, тем более, что в обычной повседневной жизни они, как правило, действительно являются выгодными. Например, выгодно покупать продукты по акциям в магазине со скидкой, выгодно отовариваться на распродажах, покупать товары при ликвидации магазинов и т.д. Именно поэтому многие и на фондовом рынке придерживаются такой же стратегии, покупая акции компаний аутсайдеров, которые падают и, зачастую, падают сильно. Не скрою, что когда-то и я так торговал, но анализ собственных сделок, а также анализ движения цен на акции лидеров рынка и аутсайдеров, заставили меня пересмотреть этот подход.

         Если вы уже давно торгуете на фондовом рынке, то наверняка заметили, что одни и те же бумаги растут сильнее рынка, а другие все время стоят на месте или даже падают. Примеров можно привести много: это и ВТБ, который разместился на IPO в 2007 году по 13.6 копеек, а сейчас стоит менее 4 копеек, это и Газпром, который когда-то в 2008 году стоил более 300 рублей, а сейчас, спустя 10 лет, стоит в два раза меньше. Да и каждый из вас без труда может привести множество подобных примеров. В то же время есть бумаги, которые выросли за это время в несколько раз, оставаясь лучшими много лет подряд.



( Читать дальше )

Как и обещал ГРААЛЬ от знакомого трейдера. Держите пользуйтесь.

Пошаговая инструкция по применению грааля :)
Первое и самое главное: сначала определить баланс рынка. В какую сторону торговать).
Мы не входим ни по каким формациям в шорт в зоне бычьего перевеса и не покупаем ни от каких поддержек в зонах медвежьего перевеса.
Если определить баланс на рынке в торгуемой зоне затруднительно – мы пропускаем сигналы.

Что нужно учитывать при определении текущего баланса?
 1) В какую сторону пирамидятся уровни.
Если поддержки отменяем, сопротивления тестируем – рынок медвежий
Если сопротивления отменяем, поддержки тестируем – рынок бычий.
Баланс на рынке не может измениться пока сохраняется данная тенденция.
Примечание – баланс может поменять образование мощной консолидации (пилы) из которой может быть 
непредсказуемый выход. Признаки пилы: цена начинает возвращаться и в локальные поддержки и в локальные сопротивления.
Защищенные зоны на часовике внутри диапазона дневной пилы очень быстро теряют свою силу (особенно при подходе цены к противоположной стороне пилы))).

( Читать дальше )

Деньги любят счет или почему меня не волнуют ставки брокеров по марже

    • 29 сентября 2017, 16:33
    • |
    • А. Г.
      Проверенный аккаунт
  • Еще

В своем недавнем топике  я объяснял, почему шорты лучше торговать на фьючерсе, а лонги на споте. Там же был и предложен метод, как можно, получая безрисковую ставку, торговать шорты по данным спота. Понятно, что все эти рассуждения не учитывали комиссии брокеров. И я в том топике предложил посчитать все За и Против, исходя из реальных условий. Вот и давайте проведем такие расчеты на примере моего личного счета. Что он из себя представляет?

RI – 50%

SBER, GAZP, GMKN, ROSN – по 12.5%

Si – 33%

OФЗ – 33%

Что из себя представляют приведенные %%? Это соотношение между полным лонгом по моим системам в соответствующем эмитенте по номиналу, рассчитанному по цене закрытия предыдущего дня к размеру счета, рассчитанному по тем же ценам. Так как в RI, SBER, GAZP, GMKN, ROSN торгуются по три трендовых торговых идеи, две из которых разбиваются на 2-3 торговых алгоритма с разными параметрами (у одной идеи оптимизируемый параметр один  и на нем особо с портфелями не разбежишься) плюс еще в RI торгуется одна контртрендовая система с реальным таймфреймом пара часов. Поэтому в этой части портфеля полный лонг, как и полный шорт, дело нечастое (примерно по 30% времени в году). В Si торгуется одна идея с одним набором параметров, так как при среднем времени в позиции 12 с небольшим дней заморачиваться с портфелями тоже смысла большого не имеет, поэтому тут и полный лонг и полный шорт занимают примерно по 45% времени. Ну и в ОФЗ у меня банальный  B&H.



( Читать дальше )

Код для формирования минуток из таблицы всех сделок квика для спота

Порядок действий

1. Формируем в квике таблицу всех сделок со следующими параметрами

Код для формирования минуток из таблицы всех сделок квика для спота

Фильтром отбираем нужные инструменты.

2. Скачиваем из Интернета свободно распространяемый DDE сервер от Морошкина с прилагаемыми dll.
3. В соответствующих местах кода заменяем код на вот этот

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];



( Читать дальше )

Гайд по торговле на бирже часть2 Основа торговли

Первая часть лежит тут… smart-lab.ru/blog/155810.php… думал частично переписать, но решил просто добавить...

 

            1 Основа торговли

            Трейдинг — это прогнозирование будущих цен и торговля этого прогноза с целью извлечения прибыли.

            Прогнозирование будущих цен можно делать на основе различных методов и способов, например: фундаментального анализа, новостей, цены, объемов, элиотов и прочих методов или их сочетания. В любом случае выделяется параметр наблюдения или ряд параметров на основании которых принимается решение об исходе прогноза.

            В конечном итоге, исходы прогноза всего 2 — тренд и контртренд. В случае тренда мы делаем вывод что параметр наблюдения достаточно изменился, чтоб движение продолжилось, а для контртенда на основаниии такого же изменения параметра мы сделаем вывод что движение прекратится и сменится на противоположное.

 



( Читать дальше )

Весь Гном в одном месте.

Поступила информация, что население смартлаба за год несколько обновилось, поэтому в преддверьи следующей главы про робота имеет смысл освежить персонажей или познакомиться с ними тем, кто еще не читал первые части истории.



Гном. Или как трейдер обанкротил банк.

Глава первая и вторая

Глава третья и четвертая

Глава пятая и шестая


Гном 2. Возвращение.

Глава первая

Глава вторая и третья

Глава четвертая и пятая

Глава шестая и седьмая

Глава восьмая и девятая 

Глава десятая, одиннадцатая и двенадцатая.



Просто про опционы.

Вместо предисловия

Глава первая

Глава вторая

Глава третья

Глава 3 1/2

Глава четвертая

Глава пятая

Глава 5 1/2

Глава шестая

Глава седьмая


Не окончена...
 


История одного робота


Глава первая

Глава вторая

Глава третья

Глава четвертая

Глава  4 1/2 и пятая

Глава шестая  

Гайд по биржевой торговле на мамбе...

    • 14 декабря 2013, 09:03
    • |
    • ves2010
  • Еще
Гайд по биржевой торговле на мамбе...
 20 лет как владею акциями. Пошел 9ый год активной торговли. ИМХО...




Приятные стороны биржевой торговли
1 один из редких видов бизнеса которым можно рулить и в 80лет
2 масштабируем т.е нет разницы между 1, 10 и 100 лямами
3 легко передается по наследству
4 льготное налогообложение 13% ндфл и все… да и вообще торгуя в америке мало кто налоги платит в россии
5 нет ни чиновников, нет ни начальников, есть свобода


( Читать дальше )

....все тэги
UPDONW
Новый дизайн