nikolz (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: Пред. 1 ... 61 62 63 64 65 66 67 68 69 70 71 ... 79 След.
НЕ РАБОТАЕТ КАК НАДО, НЕ РАБОТАЕТ КАК НАДО
 
пардон, опечатка
надо вычислить время предыдущей свечи,  
вычитая интервал из времени текущей свечи и снова прочитать с новым значением времени
НЕ РАБОТАЕТ КАК НАДО, НЕ РАБОТАЕТ КАК НАДО
 
PORTFOLIO_EX робокоп;
DESCRIPTION робокоп;
CLIENTS_LIST ALL_CLIENTS;
FIRMS_LIST FIRMID;
USE_CASE_SENSITIVE_CONSTANTS;

PROGRAM

NEW_GLOBAL("CANDLE_1",0) 'текущая свеча
NEW_GLOBAL("CANDLE_2",0) 'предыдущая свеча

X_=GET_VALUE(GET_DATETIME (),"DATETIME")
Date=SUBSTR (X_,6,4) & SUBSTR (X_, 3,2) & SUBSTR (X_, 0,2)
Time=SUBSTR (X_,11,2) & SUBSTR (X_, 14,2) & SUBSTR (X_, 17,2)

CANDLE = (GET_CANDLE_EX ("RIM6", Date, Time)
LINES = GET_VALUE(CANDLE,"LINES")
LINE = GET_COLLECTION_ITEM(LINES,0)
OPEN = GET_VALUE(LINE,"OPEN")+0
HIGH = GET_VALUE(LINE,"HIGH")+0
LOW = GET_VALUE(LINE,"LOW")+0
CLOSE = GET_VALUE(LINE,"CLOSE")+0

OUTPUT = CREATE_MAP()
OUTPUT = SET_VALUE(OUTPUT,"DATE",DATE)
OUTPUT = SET_VALUE(OUTPUT,"TIME",TIME)
OUTPUT = SET_VALUE(OUTPUT,"OPEN",OPEN)
OUTPUT = SET_VALUE(OUTPUT,"HIGH",HIGH)
OUTPUT = SET_VALUE(OUTPUT,"LOW",LOW)
OUTPUT = SET_VALUE(OUTPUT,"CLOSE",CLOSE)

DELETE_ALL_ITEMS() 'ФУНКЦИЯ УДАЛЕНИЯ СТАРЫХ ДАННЫХ ИЗ ТАБЛИЦЫ
ADD_ITEM(1,OUTPUT)

IF((CANDLE_1+0=0) or ( GET_VALUE (CANDLE,"TIME")-GET_VALUE (CANDLE_1,"TIME") <>0) )
CANDLE_2= CANDLE_1
CANDLE_1= CANDLE
END IF

END_PROGRAM

PARAMETER DATE;
PARAMETER_TITLE ДАТА;
PARAMETER_DESCRIPTION ДАТА;
PARAMETER_TYPE STRING(30);
END

PARAMETER TIME;
PARAMETER_TITLE ВРЕМЯ;
PARAMETER_DESCRIPTION ВРЕМЯ;
PARAMETER_TYPE STRING(30);
END

PARAMETER OPEN;
PARAMETER_TITLE ЦЕНА ОТК.;
PARAMETER_DESCRIPTION ЦЕНА ;
PARAMETER_TYPE STRING(30);
END
-------------------------------  
если надо в таблице видеть предыдущую, то отобразите CANDLE_2
вообще-то все делается гораздо проще (но писать программу за вас не буду)
----------------------------------
надо вычислить время предыдущей свечи,
вычитая интервал и времени текущей свечи и снова прочитать с этим временем
При этом надо учесть, что для нахождения последней свечи предыдущего дня надо уменьшить день.
Но при этом надо учесть, что предыдущий день это не всегда текущий день минус 1.
----------------------------
SearchItems
 
например,
надо найти все активные стоп-заявки, чтобы их удалить.
Указываем , что вернуть надо order_num,  а ищем по flags.
В результате получаем таблицу номеров активных стоп-заявок.
SearchItems
 
или ,
как вариант,
задавать список возвращаемых параметров для найденных строк
SearchItems
 
Добрый день,
Считаю, что возврат только номеров найденных строк не совсем удачное решение.
После этого надо еще вытаскивать эти строки из хранилища.
--------------------------------
Предлагаю возвращать таблицу номеров и таблицу самих строк,
в которых возвращать лишь параметры,
которые не участвовали в поиске.
Спасибо
OnParam
 
Цитата
тот самый написал:

OnParam(STRING class_code, STRING sec_code, STRING paramname)
а класс и сек - вообще можно убрать (можно и оставить [дело вкуса])
1) класс и сек нельзя убирать, так как   paramname существует у множества инструментов.
-------------------------------------------------------------
2)  Сейчас в колбеке надо для данного инструмента вытаскивать строку из хранилища и проверять какой параметр изменился, если нужный то обрабатывать.
Раньше я уже предлагал, но возможно забыли.
Напишу повторно.
Как вариант, Можно передавать в колбек таблицы изменившихся параметров. Тогда мы проверяем наличие  в полученной таблице нужного нам параметра и если есть, то работаем.
Но вариант с подпиской, полагаю лучше.
Шлюз
 
