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

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

Страницы: Пред. 1 ... 26 27 28 29 30 31 32 33 34 35 36 ... 78 След.
Подскажите правильный алгоритм, сброс параметров при количестве позиций = 0
 
Цитата
sav 312 написал:
В произвольное время, на доли секунды обнуляется total_net
так быть не должно. Приведите конкретный пример, время события и UID Вашей учетной записи.

Цитата
sav 312 написал:
Например по условию срабатывания стоп-заявки.
Как автор скрипта, Вы должны самостоятельно решить при каких событиях Ваш скрипт будет делать то или иное действие.
Функция фракталы
 
Alex Green,
тут
https://forum.quik.ru/forum17/topic1157/
Функция фракталы
 
Alex Green,
В данной теме обсуждается Lua индикатор фракталов, там такая возможность есть.
Во встроенном индикаторе такой возможности не предусмотренно.
Функция фракталы
 
Цитата
Sergey Gorokhov написал:
Alex Green  ,
Да, установить Period не 3 а 5.
т.е. на оборот.
Функция фракталы
 
Alex Green,
Да, установить Period не 3 а 5.
Отработка OnOrder после остановки скрипта
 
Цитата
nero333 написал:
_sk_, спасибо, это хорошая идея, думаю реализовать что-то подобное. Вопрос был к разработчикам относительно кнопки "Остановить", аварийный выход - это всё-таки когда скрипт падает с выводом ошибки в поле "Ошибки выполнения скрипта".

Кнопка "Остановить" это не аварийный выход, а просто остановка скрипта.
Принудительная (в Вашем термине "аварийная") остановка происходит не по нажатию кнопки, а по истечении таймаута 5 сек.
И это не зависит от того что в это время делает main, что-бы Вы туда не написали скрипт принудительно завершится.
Таймаут можно изменить, это делается в return события OnStop (см документацию QLUA.chm)
Если Вам что-то нужно снять заявки перед остановкой скрипта, делайте это в самом OnStop
Помогитете пожалуйста, Запись данных в таблицу.
 
Цитата
Максим написал:
Мне это нужно чтобы я мог видеть так называемый "горизоотальный объем" но выраженый не графически а в табличной форме. Поэтому мне нужно как то сделать так чтобы на каждую свечу у меня выпадала табличка в файл вот в таком виде:

т.е. каждые 10 минут Вам нужно видеть сделки за последние 10 минут.
это решается через ту же getItem.
в main делаем цикл, который через getItem будет перебирать сделки за последние 10 минут.
т.к. getItem берет данные из таблиц по номеру строки, то оптимальней всего будет реализовать цикл начиная с конца таблицы.
с каждой строки, берем код инструмента, время сделки, количество и цену. ПО коду инструмента отфильтровываем не нужные инструменты. По времени смотрим входит ли сделка в нужный промежуток 10 минут.
Если да, то сохраняем данные или показываем в таблице. Если нет то прерываем цикл.
Прошу понять что задачей поддержки не является написание кода на заказ.
Мы можем только посоветовать алгоритм, либо помочь найти причины возникшей ошибки.
Если у Вас недостаточно опыта в программировании, наверное лучше найти человека который сможет реализовать Ваш алгоритм за вознаграждение, на нашем форуме такие есть.
Помогитете пожалуйста, Запись данных в таблицу.
 
Цитата
Максим написал:
А эти готовые данные с таблицы всех сделок берутся в текущем времени?
Данные будут выглядеть также как Вы их видите на графике.

Цитата
Максим написал:
Т.к. меня интересуют параметры qty, price, flags

если с qty, price проблем нет, то flags Вы через CreateDataSource  не получите.
Собственно не понятно зачем Вам это и изначально про него речи небыло.
Помогитете пожалуйста, Запись данных в таблицу.
 
Максим,

т.е. грубо говоря Вам нужно из тиковых данных сделать 10 минутные, как на графике?
Тогда можно обойтись вообще без OnAllTrade, ведь уже готовые данные можно получить через CreateDataSource с параметром INTERVAL_M10
она выдаст нужные данные в уже готовом виде.
Подвешивание info.exe через механизм межпоточного локинга
 
El El,
Воспроизвели.
Проблема изучается. Постараемся в ближайшее время дать ответ.
Подвешивание info.exe через механизм межпоточного локинга
 
El El,
В заголовке times уже +30000 пока полет нормальный.
А у Вас при каком значении зависает терминал?
getNumCandles возвращает максимальный сдвиг аллигатора
 
