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

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

Страницы: 1 2 След.
Пожелание по увеличению количества данных на QuikJunior
 
А вообще может кто знает, есть ли где на других серверах адекватный демо-Quik, в котором можно торговать акциями на ММВБ и при этом есть информация по большому количеству свечей сразу?
Пожелание по увеличению количества данных на QuikJunior
 
Мне просто нужно, чтобы на графике отображалось одновременно не менее 300 свечей, это есть на ФОРТС?
Пожелание по увеличению количества данных на QuikJunior
 
Цитата
Egor Zaytsev пишет:
Цитата
Deserf пишет:
Цитата
Egor Zaytsev пишет:
Цитата
Deserf пишет:
Простите, а как мне получать эти данные?
Добрый день.

Если доступ к FORTS есть, то просто строите график и данные будут, при условии, что включены настройки "Данные, отражающие текущее состояние и всю историю изменений» и «Получать пропущенные данные в пункте меню Настройки/Основные/Программа/Сохранение данных/

Также добавим по поводу фондового рынка. Добавлять историю по данному рынку мы к сожалению, не будем. Таковы ограничения тестового доступа. Вы можете выводить графики в сторонние системы технического анализа.
Я так понимаю, при регистрации тестового доступа надо включить галочку "Срочный рынок"?
Добрый день.

Да, либо сообщите Ваш логин, мы предоставим Вам права на рынок FORTS.
Мой логин 93017. Не отходя от кассы вопрос, этот рынок поддерживает подачу "рыночных" заявок?
Пожелание по увеличению количества данных на QuikJunior
 
Я вроде все как вы сказали поставил, однако, всё равно данные получены только за сегодняшнюю сессию с 4 часов утра
Пожелание по увеличению количества данных на QuikJunior
 
Цитата
Egor Zaytsev пишет:
Цитата
Deserf пишет:
Простите, а как мне получать эти данные?
Добрый день.

Если доступ к FORTS есть, то просто строите график и данные будут, при условии, что включены настройки "Данные, отражающие текущее состояние и всю историю изменений» и «Получать пропущенные данные в пункте меню Настройки/Основные/Программа/Сохранение данных/

Также добавим по поводу фондового рынка. Добавлять историю по данному рынку мы к сожалению, не будем. Таковы ограничения тестового доступа. Вы можете выводить графики в сторонние системы технического анализа.
Я так понимаю, при регистрации тестового доступа надо включить галочку "Срочный рынок"?
Пожелание по увеличению количества данных на QuikJunior
 
Простите, а как мне получать эти данные?
Пожелание по увеличению количества данных на QuikJunior
 
Очень хотелось бы, чтобы графики отображали свечи не только за "сегодня", но еще и за "вчера". Конечно, сейчас количество информации полностью удовлетворяет тех, кто хочет просто познакомиться с платформой. Но программистам хотелось бы иметь побольше данных
Если внутри функции создаётся переменная, то по выходу из функции она умирает?
 
Не убиваются при выходе из функции только переменные, объявленные в ней как глобальные (то есть просто, без слова local), такие переменные сохраняют свои значения даже после перехода к другой функции, и она может использовать их значения. Но объявление глобальных переменных из функции является дурным тоном. Куда практичнее объявить все "глобальные" переменные в одном месте вне функций, со словом local, так они будут видны только компонентам именно этого скрипта
Вопрос по Quik-Junior
 
Я хотел спросить, а имеется ли в Quik возможность сохранить, скажем, минутные графики колебаний цен за день с тем, чтобы воспроизводить их потом без подключения к интернету?
Выставление "рыночных" заявок
 
Цитата
Sergey Gorokhov пишет:
Цитата
Deserf пишет:
Да и в tri-файле этого нет...
В tri файле который получается сохранением из Кармана транзакций используются другие параметры.
в частности режим исполнения заявки кодируется в параметре "Флаги"
Поэтому там нет таких параметров.
Я понял, спасибо.
Выставление "рыночных" заявок
 
Да и не суть важно, и без этого выкручусь, спасибо за помощь
Стоплосс и тейкпрофит заявки
 
