QUIK

Сайт продукта: http://arqatech.com/ru/products/quik/
QUIK — самый популярный торговый софт у российских брокеров
  1. Аватар Nikita_invest
    Скажите, пожалуйста:
    а в Quik'е как-то можно настроить выставление заявок, чтобы при выставлении ордера на покупку любого инструмента всегда сразу автоматически ставился стоп на -1% (например) и тейк на +2%?

    (чтобы не ручками каждый раз заполнять, а по умолчанию)
  2. Аватар СергейК
    Автологин для квика на javascript

    Надоело логиниться в квик каждый день по 10 раз, всё время за логином-паролем лазить в файл и копипастить. Сделал скрипт, к-й это автоматизирует. Работает на javascript, так что от версии Windows зависеть не должно.

    Сам скрипт кладётся в файл типа C:\Util\Js\Q.js или куда угодно, только не у всех на виду. На этот скрипт делается ярлык, он кладётся на рабочий стол куда-то в угол, и ему прописывается горячая клавиша типа Ctrl-Alt-X или любая другая буква. После этого вы запускаете квик, появляется окно логина, нажимаете Ctrl-Alt-X и через полсекунды оно срабатывает. Важно, что ярлык должен быть на рабочем столе, иначе горячая клавиша не работает. 

    Вообще вводить данные в другую программу можно двумя способами: copy&paste и эмуляция клавиш. Я в данном случае пошёл по второму пути, хотя и первый тоже реализуем и даже чем-то лучше, т.к. там не надо парится с языком. Из-за этого, если вы хотите использовать этот скрипт, нужно проверить ряд моментов и при необходимости внести исправления. 

    ⦁ В варианте, к-й я выкладываю, логин/пароль должны быть прописаны прямо в скрипте, но можно и читать из файла. У меня дома рабочий вариант вообще ищет их в rtf-файле где много всяких данных. Если логин/пароль положить во внешний файл, то их можно конечно и закодировать. 
    ⦁ Чтобы отработало правильно, надо чтобы текущий язык ввода (по сути язык ввода по умолчанию в системе) в квике был русский. Если это не так, то вначале надо поменять bEngSystem=true
    ⦁ У меня логин русский, а пароль английский, так что между ними производится переключение клавиатуры. Если у вас что угодно из этого не так, надо в нужных местах убрать или добавить переменную LangSwitch, к-я содержит клавиши «Alt-Shift». Если у вас опять же язык переключается по-другому, там надо прописать другие клавиши.
    ⦁ У меня вводится и логин и пароль. Если у вас вводится только пароль, то поменять тоже нужно и не сложно. 

    В общем, можно было бы написать более универсальную версию, чтобы определяеть, когда надо переключать языки автоматом, но мне не нужно, а кому надо разберутся. Или же можно переписать через copy&paste. Делать полностью автоматизированный логин, когда вообще ничего нажимать не нужно я не хочу, потому что тогда любой, кто получит доступ к вашему компьютеру сможет получить доступ и к вашим деньгам, просто кликнув на квике. Так хоть комбинацию клавиш знать надо. 

    bEngSystem=false; //язык системы по умолчанию
    LangSwitch="%+!";
    
    WshShell=WScript.CreateObject("WScript.Shell");
    InitKeys();
    KeysSeq=GetData();
    if (KeysSeq) EnterData(KeysSeq);
    
    //------------------------------------------------------------------------
    
    function GetData(){
    //(Возможно) читаем данные из файла и преобразуем в последовательность клавиш
    //"!" означает паузу для специальных клавиш, к-е требуют время обработки
    var DataFN, oStream, Data, Pos1, Pos2, Line;
    
    if (0){ //данные в файле
    	DataFN='C:/...';
    	FSO=new ActiveXObject("Scripting.FileSystemObject"); 
    	oStream=FSO.OpenTextFile(DataFN, 1); Line=oStream.ReadAll(); oStream.Close();
    	}
    else Line='имя:password';
    
    //Tab должен быть и вначале, потому что при фокусировке квика текущее поле - список серверов
    Line="{Tab}!"+Line.replace(/:/g, "{Tab}!"+LangSwitch); 
    //Переключение языка в самом начале если логин русский
    if (bEngSystem) Line=LangSwitch+Line; 
    //конвертация русских символов
    Line=Line.replace(/[А-Яа-я]/g, RusCB);
    
    return Line;
    }
    
    function EnterData(KeysSeq){
    var ret;
    
    WScript.Sleep(300); //Пауза позволяет убрать руки от клавиатуры до того, как скрипт начал работать
    
    ret=WshShell.AppActivate("Идентификация пользователя"); if (ret==0) return;
    WScript.Sleep(100); 
    
    aSeq=KeysSeq.split('!');
    for(var i=0; i<aSeq.length; i++){
    	Seq=aSeq[i]; 
    	if (Seq!=''){
    		WshShell.SendKeys(Seq); WScript.Sleep(100); 
    		}
    	}
    
    WshShell.SendKeys("{Enter}");
    //WshShell.SendKeys("%+"); WScript.Sleep(100); //switch to Russian
    //WshShell.SendKeys("{Tab}"); WScript.Sleep(100); 
    //WshShell.SendKeys("^V"); WScript.Sleep(100); //paste
    }
    
    function RusCB(s){
    var n, ch, i;
    
    if (s.length==1){
    	ch=s;
    	}
    else{ //rtf
    	//код символа в Ansi
    	s=s.substr(2); n=parseInt(s, 16); ch=String.fromCharCode(n);
    	}
    
    //Преобразовать в Utf и найти в русских клавишах
    i=RusKeys.indexOf(Ansi2Utf(ch));
    //Найти соотв. латинскую клавишу
    return LatKeys.charAt(i);
    }
    
    //------------------------------------------------------------------------
    
    function Ansi2UtfN(Code){
    if (Code>=192 && Code<=255) Code+=848;
    else if (Code==168) Code=1025; else if (Code==184) Code=1105;
    return String.fromCharCode(Code);
    }
    
    function Utf2AnsiN(Code){
    if (Code>=1040 && Code<=1103) Code-=848;
    else if (Code==1025) Code=168; else if (Code==1105) Code=184;
    return String.fromCharCode(Code);
    }
    
    function Ansi2Utf(Str, bRev){
    var Buf='', Ch, Res='', c=0, L, n, f;
    
    L=Str.length; f=(!bRev ? Ansi2UtfN : Utf2AnsiN);
    for(n=0; n<L; n++){
    	Ch=Str.charCodeAt(n); Buf+=f(Ch); c++;
    	if (c>=100){Res+=Buf; Buf=''; c=0;}
    	}
    return Res+Buf;
    }
    
    //------------------------------------------------------------------------
    
    function alert(S){WScript.Echo(S);}
    
    function InitKeys(){
    //Проблема в том, что влияет текущий язык в той программе!
    //Можно нажимать только английские клавиши. Если надо нажимать русские, надо вычислить какие им соответствуют английские
    RusKeys="йцукенгшщзхъфывапролджэячсмитьбю"; LatKeys="qwertyuiop[]asdfghjkl;'zxcvbnm,.";
    RusKeys=RusKeys+RusKeys.toUpperCase(); LatKeys=LatKeys+LatKeys.toUpperCase();
    }
    

    Есть другие решения: Автологин для Quik 8 x64.

    Авто-репост. Читать в блоге >>>
  3. Аватар Мартынов Данила
    Вопрос.
    Перешел на новый контракт. Но В квике автомотически произошла склейка. Как ее отменить? Подскажите пожалуйста.

    Авто-репост. Читать в блоге >>>
  4. Аватар ICEDONE
    Квик
    Блэт переустановил систему, поставил Квик с финама 8.44, закинул в папку опционного аналитика (который был до этого), получилась такая фигня. Нет активного окошка с добавлением позы. Что делать? Несколько раз переустанавливал, ничего не получается


    Квик






    Авто-репост. Читать в блоге >>>
  5. Аватар БорZян Барашкин
    горизонтальный объем
    ребята, привет. вот дали ссылку на скрипт Горизонтального объема для Квик : http://www.bot4sale.ru/download-categories/2012-06-13-15-10-36/item/volume-at-price-dlya-quik.html
    кто нибудь знает, можно ли доверять (в плане истиннности данных) этому скрипту?

    может у кого-нибудь есть верно работающий плагин?
    заранее благодарю!

    Авто-репост. Читать в блоге >>>
  6. Аватар Влад Гильдебрандт
    Сибирский Quik: как создавалась самая популярная в России торговая платформа

    Торговая система Quik была придумана в Новосибирске программистами из Академгородка в конце 90-х и через несколько лет стала главным инструментом для частных трейдеров. Сейчас она занимает 80% рынка. Как ей это удалось?

    Сибирский Quik: как создавалась самая популярная в России торговая платформа



    В Новосибирске на улице Коммунистической, где современные бизнес-центры соседствуют с двухэтажными деревянными домами, находится необычное здание. Оно скорее похоже на шале где-нибудь в Австрии, чем на офис российской компании, чьи акции обращаются на фондовом рынке. В этом здании расположен филиал Московской биржи, а раньше здесь был офис Сибирской межбанковской валютной биржи (СМВБ) — ключевой торговой площадки региона до начала 2000-х. 

     

    В 100 метрах отсюда, если идти по улице в сторону железнодорожной магистрали, находится штаб-квартира другой компании — ARQA Technologies, которая обязана своим появлением СМВБ и оборот которой сегодня превышает 340 млн рублей в год. ARQA Technologies — владелец самой популярной в России торговой платформы Quik, которой пользуются 70-80% частных инвесторов. При этом ARQA Technologies — одна из самых непрозрачных на финансовом рынке компаний, ее владельцы доподлинно неизвестны. Кто и как создавал этот бизнес и почему он оказался успешен?



    Авто-репост. Читать в блоге >>>
  7. Аватар AlexGood
    КВИК не дает добавлять графики
    Друзья, как устранить эти идиотические препоны, когда при добавлении очередного графика через редактирование настроек графика (то есть когда в одном большом «графике» несколько реальных) появляется «Ошибка. Cлишком много графиков. Возможно снижение производительности.»? Только не советуйте уменьшить кол-во графиков, их и так не много, терминал работает без тормозов!

    Авто-репост. Читать в блоге >>>
  8. Аватар AlexGood
    Индикатору гориз. объема для КВИК мешает клиринг
    Друзья и коллеги, всем привет!
    Когда в индикаторе выставляешь период больше времени прошедшего с последнего клиринга, то индикатор .lua не отображает гориз. объем, можно код подправить чтобы индикатор не замечал клиринги?

    Авто-репост. Читать в блоге >>>
  9. Аватар Alex_Bug
    Это Россия!
    Думаете почему я каждый торговый день во избежание зависания самого популярного торгового терминала КВИК вынужден заходить в папку и удалять несколько файлов?!


    Авто-репост. Читать в блоге >>>

    AlexGood, каких именно ???

    Alex_Bug, .dat и .log

    AlexGood, аналогично делаю, просто думал есть ящё
  10. Аватар AlexGood
    Это Россия!
    Думаете почему я каждый торговый день во избежание зависания самого популярного торгового терминала КВИК вынужден заходить в папку и удалять несколько файлов?!


    Авто-репост. Читать в блоге >>>

    AlexGood, каких именно ???

    Alex_Bug, .dat и .log
  11. Аватар Alex_Bug
    Это Россия!
    Думаете почему я каждый торговый день во избежание зависания самого популярного торгового терминала КВИК вынужден заходить в папку и удалять несколько файлов?!


    Авто-репост. Читать в блоге >>>

    AlexGood, каких именно ???
  12. Аватар AlexGood
    Это Россия!
    Думаете почему я каждый торговый день во избежание зависания самого популярного торгового терминала КВИК вынужден заходить в папку и удалять несколько файлов?!


    Авто-репост. Читать в блоге >>>
  13. Аватар Голые Деньги
    Несоответствие графиков на tradingview и Quik
    Добрый вечер.
    Подскажите, почему так разняться свечи, например на индекс РТС между tradingview и терминалом Quik?
    Совсем разные графики
    Таймфрейм и контракт одинаковые

    Авто-репост. Читать в блоге >>>
  14. Аватар AlexGood
    Техзадание на скрипт для КВИК
    Друзья, нужен простой скрипт для КВИК который делит одно значение из Типа источника данных для графика/история значений параметра (в КВИК) на другое с возможностью отображения этого значения в виде линии, пишите в личку вашу цену за работу!

    Авто-репост. Читать в блоге >>>
  15. Аватар AlexGood
    Временное исчезновение своих средств в КВИК и личном кабинете
    Друзья и коллеги, всем привет! Удачной торговой недели!
    О чем может говорить ситуация когда заходишь в КВИК и своих средств в Клиентском портфеле, Состоянии портфеля не обнаруживаешь, тоже в личном кабинете? Потом после звонка в техподдержку вернули и объяснили мол что то там не успело подгрузиться тогда!

    Авто-репост. Читать в блоге >>>
  16. Аватар Kapitalmen
    Быстрая настройка QUIK для торговли фьючерсами по системе Александра Резвякова.
    Быстрая настройка QUIK.
    1) Заходим на сайт https://rezvyakov.pro/
    2) Переходим в раздел Материалы
    3) Скачиваем Журнал сделок
    4) Распаковываем архив с настройками на компьютере
    5) Загружаем настройки в QUIK
    6) Настраиваем счета в QUIK



    Авто-репост. Читать в блоге >>>
  17. Аватар Роман Новиков
    Проблема с подключением к серверу в Quik
    Сегодня столкнулся с такой проблемой, терминал не может установить соединение с сервером.Интернет есть, перепробовал все.В итоге смог подключиться с мобильным интернетом т.е. с другим провайдером. В  чем причина может быть какие мысли? Может ли провайдером блокировать ip адреса? До сегодняшнего дня все работало отлично.

    Авто-репост. Читать в блоге >>>
  18. Аватар Kapitalmen
    Демо-доступ QUIK.

    Регистрация демо-доступа QUIK.
    Скачивание и установка программы.
    Настройка под систему Резвякова.



    Авто-репост. Читать в блоге >>>
  19. Аватар Олег Верховцев
  20. Аватар Олег Верховцев
    может кто подсказать. сегодня сделал перевод 1000 долларов на валютный рынок и не могу продать. деньги висят на каком то BLP
  21. Аватар Михаил Вятский
    Быстро о заявках в Квике. Настройка стакана. Ввод заявки в стакане. Перемещение заявки мышкой


    Авто-репост. Читать в блоге >>>
  22. Аватар n̯ǝɹdǝƆ ʚоwиʞоɓʚƎ
    После установки не активна часть разделов. Почему?

    Антон Иванов, у меня активна. Не подскажу.
    Может не залогинились?
  23. Аватар AlexGood
    Скрипт для произвольного установления таймфрейма в КВИК
    Друзья и коллеги, всем привет! 
    Может есть у кого-то скрипт позволяющий выбирать в КВИК произвольный таймфрейм, например 23 минуты, 35 минут и т.д.?

    Авто-репост. Читать в блоге >>>
  24. Аватар Александр
    Косячное отображение котировок в QUIK
    Всех приветствую, столкнулся с такой ситуацией, что котировки в квике по акции Apple сильно отличаются от реальности, значит возможно и с другими эмитентами такая фигня, кто с этим сталкивался и как это исправить? Брокер ВТБ. 

    Косячное отображение котировок в QUIK
    Косячное отображение котировок в QUIK

    Авто-репост. Читать в блоге >>>
  25. Аватар Алексей Манин
    Данные из QUIK в Python. Построение Дельта графика.
    Данные из QUIK в Python. Построение Дельта графика.Построение нестандартных графиков в Python при помощи библиотеки finplot.
    Можно строить почти любые нестандартные графики: Range, Renco, Delta.
    В качестве примера скрипт для построения Дельта графика.
    График строиться с момента запуска по поступающим данным из таблицы обезличенных сделок.
    Для получения данных из КВИКа используется PythonServer Евгения Шибаева (огромное спасибо автору!!!)

    Тапками не кидайтесь, программировать только учусь.

    # В КВИКе запускаем луа-скрипт QuikLuaPython.lua
    import socket
    import threading
    from datetime import datetime, timezone
    import pandas as pd
    import finplot as fplt
    
    fplt.display_timezone = timezone.utc
    
    
    class DeltaBar():
        def __init__(self):
            self.df = pd.DataFrame(columns='date_time open high low close delta delta_time_sec'.split(' '))
            self.df.loc[len(self.df)] = [0, 0, 0, 0, 0, 0, 0]
    
        def parser(self, parse):
            if parse[0] == '1' and parse[1] == 'RIH1':
                if abs(self.df.iloc[len(self.df) - 1]['delta']) >= 500:
                    self.df.loc[len(self.df)] = [0, 0, 0, 0, 0, 0, 0]  # Добавляем строку в DF
    
                self.df.iloc[len(self.df) - 1]['close'] = float(parse[4])  # Записываем последнюю цену как цену close бара
    
                if self.df.iloc[len(self.df) - 1]['date_time'] == 0:
                    self.df.iloc[len(self.df) - 1]['date_time'] = \
                        datetime.strptime(f'{parse[7]} {parse[8][0:-1]}', "%d.%m.%Y %H:%M:%S.%f").replace(microsecond=0)
    
                if self.df.iloc[len(self.df) - 1]['open'] == 0:
                    self.df.iloc[len(self.df) - 1]['open'] = float(parse[4])
    
                if float(parse[4]) > self.df.iloc[len(self.df) - 1]['high']:
                    self.df.iloc[len(self.df) - 1]['high'] = float(parse[4])
    
                if (float(parse[4]) < self.df.iloc[len(self.df) - 1]['low']) or \
                        (self.df.iloc[len(self.df) - 1]['low'] == 0):
                    self.df.iloc[len(self.df) - 1]['low'] = float(parse[4])
    
                if parse[5] == '1026':
                    self.df.iloc[len(self.df) - 1]['delta'] += float(parse[6])
    
                if parse[5] == '1025':
                    self.df.iloc[len(self.df) - 1]['delta'] -= float(parse[6])
    
                self.df.iloc[len(self.df) - 1]['delta_time_sec'] = \
                    datetime.strptime(f'{parse[7]} {parse[8][0:-1]}', "%d.%m.%Y %H:%M:%S.%f") - \
                    self.df.iloc[len(self.df) - 1]['date_time']
                self.df.iloc[len(self.df) - 1]['delta_time_sec'] = self.df.iloc[len(self.df) - 1]['delta_time_sec'].seconds
    
    
    def service():
        sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        sock.bind(('127.0.0.1', 3587))  # Хост-этот компьютер, порт - 3587
        while True:
            res = sock.recv(2048).decode('utf-8')
            if res == '<qstp>\n':  # строка приходит от клиента при остановке луа-скрипта в КВИКе
                break
            else:
                delta_bar.parser(res.split(' '))  # Здесь вызываете свой парсер. Для примера функция: parser (parse)
        sock.close()
    
    
    def update():
    
        df = delta_bar.df
        # Меняем индекс и делаем его типом datetime
        df = df.set_index(pd.to_datetime(df['date_time'], format='%Y-%m-%d %H:%M:%S'))
        # print(delta_bar.df)
    
        # pick columns for our three data sources: candlesticks and TD
        candlesticks = df['open close high low'.split()]
        volumes = df['open close delta_time_sec'.split()]
        if not plots:
            # first time we create the plots
            global ax
            plots.append(fplt.candlestick_ochl(candlesticks))
            plots.append(fplt.volume_ocv(volumes, ax=ax.overlay()))
        else:
            # every time after we just update the data sources on each plot
            plots[0].update_data(candlesticks)
            plots[1].update_data(volumes)
    
    
    if __name__ == '__main__':
        delta_bar = DeltaBar()
        # Запускаем сервер в своем потоке
        t = threading.Thread(name='service', target=service)
        t.start()
    
        plots = []
        ax = fplt.create_plot('RIH1', init_zoom_periods=100, maximize=False)
        update()
        fplt.timer_callback(update, 2.0)  # update (using synchronous rest call) every N seconds
    
        fplt.show()
    


    Авто-репост. Читать в блоге >>>
Чтобы купить акции, выберите надежного брокера: