Владимир написал: Все необходимые стратегии реализованы, отлажены, работают, а всё "спредовое, трендовое, свинговое, сеточное и прочее дерьмо отправлено на помойку. А вот цена в заявке есть постоянная величина.
Это то что я опробовал, детские ошибки сам пишу, сам делаю, сам исправляю, видимо пора чемоданы собирать и .... А у нас если поставим last то заявка обязательно исполнится! А у нас если поставим лучший bid или ask то встанет в стакан!
Конец придумыванию "велосипедов", мчимся на "болид формулы 1" - фреймворк HackTrade!
За все время тестирования, выявлена одна оплошность в HackTrade, не могу назвать ошибкой. И так, можно подвести некоторые промежуточные итоги эксплуатации фреймворка:
1) Написан на чистом lua (достаточно навыка знаний lua); 2) Взаимодействие с QUIK через стандартную библиотеку qlua (без дополнительных внешних библиотек); 3) Пожалуй самое главное, заявки не теряются, забыть про всякие "затычки"! каждая заявка сформированная HackTrade присматривает сама за собой, "Каждая заявка помнит, сколько она набрала, и сколько надо скидывать"; 4) Легко реализуется стратегии Мани Менеджмента, количество в заявке есть переменная величина; 5) Легко реализуются стратегии спредовые, трендовые, свинг, сетка и т.д., цена в заявке есть переменная величина; 6) Легко реализуются стратегии Риск Менеджмента.
Модульность! дописываем и цепляем, не трогая основное тело скрипта!
HackTrade - уверенно приобретает Искусственный Интеллект: решения формирует на основании множества индикаторов, адаптируется под цену, адаптируется под количество, выставляет заявки, а при необходимости легко дописывается "айсберг" заявка, (разбивка на небольшие лоты), отслеживает стоп-цену, отслеживает таке-профит, выводит своё состояние в окно.
Функциональность скрипта его модульность превращается в заслуженный торговый робот с ИИ.
Добрый день, Mariana, попробуйте так, ввел проверки на получение данных, ну и локализацию, а в целом понравилось, курс не прошел даром:
Код
local tostring=tostring;
local is_run = true;
local instrument_list = {"BRQ3", "BRU3", "BRV3", "BRX3", "GDU3", "GDZ3", "HSU3", "HSZ3", "NAU3", "NAZ3", "NGQ3", "NGU3", "NGV3", "NGX3", "PDU3", "PDZ3", "PTU3", "PTZ3", "SFU3", "SFZ3", "SVU3", "SVZ3"}
local nsecrefresh = 3;
local class;
function OnStop()
is_run = false
end
function round(num, idp)
if num == nil then return nil end
local mult = 10^(idp or 0)
return math.floor(num * mult + 0.5) / mult
end
function CreateTable()
local t_id = AllocTable();
AddColumn(t_id, 0, "FUT", true, QTABLE_INT_TYPE, 10);
AddColumn(t_id, 1, "OI", true, QTABLE_INT_TYPE, 10);
AddColumn(t_id, 2, "OIINIT", true, QTABLE_INT_TYPE, 10);
AddColumn(t_id, 3, "OICHG", true, QTABLE_INT_TYPE, 10);
AddColumn(t_id, 4, "OICHG%", true, QTABLE_DOUBLE_TYPE, 10);
local t = CreateWindow(t_id);
SetWindowCaption(t_id, "Open Interest Change");
SetWindowPos(t_id, 100, 100, 252, 532);
class = "SPBFUT"
for k,v in pairs(instrument_list) do
InsertRow (t_id, k)
local sec = tostring(v)
local mdparam = getParamEx(class, sec, "NUMCONTRACTS")
local trueoi = mdparam.param_value
local trueoi_str = string.format("%d", trueoi)
SetCell (t_id, k, 0, sec)
SetCell (t_id, k, 1, trueoi_str)
SetCell (t_id, k, 2, trueoi_str)
local chg = 0;
SetCell (t_id, k, 3, tostring(chg))
local chg_pc = 0
SetCell (t_id, k, 4, tostring(chg_pc))
end
return t_id
end;
function RefreshTable(t_id)
for k,v in pairs(instrument_list) do
local sec = tostring(v)
local mdparam = getParamEx(class, sec, "NUMCONTRACTS")
local trueoi = mdparam and mdparam.param_value or 0;
local trueoi_str = string.format("%d", trueoi);
SetCell (t_id, k, 1, trueoi_str)
local initoi = GetCell(t_id, k, 2).image;
local chg = trueoi - initoi;
local chg_str = string.format("%d", chg);
SetCell (t_id, k, 3, chg_str)
local initoi_val = tonumber(initoi);
local chg_pc = initoi_val~=0 and round(chg / initoi_val * 100,2) or 0;
SetCell (t_id, k, 4, tostring(chg_pc))
end
end;
function main()
local table_id = CreateTable()
while is_run do
sleep(nsecrefresh*1000)
RefreshTable(table_id)
end
end
А это вообще блеск! Так достигла или нет? Так Вы себе ответьте.
Цитата
Владимир написал: Да, мы видим, что в последней (незакрытой) свече она достигала этого значения, но эта свеча ещё НЕ ЗАКРЫТА, и нет гарантии, что туда "вот прям ща" не припрётся какой-нить идиот и не выкупит все тамошние лонги до седьмого колена и к моменту её закрытия средняя не станет, скажем, 80.
Так я уже тоже говорил про это, что рассуждать там можно от 1 минутного, что значение старшего периода стало статистически значимым. И тогда с математической точность можно утверждать что цена достигнет своей средней.
Владимир написал: Какой бы титулованный дебил это ни утверждал.
Кто говорил про математику, так это математически доказанные утверждения.
Цитата
Владимир написал: График цены отражается в разных масштабах НЕ фрактально, а НЕЗАВИСИМО от других масштабов.
А здесь просто логика: если мы рассматриваем диапазон цен за период 1 час, и в этом периоде цена в моменте куда то слетала а Вы срез сделали в этот момент. Так будет цена среза находится в этом периоде 1 час? Ответе себе сами.
Цитата
Владимир написал: И "в нашем конкретном примере" Вы несёте полную ахинею: вполне возможно, что цена УЖЕ достигала значения 100, несмотря на то, что её средняя имеет значение 90.
В наше случае так как график цены отражается в разных масштабах (фрактально), то и о трендах прогнозах можно говорить относительного масштабов.
А в нашем конкретном примере, если цена на секундных масштабах достигала значения 100, то с уверенность в 100%, можно утверждать что цена за период 1 час достигала этого значения 100, несмотря что ее средняя имеет значение 90.
Владимир написал: VPM, Я начал понимать, что Вы несёте бред и вообще не понимаете, что такое фрактальность, А длина береговой линии между населёнными пунктами А и Б НИКАК не зависит от масштаба карт. Ну, а фраза "меньший масштаб всегда входит в больший" есть просто клиника. Да, я "человек образованный, и не с 5-го класса, а с ясельного возраста, с 4-го по 10-й класс включительно был чемпионом города по математике, но никогда не считал подобный бред "прописными истинами".
Владимир написал: Ага, а в метр входят сантимерты, в сантимерты - миллиметры. Куда ни плюнь, одна сплошная фрактальность!
Вот видите на чили понимать, речь идет про масштабы.
А чтоб не "голословить" а убедиться вот Вам пример: Стоит задача посчитать длину береговой линии между населёнными пунктами А и Б на разных масштабах карт (масштабах1>масштабах2"). Не нужно теоремы доказывать, достаточно Яндекс карты и линеечки
Если это синхронизировано как в нашем случае, то меньший масштаб всегда входит в больший, а длина с меньшего масштаба всегда длиннее!
Ну ладно молодежь, что то не дочитала, но Вы с 5 класса человек образованный, сомневаюсь что прописные истины Вам незнакомы?
Владимир написал: Но, поскольку получать сведения о сделках, их цене и объёмах слишком громоздко
Речь идет не об объеме а о количестве в сделке. Которое точно также получается ка и цена последней сделки. Умножая их получаешь стоимость, деля на количество получаешь взвешенное!
Как Вы считаете мне "по барабану", я лишь показываю ответ на Ваш вопрос, "откуда ноги растут"
Да мало ли что Вы там написали, есть у цены свойства, одно из них фрактальность! И ей все равно что мы об этом думаем
В ранних постах вы показывали что свои средние считаете так for i=1, Ptriod do qty(i) * price(i) end Отсюда следует вывод:
Цитата
VPM написал: Но нужно учитывать тот факт что вес берется qtу, qty(i) * price(i), а это нечто иное как стоимость за определенный период. По сути считается движение капитала, а следовательно когда вверх это спрос, когда вниз это предложение.
Ликвидность считаю через фильтр отсекая мелочь, пока тоже примитивно, в ручную пороговое значение ставлю. Тут суть такая создаются ситуации когда заставляют маркетмейкера действовать.
Владимир написал: И откуда мне знать, "когда цена = max and qty=min" или "когда цена =min and qty=max"?
Ну мах можно с Вашего примера = 100 для часового а qty=? Вы не считаете. Но но нужно учитывать тот факт что вес берется qtу, qty(i) * price(i), а это нечто иное как стоимость за определенный период.
По сути считается движение капитала, а следовательно когда вверх это спрос, когда вниз это предложение.
Владимир написал: нечёткая логика тут нафиг не нужна. Курс может стоять, ползти, идти, бежать и лететь - всего 9 вариантов с учётом направления.
А что удобный мат. аппарат именно для описания таких переменных. Ведь наверняка статусы задаете относительно средне какой то, или на глазок?
Цитата
Владимир написал: А что толку с этого "Спроса и Предложения"?
Это к вопросу перекуплености и перепродансти, формализация понятий. Определение зон скопление ликвидности смысл: Когда цена = max and qty=min то пик Когда цена =min and qty=max то впадина баланс. qtyПок.==qtyПрод.
Я по старинке сетку Фибоначчи растягиваю, вначале пробовал, сейчас руки не доходят, когда движок кривой. Да можно посмотреть на том же tradingview наверняка по на писали
nikolz написал: Я вам вообще-то про мировые рынки, которые подобно океану, говорю, а не про российский рынок, подобный небольшому озерку.Рекомендую почитать про обвалы на биржах США и кто их создал.
А здесь что нового или Вы про кризисы раньше не слышали? Если б не автоматическая торговля так люди встали бы в шорт. На что это повлияло бы! 100 лет назад были сейчас есть и будут, И дело здесь не в роботах в самом устройстве экономики! Разве не публиковалось что станок работает, а обрушили так или сяк уже не важно, роботы встали в шорт или люди. Наше озеро есть составная часть общего океана.
Владимир написал: Никакие ускорения" мой скрипт вообще не считает (Боря, привет!), поскольку использование в качестве аргументов величины курса (свечи) и, тем более, ускорения будет давать СТРРРАШНЫЕ погрешности при расчётах чего бы то ни было.
Самый надёжный критерий - это скорость, поскольку основной закон рынка вовсе не какой-то мифический "закон Спроса и Предложения", а инерция: стоящий курс нелегко разогнать, движущийся - нелегко остановить
"поскольку основной закон рынка вовсе не какой-то мифический "закон Спроса и Предложения", а инерция:" Не знаю что это подмена понятий или фундаментальная ошибка? инерция это свойство (одно из свойств) движения.
А Закон есть закон, причем такой фундаментальный не смотря на то что его сформулировали экономисты. Его проявление во всех аспектах жизни не только рынка.
Не помню как там в 5 классе но производные проходят чуть постарше
"Никакие ускорения" мой скрипт вообще не считает (Боря, привет!), поскольку использование в качестве аргументов величины курса (свечи) и, тем более, ускорения будет давать СТРРРАШНЫЕ погрешности при расчётах чего бы то ни было."
Почему? на одно индикаторе стаю скорость и ускорение еще и раскрашиваю!
Владимир написал: Да нафига мне двигать цены? Пусть живут своей жизнью, и чихать на тех, кто ими двигает. И зачем им выходить из сделки незаметно? Точнее, что в этом сложного? Мой скрипт будет выходить из крупной сделки несколько дней, если не недель, причём, скорее всего, со встречными сделками - кто там что способен заметить?
Вы зачем то все в кучу. Вам не нужно двигать, я о другом.
Цитата
VPM написал: Именно миллиардами и двигают цены, а если мы такой движок отследили неплохо и нам прокатиться сними а главное безопасно!
Мы в тренде, выйти из такой сделки незаметно им сложно, а это значит что мы свои можем закрывать максимально у пиков!
О профессиональных трейдерах они диктуют рынку условия. Позиции Огромные - поэтому сложно, такую позицию не выставишь в стакан, да Маркетмейкер то же хочет заработать.
Владимир написал: Скорость считается в момент закрытия свечи - тупо как разность последней и предпоследней. Свечи накапливаются раз в секунду, а значение определяется в момент закрытия свечи. Это вообще микросекунды
Владимир написал: Это времена закрытия свечей, по ним эти значения обновляются, а срез остаётся срезом
А как судить о синхронизации периодов? А потом я про публикацию примера, а как считает скрипт мне не видно. Вы историю отвергаете но не плохо бы ее про анализировать, Ведь Ваш пример это паттерн а разворотный он или нет судить не возможно, был бы фон можно делать хотя бы предположение поведения цена.
Владимир написал: И какие проблемы с миллионными оборотами? Да хоть с миллиардными!
Именно миллиардами и двигают цены, а если мы такой движок отследили неплохо и нам прокатиться сними а главное безопасно! Мы в тренде, выйти из такой сделки незаметно им сложно, а это значит что мы свои можем закрывать максимально у пиков!
nikolz написал: Это называется HFT роботы, они как раз у тех у кого миллионные обороты.
Включите таблицу "всех сделок" и посмотрите на исполнение, когда пройдут пройдут 100 млн $ посчитайте сколько на берется сделок. HFT роботы - это скорее инструмент маркетмейкера и тех кого он привлекает для подержания определенной ликвидности, есть конечно и частники как же без них.
Только начинать нужно сначала. Кто рынок двигает? Какие средства нужны?
Цитата
nikolz написал: В инете, правда на английском, можно встретить статьи реальных крупных трейдеров, которые торгуют сами . Они рассказывают как было до прихода HFT и как теперь стало трудно торговать и как они теперь меняют свои стратегии.
Это рассказы тех кто сидел в "яме" и не адаптировались к новым условиям.
Цитата
nikolz написал: В итоге, то что в популярных книжках и сделано 100 лет назад на современном рынке уже как телега с кобылой на шоссе.
Владимир написал: Что значит "если у Вас есть время момента получения среза"? Срез есть ВСЕГДА, он готов В ЛЮБУЮ СЕКУНДУ - меняется только значения курса, да значения свечей в моменты их закрытия.
без указания времени момента среза "это пальцем в небо", это "способы финансовых дельцов" . (есть время есть значения ваших индикаторов) и тогда не нужны тексты смотрим что произошло и вопрос закрыт.
Цитата
Владимир написал: Это не мой подход - это подход любого нормального челоаека.
Да нет это ваш выбор и Ваш подход на сленге "скальперский" таких подходов масса описано публично. Все что Вы делаете считаете свои показатели.
Цитата
Владимир написал: Тот, кто "принимает серьёзные решения" и "вкладывается на всю катушку" НЕИЗБЕЖНО разорится.
На это я уже свою т. зрения высказал и не раз, "слышащий да услышит". Я рассуждаю о среднесрочном подходе! А Вы мне про "скальп". Хотелось бы увидеть картину как трейдер с миллионными оборотами сидит и рассматривает минутки а лучше тики.
Владимир написал: Кинули пробную заявочку, и смотрим. Если всё хорошо, можно и усилить позицию - раз, другой, третий. Или, наоборот, прибыль зафиксировать (обычно тоже небольшими кусочками). Или подождать на более тяжёлом таймфрейме лучших времён. Или просевший тикер докупить. Или шорт открыть. Или даже вытравить этот тикер из портфеля, сманеврировав ресурсами в пользу более интересных на данный момент тикеров. В общем, масса вариантов
Предполагаю что построено дерево событий на которые идет реакция скрипта.
Был ранж держат уровни - идет набор в какую сторону? Трендовое движение подошли к уровню сопротивления? В конце концов рынок не интересен отсутствует ликвидность?
Отвечая на эти вопросы мы повышаем вероятность положительного исхода, а главное делаем понимание что вообще происходит на рынке. И не Важно правы мы в этот момент или нет - это просто наше понимание!
Владимир написал: А я предпочитаю серьёзных решений вообще не принимать.
Это Ваш подход если хотите стратегия, я о ней знаю ровно столько сколько Вы написали. А обсуждали мы конкретную Выкладку или срез, что можно взять из этой информации и какие решения принять на ее основе. Я делал ставку, если у Вас есть время момента получения среза мы можем посмотреть как все пошло. (Подмена времени периода - основная махинация в финансах) Предположение было следующее: Старший период 1 час, он здесь главный! остальные в него входят (матрешка) фрактальность. Цена на всех растет достигает уровня 100 встречает продажи которые фиксируете секундными отскакивает с ускорением к средней 10 мин. Дополнительную информацию можно было получить с Объема и сделок прошедших. А фон к примеру 15 бар нам бы позволил уже судить об 1 дне.
И так, цена растет на 1 час говорит нам рулят быки, на отметке 100 есть предложение, эффект круглого числа можно предположить сработали стопы что привело к ускорению есть ликвидность что указывает на небольшой отскок и следующий поход за ней. Но без Фона это слабое рассуждение! А Вы его игнорируете.