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

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

Страницы: Пред. 1 ... 53 54 55 56 57 58 59 60 61 62 63 ... 75 След.
Доставучая проблема
 
Цитата
Роман написал:
Цитата
Sergey Gorokhov   написал:
Для решения проблемы не используйте относительные пути при доступе к сторонним файлам.
Там нет относительных путей! Понятно что скрипт доделывать нужно, но одно если он был запущен - то нужно и запускать каждый раз когда загружается квик, а не выключать загрузку скрипта при каком либо сиюминутном сбое! Там х.з. что может быть (биржа мутит как), мы же не можем прописать всё и вся сразу!
так как скрипт без ошибок надо запускать лишь один раз, то
Полагаю,что у Вас следующая проблема:
-------------------------  
Когда Вы запускаете скрипт кнопкой, то в КВИКЕ уже загружены все данные, которые использует Ваш скрипт и он нормально запускается.
------------------------
Потом Вы выключаете КВИК. При следующем запуске КВИКА с включенным скриптом, скрипт начинает работу сразу же при запуске КВИКА, но информация с сервере еще не пришла. В результате Ваш скрипт натыкается на nil и завершает свою работу по ошибке.
-------------------------
Вы полагаете, что скрипт был выключен при закрытии КВИКА, а он просто не может возобновить свою работу.
-------------------------
В результате Вы опять вынуждены его запускать нажатием кнопки при новом запуске КВИКА.
--------------
Верно ?
Проблема с подключением zeromq
 
предположу, что lzmq.dll обращается к какой-то библиотеке и не находит ее.
Проверьте зависимости lzmq.dll программой depends
Размер стека
 
Цитата
Вячеслав + написал:
LUA_MAXCALLS
не совсем то, так как QLUA на основе Lua 5.1 в которой
/* @@ LUAI_MAXCALLS limits the number of nested calls. ** CHANGE it if you need really deep recursive calls. This limit is ** arbitrary; its only purpose is to stop infinite recursion before ** exhausting memory. */
#define LUAI_MAXCALLS   20000
/* @@ LUAI_MAXCSTACK limits the number of Lua stack slots that a C function @* can use. ** CHANGE it if you need lots of (Lua) stack space for your C ** functions. This limit is arbitrary; its only purpose is to stop C ** functions to consume unlimited stack space. (must be smaller than ** -LUA_REGISTRYINDEX) */
#define LUAI_MAXCSTACK  8000
QLUA, вопросы начинающих.
 
дополню  предыдущий ответ.
Полагаю, что такая ситуация не возникает, так как свечи рассчитывает сервер.
Поэтому терминал принимает их пакетом .
Пропуск внутри пакета невозможен, так как сервер рассчитал пакет свеча за свечой.
QLUA, вопросы начинающих.
 
Цитата
Алексей Орешкин написал:
Цитата
Egor Zaytsev   написал:
Цитата
При открытии графика все свечки строятся сразу или возможна ситуация что данные по какой то свече не пришли а через пару тиков появились и эта свеча нарисовалась?
Должны всегда строиться сразу, согласно таблицы обезличенных сделок.
Вот слово должны немного смущает. Вопрос возник по следующей причине: В мт5 могут быть получены не все данные, но при появлении новых данных, в индикаторе, есть параметр: prev_calculated (рассчитанных баров ранее) который обнуляется и на следующем тике я проведу расчёт по более полной истории. Здесь у меня ничего подобного нет, поэтому и решил уточнить.
В таком случае, если мне нужно в одном индикаторе для расчёта получать данные по разным бумагам, синхронизировав данные единожды, я больше к этому вопросы могу не возвращаться ? или с синхронизацией есть какие-то другие подводные камни ?
Это не так просто как кажется, так как могут быть интервалы в которых нет сделок в одном из инструментов.
Getparamex. Где найти названия всех полей на анг языке ?
 
делаете экспорт нужной вам таблицы по DDE в excel c заголовками столбцов и Формальными заголовками.
Размер стека
 
Вызов в форме return functioncall называется концевым вызовом. Lua также поддерживает концевой вызов «себя»  (или рекурсивный концевой вызов): в этом случае вызванная функция использует стек вызывающей функции.
Поэтому количество вложенных концовых вызовов может быть любым. Заметим только, что концевой вызов стирает отладочную информацию о вызывающей функции.
Размер стека
 
