Очереди и двойные очереди в луа

Страницы: Пред. 1 ... 8 9 10 11 12 ... 26 След.
RSS
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
Владимир написал:
Если Вы не знаете побитовые операции, то Вам просто нечего делать в программировании

Так и я же об этом, я не "писатель" я "конструктор", конструирую свой маленький велосипед для автоматизации торговли средствами QUIK!
Цитата
Владимир написал:
а тут несколько страниц обсуждается несчастный AND
Обсуждаем как его прикрутить к
buy = line1 > line2
sell =  line1 < line2
Вот ребята и объясняют одному неучу!

Цитата
Владимир написал:
А мы с Борькой когда-то хотели обсудить и реализовать идеальный интерфейс для программиста, отлаженный в боевых условиях и нечувствительный ко всем существующим глюкам. Это вряд ли больше десятка функций, на отлладку которых и гробится 99% времени программистов и которым посвящены чуть ли не все здешние ветки
Хотеть и делать чуть разные вещи.
А так одни лозунги.
"Экономика должна быть экономной"
 
Цеплять индикаторы и плодить графики, занятие еще то! Терпения хватило на целых три.
А кто сказал что 3 это не портфель,
Едим дальше видим больше!
 
VPM, Вот именно: "Экономика должна быть экономной". Если Вы не "писатель", то и велосипед не Вам конструировать - нужно брать готовый. Что мы с Борисом когда-то и хотели сделать.

Да, "хотеть и делать чуть разные вещи". Мы - СДЕЛАЛИ. Хотели для всех, но сделали для себя. Причём именно МЫ - Борька хоть и не программист от слова "совсем", но голова у него варит превосходно.

Я сказал что 3 это не портфель. Десяток тикеров в портфеле - это ещё куда ни шло.
 
Цитата
Владимир написал:
Если Вы не "писатель", то и велосипед не Вам конструировать - нужно брать готовый.
По Вашей логике, если Вы не инвестор (трейдер) то и торговать не Вам.

Главная задача ради которой здесь - это автоматизации торговли. Торговать!

Если Вы, собираете велосипед, то вам не нужны отдельно спицы, достаточно целого колеса, а уж куда  его прикрутить, какое колесо, это решения конструктора!  :smile:

Тяжело с Вами программистами, все "с ног на голову" поставите :wink:  
 
Цитата
Владимир написал:
"Экономика должна быть экономной"
Если экономика не экономна то это что то другое. Результат с отрицательным знаком :smile:  
 
VPM, Да, по моей логике любым делом должны заниматься профессионалы. Остальные тоже могут, но только чтобы научиться чему-то полезному. Лично я учиться быть трейдером не хочу и, соответственно, торгую не я.
 
Цитата
Владимир написал:
Лично я учиться быть трейдером не хочу и, соответственно, торгую не я.
А это просто иллюзия! Торгуете Вы и конечное решение за Вами.
А для того чтоб торговал Ваш скрипт рентабельно, не достаточно знаний  побитовых операций, нужно еще кое что знать и применять  :what:  
 
Цитата
Владимир написал:
Да, по моей логике любым делом должны заниматься профессионалы.
Четкую логику превратить в побитовые операции, обозвать сленгом это профессионализм?
 
VPM, Нет за мной никакого "конечного решения". Я обычно вообще не знаю, как он торгует, а иногда даже чем он торгует. И торгует он куда более "рентабельно", чем я сам.

Какая, в задницу, "чёткая логика"? Побитовые операции, хоть и называются "логическими", никакого отношения к логике не имеют. А сленгом обычно пользуются дилетанты, которые пытаются изображать из себя профессионалов - это даже индикатором может быть. В профессиональной среде сленг неустойчив и частенько привязан к конкретной задаче.
 
Цитата
Владимир написал:
Какая, в задницу, "чёткая логика"? Побитовые операции, хоть и называются "логическими", никакого отношения к логике не имеют.
bit  -0; 1; да или нет;
Цитата
Владимир написал:
А сленгом обычно пользуются дилетанты, которые пытаются изображать из себя профессионалов
Любая дисциплина профессия в сленге, не смотря на то что называют профессиональным языком (химия, физика,......)
Цитата
Владимир написал:
В профессиональной среде сленг неустойчив и частенько привязан к конкретной задаче.
Только сленг, послушайте академика обязательно будет сленг даже при обсуждении фундаментальных Вопросов.