Серьезное выражение лица - это не есть признак ума.
Серьезные программы - это программы ,
написанные сильно озабоченными своей значимостью программистами
Шлюз
 
Цитата
s_mike@rambler.ru написал:
Цитата
В таком случае рассчитывать на появление скодь- нибудь серьезных программ на встроенным языке нет причин. Только поделки.
Все великие глупости в этом мире делались с серьезным выражением лица.
getParamEx
 
В качестве совета.
чтобы не было мучительно больно при использовании значений X, которые должны быть числами, надо делать так:
if type(X)=="number" then
...
end
чтобы не попадаться на nil при условии, что X может быть лишь числом надо делать так:
Z=X or 0;
Создание портфеля для SiM6, qpile, не выводит список свечей
 
GET_CANDLE
Функция для обращения к данным «свечек» на графике, а также к значениям  индикаторов технического анализа.
MAP  GET_CANDLE (STRING class_code, STRING sec_code,  STRING parameter_name, STRING interval, STRING graph_type, DOUBLE Date,  DOUBLE Time)
Т е чтобы получить какую либо свечу Вам надо указать для нее дату и время.
Если Вам надо предыдущую, то берете время текущей отнимаете от него величину интервала и получаете свечу .
Примерно так.
quick api
 
предыдущий ответ не совсем верен.
API дает возможность делать торговые заявки, но не позволяет получать свечи.
чел просит свечи.
---------------------------------
свечи можно получать либо через луа,
либо получать тики через DDE и потом лепить свечи.
------------------------
Так как Ваши алгоритмы написаны на С++
то рекомендую оформить их как DLL и подключить к скрипту на луа.
-----------------------------------------
И будет Вам счастье
Демо счёт. В чем подвох?
 
Что касается успешной игры на бирже, то могу сказать лишь одно - тренируйте свой мозг.
успешно играть можно, но нельзя рассказать как это делать.
Т е успех - возникает тогда, когда играет Ваше подсознание, а не сознание.
Успехов в игре
Демо счёт. В чем подвох?
 
Цитата
Василий написал:
Николай  Камынин  , спасибо, очень доходчиво. Вот вопрос, если как Вы говорите происходит скачок на 1% или более, но у меня выставлены стопы, то тогда потерь больших не будет, ведь терминал закроет позицию в соответствии с установленным стопом? Я читал что при резком изменении возможно проскальзывание стопа, насколько это частое явление? Иначе получается, что если не пытаться сорвать куш, а стабильно выставлять риски, то ничего страшного не произойдёт, то есть действовать по своим правилам.
Стоп - это условная заявка на сервере брокера.
Причем Ваша заявка не одна и возможно не первая.
Т е при резком движении рынка возможно, что ваш лимит будет выставлен уже с другой стороны рынка.
т е например вы поставили стоп-лос на продажу по 99, если цена будет ниже 100.
Т е сервер брокера выставит лимит по 99 после того, как цена станет ниже 100.
А как быстро это произойдет?
Возможно, что в момент выставления цена уже будет 98.
Т е Ваш лимит не сработает и зависнет на цене 99, а цена пойдет дальше вниз.
------------------------------------------------  
Но еще смешнее будет, если 98 - это дно.
Тогда цена развернется и закроет Вашу позицию и пойдет дальше в вашу сторону,
а Вы будете сидеть на берегу и смотреть как поезд уходит.
---------------------------------------
Некоторые ставят стоп по рынку, в надежде что это спасет их от больших убытков.
Но как я уже написал, на сервере очередь и не факт, что в очереди они первые.
В этом случае Цена пробъет вниз и на самом дне закроет их позицию и пойдет вверх.
И они будут с точкой смотреть на уходящий поезд.
У профи есть даже специальный термин  таким образом закрывать стопы буратин - называется это - "пугать ворон"
Каждый брокер хорошо знает, где эти стопы -вороны сидят на его сервере -дереве.
---------------------------------
Ну вот примерно так.
Успехов в изучении рынков.
Демо счёт. В чем подвох?
 
