Избранные комментарии трейдера jeremy

по

Попробуйте почитать теорию финансов.

На квартиру можно смотреть как на финансовый актив. А если точнее, то перпетуитет. Можно найти present value этого актива PV = A/r, где A — денежные потоки (от ренты) за год, r — дисконтирующая ставка.

Если в 2019 году имели r_1 = 7.75% = 0.0775, то теперь минимум достигался на r_2 = 4.25% = 0.0425.

Как изменились цены на перпетуитеты (квартиры) от снижения ставки ЦБ с 7.75% до 4.25%? (A/r_2)/(A/r_1) = 0.0775/0.0425 = 1.82353 = 82.353%.

Нет никаких сговоров и разводов, а лишь финансовая математика.
avatar
  • 22 июня 2021, 17:08
  • Еще
GoodBargains, У комона проблема есть, если высокая доходность и небольшие риски на эквити… там отжирает доходность маленькая ёмкость стратегий со своей спецификой(проскальзывания, комиссии, специфическое управление пулом заявок финама). 
Имхо, все очень просто, что нужно знать о паммах, сигнала, коммоне:
1. Нужно удостовериться, что стратегия реальна
2. Ликвидность инструментов, на которых производится торговля очень высокая
3. Среднее удержание по позиции условно не 10-15 пунктов
4. Стратегия алгоритмичная (без участия ручного управления) с проторгованной историей от 1-3(5) лет
5. Есть бэктест
6. Самое главное — высокая среднегодовая доходность от 150% в год, иначе просто нет смысла в таких рисках
7. Умение проводить анализ реальной проторговки стратегии


В итоге останется очень мало подходящих стратегий. А риски остаются: при пересиживании просадки никто и никогда не запрещает автору стратегии перестать торговать. В итоге клиент остается со своим убытком наедине с собой. А автор стратегии честно напишет, что стратегия перестала работать и удовлетворять его в плане риск-метрик, поэтому во избежание более высокой просадки закрывает стратегию. Вроде бы и не полностью депо слил и сохранил большую часть, а Вам останется ему сказать спасибо за большую часть неслитого, ну и что, что слил немного — остальное же не слил))
avatar
  • 04 июня 2021, 09:04
  • Еще
pessimist, поминутные фьючерсные спреды я с Финама качаю для моделирования. Для реала они в SQLite собираются.
Вот так примерно:

Это по реал сделкам.
А вот с плечами — эт я что-то не понял. О каком плече речь? Если о фьючерс/БА, то эт понятно.
avatar
  • 18 апреля 2021, 20:16
  • Еще
Komar26, само собой брокер является налоговым агентом,  но это же абсурдно, когда брокер удерживает у тебя 31 декабря налог (а в сбере это так), в ситуации когда например положенные тебе вычеты (52к только инвестиционный, плюс куча других), перекрывают твои налоги,  и строго говоря тебе вообще ничего платить не надо.
То есть например, брокер удержал 52 к у тебя,  чтоб их вернуть ты все равно делаешь эту декларацию, а потом милостыню ждёшь от налоговой, когла же они соизволят тебе перечислить вычет? И перечислят в среднем может в сентябре только. 
То есть суеты не меньше,  нервяка больше, при этом эти 52к можно спокойно положить на депозит и получить за 6 месяцев ещё плюс 1к как минимум процентов. 
Поэтому я не оставил денег чтобы брокер не удержал налог, и теперь буду его платить меньше на сумму вычетов,  и платить  буду в июле
avatar
  • 27 февраля 2021, 19:09
  • Еще
Чтобы «прорывные технологии» приносили деньги, в стране должна быть достаточная плотность самых обычных, базовых технологий.
Должны быть доступны контрагенты-поставщики станко-, приборо-, машино-строения, химпрома, электроники. Без этого начать что-то производить в России во много раз дороже, чем на Западе.
Для обеспечения необходимой плотности индустрии Россия должна тратить все деньги на поддержку отечественной промышленности. Пора понять, что кормить чужую промышленность импортом не лучше, чем кормить чужую армию.

Как в России завести свою конкуренто-способную обрабатывающую промышленность (ОП)? — Ответ в активной промышленной политике государства.
1) Джо Стадвелл «Азиатская модель управления»
Япония переняла эту модель у канцлера Бисмарка в Германии. Эта модель выхода из отсталости универсальна, на все страны и времена. Из опыта ЮВА следует, что демократия, права человека, верховенство закона не движущие факторы выхода из отсталости, но сопутствующие.
2) Эрик Райнерт «Как богатые страны стали богатыми, и почему бедные страны остаются бедными».
3) Ха Джун Чхан «Недобрые самаритяне. Миф о свободе торговли и тайная история капитализма», «23 тайны: то, что вам не расскажут про капитализм».
4) Фридрих Лист «Национальная система политической экономии». Священная книга в Германии и Японии, когда в XIX веке они выходили из отсталости, и в Южной Корее в 1961-78 гг.
5) Дмитрий Зыкин «Запрещённая экономика. Что сделало Запад богатым, а Россию бедной».
6) Александр Бушков «Неизвестная война. Тайная история США». Как Север в 1861-65 воевал против Юга за протекционизм, чтобы США стали лидером индустрии.