Профессиональная среда это шахтеры, металлурги, транспорт и т.д. Торгаши как без них, а то о чем Вы, прикладное к данным профессиям: облегчить, упростить, автоматизировать и т.д.
 
Цитата
Владимир написал:
Нет за мной никакого "конечного решения". Я обычно вообще не знаю, как он торгует, а иногда даже чем он торгует. И торгует он куда более "рентабельно", чем я сам.
Включить выключить когда вкл. это конечные решения. Суть не в этом, то как на писали так и торгует все решения были за Вами, исполнение за скриптом.

Это подмена понятий мы это уже обсуждали :smile:  
 
VPM, Повторяю: НЕ БЫЛО за мно никаких "конечных решений". Я дал ему денег - И ВСЁ! А если вспомнить период, когда биржа в России ещё нормально работала, то это ещё вопрос, кто кому дал.
 
А тем временем, получив сигналы от нашей стратегии, подошли в плотную к вопросам  Мани Менеджмента.
Распределению весов в портфеле и количеству контрактов на сделку.
 
С весами поступил просто "каждому по заслугам".

local FreeMoney = cur_cost()                                     -- Возвращает доступные средства
local E = FreeMoney*fraction;                                    -- fraction - разрешение на использование средств (доля)
local RiskDay = round(E*RiskDay*0.01,2);                -- Задаем риск на торговый день

E = round(E-RiskDay,2);  -- я его сразу вычитаю так как торговать будет на всю "котлету"

--local WorkCapital = E/#sec; -- "каждому по заслугам"

Уперся в другую проблему.
Сколько открывать SmartOrder?
Которая на прямую упираемся "что делать с открытыми позициями во время пере запусков" и как их согласовывать с SmartOrder?
Не понятно?
Дело в том что замучили детские ошибки (невнимательность + тестовый режим), а может дело в местных флюидах :smile:
Ну в любом случае позицию жалко ликвидировать все встает по тренду, а когда все на глазах увеличивается тут "жаба душит".

Проскочить не получилось. Эксперимент затягивается "жаба" + нерешённая проблема это надолго.

Но как три уравнения и две задачи решено  :lol:  
 
Да  забыл сказать, понравился  'NAU3',   NASD-9.23 Nasdaq 100 Расчетный фьючерс на Invesco QQQ ETF Trust Unit Series
Стоимость пункта цены  0,92p;   ГО 1799; недорогой летает как самолет , да еще озвучивает лучшие мировые компании.

Добавил!

Теперь 4 бумаги в портфеле, пришлось отменить принцип "каждому по заслугам", решаю я теперь кому чего.
 
VPM, Детский сад.
 
А вот все "голубчики":

'NGQ3',          -- Натуральный газ
'RMU3',           -- RTSM-9.23 Индекс РТС (мини) Расчетный фьючерс на RTSI.                                      Стоимость пункта цены 18,46 p;  ГО 3546;
'CNYRUBF',    -- CNYRUBF Юань - Рубль Расчетный фьючерс на CNY/RUB. Торгуется до 31.12.2099 (еще 27909 дней) Стоимость пункта цены 1000 p;   ГО 1036;
'NAU3',            -- NASD-9.23 Nasdaq 100 Расчетный фьючерс на Invesco QQQ ETF Trust Unit Series                 Стоимость пункта цены  0,92p;   ГО 1799;
--'SFU3',          -- SPYF-9.23 S&P 500 Расчетный фьючерс на SPDR S&P 500 ETF Trust                               Стоимость пункта цены 92,3p;    ГО 5243;

SFU3 Пока надо заслужить!
 
Цитата
Владимир написал:
Детский сад.
Нет "песочница" это то что у Вас! :smile:  

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

1) отобрал бумаги разношерстные, от медленного вечного фьючерса CNY, До шустрого Nasdaq 100 (Portfel);
2) Выделил средства под проект (Capital);
3) Определил риск на проект (RM);
4)  Определил  кол. которым буду торговать по каждому инструменту (MM);
5)  Задал стратегию - трендовая классический реверс (TS);

Здесь главная цель достигнута, Все можно подключить не зависимо к движку,
и Все работает!

Да пусть пока примитивные расчеты, "совершенству нет предела"!
Да нет управлением позицией.
Да нет управлением риском на сделку.

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

Добавьте сюда статистику по сделкам, и появится инструмент для анализа входа и выхода в сделку!

Удачной торговле!

 
 