"Подвох" в том, что фьючерсы имеют плечо, которое примерно равно 10.
---------------------------------------------
Если Вы сделали на 100 тысячах  3 тысячи то это соответствует движению рынка акций 0.3% Т е это флэт
-----------------------------------------
На флете сравнительно просто торговать так как движение рынка внутри горизонтального коридора.
---------------------------
Проблема будет реально тогда, когда Вы станете на изломе флета,  а рынок не сломается,
а пойдет в тренд резко например на 1%
В результате Вы получите сразу убыток в 10 тысяч.
Вот тут у Вас будет выбор.
Либо быстро выйти с убытком в 10 тысяч, перевернуться , либо зависнуть против рынка.
так как Вы начинающий, то почти со 100% вероятностью Вы сделаете последнее.
А рынок пойдет дальше против вас и на 5% подъеме Вы будете уже с убытком в 50% и получите маржинкол,
т е позицию Вам принудительно закроют.
----------------------------
И у Вас будет не 100 т,
а  уже 50
и Вы начнете все сначала.
----------------------------
Успехов
 
Экспорт из Quik в GlobalServer, Проблема с докачкой пропущенных данных.
 
когда-то давно отказался от globalserver по причине его тихой потери связи с квиком.
эту проблему решить нельзя.
поэтому советую сразу отказаться от омеги.
Уж очень она устарела, хотя и сделана очень хорошо.
DDE в QLUA
 
Добрый день,
Как известно, DDE самый простой и соответственно самый быстрый способ обмена данными.
Он давно есть в КВИКЕ и позволяет получить данные из любой таблицы в сторонней программе,
например данные из доски опционов,
чего невозможно сделать средствами QLUA.
-----------------------------
Предлагаю реализовать возможность получать данные по DDE в скриптах на LUA
----------------------------------
Спасибо
Экспорт свечей по ВСЕМ инструментам
 
У меня по аналогии вопрос - возможно ли на мопеде участвовать в гонках в Сочи по формуле1.
Уж очень хочется.
Шлюз
 
Уж сколько раз твердили миру:
Фондовый рынок - это поле чудес,
в стране, сами знаете какой..
SearchItems
 
Цитата
Michael Bulychev написал:
Основные затраты при поиске перебором используя getItem это передача структур данных из хост-программы через стек в скрипт. SearchItems дает возможность уменьшить эти расходы.
Используя Ваш пример я написал похожую реализацию с помощью функции SearchItems. Исходный код я немного модифицировал для подсчета статистики.
Исходный пример
Пример реализации с SearchItems
Результаты тестов на моей машине:
Добрый день, Михаил
Просьба протестите еще  SearchItems без всех этих приблуд.
Просто для конкретного варианта.
Сколько будет по сравнению с этими выкрутасами.
Спасибо
------------------------------------------------
Универсальная система (программа) - это такая система(программа) ,
разработчики которой не имеют ни малейшего представления о том,
как реально ее будут применять.
Как получить данные индикатора RSI ?, Как получить данные индикатора RSI ?
 
ftp://ftp.quik.ru/public/INDICATORS.zip
Как получить данные индикатора RSI ?, Как получить данные индикатора RSI ?
 
вот тут разработчики любезно предоставили скрипты на индикаторы, в т числе на RSI.
https://forum.quik.ru/messages/forum10/message14584/topic664/#message14584
Как получить данные индикатора RSI ?, Как получить данные индикатора RSI ?
 
