Поддержка проекта

Индикатор "Индексы свечей"

1 звезда2 звезды3 звезды4 звезды5 звезд (Голосов 2, среднее: 5,00 из 5)
Загрузка...
Цена: БЕСПЛАТНО
OpenSource: да

img-2016-01-14-03-21-32

Код скрипта
Индикатор выводит на график индексы свечей (первая свеча имеет индекс 1). Цифры начинаются над соответствующими свечами. Помогает при разработке и отладке скриптов.

Для работы индикатора необходимо в настройках указать идентификатор графика.
Так же, можно настроить период, через сколько свечей будет выводиться индекс (по умолчанию 5). И на сколько шагов цены выше High свечи будут выводиться цифры (по умолчанию 20).

Если у Вас появились какие-то вопросы, задайте их в комментариях под статьей !!!

Скрипт "Хранитель сделок"

1 звезда2 звезды3 звезды4 звезды5 звезд (Голосов 6, среднее: 5,00 из 5)
Загрузка...
Цена: БЕСПЛАТНО
OpenSource: да

img-2015-09-05-00-05-37

Код скрипта
Сохраняет все Ваши сделки в формате CSV (Excel) в реальном времени.
Данный скрипт нужен для работы Индикатора "Мои Сделки"
Смотреть полностью...

Индикатор "Мои Сделки"

1 звезда2 звезды3 звезды4 звезды5 звезд (Голосов 9, среднее: 4,89 из 5)
Загрузка...
Цена: БЕСПЛАТНО
OpenSource: да

Для работы индикатора необходим Скрипт "Хранитель сделок"
img-2015-08-20-18-18-22

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

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