VPM, У меня сейчас запущены в тестовом режиме 43 тикера, хочу погонять месячишко, чтобы посмотреть, заслуживают ли они того, чтобы торговать ими в боевом режиме. По первому впечатлению, половина из них годится для этого, но пока ещё и недели не прошло. Парочка из вышеперечисленных (CNYRUBF и NAU3) уже работают в боевом, нареканий нет. А "торговать на всю котлету" - наивернейший способ остаться без штанов, причём НА ЛЮБЫХ тикерах. Наконец, маневрирование ресурсами между тикерами на все 146% задача скрипта.
 
Владимир, Я вот Вас ни как не пойму, зачем все передергиваете?
Цитата
Владимир написал:
VPM, У меня сейчас запущены в тестовом режиме 43 тикера, хочу погонять месячишко, чтобы посмотреть, заслуживают ли они того, чтобы торговать ими в боевом режиме. По первому впечатлению, половина из них годится для этого, но пока ещё и недели не прошло.
А как же это. "Повторяю: НЕ БЫЛО за мно никаких "конечных решений".

А здесь,
Цитата
Владимир написал:
А "торговать на всю котлету" - наивернейший способ остаться без штанов, причём НА ЛЮБЫХ тикерах
Я ведь показал расчет
Цитата
VPM написал:
local FreeMoney = cur_cost()                                     -- Возвращает доступные средстваlocal
E = FreeMoney*fraction;                                  
 -- fraction - разрешение на использование средств (доля)
fraction - разрешение на использование средств (доля).

Цитата
VPM написал:
local RiskDay = round(E*RiskDay*0.01,2);                -- Задаем риск на торговый день
это риск на торговый день,
Причем тут "бабушкины котлеты"?
Цитата
Владимир написал:
Наконец, маневрирование ресурсами между тикерами на все 146% задача скрипта.
Задача проекта не соревнование с Вашим скриптом,
1)
Цитата
VPM написал:
Здесь главная цель достигнута, Все можно подключить не зависимо к движку, и Все работает!
2) и главное
Цитата
VPM написал:
Но Напомню, задача теста состоит выяснить насколько стабильна работа Фреймворка.
Столкнувшись с тем что, в моем рабочем скрипте, на больших Таймфремах на одно событие стало приходит несколько приказов,
начел исправлять, вспомнил о данной разработке, где все уже за меня решено, способами мне не доступными,
теперь проверяю на ошибки, чем их больше вылезет сей час тем лучше, тем спокойней будет дальше.
Есть замечания  милости просмм.

Цитата
Владимир написал:
У меня сейчас запущены в тестовом режиме 43 тикера
А на это я Вам свое мнение сообщал; Изначально неверно сформулирована задача.
 
VPM, А подумать? К тому же, я тыщу раз говорил открытым текстом: список тикеров, которыми ему вообще разрешено торговать и сумму, которой ему дозволено распоряжаться, определяю я. А уж чем и как из этого списка он будет торговать, решает он.

Да плевать мне на Ваши расчёты и прочую лабуду вроде "Мани Менеджмента" или "распределение весов в портфеле и количество контрактов на сделку" или "риски на торговый день". Не царское это дело, скрипт и сам справится. А задача у меня не только верно сформулирована, но уже реализована, отлажена и работает прямо сейчас - и в тестовом режиме, и в боевом.
 
Цитата
Владимир написал:
А подумать? К тому же, я тыщу раз говорил открытым текстом: список тикеров, которыми ему вообще разрешено торговать и сумму, которой ему дозволено распоряжаться, определяю я
Подумал.
Цитата
Владимир написал:
Повторяю: НЕ БЫЛО за мно никаких "конечных решений". Я дал ему денег - И ВСЁ!
Так были или не были?
 
Цитата
Владимир написал:
Да плевать мне на Ваши расчёты
А вот это правильно, так призывов считать так нет, это быстрый пример для конкретного случая не более.
Тем более что у Вас вес отлаженно.
 
VPM, Я же русским языком сказал: НЕ БЫЛО за мно никаких "конечных решений"
 
Цитата
Владимир написал:
НЕ БЫЛО за мно никаких "конечных решений"

А вопрос-то интересный.
Допустим, есть программа поиска простых чисел и записи их в файл.
Какое число является простым, программа решает сама, но алгоритм поиска задал человек. Да и решение запускать программу, или нет, принимает тоже он.
Так от кого зависит, будут в файле простые числа, или нет? Кто принимает "конечное решение"?
 