Егор Масалкин,
getCandlesByIndex работает с графиком а не с источником данных.
А значит она будет реагировать на изменения с графиком.
Если Вам нужно работать с исходными данными, для этого есть CreateDataSource
Отработка OnOrder после остановки скрипта
 
Цитата
nero333 написал:
Получается, что после нажатия "Остановить" OnOrder уже не отрабатывает. Это ошибка или так должно быть?
Если остановить скрипт то он остановит свою работу, все логично.
Помогитете пожалуйста, Запись данных в таблицу.
 
Максим,

OnAllTrade срабатывает по событию, а не по таймеру.
Если нужно по таймеру, то нужно избавиться от OnAllTrade и вместо нее использовать функцию getItem (см. документацию, раздел "Функции для обращения к строкам произвольных таблиц QUIK")
Эту функцию, нужно вызывать внутри main, там же где и sleep. В самом sleep установить нужное значение паузы
Помогитете пожалуйста, Запись данных в таблицу.
 
Цитата
Максим написал:
А таблица после вывода будет иметь вид как ч описывал или нет?
вопрос не понятен.
Если нужно узнать "что будет если" проще всего запустить код и самостоятельно увидеть результат.


Цитата
Максим написал:
И еще вопрос. Код который вы прислали там есть sleep(1000) то есть запись будет производиться каждую секунду?

Нет.
sleep вообще никак не влияет на OnAllTrade т.к. он в функции main которая живет в отдельном потоке.
Данная конструкция нужна чтобы скрипт не завершал работку сразу после запуска а висел пока его не остановят.

Цитата
Максим написал:
и в вашем коде цикл стоит помле описания переменных и функции - это принципиальный момент или этт дело вкуса?

Во первых, всё что вне функции mail крутится в основном потоке терминала.
А значит если Вы опишите бесконечный цикл, то терминал просто зависнет.
Во вторых, Ваша конструкция абсолютно лишена смысла и логики, зачем описывать функцию внутри цикла?
Если хотите можно функцию main написать в верху, а OnAllTrade внизу, разницы никакой нет.
Помогитете пожалуйста, Запись данных в таблицу.
 
Максим,
В коде очень много ошибок, проще показать как оно должно быть
Код
IsRan=true 
function OnAllTrade(alltrade) 
   if alltrade.sec_code=="xxx" then 
      cena=tostring(alltrade.price) 
      data=tostring(alltrade.datetime.year)..tostring(alltrade.datetime.month)..tostring(alltrade.datetime.day)
      kolvo=tostring(alltrade.qty) 
      a={}
      a["cena"]=cena 
      a["data"]=data 
      a["kolvo"]=kolvo 
   end
end
   
function main()
   while IsRun do 
      sleep(1000)
   end
end
Ошибка, attempt to compare two table values
 
Алексей,

функция getFuturesHolding вызывается внутри функции obnov(), которая нигде в коде не используется. Либо в этом и есть причина, либо Вы опять привели не полный код скрипта.
И Вы так и не представили скриншот таблицы позиций по клиентским счетам, на котором видно что данные которые Вы запрашиваете, действительно существуют.
загрузка tri файла, как можно изменить скорость загрузки
 
Здравствуйте,
К сожалению, такой возможности нет.
getNumCandles возвращает максимальный сдвиг аллигатора
 
Егор Масалкин,
Алигатор показывает данные в будущее, в результате, в окне даграммы справа добавляются свечки.
Пусть хоть и пустые, но они есть:

А значит правильно и логично что getNumCandles реагирует на эти самые свечки.
Функция фракталы
 
sav 312,
Прошу понять что написание кода на заказ не является нашей задачей.
Если есть проблема, готовы помочь ее решить. Но если проблемы нет, а надо написать код то увы.
Что именно не получается?
Функция фракталы
 
sav 312,
Можно, для этого достаточно переделать условие "if Up and Down then" так чтобы оно срабатывало в нужный для Ваших целей момент.
например добавить счетчик, который при нужном количестве 2 вызовет break
Функция фракталы
 
t2,n2,i2 = getCandlesByIndex(CODE_FRAC, 0, 0, N2-1);
  if (t[num].high) > 0 then
message("Up="..t[num].datetime.hour..":"..t[num].datetime.min,1)

 if (t[num].low) > 0 then

   message("Down="..t[num].datetime.hour ..":".. t[num].datetime.min,1)
Функция фракталы
 
sav 312,