полагаю, что число рекурсий ограничено лишь объемом свободной памяти кучи .
Размер стека
 
А разве это не верно:
Для получения размера стека используйте функцию lua_checkstack.  
Для вызова из Lua кода на C необходимо иметь в наличии свободной памяти по крайней мере на LUA_MINSTACK  позиций стека.
LUA_MINSTACK по умолчанию равно 20.
Если размера стека не хватает, его можно увеличить функцией lua_checkstack.
Определить направление лимитного ордера
 
сравните цену в последней сделке либо лучшую цену предложения(спроса) с ценой в лимитном ордере.
Купить опционы выгодно
 
Цитата
Женя написал:
Цитата
Sergey Gorokhov   написал:
Проверьте настройки терминала меню Система - Настройки - Основные настройки
в "Получение данных" установить галку "Исходя из настроек открытых пользователем таблиц"
в "Сохранение данных" установить галку "Данные, отражающие текущее состояние и всю историю изменений" и "Получать пропущенные данные"
Спасибо, все появилось.
Цитата
Sergey Gorokhov   написал:
Все проще, достаточно установить колбек через SetUpdateCallback
Ок, я сделал так:
Код
  ds  =   CreateDataSource ( "SPBOPT" ,  "RI95000BI6" , INTERVAL_M1,  "theorprice" )
lastCandleIndex  =  ds: Size ()
ds: SetUpdateCallback (ddd)

 function   ddd (idx)
    if  idx  >  lastCandleIndex  then 
       message ( 'Свеча закрылась. Ее цена закрытия Close = '  .. ds:C(idx))
      lastCandleIndex  =  idx
    end 
 end 
  

Но чем предыдущий код отличается от этого:
Код
  new  =   getParamEx ( "SPBOPT" ,  "RI95000BI6" ,  "theorprice" ).param_value +  0 
 if  new ~ =  last  then 
    message ( "новое значение "  .. new)
 end 
last  =  new
  
Выдают они в одно и то же время одно и то же значение. Или я опять в коде с CreateDataSource намудрил?
Если посмотреть на график теоретической цены, то на нем нет горизонтальных линий. Лишь экстремумы, правда не с интервалом в 1 минуту.

   

Т.е. обновление теории на то же самое значение не бывает и я зря вас мучаю? Достаточно просто ждать актуального изменения и работать?
В первом случае Вы получаете все значения.
Во втором лишь значения из срезов пришедших в ТТП. Т е во втором случае возможны пропуски.
помогите исправить ошибку attempt to index field(a nil value), при запуске скрипта если стакан не полный то вылезает ошибка attempt to index field(a nil value)
 
Цитата
Алекс Лепс написал:
Спасибо за вашу помощь, я попробую переделать.
В примере написано две проверки
первый if проверяет существования стакана и очереди в нем
Циклы делаются по фактической длине очереди У вас циклы делались на фиксированную длину очереди.
Примерно так.
помогите исправить ошибку attempt to index field(a nil value), при запуске скрипта если стакан не полный то вылезает ошибка attempt to index field(a nil value)
 
mm=getQuoteLevel2("SPBFUT","NKZ6")  
if  mm and mm.bit_count and mm.offer_count then
-------------------------
local n=mm.bid_count;
while n>0 do
a0=mm.bid[n].quantity
b0=mm.bid[n].price  
c0=math.ceil(b0*1000000)  
d0=tostring((c0/1000000)+1)  
n=n-1;
end
------------------------
n=mm.bid_count;
while n>0 do
aa0=mm.offer[n].quantity  
bb0=mm.offer[n].price  
cc0=math.ceil(bb0*1000000)  
dd0=tostring((cc0/1000000)-1)
n=n-1
end
--------------------
end
-----------------------------------
-примерно так
помогите исправить ошибку attempt to index field(a nil value), при запуске скрипта если стакан не полный то вылезает ошибка attempt to index field(a nil value)
 
mm=getQuoteLevel2("SPBFUT","NKZ6")
if  mm and mm.bit_count and mm.offer_count then
a0=mm.bid[mm.bid_count-i].quantity <--------ОШИБКА ЗДЕСЬ
b0=mm.bid[mm.bid_count-i].price
c0=math.ceil(b0*1000000)
d0=tostring((c0/1000000)+1)
aa0=mm.offer[mm.offer_count-i].quantity
bb0=mm.offer[mm.offer_count-i].price
cc0=math.ceil(bb0*1000000)
dd0=tostring((cc0/1000000)-1)
end
Рисование меток
 
ищите ошибку в логике портфеля
РПС и РЕПО: Сделки для исполнения
 
Цитата
Илья Белый написал:
есть надежда*
DDE
Подмена TransId c версии сервера 5.4.2
 
А премию за выявленную ошибку?
Вот сейчас работаю с SDK на чип , так фирма за каждую выявленную ошибку всем желающим выплачивает 2000$.
Вам тоже не мешало бы перенять опыт передовиков.
ZeroBrain Studio
 
возьмите SCITE в нем можно все и он написан на луа. И будет Вам счастье, а не геморой.
по утрам почему то обнуляются таблицы с данными расчитанными в qpile скриптах
 
есть ограничение на число переменных.
может быть в этом причина.
QLUA, вопросы начинающих.
 
Цитата
Алексей Орешкин написал:
3. Правильно ли я понимаю что функцию main в роботе могу и не использовать, тогда скрипт выполнится 1 раз и всё, далее он будет завершён? А если я без этой функции просто поставлю цикл while что будет тогда, он будет там постоянно крутиться ?
нет .
Как установить плечо?, Кнопка "установить остаток и плечо" не работает
 
Цитата
Антон Поташев написал:
Здравствуйте. Открыл демо-счет у брокера "Открытие". Однако, при подачи заявки, используется плечо "2". Как его убрать?
Плечо действует, если Вы выставляете заявку на сумму большую, чем Ваши средства.
Просто торгуйте на свои и не обращайте внимание на плечо.
Подскажите молодому инвестору об одной заявке., Заявка.
 
Цитата
александр михальцов написал:
Хочешь сказать что я хочу купить пакет акций, на один квартал то мне нужно вломится  в кабинет брокеру и сказать ему  , там один на форуме посоветовал что только в письменном виде  это возможно. Брокер скажет эй трейдер иди сюда я тебе покажу как это в терминале делается. А я сделаю вывод что 90% трейдеров это- мудаки  

ВТБ
Газпром
ГМК Норильский Никель
ММК
Лукойл
Роснефть
РусГидро
Сбербанк
Северсталь
Сургутнефтегаз
Вы,батенька, оказывается воинствующий хам.
Почитайте для начала регламент брокера и ФЗ о рынке ценных бумаг.
Подскажите молодому инвестору об одной заявке., Заявка.
 
Для кого-то форум -это место обмена опытом, дискуссии и помощи,
а для иных - это корыто раздачи халявы.
Подскажите молодому инвестору об одной заявке., Заявка.
 
Попробую пояснить.
КВИК - это способ подать заявку брокеру.
Но это не единственный способ.
Проблема КВИКА в том, что из него заявки, при наличии денег, уходят в торговую систему в текущие торги, либо исчезают в  прошлом.
И по-существу КВИК это система заявок на один день.
------------------------------------------
Если Вы хотите купить по какой-то цене, которая будет исполнена возможно в следующем году,
то это делается просто - надо дать брокеру поручение в письменном(бумажном виде) до отмены.
Т е приносите в офис  поручение и вручаете брокеру.
И все.
-------------------------
Брокер обязан его принять и исполнить при возможности и сообщить Вам об исполнении.
Если до исполнения передумаете, то принесете бумажку об отмене поручения.
Таблица сделок - связи, схема данных
 
И еще, есть лишь заявки клиентов брокеру, но нет сделок клиентов на бирже.
На бирже есть лишь сделки брокера.
Таблица сделок - связи, схема данных
 
Цитата
Василий Арефьев написал:
Спасибо, я нашел взаимосвязи между таблицами.
Но в решении второго вопроса это не помогло.

Перефразирую, какое поле в таблице заявок или сделок ссылается на саму себя и указывает на заявку или сделку ранее открытую?
Например, сделана заявка №100 на продажу, далее позиция закрыта заявкой №101 на покупку. Как узнать, что заявка №101 закрывает заявку №100?
То же самое и по таблице сделок.
Или эти две строки одной таблицы никак не связаны и связь между строками заключается в равенстве количества, большей дате и обратной операции (Покупка -> Продажа)?
Заявки ничего не открывают и не закрывают.
Поэтому существует связь заявка - сделка.
Т к биржа - это место совершения независимых сделок.
Алгоритм расчета индикатора fractal, Fractal
 
Цитата
Sergey Gorokhov написал:
Цитата
На самом деле индикатор Fractals не совсем рассчитывается. Ведь расчет это когда из одного значения получается другое, а Fractals выбирает максимумы и минимумы из того что есть. Алгоритм поиска описан в документации на терминал
РАССЧИТЫВАТЬ, рассчитать, рассчесть, распределять счетом; сделать рассчет. Рассчитай, по чем на брата придется. Рассчесть кого, рассчитав что ему следует за работу, за службу, расплатиться и уволить его. На умах не рассчитаешь, не разочтешь, а на счетах разочту.
| Рассчитывать на кого, на что, считать, полагаться, надеяться, основаться. На чужую помощь не рассчитывай. -ся, страд., взаимн. по смыслу. Мы с тобой еще не рассчитались, не разочлись, не покончили счетов. Разочлись - как вода разлилась (оба ни при чем). Рассчитыванье, -читанье, расчёт, действие по гл.; счет, выкладка, числовой вывод, с показанием всех данных. Расчет постройки, смета. Расчет с рабочими, с подрядчиком, разделка, расплата по счетам. У всякого свой расчет, свои виды, цели, намеренья. Тут нет расчета, не из чего, не для чего. Он сделал это без расчета, спроста, без задней мысли, без особенной цели; или нерассудительно, опрометчиво. Жить с рассчетом, бережливо, не издерживая лишнего. Мы с ним в расчете, рассчитались, квиты, поверстались. Конец игре-расчет. У купца расчет, а у покупателя другой (свой). В своей семье какой (что за) расчет! Расчётная книга, счет с каждым верителем и должником. Расчетливый, - тистый человек, соблюдающий во всем расчет, осмотрительный, осторожный в делах, бережливый: неидущий на неверные обороты, но и неупускающий надежных. Расчетливость жен. свойство, качество, способность эта. Расчетчик, -чица, делающий какой-либо расчет.
Толковый словарь Даля.    В.И. Даль.    1863-1866.  
------------------------------------------------------------------------------
рассчитывать — Разбирать, соображать, смекать. См. намереваться …   Словарь синонимов
-----------------------------
т е индикатор Fractals рассчитывается.
CreateDataSource, не грузятся данные при формир. через CreateDataSource
 
Цитата
s_mike@rambler.ru написал:
Не всегда это верно.
Пример тому - перезаказ данных.
согласен.
Если перезаказать, то то при этом весь архив данных стирается и осуществляется прием всех данных.
Других случаев нет.
CreateDataSource, не грузятся данные при формир. через CreateDataSource
 
Разницы нет
CreateDataSource, не грузятся данные при формир. через CreateDataSource
 
Цитата
PFelix написал:
И есть ли в этом разница для калбеков OnAllTrade?
Спасибо.
Все очень просто.
Приходит пакет от сервера брокера в терминал.
терминал начинает его разбирать(парсить) вытаскивает обезличенные сделки строчка за строчкой.
Потом вызывает колбек и передает ему эту строчку.
При возврате из колбека запихивает эту строчку в ТВС.
------------------------------------
Теперь можете ответить на свои вопросы сами.
все, что пришло попадет сначала в колбек.
Если это пришло раньше и уже есть в ТВС, то снова это не придет и в колбек повторно не попадет.
Т е если Вы прервали работу своего скрипта,
то при новом запуске будете принимать в колбеке  пропущенные  терминалом ( т е если был разрыв связи с сервером),
а не вашим скриптом, и новые.
Сохранение и перевыставление снятых по оконч. сессии заявок
 
Цитата
yako-v написал:
Интересует сохранение и перевыставление снятых по оконч. сессии заявок ( перенос их в карман похоже невозможен ?).
Есть такой пункт в меню ПКМ :  сохр-ть заяв. в файл  . Выбираю , сохраняю , присваивая имя файлу txt .
Вопрос :
1. Как и когда можно правильно извлечь эти сохраненные заявки
2. Как преобразовать эти снятые заявки в стоп-заявки с укладыванием их в карман (или просто как их уложить в карман без подключения к серверу) ?
Как варианты:
1) сделать DDE таблицы заявок в Excel.
2) Написать скрипт который конвертирует записи из таблицы заявок в их первозданный вид для кармана или еще для чего угодно.
Получить последний стоп-ордер
 