Да и не суть важно, и без этого выкручусь, спасибо за помощь
Выставление "рыночных" заявок
 
Да и в tri-файле этого нет...
Выставление "рыночных" заявок
 
Цитата
Sergey Gorokhov пишет:
Цитата
Deserf пишет:
Подытожим: работающего варианта стопов, выставляющих заявки по "рыночной" цене не существует. Если нетрудно, осуществите пожалуйста в будущем
Подытожим, Вы так и не прочитали документацию.
Укажите MARKET_STOP_LIMIT или MARKET_TAKE_PROFIT
Уберите ["TYPE"] = "M"
Укажите MARKET_STOP_LIMIT или MARKET_TAKE_PROFIT  - это где указывать, какому аттрибуту? А по ["TYPE"] - он роли не играет, ошибка выдается и с ним, и без него
Выставление "рыночных" заявок
 
Подытожим: работающего варианта стопов, выставляющих заявки по "рыночной" цене не существует. Если нетрудно, осуществите пожалуйста в будущем
Выставление "рыночных" заявок
 
Цитата
Sergey Gorokhov пишет:
Цитата
Sergey Gorokhov пишет:
а вместо них ["TYPE"] = "M"
к слову параметра "TYPE"вообще не должно быть, так как это параметр для лимитированных заявок а не для стоп заявок
Я и без него пробовал, программа на него не ругается, просто игнорирует
Выставление "рыночных" заявок
 
И на просторах интернета ничего нет, нашел только таких же, как я. Они спрашивали, но дальше вопроса дела не пошло...
Выставление "рыночных" заявок
 
Цитата
Sergey Gorokhov пишет:
Цитата
Deserf пишет:
Поменял на TAKE_PROFIT_AND_STOP_LIMIT_ORDER - все то же. Какие поля для нее обязательны, и как высчитывают их значения?
Рекомендуем к прочтению:
-Раздел 6. Совместная работа с другими приложениями
--Импорт транзакций
---Формат .tri-файла с параметрами транзакций
----Примеры строк, которые могут содержаться в файле
Да я уже это делал, рассматривал сохраненный .tri-файл от работавшей стоп-заявки, именно его я и вбил, но он не пашет, а пишет... сами знаете что... Неужели никто не ставил такие в lua-скрипте? Складывается ощущение, что я первооткрыватель...
Выставление "рыночных" заявок
 
Понимаете в чем дело, я не хочу использовать обычную стоп-заявку с фиксированным значением цены, из-за того, что при большом количестве лотов некоторые из них скорее всего останутся висеть незакрытыми, а цена убежит дальше. Хотелось бы иметь такую стоп-заявку, чтобы она раскидывалась, как в "рыночных" заявках. В противном случае придется применять "нахальное минирование" - то есть выставлять рыночную заявку заявку для преждевременного закрытия убыточных позиций. Но если программа не будет работать, то позиции ведь так и останутся убыточными
Выставление "рыночных" заявок
 
Поменял на TAKE_PROFIT_AND_STOP_LIMIT_ORDER - все то же. Какие поля для нее обязательны, и как высчитывают их значения?
Выставление "рыночных" заявок
 
Код взят из оригинального tri-файла, стоп-заявка ставилась, а программно вот нет...
Выставление "рыночных" заявок
 
Люди, помогите кодом плиз. Этот код не работает:


trans4 = {
               ["ACCOUNT"] = Account,
               ["ACTION"] = "NEW_STOP_ORDER",
               ["STOP_ORDER_KIND"] = "TAKE_PROFIT_STOP_ORDER",
               ["CLASSCODE"] = class_code,
               ["SECCODE"] = sec_code,
               ["OPERATION"] = "B",
["TYPE"] = "M",
["PRICE"] = "0",
["STOPPRICE"] = "0",
["STOPPRICE2"] = tostring(math.abs(math.ceil((Zena+maxp)*(10^RazryadZeny))/(10^RazryadZeny))),
               ["QUANTITY"] = tostring(PlanLotov),
               ["TRANS_ID"] = "6",
["CLIENTCODE"] = tostring(client_code),
["COMMENT"] = "Progr",
["OFFSET"] = "0",
["SPREAD"] = "0",
["SPREAD_UNITS"] = "PERCENTS",
["OFFSET_UNITS"] = "PERCENTS"
}
result4 = sendTransaction(trans4)
Цену проверял сообщением - цена корректная, в нужном формате, положительная. Пишет: "Цена заявки должна быть положительна". Может кто знает что тут не так?
Выставление "рыночных" заявок
 