пардон, с утра перепутал индикатор с индексом.
Индикатор RSI  берем формулы например отсюда
https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D0%B4%D0%B5%D0%BA%D1%81_%D0%BE%D1%82%D­0%BD%D0%BE%D1%81%D0...
и пишем в скрипте или в индикаторе. И вычисляем значения.
Как получить данные индикатора RSI ?, Как получить данные индикатора RSI ?
 
либо вычислять его в своем скрипте
Как получить данные индикатора RSI ?, Как получить данные индикатора RSI ?
 
если Вы поместите его на экран в виде графика, то можете читать с экрана значения.
Как получить данные индикатора RSI ?, Как получить данные индикатора RSI ?
 
Цитата
Optimus1 Optimus1 написал:
Здравствуйте,

Подскажите, можно ли получать данные индикатора RSI, примерно так же, как получаются данные из стакана при его изменении с помощью OnQuote, а можно ли как то получить данные с графика индикатора ?
В стакане - это очередь заявок на торгуемый инструмент. индикатор RSI (если Вы говорите об индикаторе а не о фьючерсе на него) - это интегральный показатель, т е не инструмент. поэтому на него нет никаких заявок и очередей.
попробуйте сформулировать свой вопрос более  четко.
---------------------------------
Четкость в словах - есть ясность в мыслях и точность в действиях.
Может кто уже мучился с лучшим BID, OFFER?!, Пытаюсь реализовать алгоритм выставления лучшими заявками...
 
Цитата
Michael Bulychev написал:
Николай, я отвечал вот на этот вопрос:
Цитата
Или мне нужно будет её обязательно скопировать внутри коллбека, чтобы данные остались внутри скрипта?
Все остальное - очереди, синхронные функции и т.п. уже обсуждалось не раз на этом форуме
Т е очереди и синхронные функции - это для дилетантов? Вы действительно так думаете или шутите?  
Может кто уже мучился с лучшим BID, OFFER?!, Пытаюсь реализовать алгоритм выставления лучшими заявками...
 
указанные мной случаи - это классика обработки асинхронных событий, но не для дилетантов.
Может кто уже мучился с лучшим BID, OFFER?!, Пытаюсь реализовать алгоритм выставления лучшими заявками...
 
указанные мной случае - это классика обработки асинхронных событий, но не для дилетантов.
Может кто уже мучился с лучшим BID, OFFER?!, Пытаюсь реализовать алгоритм выставления лучшими заявками...
 
пардон, опечатка
в результате они последовательно как из автомата  будут записаны в gTrade и следующие затрут предыдущие. В майне будет обработана лишь последняя
Может кто уже мучился с лучшим BID, OFFER?!, Пытаюсь реализовать алгоритм выставления лучшими заявками...
 
или вот еще прикол.
как известно если сделки были совершены часто, то они придут пакетом
в результате они последовательно как из автомата  gTrade и затрут друг друга.
 
Может кто уже мучился с лучшим BID, OFFER?!, Пытаюсь реализовать алгоритм выставления лучшими заявками...
 
Цитата
Michael Bulychev написал:
Добрый день.
Николай немного сгустил краски.
достаточно сохранить ссылку на полученную в колбеке таблицу. Примерно так:
Код
  gTrade  =  {}
 function   OnTrade (t)
 gTrade  =  t
 end 
 function   main ()
 --в gTrade будет последняя сделка из OnTrade 
 end 
   
Если я не правильно Вас понял, то опишите задачу подробнее.
Ну да...
А вот такая ситуация
сделку приняли по инструменту сбербанк
сохранили передали в майн управление
а в это время исполнилась сделка по газпрому
сделку по сбербанку мы затерли и в майне вместо сбербанка получили газпром.
что делать дилетанту?
OnParam
 
Добрый день,
Предлагаю сделать возможным для колбека OnParam указание списка параметров активации.
----------------------
Поясняю.
Так как OnParam реагирует на изменение любых текущих параметров всех инструментов,
то его применение очень сильно грузит процессор,
так как активация этого колбека происходит по каждому чиху каждому тику каждому изменению в очереди каждом ...
------------------------
В реальности же нет такой задачи, где требуется реагировать на все изменения текущих параметров.
-----------------------
Как правило обычно требуется реагировать на изменение одного параметра.
-------------------
В 99% это либо изменение очереди заявок, либо совершение сделки по инструменту. И ВСЕ
---------------------
Поэтому было бы замечательно указать для  OnParam например параметр "bid"
и не париться с обработкой всех изменений
и не лазить в хранилище для выяснения что же изменилось и кому оно надо.
-------------------
Спасибо
SearchItems
 
