А почему Вы считаете что код класса не правильный? Вернее, по каким критериям Вы считаете должна определяться "правильность" класса? С учетом того что одна и та же бумага может находиться сразу в нескольких классах.
как вывести таблицу совершенных сделок в exele и сохранить на компьютере для анализа торгового дня., прошу Вас сообщить о возможности вывода таблицы совершенных сделок на ФР в exele и выводе (для анализа) на компьютер из quika.
Здравствуйте, Способы выставления стоп заявок приведены в документации -Раздел 5. Торговые операции клиента --Условные (стоп-) заявки ---Создание условной (стоп-) заявки
Для стоп-заявок быстрого ввода не предусмотрено. Как вариант, можно заранее заполнить параметры стоп заявки и положить ее в "Карман транзакций" от куда доставать ее в нужный момент.
Здравствуйте, Таблица и так наполняется свежими данными на следующий день. Создавать ее повторно не требуется. Скорей всего на таблице был установлен какой-то фильтр, который не давал отображать данные.
Здравствуйте, Режим быстрого ввода заявок из стакана описан в документации: -Раздел 5. Торговые операции клиента --Управление заявками из Таблицы котировок ---Режим «Быстрый ввод заявки»
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
Григорий Батраченко написал: Приветствую Владимир! картинка растянутая получается, не видно ничего. Как сделать чёткий скрин?
Сохранение графика в bmp сохраняет весь график, а не только видимый в окне. Т.е. увеличив масштаб Вы увидите нормальные данные. Если Вам нужно сохранить только видимую часть графика, для этого используйте скриншоты Print Screen.
Dim pnExtendedErrorCode As Long
Dim lpstrErrorMessage As String * 250
Const dwErrorMessageSize = 250
FunctionResult = TRANS2QUIK_CONNECT("E:\FinamJunior\", pnExtendedErrorCode, lpstrErrorMessage, dwErrorMessageSize)
Здравствуйте, 1. Вопрос к сожалению не понятен. 2. Использовать следует только те функции которые описаны в документации. Какого-либо секретного документа не существует. 3. Проверьте включена ли обработка внешних транзакций в терминале.
Насколько становится понятно, Вам нужно просто округлять значения до нужного количества знаков после запятой. Есть куча разных способов это сделать и тема уже не раз поднималась на нашем форуме и в интернете. Также, есть простое правило, сравнивать числа с заданной точностью.
sav 312, Как уже было сказано пожелание на данный момент не реализовано. Но никто не говорил что оно не будет реализовано. По срокам сообщить к сожалению не можем.
Функция CreateDataSource никогда не возвращает ошибку, И это создаёт большие проблемы при разработке. В неё можно запихнуть любой мусор, и она скажет: "Всё отлично".
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
В оповещениях по СМС и так уже есть пункт оповещения по сделкам. И он там уже давно. Из документации: -Раздел 3. Просмотр информации --Окно оповещений ---Настройка сервиса SMS-оповещений
Цитата
«Заключение сделки» – рассылка оповещений при заключении сделки.
Функция CreateDataSource никогда не возвращает ошибку, И это создаёт большие проблемы при разработке. В неё можно запихнуть любой мусор, и она скажет: "Всё отлично".
Функция CreateDataSource никогда не возвращает ошибку, И это создаёт большие проблемы при разработке. В неё можно запихнуть любой мусор, и она скажет: "Всё отлично".
Вы предлагаете по сути заказывать информацию, не заказывая информацию. Так нельзя. Если заказали информацию, то получили ее размер (через Size), если не заказали то ничего не получили.
Антонио написал: Наверное, если я прав, имеет смысл в документации указать, что не надо из коллбэка вызывать DestroyTable() и Clear()
Надо не в документации писать, а разбираться с причинами падения. В сообщении, скриншот которого Вы приводите, сказано о необходимости отправить нам dmp файл. По нему мы сможем провести анализ.
function trade(Type)
trans_id = trans_id + 1;
price = 0;
local Operation = '';
if Type=='B' then
price=getParamEx(Settings.CLASS_CODE,Settings.SEC_CODE,"OFFER")
else
price=getParamEx(Settings.CLASS_CODE,Settings.SEC_CODE,"BID")
end;
TransOpenPos(Type);
end
function TransOpenPos(Type)
if not (Type=='B') then Type='S'
-- Получает ID для следующей транзакции
trans_id = trans_id + 1
-- Заполняет структуру для отправки транзакции
local direction;
local Transaction={
['TRANS_ID'] = tostring(trans_id),
['ACTION'] = 'NEW_ORDER',
['CLASSCODE'] = Settings.CLASS_CODE,
['SECCODE'] = Settings.SEC_CODE,
['OPERATION'] = Type, -- операция ("B" - buy, или "S" - sell)
['TYPE'] = 'L', -- по рынку (LIMIT)
['QUANTITY'] = '1', -- количество
['ACCOUNT'] = Settings.ACCOUNT,
['PRICE'] = tostring(math.floor(price.param_value)),
['COMMENT'] = ''
}
-- Отправляет транзакцию
local Res = sendTransaction(Transaction)
if Res ~= '' then message('TransOpenPos(): Error: '..Res) else message('TransOpenPos(): FUCK YEAH') end
end
function trade(Type)
trans_id = trans_id + 1;
price = 0;
local Operation = '';
if Type=='B' then
price=getParamEx(Settings.CLASS_CODE,Settings.SEC_CODE,"OFFER")
else
price=getParamEx(Settings.CLASS_CODE,Settings.SEC_CODE,"BID")
end;
TransOpenPos(Type);
end
function TransOpenPos(Type)
if not (Type=='B') then Type=='S'
-- Получает ID для следующей транзакции
trans_id = trans_id + 1
-- Заполняет структуру для отправки транзакции
local direction;
local Transaction={
['TRANS_ID'] = tostring(trans_id),
['ACTION'] = 'NEW_ORDER',
['CLASSCODE'] = Settings.CLASS_CODE,
['SECCODE'] = Settings.SEC_CODE,
['OPERATION'] = Type, -- операция ("B" - buy, или "S" - sell)
['TYPE'] = 'L', -- по рынку (LIMIT)
['QUANTITY'] = '1', -- количество
['ACCOUNT'] = Settings.ACCOUNT,
['PRICE'] = tostring(math.floor(price.param_value)),
['COMMENT'] = ''
}
-- Отправляет транзакцию
local Res = sendTransaction(Transaction)
if Res ~= '' then message('TransOpenPos(): Error: '..Res) else message('TransOpenPos(): FUCK YEAH') end
end
Большие ли отличия QLua от от Lua и где официальная документация?, Какая версия Lua в QLua, работают ли все функции Lua или только какой-то ограниченный набор (если так, то где прочитать, какой?), можно ли подключать модули и все как в обычном Lua? Есть ли где-то на официальном сайте документация?
валерий написал: nn2 = tonumber(string.gsub(getInfoParam ("SERVERTIME"), ":", ""))
к слову, так писать нельзя, string.gsub возвращает два параметра, строку и общеее количество проведенных подстановок. и в tonumber принимает два параметра, строку и основание системы счисления для интерпретации числа.
Sergey Gorokhov написал: Мигает, может по другому но мигает
Я уже довольно много лет смотрю, на всякий случай еще раз с пристрастием посмотрел - не мигает совершенно, только цифирьки аккуратно меняются. А на луа и присматриваться не надо - сразу по глазам бьет.
А Вы добавьте строк по больше и в каждой меняйте значения на новые. И сравните с DELETE_ALL_ITEMS() и без него но с MODIFY_ITEM, разница очевидна.
И даже если DELETE_ALL_ITEMS моргает не так сильно как Clear, это ровным счетом ничего не значит, ибо технологии кардинально разные и никто не обещал что будет одинаково.
В основных функциях Init(), OnCalculate(), OnDestroy() поставил вывод в текстовый лог основных значений свечей: index, T(), C(). Обнаружил, что OnCalculate перебирает все свечи два раза, при этом общее количество свечей во вторую итерацию иногда меняется, иногда нет. Как такое поведение можно объяснить?
Ошибка будет исправлена в одной из очередных версий программы. Приносим извинения за причиненные неудобства.
Sergey Gorokhov написал: округлить число до двух знаков и вывести
Целое? До двух знаков? Это как?
Да, вопрос был понят не верно. Для решения, Вы можете вывести строковое представление числа с двумя нулями. в функции SetCell можно вывести строковое представление числа и само число, например: SetCell(t_id, key, code, "123.00", 123)
валерий написал: А как вывести целое число с двумя, например знаками?
округлить число до двух знаков и вывести.
Цитата
валерий написал: Или строки выровнить в право, а не влево?
Выравнивание нельзя настроить, оно устанавливается автоматически в зависимости от типа данных в колонке. Если числа то выравнивание по правой стороне, если нет, то по левой
Вам уже было сказано, что код рабочий, проблема не в нем. На скриншоте видно что у Вас устаревшая версия программы, попробуйте обновить до более свежей.