Egor Zaytsev написал: По первому пункту и не должен был помочь, так как проблему только зафиксировали и разбираемся с ней.
У другого брокера у меня версия 8.9.0.107, и на ней этой проблемы нет. Можно ли у вас получить для обновления эту версию или, по возможности, максимально последнюю, где проблемы с фильтром по времени для графиков нет?
Egor Zaytsev написал: По второму пункту воспроизвести пока не удалось. Сообщите, что за индикатор Вы используете? Можете его выложить или прислать нам на почту.
Посмотрел внимательнее. Оказалось этот пункт касается не только своих индикаторов, но и встроенных. В версии 7.2.1.5 индикаторы показывали 6 значащих знаков, и это было удобно. А не знаю начиная с какой версии стали показывать столько знаков после запятой сколько у фишки для которой он вычисляется. То есть, как я понял, в привязке к параметру "точность" цены фишки. Зачем так сделано не понятно. Для примера скриншот с индикатором Рейт оф чейндж, который показывает ноль вместо нормального значения. Хорошо бы вернуть обратно.
Попробовал ещё раз третий пункт - работает корректно. Видимо баг был у меня в голове. Пункт снимается. Но я так и не понял, обновление до версии 9.3.3 поможет по первым двум? Хотя бы и главное по первому пункту.
Прежде хотелось бы знать есть ли и там мои 3 проблемы. Особенно первая. Иначе какой смысл? И кстати спрошу, а как приспособить обновление от вас под нужного брокера? Я так думал, что можно только у брокера обновляться.
Пожалуйста визуально. Добавляю свой индикатор к двум разным фишкам. Индикатор изменяется в пределах от -1 до +1. На графике с RIH2 значения индикатора на шкале имеют 0 знаков после запятой. Также как у самой фишки. И вместо значения -0,693584 (как на подсказке) на шкале показывается значение -1. На графике MMH2, у цены которого 2 знака после запятой, значения индикатора на шкале тоже имеют 2 знака после нуля.
1. Ваше обращение получено, проблема изучается. Постараемся в ближайшее время дать ответ. 2. Приведите конкретный пример со скриншотами.
3. У нас работает корректно. Попробуйте обновиться до версии 9.3.3 и проверьте результат.
Так изучается или работает корректно? Не представляю какие скриншоты нужны в подтверждение этих багов. Покажите скриншоты корректной работы, тогда и я сделаю аналогичные. Версии 9.3.3 у брокеров БКС и Финам вроде пока нет.
1. Не сохраняется фильтр по времени на графиках при закрытии программы. 2. Для своих индикаторах квик стал привязывать количество знаков которые показывает на графике, к количеству знаков после запятой инструмента, на который наложен индикатор. Какая логика? Если индикатор рассчитывает например какой-то коэффициент, который менше нуля, а у фишки, для которой он рассчитывается, значения целые, то индикатор показывает в значениях только нули. 3. Если нажать на стакане кнопку "снять все активные заявки из окна котировок", то даже при снятой галочке в настройках "запрашивать подтверждение для групповых операций" всё равно запрашивает.
Anton, оно понятно, что какой-то формальный повод был. Но меня прежде всего интересовало - неужели не было никакого другого, более мягкого решения? Если, как вы предположили, дело в распараллеливании, то разве нельзя было просто ввести дополнительный параметр - идентификатор ядра?
27.02.2017 05:38:19 Alexey Ivannikov написал: валерий написал: У меня версия 7215 бкс. Если открыта ТОС например с выводом всех фьючерсов без фильтра, а потом создать вторую ТОС с каким-то одним фьчерсом, то и в первой все остальные кроме этого перестают выводиться (???). Впрочем и раньше замечал - по непонятным причинам переставали выводиться какие-то фьючерсы и приходилось перезагружать ТОС.Добрый день.
Ошибка будет исправлена в одной из очередных версий программы. Приносим извинения за причиненные неудобства.
Надеюсь не три года ждать опять. Тем более что проблема была не только не решена, а наоборот. Там автоменялся только общий фильтр на потоке, а теперь оба: и общий и в самих таблицах. И возможности сидеть на старой версии нет. Из-за непонятно зачем кому-то нужных 19 знаков в номере. Кстати интересно, может кто скажет зачем? Зачем 19 знаков?
Evgeniy Karnaukhov написал: можно настроить таблицу самостоятельно в её настройках с помощью фильтра инструментов
В том-то и дело, что нет. Вроде и можно, но фильтры постоянно слетают. Писал про это ещё 4 года назад. Обещали исправить, но стало ещё хуже. Пример. Талиц всех сделок нет. В потоке обезличенных сделок выбираем класс фьючерсы без фильтрации инструментов. Создаём окно ТВС. Квик предлагает класс фьючей без фильтра, что естественно. Принимаем и получаем ТВС со всеми фьючами. Создаём второе окно ТВС. Теперь в фильтре выбираем SiZ0. Получаем ТВС с одним выбранным фьючом. Вроде всё нормально. Но в первом окне, которое без фильтра внутри класса, начинает с этого момента идти только тот же SiZ0. Смотрим общий фильтр - он слетел, то есть поменялся на тот который установили в последнем окне, то есть на SiZ0. Снимаем фильтр. Теперь уж совсем вроде нормально. В первое окно вернулись все фьючи, а во втором только Си. Но заходим в окно 2 и видим - теперь там фильтр слетел. Но при этом получается, что продолжает работать. То есть фильтр работает один, а в настройках показывает другое. Глупо получается. Даже если работает, то чтобы запомнить какой фильтр в какой таблице надо записывать на бумажке. А если в окне надо поменять настройки, то фильтр ставить заново. А потом и снова общий фильтр на потоке. А если ещё таблицу создать, то там вообще непонятно что. Вроде простая логика и когда-то так и было. Общий фильтр на потоке и в рамках его выбор фильтра в конкретном окне. Зачем какое-то автоизменение, да ещё непонятно в какой логике. В общем, если 4 года назад я как-то приспособился, то сейчас пока совсем не получается. Всё как в пословице: Хвост вытащил — нос завяз, нос вытащил — хвост завяз.
Вот и я оказывается понял неправильно. Нужно выделить в таблице один фьючерс и он отфильтруется в таблице сделок. Но мне бы нужно именно группу. И к сожалению фильтры инструментов в самой таблице сделок, где по идее можно сделать группу, это та еще история. О чем, как посмотрел, давно идут холивары на форуме. А воз и ныне там. А я ведь помню время (давно на рынке), кода фильтры сделок работали нормально. Общий фильтр потока и конкретный в рамках общего фильтр в таблице. Вроде всё просо и фильтры не слетали и не изменялись сами по себе. Еще в версии 7,2,1,5, где косяки были, но кое как справлялся. А в 8-й,причем на которую вынуждено приходится переходить, никак не могу сладить с "автопомощью" или "автонастройкой" фильтрации.
Evgeniy Karnaukhov, нет понимаете неправильно. Поясню. В таблице торгов пара ликвидных фьючерсов. Сделки идут постоянно. Влючаю якорь - горит красным. В настройках потока выбираю класс Фортс без фильтра инструментов. Опция "с текущего момента" не включена. Создаю таблицу всех сделок. Автоматом получаю весь Фортс. Нажимаю на цепочку, выбираю красный. Ничего не меняется. По прежнему идет весь Фортс без фильтрации по инструментам в таблице торгов.
Попробовал по совету техподдержки воспользоваться таким простым и удобным способом настройки фильтрации таблиц с обезличенными сделками. Упс! Ничего не вышло. Квик 8,7,1,3. Горят красненький якорь и красненькая цепочка. А реакции (связи) никакой. Может кто подскажет?
s_mike@rambler.ru, маленький, но без участия такой код за день вырастет с 40КБ до десятка МБ. Оно конечно некритично, но некрасиво. И не знаю сбросится ли память при пересменке, если квик не закрываешь. Агрессивность сборщика это setstepmul
Игорь, нет, дело не в string.rep. Если поставить единичку вместо 500, то сборщик опять не вызывается. Похоже дело в медленном накоплении мусора. Может как-то можно настроить сборщика на такое, но я погуглил и внятного разъяснения не нашёл. Так что или методом тыка подбирать или просто и грубо установить предел памяти для активации сборщика.
А вот так сборщик работает хорошо - память сбрасывает:
Код
local stopped = false
function OnStop(flag)
stopped = true
end
function f11()
local fpath = getScriptPath() .. "\\tos11.log"
local f = io.open(fpath, "w+")
local fstr = string.rep("asd,qwe\n",500)
f:write(fstr)
f:flush()
f:close()
f = nil
fstr = nil
end
function main()
while not stopped do
f11()
sleep(100)
end
end
Странно, но ему похоже не нравится именно, когда в файл ничего не пишешь.
Вот такой простенький код даёт 1 МБ прироста памяти в час. Некритично, но непонятно почему. Так и должно быть или я что-то делаю не так?
Код
local stopped = false
function OnStop(flag)
stopped = true
end
function f11()
local fpath = getScriptPath() .. "\\tos11.log"
local f = io.open(fpath, "w+")
f:close()
f = nil
end
function main()
while not stopped do
f11()
sleep(100)
end
end
s_mike@rambler.ru, Я как-то так и думал. И как понимаю выхода нет? Или можно управлять порядком? По алфавиту? А что скажете про скорость? Не в курсе getCandlesByIndex вообще так работает или только в индикаторах?
написал простейший индикатор берущий данные из другой области диаграммы
Код
function RF()
return function(index)
if C(index) then
ind, n, l = getCandlesByIndex (Settings.tag, 0, index - 1, 1)
return ind[0].close
end
return nil
end
end
Вроде работает. Но. При загрузке квика выдает нули. Чтобы появились данные нужно нажать "применить" или "ОК". И что еще хуже, просто на глаз видно, что индикатор запаздывает причем до нескольких секунд. Что-то у меня не так или так и задумано?
Алексей, Ха. Вы будете смеяться, но я оказался прав от Арки можно ожидать и невероятного. Если график индикатора в каком-то окне сместить (Дополнительно - сдвиг графика), то сместятся и его индексы, то есть уже не будут совпадать с индексами аналогичных свечей второго графика.
Алексей написал: Ответ просто: ДА, можно быть уверенным.
Спасибо. Я тоже уверен и трудно было бы представить другую логику, но за время общения с Аркой я усвоил - от нее можно ожидать и невероятного. Хотелось бы услышать их подтверждение.
Понятно, что свечи на одном графике синхронизированы. Но можно ли быть уверенным, что и индексы у свечек с одинаковым временем всегда одинаковые (тогда можно искать соответствующую свечу на втором графике по индексу, а не таймстампу)? Мало ли как Арка их считает... Хочу знать наверняка от авторов.
Если два графика расположены в двух областях одной диаграммы, то нужно ли бары обязательно синхронизировать по времени баров или можно быть уверенным, что если индексы совпадают, то и время тоже?
Обновлять не хочется - итак все устраивало. Может подскажете в чем может быть причина? И вообще работало, работало и вдруг... Если причина не понятна, то где гарантия, что и после обновления "вдруг" опять.
У меня портфель делает некий расчет и выводит в таблицу, используя функцию:
Код
' Функция заполнить таблицу
' -----------------------------
FUNC FILL_TBL()
val1 = bar_time
val2 = signal_pos
val3 = current_pos
val4 = buy_quantity
val5 = sell_quantity
val6 = trans_id
val7 = pos_bal
val8 = status
map1=create_map()[IMG]c:\Users\ВГ\Pictures\portf.JPG[/IMG]
map1=SET_VALUE(map1,"val1",val1)
map1=SET_VALUE(map1,"val2",val2)
map1=SET_VALUE(map1,"val3",val3)
map1=SET_VALUE(map1,"val4",val4)
map1=SET_VALUE(map1,"val5",val5)
map1=SET_VALUE(map1,"val6",val6)
map1=SET_VALUE(map1,"val7",val7)
map1=SET_VALUE(map1,"val8",val8)
DELETE_ALL_ITEMS()
add_item(1,map1)
BGC = "DEFAULT_COLOR"
FC = "DEFAULT_COLOR"
if error <> 0 or check_deal >= 10 or check_frun <> 0
BGC = "RGB(250,200,150)"
end if
if status = "STOP"
BGC = "RGB(250,150,150)"
end if
if trade_on_of = "0"
FC = "RGB(50,200,50)"
end if
SET_ROW_COLOR_EX(1, BGC, "DEFAULT_COLOR", FC, "DEFAULT_COLOR")
tt = t_time(0)
WRITELN(logfile_path, signal_pos & "," & current_pos & "," & pos_bal & "," & buy_quantity & "," & sell_quantity & "," & last_price & "," & last_time & "," & best_bid & "," & best_offer & "," & status)
WRITELN(logfile_path, "END" & "," & tt)
END FUNC
То есть при каждом расчете удаляет строки и пишет ровно 1 строку. Все работало много лет. Но месяц другой назад он вдруг не с того, не с сего начинает добавлять строки не удаляя. Причем как-то хаотично, не в такт с периодом расчета, с пропусками и по две строки. Причем нумерация строк плывет. Образец в приложении.
Сначала это происходило иногда и где-то под конец вечерки. Но сегодня уже под конец основной. Хотелось бы понять, что делать.
Квик 6.14.0.12 Финам. И что любопытно точно такой же портфель нормально работает в БКС 6.16.1.15 и 7.2.1.5.
Sergey Gorokhov написал: Уточните, а если не было предыдущих свечей?
Я лично в таком случае заполняю первым, который есть. Да, заглядывание в будущее, но это редко и не критично. Но можно и оставить пустым - во всяком случае отработать пустое начало намного проще.
Какой простор для творчества вы отрыли на пустом месте. Сердце радуется...
Прошу зарегистрировать пожелание. Дайте возможность пользователю сделать выбор - заполнять пропуски OHLC предыдущими значениями, а V нулями. По крайней мере всегда будет отходной вариант если индикатор спотыкается на пропусках. Чтобы пока спокойно с ним разбираться. А если кого устраивает, то и продолжать пользоваться старым.
Sergey Gorokhov написал: Просто надо знать что предел существует.
Более чем туманно. Предел ресурса по отношению к чему? Вы что проверяете мощность моего компа? И почему на одной диаграмме нельзя, а делаю копию, то есть удваиваю "количество требуемых ресурсов" - так это можно? Провел эксперимент. Четыре раза сделал копию диаграммы с 10ю графиками-линиями. То есть всего 50. Это можно. Хотя ресурсов требуется в 5 раз больше. Впрочем на загрузке ЦП и на памяти особо не сказалось. В амиброкере строю вообще бывает кошмар сколько графиков (так удобно потом сравнить и отсеять ненужное) и он ни разу не пожаловался. А там еще история не 3000 баров...
Stanislav Tvorogov написал: Ограничение в 13 графиков в одном окне диаграммы
Прошу уточнить. В окне или по областям? На количество графиков или с учетом количества линий на графиках? И хорощо бы все это в хэлпе узнавать, а не на форуме.
RC2 написал: на каком языке проще будет переписать робота торгующего одновременно на нескольких таймфреймах, на qlua или qpile?
Купайлу капут, а с клуа замучаетесь. Все можно сделать в Ами и проще будет. Посмотрите http://bot4sale.ru/blog-menu/ami.html там много полезного, но не все бесплатно.
Stanislav Tvorogov написал: Ошибка возникает из-за того, что было превышено ограничение на количество графических объектов, допустимое для одной диаграммы.
Так откуда взялось это ограничение? И почему где-то десять с копейками графиков, а не 20 или 2. А что, 2 вполне достаточно добропорядочному пользователю. Сколько я не пробовал разных программ - такое впервые. А главное зачем?
Цитата
Для устранения достаточно либо удалить ненужные графики из существующей диаграммы, либо добавлять новые в другое окно.
Вы полагаете что два графика в разных окнах это все равно, что в одном? Можно конечно и на другом компе нарисовать...
Они меня не раздражают, но вот мешать могут. И так в них всякой хрени достаточно. Отключить тоже не очень хорошо. Сообщения нужные нужны. Более того нужны и звуки. А если вместо них сделать таблицу - звуков не будет
Sergey Gorokhov, Да уж... и вы предлагаете переходить с купайла на клуа?! Прошу зарегистрировать пожелание - дать возможность клиенту самому определять нужен ли ответ на транзакцию через сообщение квика.
Но я просто не представляю чтобы у всех такая куча сообщений не мешала нормальной работе... Или я что-то не догоняю?