Экономическая грамотность — компас на выборы 2021.
Не ждите, что либералы экономисты выведут Россию из нового застоя. Ни в одном курсе «Экономикс» нет ни слова, как в отсталой стране завести конкуренто-способную ОП.
Как и в «Капитале» Карла Маркса.

avatar
  • 13 февраля 2021, 20:07
  • Еще
Доброй ночи и Вам. Сорри, занят я в долгосрочном проекте с заказчиком из штатов, нет времени доделать эту штуку так, что бы ее легко было употреблять. Единственное что могу предложить, используйте как есть, а как именно могу объяснить устно минут за пять. Ну и бинарный формат вывода на сейчас выглядит так:

struct Record
{
datetime date_time;
float indicator = 0.0f;
float best_ask = 0.0f;
float best_bid = 0.0f;
float last_price = 0.0f;
std::int32_t volume = 0;
std::int32_t buy_volume = 0;
std::int32_t sell_volume = 0;
std::int32_t num_trades = 1;
}

Текстовый любой может быть..
Могу на сл. неделе вечером как нибудь в тлг @nor_vik
avatar
  • 31 января 2021, 22:17
  • Еще
А вот не читая комменты, соглашусь с товарищем! Почти все российские бумаги продал, конвертировал, купил на СПб бирже американские акции. Из российских пока оставил Мосбиржу, Сбер, Магнит, МТС — из-за дивидендов. Ну, Татнефть и Петропавловск оставил в ожидании выхода в плюс, как истинный долгосрочный инвестор.
avatar
  • 15 декабря 2020, 14:51
  • Еще
ch5oh, ХФТ? Ну, не знаю. У меня они Луа + DLL С++ + SQLite успешно обрабатываются. Мне хватает, не жалуюсь.
avatar
  • 08 декабря 2020, 23:03
  • Еще
Anest, (если позволите «встрять» в Вашу беседу) коллега Микаелян Саро работает не в КВИКе, насколько я понял, а на TSLab.
И потом, вопрос-то не в том, что нужно узнать состояние ордера и транзакции, когда ордер уже подан в систему, а как раз тогда, когда робот выработал сигнал, а ордер в систему не попадает, т.е. сигнал «пропал».
avatar
  • 05 октября 2020, 23:44
  • Еще
 А неисполненные отслеживаются всегда легко. Достаточно вести отдельную таблицу/массив, который сравнивает последнюю сделку с предыдущей заявкой (в т.ч. по полноте исполнения).
Есть заявка — попала в данные свои очередной строкой.
Есть исполнение (добивка строки заявки в столбце сделок) — проверка на полноту.
Появилась новая заявка, когда прошлая строка не заполнена — значит прошлая не исполнена (ну или исполнена частично, если идёт сравнение объема).

Это же очень просто.
avatar
  • 05 октября 2020, 23:30
  • Еще
Врач-бондиатОр, вот Вам самый простой пример кнопки в форме на QLUA.

Ссылка на архив.

Результат такой:



(использованы только ресурсы QLUA)
Хорошо оформленная штатная документация по QLua.
avatar
  • 18 августа 2020, 11:24
  • Еще

Врач-бондиатОр, смотрите, тут уже писали, собираю все в кучу.

у Вас в коде

Quotes_1 = getQuoteLevel2(«SPBFUT», «SRU0»)

Bid_Count_1 = tonumber(Quotes_1.bid_count)

if Bid_Count_1>1 then
aa= tonumber(Quotes_1.bid[Bid_Count_1].quantity)
SetCell(Table, 1, 1, tostring(aa))
end

запрашиваете стакан и первую цену бида (но почему то только один раз)

local asset = getFuturesHolding(«SPBFUT», «SPBFUT****»,«SRU0»,0).totalnet

снова один раз запрашиваете количество бумаг

дальше 

repeat — until — он заходит в цикл в любом случае один раз… не понятно, почему именно этот вид цикла выбран… ну ладно...

что надо сделать:

1. завести еще одну переменную, в ней хранить номер (trans_id) отправляемой заявки. В Вашем коде каждой заявке Вы присваиваете один и тот же номер. Квик такое пропускает, но в этом нет смысла.