Индикатор "Мои Сделки": 103 комментария

  1. Здравствуйте Дмитрий. У меня проблема с запуском ИНДИКАТОР "МОИ СДЕЛКИ". После нажатия кнопки "Да" в окне "Добавить график" с выбором пункта "МоиСделки (c)quikluacsharp.ru", выходит предупреждение:
    "Индикатор "Мои Сделки": Предупреждение!!! Вы забыли указать "Идентификатор графика", индикатор не будет помечать сделки треугольниками!".
    Подскажите в чем может быть дело?

      1. Так само сабой все делал по вышеупомянутой инструкции и скрипт "Хранитель сделок" утановил и "Идентификатор графика" в пользовательских настройках указываю. Но после нажатия кнопки "Применить" выходит предупреждение:
        "Индикатор "Мои Сделки": Предупреждение!!! Вы забыли указать "Идентификатор графика", индикатор не будет помечать сделки треугольниками!". Могу скинуть скрин.

        1. Скиньте мне на почту reply@quikluacsharp.ru скрин, где видно поле "Идентификатор" вкладки "Дополнительно" графика и скрин настройки индикатора, на котором видно поле "Идентификатор графика*", эти значения должны совпадать, чтобы индикатор знал на каком именно графике рисовать.

              1. Я конешно нуб в вопросах програмирования, но не идиот. Все именно так и делал. В итоге весь сегоднешний день потратил на востановление QUIKа.

                1. Я не знаю с чем это может быть связано, если честно, Вы видели, что у меня ничего в настройках не слетело, возможно просто глюк квика был, такое случается периодически, там в папке с квиком есть файл настроек с расширением .wnd квик обычно их 2 шт создает, основной и резервный, у резервного расширение .sav.wnd, возможно из него можно восстановить настройки.

  2. Добрый день!
    Еще столкнулся с такой ситуацией. Индикатор иногда не корректно считает и соотносит открытие и закрытие позиции. Т.е. после того, как позиция закрыта индикатор почему то видит еще незакрытые сделки и протягивает линию уже к закрытию следующей позиции или к открытию, если следующая позиция открывается в обратном направлении. Приходится в базе сделок объединять все сделки в одну.
    Изображение:

  3. Добрый день!
    Установил индикатор на графики, которые привязаны к таблице котировок.
    Т.е. когда нажимаю на инструмент в этой таблице графики переключаются на это инструмент.
    Так вот все сделки отображаются на всех инструментах, при их переключении.
    Можно ли сделать так, что бы при смене инструмента график очищался от текущих сделок и прорисовывались сделки уже по новому инструменту?

    1. Здравствуйте, можно.
      if idx == 1 then - вот тут (ниже 68 -й строки), нужно получить текущий инструмент, очистить график от меток -
      DelAllLabels(STRING chart_tag), и скрипт, по идее, сам нарисует метки по новому инструменту.

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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
     line = {{
    		Name = "FRACTALS - Up", 
    		Type = TYPE_TRIANGLE_UP, 
    		Color = RGB(0, 206, 0)
    		},
    		{
    		Name = "FRACTALS - Down", 
    		Type = TYPE_TRIANGLE_DOWN, 
    		Color = RGB(221, 44, 44)
    		}
    		},

    Но не знаю как их вызывать. Помогите, пожалуйста.

    1. Здравствуйте! Файл справки QLUA.chm Вам в помощь, лежит в папке с терминалом, в нем раздел "Индикаторы технического анализа" - "Функции и глобальные переменные скрипта индикатора" - "Таблица «Settings»"

  5. Спасибо Вам за информативный сайт в целом и за скрипт "Мои сделки" в частности! =)

    Столкнулся с нелогичным поведеним, может быть, будет несложно сделать настройку при выставлении которой станет лучше (логичней)?..
    Ситуация такая: куплена акция по 110, затем куплена таже акция по 90. Акция отрастает до 100 и одну позицию продаю.
    По трейдерской логике, я закрываю позицию от уровня 90 _В_ПРОФИТ_ и ожидаю увидеть зеленую линию от 90 до 100.

    А на самом деле индикатор "Мои сделки" нарисует красную линию (убыток) от 110 к 100.

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

    Можно ли сделать настройку, чтобы линия "открытие-закрытие" сначала закрывала самые последние по времени позиции?

    Заранее благодарен.

    ПС Если укажете примерно место в коде где это можно найти, попробую сам сообразить с направлением поиска...

    1. Здравствуйте! За сайт пожалуйста! К сожалению, у меня сейчас абсолютно нет времени заниматься подобными вещами, и сделать это не так-то просто, на сколько я помню (давно писал данный скрипт). Можете, конечно, сами покопаться, изменения нужно вносить в функцию SetLinesValues(), но повторюсь, это не так-то просто.

  6. добрый день. СПАСИБО ЗА ВАШИ СКРИПТЫ. РАБОТАЮТ КАК ЧАСЫ. можно вас озадачить. что нужно изменить в коде скрипта "хранитель сделок" для сохранения в файл csv цену фьючерса? например, так: Дата Время Цена открытия Максимальная цена Минимальная цена Цена закрытия Объем
    1 20161109 142100 98910 98940 98880 98910 16
    2 20161109 142000 99020 99020 98910 98930 101
    3 20161109 141900 99090 99130 98970 99000 107.

    мне для автоматизации заполнения журнала нужен курс доллара и последняя цена RI. чтобы руками не заполнять и не пользоваться dde. ваши варианты скриптов удобны тем, что получение данных обходится без вывода через dde сервер.
    почемуто не могу зайти на страницу скрипта хранитель сделок.

    1. Добрый день, много, что нужно поменять. Как я понял, Вам нужно свечи в CSV писать, о том, как брать данные о свечах, можете посмотреть здесь: https://quikluacsharp.ru/quik-qlua/poluchenie-v-qlua-lua-dannyh-iz-grafikov-i-indikatorov/
      А как писать в CSV можете посмотреть в скрипте "Хранитель сделок", код скрипта можно посмотреть прямо на этой странице https://quikluacsharp.ru/indikatory-i-skripty-platnyj-razdel/ не заходя на саму страницу скрипта, если совместить обе эти технологии и добавить немного логики в скрипт, то получится то, что Вам нужно. Спасибо, что сообщили, что не открываются страницы, сейчас разбираюсь с этим.

  7. Здравствуйте скажите в чём причини ошибки ..K_KA\LuaIndicators\МоиСделки (c)quikluacsharp.ru.lua:229: attempt to index global 'TradesFile' (a nil valu всё вроде по инструкции спасибо

  8. Дмитрий, вставил код туда, куда Вы указали. Результа тот же - метки остаются
    Вот мой кусок текста кода

    function OnCalculate(idx)
    if not InitComplete then return; end;
    local ArrIdx = {};
    if idx == 1 then -- В начале рассчетов
    DelAllLabels(Settings['week']);
    DelAllLabels(Settings['month']);
    DSInfo = getDataSourceInfo(); -- Получает информацию об источнике данных
    FirstDrawComlete = false;
    -- Валидация параметров

    ВОПРОС - сама команда очистки верная? week и month - это метки моих графиков. И правильно ли я сделал что указал две отдельные строки под каждый график? И еще правильно ли я тестирую предложенные способы: Quik открыт, блокнотом открываю lua файл, вношу изменения, перехожу в QUIK, удаляю индикатор, удаляю метки, добавляю индикатор, перехожу на инструмент по которому добавил тестовую сделку в CSV файле Хранителя, вижу что появились метки вход-выход, перехожу на соседний инструмент и вижу мои же метки.

      1. Все. Понял.

        Закрепляем кому нужно удалять метки - вставляем именно в это место как Вы сказали текст

        function OnCalculate(idx)
        if not InitComplete then return; end;
        local ArrIdx = {};
        if idx == 1 then -- В начале рассчетов
        DelAllLabels(Settings['Идентификатор графика *']);
        DSInfo = getDataSourceInfo(); -- Получает информацию об источнике данных
        FirstDrawComlete = false;
        -- Валидация параметров

        Все работает

          1. Дмитрий, здравствуйте!

            Вопрос задам, думаю ответ будет полезен пользователям данного чудного индикатора. Подскажите, пожалуйста, возможно ли как-то удалять только метки индикатора, но не трогать остальные? Сейчас пользуюсь последним вариантом выше - удаление всех меток при обновлении графика. Возникла необходимость добавлять комментарии в виде текстовых меток на график QUIK. Ну и они, естесственно затираются вместе с метками сделок индикатора. А тренды кстати сохраняются. Спасибо!

            1. Здравствуйте, Георгий! Вы в свой скрипт, на сколько я помню, добавляли функцию DelAllLabels, она и удаляет все метки и свои и чужие. А в изначальной версии индикатора при удалении его с графика встроен механизм удаления всех именно его меток, единственное, нет возможности сделать так, чтобы индикатор удалял свои метки при закрытии терминала, т.к. в индикаторах не доступна функция OnClose, хотя попробуйте ее добавить в индикатор, вдруг в документации забыли ее дописать в список доступных в индикаторе функций, если она будет работать, то напишите в ней следующее:

              1
              2
              3
              4
              5
              6
              7
              
              function OnClose()
                 if #Labels > 0 then -- Удаляет ранее установленные метки
                    for i=1,#Labels,1 do
                       DelLabel(Settings['Идентификатор графика *'], Labels[i]);
                    end;
                 end;
              end

              А если она не будет работать в индикаторе, то я даже не знаю.

              1. Спасибо за совет. Пошел другим путем. Сделал 2 индикатора - Сделки-Фикс и Сделки-перебор. Отличаются наличием/отсутствием куска кода с DelAllLabels. Работают с одной базой файлов сделок. доволен как слон))

                То есть почти)) Смущает последний моментик - размер картинок-меток сделок. Как ни пытаюсь - не получается подставить картинки поменьше. В папку Изображения заменяю файл МоиСделки.bmp на другие, созданные в GIMP. Делаю один-в один в техническом плане - разрешение 15х15 пикселей, имя такое же. Но индикатор как заколдованный отображает только родной ваш образец картинок. Не подскажите, может что-то в коде изменить, чтобы индикатор не было таким капризным? ))

                1. Здравствуйте, это из-за картинки, цвет какого-то из угловых пикселей картинки принимается за прозрачный, везде, где он встречается в картинке, он отображается как прозрачный, так что, либо перебором найти какой именно угол берется для определения цвета прозрачности (я не помню просто), либо все 4 угловых пикселя сделать цветом, отличающимся от основного, еще, скорее всего нужен формат цвета 8 бит, GIMP возможно сделал 32 бита. Можете для начала отключить прозрачность в коде, за нее отвечает параметр TRANSPARENT, чтобы исключить эту причину, потом можете включить обратно.