в присланном коде найдена пара ошибок:
t2,n2,i2 = getCandlesByIndex(CODE_FRAC, 0, 0, N2-1);

 for i = 0, n - 1 do
 num = n - 1 - i
Функция фракталы
 
sav 312,
К сожалению, по предоставленным данным понять причины не представляется возможным.
Функция фракталы
 
Цитата
sav 312 написал:
Полный код более 1000 строк.
Вы можете создать маленький код, без всего лишнего, на котором воспроизвести проблему.
Функция фракталы
 
sav 312,

1) это не полный код
2) нет скриншотов.
Функция фракталы
 
sav 312,

предоставьте хоть какие-нибудь данные для анализа, скриншоты, Ваш код.
голословно проблему никак не определить.
Функция фракталы
 
sav 312,
не там указали идентификатор?
Функция фракталы
 
sav 312,

Код
      
t, n, l = getCandlesByIndex("qwe", 0, 0, getNumCandles("qwe")-1) 
      Up=false
      Down=false
      for i=0,n-1 do
         num=n-1-i
         if (t[num].high)>0 then
            Up=true
            message("Up=".. t[num].datetime.hour..":"..t[num].datetime.min)
         end
         if (t[num].low)>0 then
            Down=true
            message("Down=".. t[num].datetime.hour..":"..t[num].datetime.min)
         end
         if Up and Down then
            break
         end
      end
Функция фракталы
 
Здравствуйте,
Также через функцию getCandlesByIndex
нужно написать цикл, который будет перебирать свечки начиная с текущей и в прошлое, пока не найдет свечки фрактала.
Новичок QPILE. Где можно посмотреть, скачать примеры файлов со скриптами?
 
Здравствуйте,
QPILE признан устаревшим и более не развивается.
Рекомендуем сразу же начать изучение альтернативного языка QLUA как более современного и перспективного.
Документация и примеры доступны по ссылке
https://arqatech.com/upload/iblock/194/quik_lua.zip
Лимитированная заявка
 
Цитата
DP написал:
Я не нашел ответ в документации, к сожалению.

Для начала нужно определиться какой стоп Вы хотите, при каких обстоятельствах он выставляется, и при каких условиях он будет покупать.
Документация на терминал QUIK:
-Раздел 5. Торговые операции клиента
--Условные (стоп-) заявки

И только после этого, следует обратиться к документации за поиском параметров транзакции
-Раздел 6. Совместная работа с другими приложениями
--Импорт транзакций
---Формат .tri-файла с параметрами транзакций
Ошибка, attempt to compare two table values
 
Алексей,
Для того чтобы понять причину нужен весь код целиком, а не только часть
Лимитированная заявка
 
Цитата
DP написал:
Пытаюсь всю схему в голове уложить. Стоп заявки используются для ограничения убытков и получения прибыли и всегда идут в паре с заявкой, которая осуществляет вход в рынок. Я правильно понял Вашу фразу "На срочном рынке такой возможности нет. Как вариант, можно использовать стоп заявки"?

Вы задали конкретный вопрос
Цитата
DP написал:
А есть возможность выставить заявку так, чтобы она исполнилась, когда цена достигнет определенного значения вне зависимости от того есть ли предложения по лучшей цене?

На него был конкретный ответ:
Цитата
Sergey Gorokhov написал:
На срочном рынке такой возможности нет. Как вариант, можно использовать стоп заявки

Зачем Вы ищите скрытый смысл там где его нет?
Если надо ставить стоп для ограничения убытков, то пожалуйста ставьте.
Если хотите поставить стоп для покупки или продажи, никто не запрещает.
Лимитированная заявка
 
DP,
Не совсем понятно как вопрос связан с темой обсуждения.
Если нужно ставить стоп заявку для ограничения убытков, то ставьте.
Ошибка, attempt to compare two table values
 
Цитата
Алексей написал:
Есть еще вопрос, существует ли параметр что бы считать минимум и максимум пред идущей свечи на графике

для доступа к свечкам можно использовать функцию getCandlesByIndex
Что касается минимумов и максимумов, то чтобы их найти нужно с чем-то сравнивать, не совсем понятно, с чем нужно сравнивать значения
Ошибка, attempt to compare two table values
 
Цитата
Nikolay Pavlov написал:
возможно функция не возвращает значения, т.к. были указаны некорректный код класса или инструмента, также можно смотреть на поле getParamEx(...).result

или торги еще не начались
Индикатор на индикатор
 