Иными словами, мне лучше увидеть фрагмент
Цитата
Egor Zaytsev пишет:
Цитата
Deserf пишет:
Цитата
Egor Zaytsev пишет:
Цитата
Deserf пишет:
Ну так что? Мне кажется рыночные стоп-заявки не работают
Добрый день.

В обычных стоп заявка нет признака рыночной,
есть только в тейк профит и стоп лимит (STOP_ORDER_KIND=TAKE_PROFIT_AND_STOP_LIMIT_ORDER)
А можно поподробней (я необыкновенно тупой), что это такое и как работает.Я так понимаю, что "STOP_ORDER_KIND" - это один из аттрибутов новой стоп-заявки и пишется в квадратных скобках, а "TAKE_PROFIT_AND_STOP_LIMIT_ORDER" - это значение аттрибута? И какие значения цен устанавливаются? И вообще, как это работает?
Добрый день.

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

Из терминала это будет выглядеть так:



В функции также нужно будет указать все параметры, тейк профит, отступ, защитный спрэд необходимо тоже указать, но нулевыми.
Пример самой функции можно получить через карман транзакции (Торговля/Карман Транзакций/Создать карман). Кладете в карман нужную транзакцию,
сохраняете в tri файл и получаете ее исходные данные.
Спасибо большое, так и сделал. Осталось только соотнести это с англоязычными аттрибутами, применяемыми в QLua, и все)))
Выставление "рыночных" заявок
 
Вот хороший пример из программы, объясните что тут нужно, что нет, пожалуйста:
t = {   ["ACTION"] = "NEW_STOP_ORDER",   ["TRANS_ID"] = tostring(math.random(1, 9999)),   ["CLASSCODE"] = "SPBFUT",   ["SECCODE"] = "RIM5",   ["ACCOUNT"] = "1232",   ["CLIENT_CODE"] = "123",   ["OPERATION"] = tostring(operation2),   ["TYPE"] = "M",   ["QUANTITY"] = tostring(quantity),   ["PRICE"] = "0",   ["STOPPRICE"] = tostring(stopprice_tp), --цена активации тейк профита   ["STOP_ORDER_KIND"] = "TAKE_PROFIT_AND_STOP_LIMIT_ORDER",   ["OFFSET"] = "5",   ["OFFSET_UNITS"] = "PERCENTS",   ["SPREAD"] = "3",   ["SPREAD_UNITS"] = "PERCENTS",   ["MARKET_TAKE_PROFIT"] = "NO",   ["STOPPRICE2"] = tostring(stopprice), --стоп цена   ["IS_ACTIVE_IN_TIME"] = "YES",   ["ACTIVE_FROM_TIME"] = "100000",   ["ACTIVE_TO_TIME"] = "234545",   ["MARKET_STOP_LIMIT"] = "NO"}
Выставление "рыночных" заявок
 
Цитата
max max пишет:
Цитата
Deserf пишет:
А можно по научному? Так можно:


trans4 = {
["ACCOUNT"] = Account,
["ACTION"] = "NEW_STOP_ORDER",
["CLASSCODE"] = class_code,
["SECCODE"] = sec_code,
["OPERATION"] = "B",
["TYPE"] = "M",
["PRICE"] = "0",
["STOPPRICE"] = tostring((Zena),
["QUANTITY"] = tostring(PlanLotov),
["TRANS_ID"] = "6",
["CLIENTCODE"] = tostring(client_code),
["COMMENT"] = "Progr"
}
result4 = sendTransaction(trans4)
Данная конструкция будет работать на срочном рынке ?
Прости, но она походу вообще не работает. У меня один раз выставилась всего. Я как мыслил, цена подходит к стоп-прайс и активируется рыночная заявка (тип = М, цена = "0"); Но это не работает, компьютер игнорирует значение типа. Может выставиться только заявка, в которой точно указана цена. У меня выставилась та, которая изображена, но только потому, что значение ["PRICE"] у нее было меньше значения ["STOPPRICE"] (ноль ведь меньше расчетной цены), однако, если бы она сработала, комп наверно написал бы что-то типа "невозможно выставить заявку по слишком низкой цене" т. е по нулевой цене она бы выставилась
Выставление "рыночных" заявок
 
Цитата
Egor Zaytsev пишет:
Цитата
Deserf пишет:
Ну так что? Мне кажется рыночные стоп-заявки не работают
Добрый день.

В обычных стоп заявка нет признака рыночной,
есть только в тейк профит и стоп лимит (STOP_ORDER_KIND=TAKE_PROFIT_AND_STOP_LIMIT_ORDER)
А можно поподробней (я необыкновенно тупой), что это такое и как работает.Я так понимаю, что "STOP_ORDER_KIND" - это один из аттрибутов новой стоп-заявки и пишется в квадратных скобках, а "TAKE_PROFIT_AND_STOP_LIMIT_ORDER" - это значение аттрибута? И какие значения цен устанавливаются? И вообще, как это работает?
Выставление "рыночных" заявок
 
Ну так что? Мне кажется рыночные стоп-заявки не работают
Выставление "рыночных" заявок
 
Цитата
Deserf пишет:
А можно по научному? Так можно:


trans4 = {
["ACCOUNT"] = Account,
["ACTION"] = "NEW_STOP_ORDER",
["CLASSCODE"] = class_code,
["SECCODE"] = sec_code,
["OPERATION"] = "B",
["TYPE"] = "M",
["PRICE"] = "0",
["STOPPRICE"] = tostring((Zena),
["QUANTITY"] = tostring(PlanLotov),
["TRANS_ID"] = "6",
["CLIENTCODE"] = tostring(client_code),
["COMMENT"] = "Progr"
}
result4 = sendTransaction(trans4)
Комп просто пишет, что цена должна быть положительна (ноль ведь меньше цены открытия стопа)
Выставление "рыночных" заявок
 
А можно по научному? Так можно:


trans4 = {
               ["ACCOUNT"] = Account,
               ["ACTION"] = "NEW_STOP_ORDER",
               ["CLASSCODE"] = class_code,
               ["SECCODE"] = sec_code,
               ["OPERATION"] = "B",
["TYPE"] = "M",
["PRICE"] = "0",
["STOPPRICE"] = tostring((Zena),
               ["QUANTITY"] = tostring(PlanLotov),
               ["TRANS_ID"] = "6",
["CLIENTCODE"] = tostring(client_code),
["COMMENT"] = "Progr"
}
result4 = sendTransaction(trans4)
Про OnTrade()Y
 
А вы, если ничего конкретного сказать не можете, не занимайтесь остроумием
Про OnTrade()Y
 
Цитата
Николай Камынин пишет:
Цитата
Deserf пишет:
Насколько я понимаю, платформа Quik в скрипте QLua не в состоянии отследить ВСЕ выполненные сделки? Если сделка одна по одной цене, тогда еще хорошо, но по двум-трем ценам, то скрипт опускает хобот, поймав только одну цену, ее лоты и цену
Нет, скрипт поднимает заднюю ногу и писает на своего создателя.
Он отлавливает не все сделки - вот и все
Подскажите, как использовать getNumCandles()?, Я пока учусь :)
 
Соответственно, если планируете работать только с одним графиком, не замарачиваясь в его названии (у меня как то раз так было, что настройки не сохранялись после закрытия сессии), то просто прописывайте:

N = getNumCandles("")
Количество свечей выведется по любому открытому графику. Жаль, что нет возможности программно назначить идентификатор нужному графику, допустим, по названию непосредственно графика, которое можно получить по функции getCandlesByIndex()
Про OnTrade()Y
 
Кому интересно, нашел вариант отслеживать количество лотов по OnDepoLimit()
Про OnTrade()Y
 
Насколько я понимаю, платформа Quik в скрипте QLua не в состоянии отследить ВСЕ выполненные сделки? Если сделка одна по одной цене, тогда еще хорошо, но по двум-трем ценам, то скрипт опускает хобот, поймав только одну цену, ее лоты и цену
Выставление "рыночных" заявок
 
Еще вопрос по той же теме, а стоп-заявки рыночные можно выставлять? То есть, чтобы у нее конкретно была указана цена срабатывания, а цена исполнения уже была нулевой при типе стоп заявки "М"?
При выводе информации в лог-файл выводится тарабарщина
 
Цитата
Старатель пишет:
Цитата
Deserf пишет:
А вот "r+" работает
Пишу одно, думаю другое... Конечно же "r+"
Еще раз большое спасибо Вам
При выводе информации в лог-файл выводится тарабарщина
 
Цитата
Deserf пишет:
Цитата
Старатель пишет:
Цитата
Deserf пишет:
Еще раз пишу: режим "а+" не подойдет: это cfg-файл, мне нужно заменять определенные значения в строго определенном месте, а не дописывать, а потом объяснять при следующем цикле оператором что же им считывать.
Вообще-то режим "a+" как раз предназначен, чтобы заменять "определенные значения в строго определенном месте":
Код
  local file = io.open(ImyaCFGFaila, "w")
file:write('---------------33---------------')
file:close()

file = io.open(ImyaCFGFaila, "r+") 
file:seek("set", 15) 
file:write("22") 
file:close()   
Он дописывает в конце файла
А вот "r+" работает - большое человеческое спасибо, жму Вам руку, Вы мне очень помогли, я не шучу
При выводе информации в лог-файл выводится тарабарщина
 
Цитата
Старатель пишет:
Цитата
Deserf пишет:
Еще раз пишу: режим "а+" не подойдет: это cfg-файл, мне нужно заменять определенные значения в строго определенном месте, а не дописывать, а потом объяснять при следующем цикле оператором что же им считывать.
Вообще-то режим "a+" как раз предназначен, чтобы заменять "определенные значения в строго определенном месте":
Код
 local file = io.open(ImyaCFGFaila, "w")
file:write('---------------33---------------')
file:close()

file = io.open(ImyaCFGFaila, "r+") 
file:seek("set", 15) 
file:write("22") 
file:close()  
Он дописывает в конце файла
При выводе информации в лог-файл выводится тарабарщина
 
А как же тогда замену информации провернуть, тем более я раньше это делал?
При выводе информации в лог-файл выводится тарабарщина
 
Цитата
Deserf пишет:
Цитата
Sergey Gorokhov пишет:
Цитата
Deserf пишет:
Прочитайте текст скрипта, который выше - я его ВООБЩЕ НИКУДА НЕ СМЕЩАЛ, а он все равно тупит
Читаю.
Код
  local file = io.open(ImyaCFGFaila, "w+")  --Открыли файл и стерли в нем все что есть, так как режим w+
 file:seek("set", 15)  --смефаем курсор на 15 символов в пустоту,, так как файл пустой.
         file:write("22") --пишем строку "22" после 15 пустых символов
         file:flush() --обновляем файл
         file:close() -- закрываем  


Еще читаю:
Код
  local file = io.open(ImyaCFGFaila, "w+")   --Открыли файл и стерли в нем все что есть, так как режим w+
         file:flush() --обновляем файл
         file:close() -- закрываем  


Что не так?
Смотрите ниже в режиме "w"
Тут дело не в стирании
При выводе информации в лог-файл выводится тарабарщина
 
Цитата
Sergey Gorokhov пишет:
Цитата
Deserf пишет:
Прочитайте текст скрипта, который выше - я его ВООБЩЕ НИКУДА НЕ СМЕЩАЛ, а он все равно тупит
Читаю.
Код
 local file = io.open(ImyaCFGFaila, "w+")  --Открыли файл и стерли в нем все что есть, так как режим w+
 file:seek("set", 15)  --смефаем курсор на 15 символов в пустоту,, так как файл пустой.
         file:write("22") --пишем строку "22" после 15 пустых символов
         file:flush() --обновляем файл
         file:close() -- закрываем 


Еще читаю:
Код
 local file = io.open(ImyaCFGFaila, "w+")   --Открыли файл и стерли в нем все что есть, так как режим w+
         file:flush() --обновляем файл
         file:close() -- закрываем 


Что не так?
Смотрите ниже в режиме "w"
При выводе информации в лог-файл выводится тарабарщина
 
Хорошо, вот такой скрипт:


function main()
local ImyaCFGFaila=getScriptPath().."\\" .. "1.txt"
           local file = io.open(ImyaCFGFaila, "w")
file:seek("set", 0)
file:write(tostring("11"))
file:seek("set", 6)
file:write(tostring("....... его рот"))
file:flush()
file:close()
end

Исходная строка в файле "1.txt" такая: "11111111111111111111111111111111111111111111111111111111111­111111" (без всяких переносов и без кавычек)
После работы скрипта: строка в файле "1.txt" такая: "11<NUL><NUL><NUL><NUL>....... его рот", где <NUL> - то самое.
Как видите никакого смещения в пустоту.
При выводе информации в лог-файл выводится тарабарщина
 
Цитата
Sergey Gorokhov пишет:
Цитата
Deserf пишет:
Можно и не смещать никуда курсор - те же яйца. И смещаю не в пустоту а там, где есть символы, если в пустоту сместить он так то ошибку викидывает сразу
Простите но Вы именно смещаете в пустоту.
Так как режим w+ перезаписывает файл. То есть стирает все и пишет по новой.
Прочитайте текст скрипта, который выше - я его ВООБЩЕ НИКУДА НЕ СМЕЩАЛ, а он все равно тупит
При выводе информации в лог-файл выводится тарабарщина
 
Нашел одно решение, не ахти какое: запускаем программу
Цитата
Sergey Gorokhov пишет:
Цитата
Sergey Gorokhov пишет:
Чтобы решить проблему используйте режим a+

Или допишите в файл что-нибудь прежде чем делать смещение
Код
 ImyaCFGFaila="G:\\!!!!\\qwe.log"
local file = io.open(ImyaCFGFaila, "w+")
file:write("111111111111111111111111111111")
file:seek("set", 15)
file:write("22")
file:flush()
file:close()
 
Еще раз пишу: режим "а+" не подойдет: это cfg-файл, мне нужно заменять определенные значения в строго определенном месте, а не дописывать, а потом объяснять при следующем цикле оператором что же им считывать. По скрипту скажу - это тоже не работает
При выводе информации в лог-файл выводится тарабарщина
 
Можно и не смещать никуда курсор - те же яйца. И смещаю не в пустоту а там, где есть символы, если в пустоту сместить он так то ошибку викидывает сразу
При выводе информации в лог-файл выводится тарабарщина
 
Еще одно наблюдение: необратимые изменения наступают в любом случае, когда файл открывается в режимах "w", даже если в ходе него не происходит ничего: ни записи информации, ни смещения курсора. Так в таком коде получаем из полного лог-файла тупорыло пустой:


           local file = io.open(ImyaCFGFaila, "w+")
file:flush()
file:close()

Скажите, что это за фигня, а то у меня уже башка кружится. Таким образом, ведь дело не в моем кривом коде, и не в ошибочном хранении информации в буфере обмена (и в 32-битности), дело именно в режимах "w" и "w+", режим "а" работает корректно, но мне то надо именно заменять, а не просто приписывать информацию.
При выводе информации в лог-файл выводится тарабарщина
 
Кто что может про разрядность ОСи сказать?
При выводе информации в лог-файл выводится тарабарщина
 
Походу ей не нравятся 32-битные машины
При выводе информации в лог-файл выводится тарабарщина
 
И не в редакторе дело, тоже самое получается в Notepad. Дело похоже в самой Quik и я не удивлен
При выводе информации в лог-файл выводится тарабарщина
 
Кстати, количество "NUL" в каждом случае зависит от координат курсора
Страницы: 1 2 След.
Наверх