С колбеками вообще нет надобности лазить в хранилище.
SearchItems
 
Собственно функция не плохая.
Но как уже заметил,
надобности в ускорении выбора из таблиц при работе с колбеками не возникает.
Простой бот Quik + C#, пример реализации простого торгового робота на C# с данными из квика(DDE, ODBC)
 
пишите на луа.
Для квика это самое быстрое, легкое и доступное.
Зачем заниматься мазохизмом, делая на С# или S# для квика?
Плата за транзакции - а где их взять, У биржи есть плата за транзакции - вопрос в том где их взять
 
Цитата
Илья Грачёв написал:
Цитата
Старатель   написал:
Цитата
Так, брокер возьмёт плату и за транзакции по стоп-заявкам, которые на биржу не выводятся.
Разве так? Вроде же у брокера в тарифах всё по сделкам берётся, а не по транзакциям? Мне кажется, что за стоп-заявки брокер не взимает плату.
Чел пошутил.
А вообще-то некоторые брокеры берут и за транзакцию.
поэтому изучите внимательно регламент своего брокера.
SearchItems
 
универсальное медленнее специального.
------------------
Вам что надо?  Быстро или универсально (т е лень писать код) ?
-----------------------------------
Эргономика сайта аркатэч, в картинках
 
действительно, создается впечатление, что разработчики сайта имеют не востребованное техническое образование в области проектирования механических систем типа реактивных велосипедов,
но суровая реальность заставляет их делать сайт по софту для финансовых рынков .
Вот и получается сайт с абстрактными картинками.
Тип стоп-заявки по умолчанию
 
Цитата
Максим Миненко написал:
При нажатии F6 с графика цены и объема сейчас программа предлагает создать "Тэйк профит и стоп лимит".
Я хочу, чтобы это был обычный "Стоп лос".
Как изменить тип заявки по умолчанию?
Варианты решений:
1) Если есть уже снятый стоп, то можно выбрать из таблицы стопов
2) Поместить в караман транзакций и выбирать
3) поместить на график подальше от цены и двигать
4) пойти покурить и желание пройдет.
SearchItems
 
если работаете с колбеками,
то эта функция нужна лишь при запуске скрипта для выборки того,
что уже принято, если оно Вам надо.
----------------------------
А при запуске скорости особо и не надо.
------------------------
Поэтому нет особой разницы каким образом выбрать уже принятые данные .
Плата за транзакции - а где их взять, У биржи есть плата за транзакции - вопрос в том где их взять
 
Цитата
lergen написал:
Цитата
DeSan DeSan   написал:
привет
у биржи есть плата за транзакции
как я понял текущая формула - если транзакций больше 2000
Именно так.
Эти сборы касаются брокера (т е участников торгов) Клиенты брокера - не являются участниками торгов на бирже.
-------------------------------------------
Сбор за ошибочные транзакции
Ошибочными будут признаваться транзакции, которые приводят  к возникновению некоторых ошибок, например: "Возникла кросс-сделка",  "Недостаточно средств клиента", "Заявка не найдена" (при использовании  DelOrder и MoveOrder) и т.д.
Расчет сбора будет производиться по логинам участника торгов. Сбор  за ошибочные транзакции будет рассчитываться, в том числе в период  приостановки торгов во время проведения клиринга и в выходные — в этом  случае он будет отражаться в отчетах в понедельник, и списываться  во вторник.
Методикой расчета сбора за ошибочные транзакции предусмотрено  ограничение на минимальную величину сбора за день — 1 000 рублей.  Максимальная величина сбора за день составляет 30 000 рублей и вводится  с целью ограничения убытков участника торгов из-за неполадок  в алгоритмических системах. Кроме того, методикой расчета сбора  предусмотрена возможность блокировки Биржей логина с предварительным  уведомлением о возможной блокировке (в случае, если это технически  возможно).
Плата за транзакции - а где их взять, У биржи есть плата за транзакции - вопрос в том где их взять
 