Let_it_go,
Боюсь что в случае FRACTALS просто так решать задачу не получится т.к. он смотрит на Hight и Low источника, а у индикаторов, само собой никакого Hight и Low нет.
Варианты решения есть, но они не простые. Либо брать данные через getCandlesByIndex (что сложно), либо переписать код индикатора, так чтобы вместо Hight и Low был Any (что по проще)
Кроме того, следует иметь ввиду что в последней редакции FRACTALS возвращает номера свечек, значит, чтобы увидеть их на графике, следует установить значения через функцию SetValue.

И последнее, в QLUA есть встроенная функция GetValue в связи с чем в индикаторах она переименована в GetValueEX, обновите индикаторы
Лимитированная заявка
 
DP,

На срочном рынке такой возможности нет. Как вариант, можно использовать стоп заявки
Лимитированная заявка
 
DP,
Вчера по RIZ7 цена опускалась ниже 111700
Если на рынке есть цена лучше чем Вы указали, то заявка исполнится по лучшей цене.
т.е. Вы купили дешевле чем хотели вот и все.
Активные-снятые заявки
 
Цитата
Let_it_go написал:
Сергей, а какие проблемы могут возникнуть при такой проверке:
Код
   if  t.flags =  =  30   then 
считать заявку снятой
 end    

Могут быть такие что у разных снятых заявок десятичное представление будет разным и проверка не сработает
Активные-снятые заявки
 
Цитата
Let_it_go написал:
Снятая заявка имеет параметр flags=30
Исполненная заявка имеет параметр flags=28

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

Цитата
Let_it_go написал:
является ли это исчерпывающей характеристикой снятости-неснятости?
ну например если hour==0, то заявка НЕ снятая, а если hour>0, то она снята?
Спасибо.

нет т.к. заявка может быть снята в полночь.
правильней проверять флаги
Модуль опционной аналитики, Кривой расчёт прибылей/убытков
 
Старатель,

Информация получена, проблема изучается. Постараемся в ближайшее время дать ответ.
Как в индикаторе получить параметры обезличенной сделки?
 
Здравствуйте,
Доступ можно получить только через функцию getItem
Подскажите какая функция читает "доску опционов" ?, доска опционов
 
Цитата
c3po написал:
Спасибо за ответ. Имелся в виду открытый интерес по страйкам. В текущей версии квика данная колонка названа открытыми позициями.

Прошу прощения, изначально вопрос был понят не правильно.
Открытый интерес из таблицы текущих торгов можно получить функцией getParamEx с параметром NUMCONTRACTS
Подскажите какая функция читает "доску опционов" ?, доска опционов
 
Цитата
c3po написал:
Добрый день!
Какие способы есть прочитать значения открытых позиций из доски опционов?

На всякий случай:
Цитата
Egor Zaytsev написал:
В текущей версии доступа к таблицы "Доска опционов" нет.

Но выход есть.
Доска опционов берет данные об открытых позициях из таблицы Позиции по клиентским счетам.
А значит, чтобы получить нужную цифру, Вам достаточно обратиться к этой таблице через функцию getItem
INDICATORS.ZIP
 
Let_it_go,

ошибка в примере а не в коде скриптов.
укажите строку так
ma_out=func(i, {Period=3, Metod = EMA, VType=CLOSE}, ds)

пример поправим
Индикатор на индикатор
 
Let_it_go,
1) В QUIK нельзя накладывать индикаторы на индикаторы.
2) только если формулы обоих индикаторов уместить в одном скрипте. Или делать через привязку к идентификатору (см функцию getCandlesByIndex)
Автоматическая привязка линии тренда к свече
 
Lap raze,
Здравствуйте,
Это возможно, то только через механизм меток, а не трендовых линий.
В QLUA это функция AddLabel
Сбор за транзакции
 
Let_it_go,

спасибо, я уже видел эту формулу.

давайте посчитаем проблемный участок на примере.


допустим у Вас было три сделки.
допустим комиссии по ним были такие 1, 2 и 4
Согласно формуле мы должны посчитать
1*40 + 2 * 40 + 4 * 40

Вы же, вынесли 40 за скобки.
ко школьному курсу алгебры, это выглядит так:
(1 + 2 + 4) * 40
где (1 + 2 + 4) это Ваше comiss

а Вы написали
trades*comiss*40

Вопрос, в том, зачем тут trades?
Страницы: Пред. 1 ... 26 27 28 29 30 31 32 33 34 35 36 ... 78 След.
Наверх