Zvlos, И что тут "интересного"? Алгоритм поиска простых чисел тупейший и известный ещё до появления Решета Эратосфена. Мало того, он полностью детерминированный и никак не зависит от входных данных. Ежу понятно, что простые числа ищет программа, у "сапиенса" на это просто мозгофф не хватит. А "будут в файле простые числа, или нет" вообще никакого отношения к поиску простых чисел не имеет - это вообще другая задача.
 
Всем добрый день!

И так:
Цитата
Владимир написал:
Детский сад.
Кому  сюда вперед  :smile:

Смена стратегии на трендовую в торговой системе HT, (да уже можно заявлять о торговой системе),
дает возможность сосредоточиться на усовершенствовании TS  не отвлекаясь на сделки.

HT ведет себя прекрасно - замечаний нет.
Цитата
VPM написал:
Сколько открывать SmartOrder? Которая на прямую упираемся "что делать с открытыми позициями во время пере запусков" и как их согласовывать с SmartOrder?
Присвоил вес каждому инструменту, предварительно рассчитал количество в торговой позиции согласно этому кол. открываю SmartOrder.
Во время пере запусков  согласовываю с кол. открытых SmartOrder с разрешенным количеством.

В силу определенной тенденции открываем поз. по тренду.
Если позиция растет количество контрактов растет.
Если позиция падает количество контрактов уменьшается.


И так стает вопрос как поступить.
Вариант 1: HT встроить в рабочий скрипт.
Вариант 2: До  работать данный проект.

Выбор - развить данный.

Все вынес на отдельный счет.

RM: local RiskDay = round(E*RiskDay*0.01,2);                -- Задаем риск на торговый день
Вынесен в отдельный скрипт, если достигнута просадка все сбросит.

Сделок маловато, добавим бумагу и средовую стратегию, все это легко делается.

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

 OrderSmart[trans_id]:update(feed[i].last, 0);

Я просто не перестаю восхищаться насколько все лаконично реализовано!

При выполнении условия на закрытие цена просто будет догонять пока все не сбросит.
Вперед!
 
Фондовый рынок просто выкупают, правда непонятно кто гребет, но мы сними.
Вероятно станок работает или кто то входит глобально, надо разбираться?
 
 И что это было 1 час в борьбе за подключение к сервера? Да уж.
 
VPM, Это было весь позавчерашний вечер, весь вчерашний день и всё сегодняшнее утро. Примерно час назад рынок ломанулся вниз, сейчас вроде как остановился. Мой скрипт очень неплохо на этом заработал.
 
Да надо быть осторожней в высказываниях :smile:
Цитата
VPM написал:
Фондовый рынок просто выкупают, правда непонятно кто гребет, но мы сними
Цитата
Владимир написал:
Примерно час назад рынок ломанулся вниз, сейчас вроде как остановился.
Похоже на выходные закрываются, или что вышло?

Цитата
Владимир написал:
Это было весь позавчерашний вечер, весь вчерашний день и всё сегодняшнее утро.
Ну вот говорили не проблем со связью.

После общения с провайдером, как в прошлом инженер, делаю вывод "канал сквозняком сдуло" :lol:
Так как связь есть но она не работает, Роутер поближе, витую пару наготове!
 
 
VPM, Мне до лампочки, что там происходит, скрипт готов к любому развитию событий. И к проблемам со связью тоже.
 
 
Не Солидно, просто не солидно,
поведение программы за пятницу 04.08.23 ну несолидно!
А ведь только коррекция на рынке  акций РФ.
Ну просто несолидно!
 
VPM, Что-то мне подсказывает, что поведение программы определяется программистом. Моя ведёт себя очень даже солидно. Вчера под 80 сделок, сегодня под 70. Это в боевом режиме - в тестовом более пяти сотен. Оба портфеля прекрасно сбалансированы, обоим поведение рынка очень даже по душе, оба понятия не имеют, что там "только коррекция на рынке акций РФ", да их это и не интересует.
 
Владимир, Нет я про чудо,  от разработчиков ARQA Technologies с аббревиатурой QUIK.

Просто не Солидно!

Даже после увеличения пропускной способности канала связи, "все вкось и вкривь", куда подевалась стабильность работы!
Какой тут мой скрипт.

Да и акции я руками посматриваю на советник, скорректировал вчера, Сегодня 3 бумаги и то сейчас выкупаю назад после коррекции.  

Думаю в понедельник начнут выкупать.
 
