Блог им. SciFi

Полезный скрипт для ведения журнала в Excel

    • 23 июня 2016, 03:00
    • |
    • SciFi
  • Еще
Я веду свой журнал в Excel. Но есть одно неудобство. Сделки в QUIK представлены в виде списка транзакций, а не сделок как таковых с открытием и закрытием позиции. 

В журнале же нужно записывать сделку целиком с транзакцией на открытие и закрытие, чтобы видеть прибыль и убыток с каждой сделки.

Чтобы вручную не копировать строки в журнал, я написал две маленькие функции, которые выполняют одну простенькую задачу — они копируют сделку на закрытие и ставят ее рядом со сделкой на открытие. Конечно, перед этим нужно в Excel немного почистить данные, чтобы сделки были целиком (а не кусками по 1-2 лота) и по одному инструменту. 

Особенно это актуально при высокочастотном трейдинге, когда получается несколько сотен сделок в день.

Итак, вот что было:
Полезный скрипт для ведения журнала в Excel

Стало:

Полезный скрипт для ведения журнала в Excel



Код на VBA:

' Склеивает сделки
Sub mergeDeals()

    ' Объявление переменных
    Dim LastRow, prevRow As Long
    Dim i As Long, j As Long
    Dim myRange As String
   
    ' Выделяем Лист, с которым работаем
    Sheets("Лист1").Select

    ' Определяем число заполненных строк
    With Worksheets("Лист1")
        LastRow = .Cells(.rows.Count, "A").End(xlUp).Row
    End With

    ' Проходимся по всем строкам от 1 до последней
    For i = 1 To LastRow
        With Worksheets("Лист1")
            
            ' Если строка четная, то копируем ее и вставляем рядом с предыдущей строкой
            If i Mod 2 = 0 Then
                prevRow = i - 1
                myRange = "A" & i & ":" & "G" & i
                .Range(myRange).Copy Destination:=Worksheets("Лист1").Range("H" & prevRow)
                
                ' Удаляем содержимое скопированной строки
                .rows(i).ClearContents
            End If
        End With
    Next i
   
End Sub

' Удаляет пустые строки
Sub clearEmptyRows()

    ' Объявление переменных
    Dim r As Range, rows As Long, i As Long
    
    ' Объявление диапазона, в котором ищем пустые строки
    Set r = ActiveSheet.Range("A1:Z500")
    
    ' Удаление пустых строк
    rows = r.rows.Count
    For i = rows To 1 Step (-1)
        If WorksheetFunction.CountA(r.rows(i)) = 0 Then r.rows(i).Delete
    Next
End Sub
Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
427 | ★30
7 комментариев
Автор, Вы можете сделать скрипт для автоматической отправки смс из экселя при добавлении новой строки? 

Иван Тишевской, только смс, другие варианты не проходят?
Иван Тишевской, у меня есть питоновский скрипт, который крутится на винде постоянно и при появлении текстового файла в определенной папке посылает смс. А вот другой робот кладет этот файл в эту папку, когда совершает сделку. Аналогично можно написать робота, который следит за таблицей сделок и кладет такой файл. Я могу вам его дать, да и в интернете таких скриптов полно. Но вот отладить его будет геморрой для вас. Нужно создать аккаунт на смс сервере. Нужно научиться пользоваться Python. Я сейчас потихоньку мигрирую на Метатрейдер, там уже есть встроенный функционал отправки пуш-уведомлений на телефон. Это и рекомендую использовать. Пуши, кстати, бесплатные. 
avatar
Фыва, к чему ваш пост? На более читабельную версию поста автора в другом блоге автора?
Рустем Закиров, просто скопировал пост ТС на сайт, где код более читабелен
avatar
Конечно, перед этим нужно в Excel немного почистить данные, чтобы сделки были целиком (а не кусками по 1-2 лота)

Для этого обычно пишется скриптик объединяющий сделки по времени (+- несколько секунд).

Читайте на SMART-LAB:
Фото
Хэдхантер будет измерять взаимный интерес соискателей и работодателей
CEO Хэдхантера Дмитрий Сергиенков открыл Headconf 2026 и рассказал про влияние ИИ на опыт взаимодействия участников рынка труда. Соискатели...
Фото
Итоги первичных размещений ВДО и некоторых розничных выпусков на 9 октября 2026 г.
Следите за нашими новостями в удобном формате: Telegram , Youtube , RuTube, Smart-lab , ВКонтакте , Сайт ,...
Атаки на инфраструктуру Яндекса: что дальше и каковы последствия?
Котировки Яндекса в ходе торгов 9 октября вновь падают. На этот раз они опустились на 4,5% до 3417,5 руб., на фоне слабого роста на российском...
Фото
Нефтяной срез: выпуск №11. Удалось хорошо заработать пока все паниковали, но будущее туманно. Аккуратный переход в нефтебазовую оборону, ОСТАЛОСЬ ТОЛЬКО ДВЕ ИДЕИ.
Продолжаю выпускать рубрику — Нефтяной срез. Цель: отслеживать важные бенчмарки в нефтяной отрасли, чтобы понимать куда дует ветер. Прошлый пост...

теги блога SciFi

....все тэги



UPDONW
Новый дизайн