Опечатка :
Этот алгоритм я  разработал еще до внедрения VM LUA в КВИК и использовал его в QPILE.
Получить последний стоп-ордер
 
Цитата
WennY написал:
Доброго времени суток. Увы, ордера, полученные посредством getItem("stop_orders", i) идут по порядку начиная с первого и до последнего. В итоге чтобы получить последний ордер мне нужно как-то получить все стопы, пересчитать их и только затем уже ловить последний из них. Какие-то более цивилизованные методы существуют? Возможно я просто проморгал что-то в ФАКе. Спасибо.
Есть как минимум два способа решения этой задачи.
1) Каждый раз делать полный перебор - поиск по таблице  (это Вы написали) - самый простой и самый затратный способ.
Самый затратный способ. Особенно, если стопы постоянно переставляются.  
--------------------------------
2) Использование OnStopOrder.
В этом случае Вы через OnStopOrder. получите новый стоп.
Но если запустите свой скрипт повторно при наличии активных  стопов,
то придется применить способ 1, так как OnStopOrder уже не сработает на существующие и ранее принятые квиком стопы.
========================
В том случае,
когда Вы не пользуете колбеки  (например при создании робота  в индикаторе) возможен лишь способ 1 из известных.
============================.
Рассмотрим мой алгоритм решения данной задачи. Этот алгоритм я разработал еще до внедрения VM LUA в КВИК и использовал его в QLUA.
Он в десятки и сотни раз повышает быстродействие роботов , работающих со следящими стопами на тиках.
В некоторых случаях без этого алгоритма Ваш робот просто перестанет работать, так как загрузит процессор переборам тысяч мертвых стопов.
-------------------------------
Пользуйтесь:
---------------------------------
3)  Алгоритм Николая Камынина(kamnik@mail.ru):
Полный перебор таблицы стопов делаем один раз при запуске скрипта.
В процессе этого перебора мы запоминаем в таблице (назовем ее списком активных стопов) номера строк активных стопов из таблицы стопов.
----------------------------------------
Таким образом мы получаем список строк с активными стопами.
Если у нас всегда лишь один активный стоп, то в списке будет лишь одна запись.
--------------------------------
Теперь посмотрим, каким образом мы будем работать дальше.
-----------------------------------
Чтобы проверить состояние последней стоп заявки мы всегда  читаем из таблицы стопов строку по ее номеру в списке.
-----------------------------------
Т е полный перебор мы делаем всего один раз при запуске.  после этого нет никаких переборов вообще.
----------------------
Кроме того, необходимо решить задачу обнаружения выставления новой стоп заявки.
---------------------------------------
Эта задача решается путем сравнения числа строк таблицы стоп-заявок на предыдущем тике и на текущем.
Если выставлена новая заявка, например вместо снятой или передвинутой, то число строк в таблице стоп заявок увеличится и это есть признак что есть новая стоп заявка , а ее номер строки определяется через число строк таблицы.
------------------------
Если активных стопов много, то мы периодически  проверяем по нашему списку их активность и  удаляем из списка неактивные.
-----------------------------------
Таким образом получаем следующее преимущество перед полным перебором:
Как правило  роботы  со следящими стопами порождают тысячи стоп-заявок,
которые все забивается в таблицу стоп-заявок.
при полном переборе мы на каждом тике перебираем эти тысячи.
В моем алгоритме такой перебор делается лишь при запуске робота.
В результате данный алгоритм в десятки и сотни раз быстрее полного перебора.
------------------------------------------------
На этом лекция на тему: "Как создать умного робота, который никогда не умрет"   завершена.
--------------------------
Всем спасибо, все свободны.
Расчет EMA, Формула расчета в Quik?
 