VPM, Господи, канал-то здесь при чём? Там объёмы просто смехотворные. У меня, правда, оптика много лет, но в гостях прекрасно работает и через вайфай. Хоть сто там тикеров, хоть тысяча. И к разработчикам уже много месяцев нет никаких претензий. А если "в понедельник начнут выкупать", значит, скрипт начнёт продавать (сейчас у него небольшой перегруз по покупкам). Или во вторник. Или прямо сейчас - когда надо, тогда и продаст. Или купит. Главное, руками ничего не трогать, не путаться у него под ногами.
 
Всем Добрый день!

"Ни когда не было и вот опять".   Подскажите что я не так делаю?

Хочу снять активную заявку по  trans_id, вот вызов:

if active then  KillOrders_id( trans_id )  end

Но получаю:  "Ошибка: ord.sec_code CNYRUBF;  Не указан режим транзакции"

Вот сама функция:

function KillOrders_id(trans_id)

local NumberOf = getNumberOf("orders")
for i = 0, NumberOf - 1 do
local ord = getItem("orders", i)
local ord_status = get_order_status(ord.flags)

if ord_status and ord_status~='' and ord_status == "active"
--and ord.sec_code == symbol
--and ord.account == account
and ord.trans_id == trans_id --trans_id  NUMBER  Идентификатор транзакции  
then

local trans_id = get_trans_id();
Log:trace( "KillOrders trans_id: ".."; status= ".. tostring(ord_status).."; trans_id= ".. tostring(trans_id) )
local trans_params =
{
--ACCOUNT=account,
--CLIENT_CODE=client,
CLASSCODE = ord.cllas_code,
TRANS_ID = tostring(trans_id),
ACTION = "KILL_ORDER",
ORDER_KEY = tostring(ord.order_num)
}
local res = sendTransaction(trans_params)
if 0 < string_len(res) then
Log:info('KillOrders_id - Ошибка: '.."ord.sec_code "..tostring(ord.sec_code)..'; '..res,1)
end
end
end
end

Что я не так делаю?  
 
VPM, А всё не так.

Заявка снимается не по  trans_id, а по order_num. А TRANS_ID - это айдишка НОВОЙ транзакции, которая на снятие.
 
Ордер активный у него есть уже  trans_id, я его передаю для фильтрации ордеров:   if active then  KillOrders_id( trans_id )  end

А уже в заявке формирую новый:         local trans_id = get_trans_id();

Но получаю:  "Не указан режим транзакции"
 
VPM, Если ордер не активный, то и снимать нечего. У него есть уже  trans_id, по которому эту заявку ПОДАВАЛИ, а нужен НОВЫЙ trans_id, по которому её СНИМАЮТ.
 
Владимир, Вот рабочий код:
TC=TC+1; -- заносим в таблицу для формирования транзакций
A.TRANS_ID=tostring(TC);-- данные по снимаемой заявке
A.ACTION="KILL_ORDER";
A.ORDER_KEY=tostring(s.order_num);
l=sendTransaction(A); -- и отправляем её в Квик
 
Ну так вот же
local trans_id = get_trans_id();

TRANS_ID = tostring(trans_id),

Даже если и фильтр избыточен?
trans_id пользователь присваивает может и не быть!  
 
Отличие от вашего только
CLASSCODE = ord.cllas_code,
попробую закомментирую.
 
VPM, Я не знаю, что такое get_trans_id(), зачем здесь local и при чём здесь фильтр, я привёл полностью рабочий код, который за сегодня уже снял 4 заявки из 32 возможных. CLASSCODE тоже нафиг не нужен - по номеру заявки и так сообразит, что почём.
 
Не не помогло!

Может слишком быстро обращаюсь, но с другой стороны я именно для этого проверку сделал при вызове if active then  KillOrders_id( trans_id )  end
 
VPM,  Значит, у Вас выдающийся талант: умудриться поймать проблемы в простейшем коде, который, насколько я помню, у меня не глючил ни разу.
 
Думаю что просто опечатка, возможно здесь
CLASSCODE = ord.cllas_code

Как и ранее советую в проблемных местах выводить в лог аргументы, результаты. Тогда и будет видно структуру передаваемой таблицы.
 
Nikolay, Да, похоже на явную опечатку, но ведь ни ACCOUNT, ни CLIENT_CODE, ни CLASSCODE вообще не нужны.
 
Цитата
Владимир написал:
Nikolay, Да, похоже на явную опечатку, но ведь ни ACCOUNT, ни CLIENT_CODE, ни CLASSCODE вообще не нужны.
Я предпочитаю их задавать для целей контроля.
Страницы: Пред. 1 ... 8 9 10 11 12 ... 26 След.
Читают тему
Наверх