Если я не ошибаюсь, то плата за транзакции возникает при более 30 транзакций в секунду.
Эту плату берут с брокера, а он берет с Вас, если об этом есть в регламенте.
например у БКС введено ограничение на не более 30 в секунду если больше то имеют право вообще отключить.
узнайте у своего брокера, что он с Вами сделает.
Параметры меток
 
еще хуже в параметрах транзакций.
Отсылаем один формат данных и имена параметров, а принимаем другие и даже бинарные.
Полагаю, что как у классика - "пуговицы пришивал один, а рукава - другой."
-----------------------------------
"К пуговицам претензии есть? - К пуговицам претензий нет!"
Подскажите как загрузить данные в квик для работы на выходных
 
Цитата
ninjatrader написал:
да я и сам могу в пятницу программу запустить, только вот неужели нельзя избежать утомительной процедуры открывания графиков на всех тайм-фреймах? куча ведь настроек в квике, неужели нет такой их комбинации, чтобы быстро скачивались необходимые данные при подключении к серверу? в других программах которыми пользуюсь достаточно скачать данные по меньшему тайм-фрейму, а большие уже строятся исходя из этих данных - здесь почему-то такая логика не работает...
В квике свечи строит сервер, а не терминал.
Поэтому надо заказывать все таймы
Но в скрипте открывать графики не надо.
В скрипте надо просто в цикле открыть источник на каждый инструмент и каждый тайм, после прихода закрыть.
-----------------------------------
Т е делаете скрипт, запускаете его на квике навсегда.
Он например в вечернюю сессию активируется сам и принимает Вам все данные.
Вы даже и не заметите как он это все сделает.
Актуальная пок/прод =/= активные заявки
 
попробуйте откатится к предыдущей версии КВИК
Странности с объявлением переменных
 
Цитата
Кирилл Мазеин написал:
Я пробовал по вашему совету поменять кодировку текста робота - то же самое.
Да и на моем скриншоте искажается только русский текст, который в комментариях.
Хотите помощи?
Выложите текст.
Или Вы полагаете, что будут с экрана набивать Ваш текст для тестирования?
алго-завка не снимается.её не видно в таблице заявок
 
такое бывает.  Если в таблицах нет, то завтра уйдет с экрана. Либо попробуйте перезаказать данные.
Странности с объявлением переменных
 
в нормальном виде(тексте) без крякозябров
Странности с объявлением переменных
 
Покажите Вашу программу
Может кто уже мучился с лучшим BID, OFFER?!, Пытаюсь реализовать алгоритм выставления лучшими заявками...
 
Цитата
Николай Бехтерев написал:
Да, у меня явно нет ясного понимания КоллБек функций. И к сожалению пока не попалось ни одной подробно разъясняющей статьи.
Попробую объяснить.
Про колбек.
Колбеком называется функция, которая вызывается из вне Вашей программы(скрипта)
Такую функцию обычно определяют для обработки каких-либо асинхронных событий, время прихода которых нам заранее неизвестно.
В QLUA колбеки - это функции с зарезервированными именами, которые будут вызваны при возникновения определенного в документации события.
--------------------------------------
про main
Эта  функция,  которая вызывается  при запуске скрипта и используется для его(скрипта) зависания в режиме активности.
Такой способ активации скрипта - это изобретение автора QLUA.
Решение вполне работающее, но не очевидное для пользователей и не самое лучшее.
но как говорят, дареному коню в ... не смотрят.
Поэтому что состряпали, то и кушаем.
-------------------------
Так вот, колбеки и функция main никаким образом не связаны между собой.
Если Вам надо, чтобы в main обрабатывалось то,
что будет получено в колбеке,
то Вы должны это передать в майн
и осуществить синхронизацию работы колбеков и майн.
При этом, надо еще и синхронизировать обращение к общей памяти в колбеках и майн, так как это разные потоки.
Т е Вы должны решать
1) синхронизацию потоков
2) синхронизацию обновления информации
--------------------------
Т е декларация разработчиков о том,  что QLUA сделано для дилетантов в программировании - это такой шутка
---------------------
Примерно так
Страницы: Пред. 1 ... 61 62 63 64 65 66 67 68 69 70 71 ... 79 След.
Наверх