Вопрос-ответ

Автор записи: Дмитрий (Admin)
1 звезда2 звезды3 звезды4 звезды5 звезд (Голосов 5, среднее: 5,00 из 5)
Загрузка...
LogoNew
Если Ваш вопрос не имеет отношения к какой-то определенной статье на данном сайте, то, пожалуйста, задавайте его в комментариях здесь.

Добавить комментарий

Вопрос-ответ: 2 020 комментариев

        1. "бывает" я в "панике" был - все все не работает - что делать - караул все переделывать или что куда бежать - ну шучу конечно - НО - я даже в КВИК отправил запрос (поржали может они) - ну то же им отписался что все путем все хорошо уже - хотя - вот так нюансики - ну реально не работал - и вот как так то?

  1. Привет. Столкнулся сегодня с такой штукой - обновил, а точнее занового установил в другую директорию демо от арки 7.16.2.5 (был 14), настройки экрана то взял файл .wnd с 14, а вот настройки - Основные настройки - уже руками сделал, но они же то же в каком то файле лежат и хранятся - а вот где не знаю (В описании пытался найти, но не сумел - ну может плохо искал) - в общем Вопрос - где лежат Основные настройки?

      1. Хорошо - будем искать - да в принципе говорю ручками все переделал уже - не так много времени это занимает - да и 1й раз с этим столкнулся. На реальном то счете это не грозит. Вот еще такой момент сделал оповещалку по SMS, а щас сижу и репу чешу, а надо ли это вообще? В квике есть такая функция, но она у меня платная 200р. в месяц - вот пока не знаю что в эту сумму входит - завтра уточню у брокера, а то народ кричит что у кого то SMS оповещалка в квике бесплатная - пока ни че не понимаю - ну разберемся как всегда.

            1. да факт - суть вопроса - что - брокер то себя не обманет - и предложит что то - ту же sms оповещение - но я чё то посчитал, так лучше - если надо эту оповещалку (мне то пока не надо) - 200р. в месяц и у тебя там например в день только 1 сделка - шкурка выделки не стоит от таких оповещений - лучше вот как щас вижу (могу ошибаться) что через сервис что у тебя есть - может и лучше - вопросы возражения?

    1. Здравствуйте, напишите мне на эту почту - reim12@yandex.ru, возможно у меня уже есть готовый вариант или если нет, то обсудим вопрос исполнения вашей стратегии. Дмитрий(Admin), мне разрешил написать сообщение данного характера - за что ему большое человеческое спасибо. Дима ты крутой - а кто только еще учится осваивать Lua, то мое мнение этот ресурс самый лучший - все круто, все есть, я здесь почерпнул много для себя и до сих пор нет нет да захожу и не стесняюсь вопросы задавать - вот так примерно.

  2. Спасибо за ответ, но ясности он не прибавил, задам следующий вопрос - к своему роботу хотел прикрутить доп. условие вход при пробое ближайшего фрактала, подкиньте идейку как это сделать

  3. Здравствуйте, помогите разобраться с кодом, нужно расчитать суммарный объем за определенный период, как только добавляю индикатор, квик сразу же перестает отвечать и зависает...

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    
    Settings =
    {
      Name = "VolumeSumm",
      period = 8,
      line =
      {
        {
          Name = "VolumeSumm",
          Color = RGB(0, 128, 64),
          Type = TYPE_LINE,
          Width = 1
        }
      }
    }
     
    function Init()
      return 1
    end
     
    function OnCalculate(index)
      if index >= Settings.period then
        local sum = 0
        for i = index - Settings.period+1, index do
          sum = sum + V(i)
        end
        return sum
      end
    end
    1. Здравствуйте, запустил у себя, все работает, попробуйте таймфрейм на графике побольше поставить, например дневной, возможно просто очень много свечей и комп тормозит пока их все просчитывает. Или можете подождать когда все прогрузится.

      1. Жуть какая. Дело в том что мне нужен именно минимльный таймфрейм, до 5 мин...Что за программа то этот квик, что не начнешь там реализовывать, постоянно косяки какие то. Спасибо, что помогли, по крайней мере он работает)

  4. Здравствуйте.
    Как правильно обрабатывать Таблицу Обезличенных Сделок?
    Пишу индикатор. Задача стоит такая. Прочитать Таблицу Обезличенных Сделок, собрать сделки на покупку и на продажу и вывести на график. Все реализовал, но имеется одна проблема.
    Когда индикатор выводит сумму объема на покупку и на продажу, то это число отстает от объема бара.
    В индикаторе используется функция OnCalculate(index) то есть, как только изменяется бар на грфике вызывается функция. Читает строки Таблицы Обезличенных Сделок, считает объем на покупку и на продажу, суммирует и выводит на график.
    Как я понял Таблица Обезличенных Сделок не успевает обновиться. То есть сначала изменяется бар, потом вызывается функция OnCalculate(index), а потом в Таблицу Обезличенных Сделок записывается новая сделка. В итоге последняя строка не попадает в вычисления индикатора
    Когда приходит новая сделка, бар изменяется, вызывается OnCalculate(index) индикатор теперь вычисляет ту не попавшую строку, потом в Таблицу Обезличенных Сделок записывается сделка которая привела к изменению бара, но эта сделка снова не попадает в индикатор.
    В итоге последняя сделка не участвует в расчетах.
    Может как то по другому нужно обрабатывать Таблицу Обезличенных Сделок?

      1. Такой вариант конечно я посмотрю. Хотя и не хочется отдельный скрипт держать запущенным.
        Как я понял функции обратного вызова в скриптах выполняются в потоке в котором работает Квик, а не в отдельном. Значит последовательность так же будет иметь значение. Может быть придет сделка, потом запишется в Таблицу Обезличенных Сделок, потом будет вызвана функция в скрипте, далее изменится бар на графике и будет вызвана OnCalculate. тогда все хорошо. А возможно последовательность будет и такой: придет сделка, изменится бар, будет вызвана OnCalculate а потом вызвана функция в скрипте и далее записывается сделка в Таблицу Обезличенных Сделок. В этом случае и читать из файла нет смысла. Но это надо будет на практике проверить и уже убедиться в какой последовательности работает.
        Ну и конечно по времени может возникнуть задержка. Время записи на HDD и время чтения с HDD каждой сделки может подтормаживать, но можно писать в файл на SSD в принципе.
        Но это ладно, я все протестирую.
        Спасибо за ответ. Я больше думал что может я как то не правильно мыслю и обрабатываю Обезличенные Сделки и есть иной способ, а я его не знаю.

      2. Проверил последовательность выполнение функций в индикаторе и скрипте. Получается что отдельным скриптом писать сделки в файл так же не решает проблему.
        Написал индикатор который пишет сделки в файл из Таблицы Обезличенных Сделок.
        Написал скрипт который пишет сделки в файл в функции обратного вызова OnAllTrade.
        Добавил время и задержку, что бы определить последовательность записи.
        Результаты получились такие.
        Сначала изменяется Бар, вызывается функция OnCalculate в индикаторе, из Таблицы Обезличенных сделок не удается получить сделку которая изменила бар, ее там нет. Потом вызывается функция OnAllTrade в скрипте со сделкой которая и изменила бар.
        Получается что даже если написать скрипт который будет писать сделки в файл используя функцию OnAllTrade, то когда изменится бар, сделки еще нет ни в Таблице Обезличенных Сделок ни в файле. Так что задержка останется.
        Днем конечно отставания практически не заметно, потому что сделки идут часто, а вот вечером хорошо видно. Объем бара один, а на индикаторе меньше, как раз на количество в последней сделке

        1. можно просто запоминать в индикаторе предыдущий объем и сравнивать с новым, можно будет понять таким образом по какой цене была сделка и какого объема, только направление будет неизвестно.

    1. Здравствуйте! Потому что у него вся работа идет в функциях обратного вызова (коллбеках), которые начинаются на On..., а в main цикл while просто поддерживает работу робота, т.к. робот работает, пока работает функция main.

        1. Можно в каждой функции обратного вызова записывать имя функции в которой в данный момент идет выполнение и значение os.clock() в файл. Потом посмотреть файл, там будет что то типа
          Имя функции - 1.005
          Имя функции - 1.014
          Имя функции - 1.051
          Имя функции - 1.083
          ...
          Так и определить последовательность

  5. Добрый день! Несколько дней как изучаю материалы сайта и все время не могу понять одного не особо заметного, но очень важного момента, а именно - почему вы пишите робота на C# а конектор на C++ если можно обойтись C++ без посредников ? Работа со скриптом Lua, а следовательно и всем терминалом через Классическое приложение Windows на C++ гораздо удобнее чем на C#, но с промежуточным звеном. Не говоря уже о том что DLL посредник увеличивает задержку и нагружает память. Конечно если требуется сложный интерфейс на WPF то это оправдано но в остальных случаях использование DLL конектора представляется сомнительным решением. Буду признателен если мне пояснят в чем я прав, в чем ошибаюсь. Спасибо!

      1. За Qlua не скажу точно, но в C++ приложении можно спокойно отправлять параметры, принимать ответ, вызывать функции прописанные в Lua скрипте. Например по этому мануалу : http://www.troubleshooters.com/codecorn/lua/lua_c_calls_lua.htm ... Arguments and Return Value. Конечно возможно я чего то не знаю или что то упустил.

          1. Видимо вы правы, никто бы не стал все усложнять а я просто недопонимаю какого то важного момента. Например из статьи :
            https://quikluacsharp.ru/qlua-c-cpp-csharp/obmen-dannymi-mezhdu-dll-c-c-i-prilozheniem-c/
            совсем непонятно - а как Lua передаст данные в DLL, что бы потом DLL передал их С# ?
            Ведь сами методы `forLua_StartSendHi` и `forLua_StopSendHi` в качестве параметров принимают указатели на lua_State. Или Lua должен не только вызвать команду в DLL но и отправить данные в стек, из которого Dll их и отправит в # ?

            1. В Lua все хранится в стеке, т.е. все переменные и функции. При вызове из Lua любой функции подключенной dll этот стек передается в нее автоматически, по этому, имея к нему доступ внутри dll функции, мы можем обратиться к любой переменной, или функции Lua.

              1. - '''При вызове из Lua любой функции подключенной dll этот стек передается в нее автоматически'''
                ок, стек передался автоматически - как DLL узнает какой именно элемент стека нужно найти и передать в # ?
                На сайте есть пример работы с Lua стеком из подключенной DLL?