2. Добавить обработку колбека OnOrder, чтобы он сбрасывал в ноль хранимый номер.

т.е. код должне выглядеть примерно так:

local Active_Trans_Id = 0 — храним номер заявки тут
local ID_B_Order=10

while getFuturesHolding(«SPBFUT», «SPBFUT****»,«SRU0»,0).totalnet > 0

if Active_Trans_Id == 0 then -- 

Quotes_1 = getQuoteLevel2(«SPBFUT», «SRU0»)
Bid_Count_1 = tonumber(Quotes_1.bid_count)

if Bid_Count_1>1 then
aa= tonumber(Quotes_1.bid[Bid_Count_1].quantity)
SetCell(Table, 1, 1, tostring(aa))
end

if aa>1 then

local OrderSell = {
[«ACTION»]=«NEW_ORDER»,
[«ACCOUNT»]= «SPBFUT****»,
[«OPERATION»] = «S»,
[«CLASSCODE»]=«SPBFUT»,
[«SECCODE»] = «SRU0»,
[«PRICE»] = «0»,
[«QUANTITY»] = tostring(1),
[«TRANS_ID»] = tostring(ID_B_Order),
[«TYPE»] = «M»,
}
local Err_Order = sendTransaction(OrderSell)
Active_Trans_Id = ID_B_Order — заполняем переменную номером TRANS_ID
ID_B_Order = ID_B_Order + 1 — увеличивает TRANS_ID, чтобы он был разный для каждой заявки
message(Err_Order)
end
sleep(1000)
end

— где-то за пределами main
— добавьте обработку колбека OnOrder
function OnOrder(order)
if order == Active_Trans_Id and (тут надо найти вставить проверку, что заявка исполнена проверяя биты order.flags) then
Active_Trans_Id = 0 — обнуляем номер активной заявки
end
end


т.е. если Active_Trans_Id равен 0, но программа отправляет заявку и присваитвает переменной Active_Trans_Id номер заявки.

В следующем проходе никакая заявка отправляться не будет, так как Active_Trans_Id не равен 0.

Колбек OnOrder смотрит, прошла ли заявка с номером Active_Trans_Id и если прошла, обнуляет Active_Trans_Id.

P.S. код писал в блокноте, не проверял. Под номером заявки, имею ввиде Trans_Id

 

 

avatar
  • 23 июля 2020, 22:19
  • Еще

Алгоритм примерно такой:

1. Отправляем заявку на продажу. Скрипт запоминает trans_id этой заявки.

2. Через колбек OnOrder получаем информацию о всех заявках. Смотрим, когда у заявки с запомненным trans_id статус поменяется на «исполнена».

3. Как только заявка с запомненным trans_id исполнена, отправляем новую заявку

 
avatar
  • 23 июля 2020, 19:12
  • Еще
_sg_, Ещё один неплохой вариант (в том числе для FOL) — записывать каждую сессию в формате CSV и раз в неделю новые файлы сжимать XZ (запросто в 10-25 раз).
avatar
  • 25 марта 2019, 21:19
  • Еще

Придумывать ничего не нужно:
1. Для ленивых:
Пишешь бары в БД сразу DtOHLCV

База данных 5-секундных баров по RI, Si, SR c 2015 года по наст. время занимает всего лишь ~ 5 гигов. Очень даже приемлимо.
 
2. Не для ленивых 
Делаешь примерно так, описывать неохота
2.1:
var bytesBar = BinarySerialization.SerializeToByteArray(bars);
var bsBarsZip = Compressor.Compress(bytesBar);
Далее пишешь в БД образ по дням.

Здесь делаешь BinarySerialization 
сжимаешь,
пишешь в БД по дням.

2.2.
var barsStr = bars.Select(b => b.ToStr()).ToList(); 
var bytesBarStr = BinarySerialization.SerializeToByteArray(barsStr);
var bsBarsStrZip = Compressor.Compress(bytesBarStr);
Далее пишешь в БД образ по дням.

Здесь в начале Бары сериализуешь в List<string>,
потом делаешь BinarySerialization
и далее сжимаешь.
Этот вариант работает быстрее — проверено юнит-тестами

В БД информация хранится по дням и тикерам.

Желаю успехов.

avatar
  • 25 марта 2019, 21:12
  • Еще
facevalue, ордер менеджмент у меня готов процентов на 40-60%… дело движется..  и я по правде об этом не сильно беспокоюсь. Хотя там еще надо много времени на тестирование и исправление ошибок.
Больше что моя реализация торговой идеи будет отличаться от той которую я тестирую с помощую сторонних сервисов. 
Но, спасибо за совет, буду допиливать все свое. 
avatar
  • 30 января 2019, 12:39
  • Еще
....все тэги
UPDONW
Новый дизайн