Цитата
Imersio Arrigo написал:
Че вы гадаете :(
В мануале на квик все написано:

[img]data:image/png;base64,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[/img]
Я считал по этой формуле - все сходится. Не нужно изобретать двухколеное ТС.
Цитата
Николай  Камынин   написал:
если обратитесь к литературе, то обнаружите, что EMA это простейший цифровой фильтр с бесконечной импульсной характеристикой.  
Так как фильтрацию делаем на конечном интервале, то вне 3000 значений мы как бы придумываем
Если вы обратитесь к этой литературе сами, то обнаружите что БИХ-фильтр - с бесконечной ХАРАКТЕРИСТИКОЙ, а не рядом входных значений.
т.е. входное значение может быть одно, а отклик фильтра - бесконечным.
Ну так, к сведению :)
Да, дремучий лес.
отклик будет полубесконечным, т е  начнется он лишь с первого отсчета из 3000 а до первого отсчета - Вы придумываете сами.
 
Окна Квика
 
нажать на кнопку ключ с крестом (разорвать соединение)
Показывать последние 100 интервалов
 
но для робота, при свернутом окне, безразлично.
Показывать последние 100 интервалов
 
по-сути должна экономить загрузку процессора. особенно на тиках.
BULLS & BEARS, как получить линию разности быков и медведей с помощью индикаторов на Луа
 
Как начинающему, советую начать с изучения языка луа на простых примерах.
потом написать эти индикаторы самостоятельно по формулам инета.
В результате размер кода будет раз в 10 меньше (получится примерно 5 строчек кода)
и исполняться будет быстрее и у Вас будет понимание того, что делаете.
--------------------------------------
Примечание:
Если не обращать внимание на громкие и пустые фразы вокруг этих индикаторов,
то реально  индикаторы по сути  самые примитивные фильтры первого порядка.
Реально показывают лишь слабые знания математики и богатое воображение у их автора.
Не приходят уведомления после реконнекта с утра
 
Полагаю (я так делаю), что лучше делать подписку при вызове OnConnected , а не onCleanUp
Не импортируется id транзакции, В квике в таблиуе сделок есть id транзакций, при этом в БД часть не импортируется
 
Цитата
Алексей Украинцев написал:
вернее сказать: и так бывает, и наоборот - в квике есть - в БД нет...именно это поле
В качестве рабочей гипотезы могу предложить следующее:
Если внимательно посмотреть на приведенные случаи то заметим следующее:
Потеря id  происходит в пакетах по одной цене и с разницей времени в миллисекунды.
Возможно, что id не переносит сервер биржи по этой причине,  или сервер КВИК
и очень маловероятно, что ошибка на стороне терминала.
Как поставить QUIK на сервер?, Как поставить QUIK на сервер?
 
выберите сервер.
Он  должен быть с виндой.
После этого обратитесь к тем, кто Вам его предоставит.
Они Вам все подскажут.
Не приходят уведомления после реконнекта с утра
 
Цитата
Shaggy написал:
Цитата
Николай  Камынин   написал:
OnCleanUp
Спасибо за подсказку!
Почитал - с этим обработчиком были проблемы в некоторых версиях. Вот тут хороший обход предложен, попробую:  https://forum.quik.ru/messages/forum10/message3682/topic430/#message3682

И опять же вопрос к разработчикам и писателям документации: почему такие важные моменты не отражаются в документации? т.е. вообще, ноль. По умолчанию полагаешь, что установил хэндлер и спишь спокойно, а на практике - возможные лоси. Это безответственный подход в отношении софта, работающего с живыми деньгами.
Поделюсь опытом.
У меня реализована специальная функция - начало сессии.
Она учитывает не только смену даты, но и наличие свечей с неравными High и Low. Таким образом, я различаю предторговый период, послеторговый период предыдущего дня и начало торгов.
Не приходят уведомления после реконнекта с утра
 
вернее не в самом колбеке, а в main при вызове OnCleanUp
Не приходят уведомления после реконнекта с утра
 
Цитата
Shaggy написал:
SetUpdateCallback
попробуйте вызвать SetUpdateCallback в OnCleanUp
PHP в качестве скриптового языка для QUIK, Добавьте пожалуйста PHP в качестве скриптового языка для QUIK
 
Цитата
Андрей написал:
Здравствуйте! Разработчики QUIK.

Знаю что Вы очень заняты, и у Вас очень много важных дел.
Тем не менее сохраняю надежду на вашу доброту и милость.

Почему бы Вам не добавить в качестве скриптового языка PHP.
А не этот недоязык LUA, который чисто по недоразумению стал таким популярным.

Тем более что готовые решения уже есть нужно только DLL откомпилировать.
Работы на пару недель всего то.

Спасибо!
Полагаю, что если очень хочется, то можно писать на джава.
В луа непосредственно либо через СИ можно запускать любые проги в т ч и на джава.
Правда не знаю зачем это надо, но если хочется, то можно.
тейк профит, отступ от мах, мин.
 
Цитата
Александр Пупкин написал:
Здравствуйте, может кто - то показать пример работы стоп приказа тейк профит + стоп лимит

Если в тейк профите к примеру я укажу цену >=67000 Отступ от max = 50, и стоит галочка "по рыночной цене"

Что это будет значить?.. читал в справке, но что - то не совсем понял как работает отступ ((
из документации:
  1. «Тэйк-профит» – это заявка с условием вида «исполнить  при ухудшении цены на заданную величину от достигнутого максимума (на продажу)  или минимума (на покупку)». Заявка работает следующим образом (пример для заявки  на продажу): после достижения ценой последней сделки условия стоп-цены  начинается определение максимума цены последней сделки. Если цена последней  сделки снижается от максимума на величину, превышающую установленный «отступ»,  то создается лимитированная заявка с ценой, меньшей цены последней сделки на  величину «защитного спрэда». Величины «отступа» и «защитного спрэда» могут  указываться как в значениях цены, так и в процентах.  НАЗНАЧЕНИЕ: Закрытие позиции по инструменту с максимальной  прибылью.
--------------------------------------------
Применительно к примеру:
-------------------------------------
Рынок движется вверх.
если цена сделки >=67000, то сервер начинает проверять условие отступа.
Далее , если текущая цена ниже предыдущей  на 50,  то выставляется биржевая заявка по рыночной цене.
Можно ли в индикаторе получить "Общ.спрос", "Общ.предл"?, Можно ли в индикаторе получить "Общ.спрос", "Общ.предл"?
 
Цитата
Александр Волфовиц написал:
Николай  Камынин  , благодарю, это известно, просто индикатор планируется использовать с разными инструментами, неохота несколько экземпляров создавать. Я думал, м.б. есть что-то наподобие H L O C
УВЫ, HLOCV создает сервер квик.
Больше он ничего не создает.
Остальное все поступает с биржи либо срезами в ТТП,либо пакетами в ТВС.
Можно ли в индикаторе получить "Общ.спрос", "Общ.предл"?, Можно ли в индикаторе получить "Общ.спрос", "Общ.предл"?
 
Цитата
Александр Волфовиц написал:
Можно ли в индикаторе получить "Общ.спрос", "Общ.предл"?
getParamEx

Функция предназначена для получения значений всех параметров биржевой  информации из Таблицы текущих торгов. С помощью этой функции можно получить  любое из значений Таблицы текущих торгов для заданных кодов класса и бумаги.  
Формат вызова:  
getParamEx (STRING class_code, STRING sec_code, STRING  param_name)
Сортировать сделки в квике
 
Цитата
Sergey Denegin написал:
Цитата
Дмитрий   написал:
чувак добавь все поля, дата сделки, дата торгов, дата расчетов. и открой фильтр
Зачем я их буду добавлять, если они мне не нужны?
А если фильтр работает только когда эти столбцы есть, то это попахивает ошибкой программы
фильтр фильтрует то, что есть  в таблице, а не вообще в КВИКЕ или на бирже.
Это фильтр для таблицы.
Как сохранить значение переменной (счетчик) чтобы при новой итерации программа обращалась к последнему сохраненному значению и считала от него счетчик далее.
 
Цитата
Digit Service написал:
Николай, пробовал.. при первом прогоне переменной COUNT присваивается значение 0.. и все..
В конце прогона программы хочу сохранить в переменную COUNT значение 1, но переменная не переназначается. При следующем запуске программы опять берется значение переменной 0.
Как можно решить мою проблему?
глобальная переменная устанавливается в начальное значение при запуске и сохраняет значение в последующих циклах вычисления поэтому ее можно использовать в циклах расчета скрипта, но не в следующем запуске
--------------------------------------------------.
если хотите сохранять для следующего запуска, то пишите в файл и при запуске читайте.
Страницы: Пред. 1 ... 53 54 55 56 57 58 59 60 61 62 63 ... 75 След.
Наверх