Π‘Π»ΠΎΠ³ ΠΈΠΌ. TaurusGOLD

πŸ“Š Ворговля Π½Π° Московской Π±ΠΈΡ€ΠΆΠ΅ Ρ‡Π΅Ρ€Π΅Π· Excel + QUIK

    • 27 октября 2025, 23:16
    • |
    • TaurusGOLD
  • Π•Ρ‰Π΅

πŸ”§Β ΠΠ°ΡΡ‚Ρ€ΠΎΠΉΠΊΠ° связи Excel β†’ QUIK

1. Установка Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

vba
' Π’ Excel Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ссылки Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ:
' 1. QUIK API (qlua.exe)
' 2. Microsoft XML
' 3. ADODB для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…

2. Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ шаблон Ρ‚ΠΎΡ€Π³ΠΎΠ²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Excel

Β 
A B C D E F G
Π’ΠΈΠΊΠ΅Ρ€ НаправлСниС Кол-Π²ΠΎ Π¦Π΅Π½Π° Бтатус ID заявки ДСйствиС
GAZP BUY 10 160.50 ОТиданиС Β  πŸ“₯ ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ
SBER SELL 5 280.30 ОТиданиС Β  πŸ“₯ ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ

Код для Excel VBA


vba
' ΠœΠΎΠ΄ΡƒΠ»ΡŒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с QUIK Ρ‡Π΅Ρ€Π΅Π· DDE
Option Explicit

' Настройки ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ
Private Const QUIK_DDE_SERVICE = "QLUA"
Private Const QUIK_DDE_TOPIC = "QuikTrans2"
Private Const TRANS2_TABLE = "TRANS2"

' ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ QUIK
Public Sub ConnectToQUIK()
    On Error GoTo ErrorHandler
    
    Dim ddeChannel As Long
    ddeChannel = DDEInitiate(QUIK_DDE_SERVICE, QUIK_DTE_TOPIC)
    
    If ddeChannel > 0 Then
        ThisWorkbook.Sheets("ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ").Range("B2"). <a name="cut"></a> Value = "ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ"
        DDETerminate ddeChannel
    Else
        ThisWorkbook.Sheets("ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ").Range("B2").Value = "Ошибка ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ"
    End If
    
    Exit Sub
ErrorHandler:
    MsgBox "Ошибка ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ QUIK: " & Err.Description
End Sub

' ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² QUIK
Public Sub SendOrderToQUIK()
    On Error GoTo ErrorHandler
    
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Ворговля")
    
    Dim lastRow As Long
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    
    Dim i As Long
    For i = 2 To lastRow ' Π‘Ρ‚Ρ€ΠΎΠΊΠ° 1 - Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ
        
        ' ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ Π½Π°ΠΆΠ°Ρ‚Π° Π»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ
        If ws.Cells(i, "G").Value = "πŸ“₯ ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ" Then
            
            Dim ticker As String
            Dim operation As String
            Dim quantity As Long
            Dim price As Double
            
            ticker = ws.Cells(i, "A").Value
            operation = ws.Cells(i, "B").Value
            quantity = ws.Cells(i, "C").Value
            price = ws.Cells(i, "D").Value
            
            ' ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌ заявку
            Dim transactionId As String
            transactionId = SendTransaction(ticker, operation, quantity, price)
            
            ' ОбновляСм статус
            If transactionId <> "" Then
                ws.Cells(i, "E").Value = "ΠžΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ"
                ws.Cells(i, "F").Value = transactionId
                ws.Cells(i, "G").Value = "βœ… ΠžΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ"
            Else
                ws.Cells(i, "E").Value = "Ошибка"
                ws.Cells(i, "G").Value = "❌ Ошибка"
            End If
        End If
    Next i
    
    Exit Sub
ErrorHandler:
    MsgBox "Ошибка ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ заявки: " & Err.Description
End Sub

' Ѐункция ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ
Private Function SendTransaction(ticker As String, operation As String, _
                                quantity As Long, price As Double) As String
    
    Dim ddeChannel As Long
    ddeChannel = DDEInitiate(QUIK_DDE_SERVICE, QUIK_DDE_TOPIC)
    
    If ddeChannel = 0 Then
        SendTransaction = ""
        Exit Function
    End If
    
    ' Π€ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ для TRANS2
    Dim transactionData As String
    transactionData = "CLASSCODE=TQBR;" & _
                     "SECCODE=" & ticker & ";" & _
                     "ACTION=NEW_ORDER;" & _
                     "ACCOUNT=L01-00000F00;" & _
                     "OPERATION=" & operation & ";" & _
                     "PRICE=" & Format(price, "0.00") & ";" & _
                     "QUANTITY=" & quantity & ";" & _
                     "TYPE=L;" & _
                     "TRANS_ID=" & Format(Now, "yyyymmddhhnnss") & ";" & _
                     "BROKERREF=EXCEL_TRADE"
    
    ' ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌ Ρ‡Π΅Ρ€Π΅Π· DDE
    DDEPoke ddeChannel, TRANS2_TABLE, transactionData
    
    ' Π“Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ ID Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ
    SendTransaction = "T" & Format(Now, "yyyymmddhhnnss")
    
    DDETerminate ddeChannel
End Function

πŸ”„Β ΠΠ²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΊΠΎΡ‚ΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΈΠ· QUIK

vba
' Π˜ΠΌΠΏΠΎΡ€Ρ‚ стакана ΠΊΠΎΡ‚ΠΈΡ€ΠΎΠ²ΠΎΠΊ
Public Sub ImportQuotesFromQUIK()
    On Error GoTo ErrorHandler
    
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("ΠšΠΎΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ")
    
    Dim tickers As Variant
    tickers = GetTickerList()
    
    Dim i As Long
    For i = LBound(tickers) To UBound(tickers)
        ImportTickerData tickers(i), ws, i + 1
    Next i
    
    Exit Sub
ErrorHandler:
    MsgBox "Ошибка ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΊΠΎΡ‚ΠΈΡ€ΠΎΠ²ΠΎΠΊ: " & Err.Description
End Sub

' ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ Ρ‚ΠΈΠΊΠ΅Ρ€Ρƒ
Private Sub ImportTickerData(ticker As String, ws As Worksheet, rowNum As Long)
    Dim ddeChannel As Long
    ddeChannel = DDEInitiate(QUIK_DDE_SERVICE, "QUOTES")
    
    If ddeChannel > 0 Then
        ' ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ основныС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹
        ws.Cells(rowNum, 1).Value = ticker
        ws.Cells(rowNum, 2).Value = DDERequest(ddeChannel, ticker & "|LAST")
        ws.Cells(rowNum, 3).Value = DDERequest(ddeChannel, ticker & "|BID")
        ws.Cells(rowNum, 4).Value = DDERequest(ddeChannel, ticker & "|ASK")
        ws.Cells(rowNum, 5).Value = DDERequest(ddeChannel, ticker & "|VOLUME")
        
        DDETerminate ddeChannel
    End If
End Sub

' Бписок отслСТиваСмых Ρ‚ΠΈΠΊΠ΅Ρ€ΠΎΠ²
Private Function GetTickerList() As Variant
    GetTickerList = Array("GAZP", "SBER", "LKOH", "GMKN", "ROSN", "NVTK", "TATN", "MTSS", "AFKS", "VTBR")
End Function

πŸ“ˆΒ Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ торговая панСль

vba
' АвтоматичСский Ρ‚ΠΎΡ€Π³ΠΎΠ²Ρ‹ΠΉ Ρ€ΠΎΠ±ΠΎΡ‚
Public Sub AutoTradingRobot()
    Dim wsTrade As Worksheet
    Set wsTrade = ThisWorkbook.Sheets("Автоторговля")
    
    Dim wsQuotes As Worksheet
    Set wsQuotes = ThisWorkbook.Sheets("ΠšΠΎΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ")
    
    ' ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ Ρ†Π΅Π½Ρ‹
    UpdateAllQuotes
    
    ' АнализируСм ΠΈ Ρ‚ΠΎΡ€Π³ΡƒΠ΅ΠΌ
    Dim lastRow As Long
    lastRow = wsTrade.Cells(wsTrade.Rows.Count, "A").End(xlUp).Row
    
    Dim i As Long
    For i = 2 To lastRow
        ProcessTradingSignal wsTrade, i
    Next i
End Sub

' ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ‚ΠΎΡ€Π³ΠΎΠ²Ρ‹Ρ… сигналов
Private Sub ProcessTradingSignal(ws As Worksheet, rowNum As Long)
    Dim ticker As String
    Dim strategy As String
    Dim signal As String
    
    ticker = ws.Cells(rowNum, 1).Value
    strategy = ws.Cells(rowNum, 2).Value
    signal = AnalyzeSignal(ticker, strategy)
    
    If signal <> "HOLD" Then
        ' ВыполняСм Ρ‚ΠΎΡ€Π³ΠΎΠ²ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ
        ExecuteAutoTrade ticker, signal, ws.Cells(rowNum, 3).Value
        ws.Cells(rowNum, 4).Value = signal
        ws.Cells(rowNum, 5).Value = Now
    End If
End Sub

' Анализ сигналов
Private Function AnalyzeSignal(ticker As String, strategy As String) As String
    Dim currentPrice As Double
    Dim bidPrice As Double
    Dim askPrice As Double
    
    ' ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ Ρ†Π΅Π½Ρ‹
    currentPrice = GetCurrentPrice(ticker)
    bidPrice = GetBidPrice(ticker)
    askPrice = GetAskPrice(ticker)
    
    Select Case strategy
        Case "MEAN_REVERSION"
            AnalyzeSignal = MeanReversionSignal(ticker, currentPrice)
        Case "BREAKOUT"
            AnalyzeSignal = BreakoutSignal(ticker, currentPrice)
        Case "ARBITRAGE"
            AnalyzeSignal = ArbitrageSignal(ticker, bidPrice, askPrice)
        Case Else
            AnalyzeSignal = "HOLD"
    End Select
End Function

πŸ—ƒΒ ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ портфСля ΠΈ заявок

vba
' Π˜ΠΌΠΏΠΎΡ€Ρ‚ состояния портфСля
Public Sub ImportPortfolio()
    Dim wsPortfolio As Worksheet
    Set wsPortfolio = ThisWorkbook.Sheets("ΠŸΠΎΡ€Ρ‚Ρ„Π΅Π»ΡŒ")
    
    wsPortfolio.Cells.ClearContents
    
    ' Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ
    wsPortfolio.Range("A1:E1").Value = Array("Π’ΠΈΠΊΠ΅Ρ€", "ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ", "БрСдняя", "ВСкущая", "P&L")
    
    ' Π˜ΠΌΠΏΠΎΡ€Ρ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ Ρ‡Π΅Ρ€Π΅Π· DDE
    Dim ddeChannel As Long
    ddeChannel = DDEInitiate(QUIK_DDE_SERVICE, "DEPO")
    
    If ddeChannel > 0 Then
        Dim i As Long: i = 2
        Dim securities As Variant
        securities = GetTickerList()
        
        Dim ticker As Variant
        For Each ticker In securities
            ImportPosition ddeChannel, ticker, wsPortfolio, i
            i = i + 1
        Next ticker
        
        DDETerminate ddeChannel
    End If
End Sub

' Π˜ΠΌΠΏΠΎΡ€Ρ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΏΠΎ Ρ‚ΠΈΠΊΠ΅Ρ€Ρƒ
Private Sub ImportPosition(ddeChannel As Long, ticker As String, ws As Worksheet, rowNum As Long)
    On Error Resume Next
    
    ws.Cells(rowNum, 1).Value = ticker
    ws.Cells(rowNum, 2).Value = DDERequest(ddeChannel, ticker & "|TOTAL_NET")
    ws.Cells(rowNum, 3).Value = DDERequest(ddeChannel, ticker & "|AVG_PRICE")
    ws.Cells(rowNum, 4).Value = DDERequest(ddeChannel, ticker & "|LAST")
    
    ' РасчСт P&L
    If IsNumeric(ws.Cells(rowNum, 2).Value) And IsNumeric(ws.Cells(rowNum, 4).Value) Then
        Dim pnl As Double
        pnl = (ws.Cells(rowNum, 4).Value - ws.Cells(rowNum, 3).Value) * ws.Cells(rowNum, 2).Value
        ws.Cells(rowNum, 5).Value = pnl
    End If
End Sub

πŸŽ―Β Π“ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΎΡ€Π³ΠΎΠ²Ρ‹Π΅ стратСгии

vba
' БтратСгия статистичСского Π°Ρ€Π±ΠΈΡ‚Ρ€Π°ΠΆΠ°
Public Sub StatisticalArbitrage()
    Dim pair1 As String: pair1 = "GAZP"
    Dim pair2 As String: pair2 = "LKOH"
    
    Dim price1 As Double: price1 = GetCurrentPrice(pair1)
    Dim price2 As Double: price2 = GetCurrentPrice(pair2)
    
    Dim spread As Double: spread = price1 / price2
    Dim meanSpread As Double: meanSpread = 0.85 ' историчСскоС срСднСС
    Dim stdDev As Double: stdDev = 0.05 ' стандартноС ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅
    
    If spread > meanSpread + 2 * stdDev Then
        ' GAZP ΠΏΠ΅Ρ€Π΅ΠΊΡƒΠΏΠ»Π΅Π½ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ LKOH
        ExecutePairTrade pair1, "SELL", pair2, "BUY", 10
    ElseIf spread < meanSpread - 2 * stdDev Then
        ' GAZP ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ΄Π°Π½ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ LKOH  
        ExecutePairTrade pair1, "BUY", pair2, "SELL", 10
    End If
End Sub

' ИсполнСниС ΠΏΠ°Ρ€Π½ΠΎΠΉ сдСлки
Private Sub ExecutePairTrade(ticker1 As String, operation1 As String, _
                           ticker2 As String, operation2 As String, quantity As Long)
    
    SendTransaction ticker1, operation1, quantity, 0
    SendTransaction ticker2, operation2, quantity, 0
End Sub

βš™Β ΠΠ°ΡΡ‚Ρ€ΠΎΠΉΠΊΠ° автоматичСского обновлСния

vba
' Запуск автоматичСского обновлСния
Public Sub StartAutoUpdate()
    Application.OnTime Now + TimeValue("00:00:05"), "UpdateTradingData"
End Sub

' Основная ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° обновлСния
Public Sub UpdateTradingData()
    On Error GoTo ErrorHandler
    
    ' ОбновляСм ΠΊΠΎΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ
    ImportQuotesFromQUIK
    
    ' ОбновляСм ΠΏΠΎΡ€Ρ‚Ρ„Π΅Π»ΡŒ
    ImportPortfolio
    
    ' ЗапускаСм Π°Π²Ρ‚ΠΎΡ‚ΠΎΡ€Π³ΠΎΠ²Π»ΡŽ Ссли Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π°
    If ThisWorkbook.Sheets("Настройки").Range("B2").Value = "ДА" Then
        AutoTradingRobot
    End If
    
    ' ΠŸΠ»Π°Π½ΠΈΡ€ΡƒΠ΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅
    Application.OnTime Now + TimeValue("00:00:10"), "UpdateTradingData"
    
    Exit Sub
ErrorHandler:
    MsgBox "Ошибка обновлСния: " & Err.Description
    Application.OnTime Now + TimeValue("00:00:30"), "UpdateTradingData"
End Sub

' ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° автоматичСского обновлСния
Public Sub StopAutoUpdate()
    On Error Resume Next
    Application.OnTime EarliestTime:=Now + TimeValue("00:00:01"), _
                      Procedure:="UpdateTradingData", Schedule:=False
End Sub
πŸš€Β Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΏΠΎ запуску:
  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ExcelΒ ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅Β ALT + F11 для открытия Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° VBA

  2. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΒ ΠΈ Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠ΄ Π²Ρ‹ΡˆΠ΅

  3. НастройтС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅Β ΠΊ QUIK Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ настроСк

  4. ЗапуститС макрос ConnectToQUIK для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

  5. НачнитС Ρ‚ΠΎΡ€Π³ΠΎΠ²Π»ΡŽΒ Ρ‡Π΅Ρ€Π΅Π· лист «Ворговля»

πŸ’‘Β ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°:
  • βœ…Β Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΒ Π²ΡΠ΅Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ

  • βœ…Β ΠΠ²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡΒ Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡

  • βœ…Β Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒΒ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΠΉ Ρ‡Π΅Ρ€Π΅Π· Excel Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹

  • βœ…Β Π˜ΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ анализ встроСнными срСдствами Excel

  • βœ…Β Π‘Ρ‹ΡΡ‚Ρ€ΠΎΠ΅ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅Β Ρ‚ΠΎΡ€Π³ΠΎΠ²Ρ‹Ρ… ΠΈΠ΄Π΅ΠΉ

БистСма Π³ΠΎΡ‚ΠΎΠ²Π° ΠΊ использованию! ВСстируйтС Π½Π° Π΄Π΅ΠΌΠΎ-счСтС ΠΏΠ΅Ρ€Π΅Π΄ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ€Π³ΠΎΠ²Π»Π΅ΠΉ.






  • ΠΎΠ±ΡΡƒΠ΄ΠΈΡ‚ΡŒ Π½Π° Ρ„ΠΎΡ€ΡƒΠΌΠ΅:
  • QUIK
1.1К | ★5
7 ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π²
Как всё Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ Π½Π° ΠœΠœΠ’Π‘/КвикС, Ссли Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ‡ΠΈΠ½ΡΡ‚ΡŒ подобноС…
avatar
ΠŸΡ€ΠΈΠΊΠΎΠ»ΡŒΠ½ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½ΠΎ ΠΊΠΎΡΡ‚Ρ‹Π»ΡŒ Π΅Ρ‰Π΅ тот…
НСт ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π° Π³Π»Π°Π²Π½Ρ‹ΠΉ вопрос, Π° Π·Π°Ρ‡Π΅ΠΌ?
avatar
Dertysew,Β  Вопрос Π·Π½Π°Ρ‡ΠΈΡ‚,

Π΄ΠΎΠ»ΠΆΠ΅Π½ ставится ΠΊΠ°ΠΊ Ρ‚ΠΎ ΠΈΠ½Π°Ρ‡Π΅. Π—Π°Ρ‡Π΅ΠΌ Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ?Β  Ибо ΠΊΡ‚ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ для Ρ‡Π΅Π³ΠΎ Π½Π΅ Π·Π°Π΄Π°Π΅Ρ‚ вопросов, Π° ΠΊΡ‚ΠΎ Π·Π°Π΄Π°Π΅Ρ‚ Ρ‚ΠΎΠΌΡƒ ΠΈ Π½Π΅ Π·Π°Ρ‡Π΅ΠΌ!
avatar
Бпасибо большоС!

Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π½Π° SMART-LAB:
Π€ΠΎΡ‚ΠΎ
5 Π½Π°ΡƒΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΉ 2025 Π³ΠΎΠ΄Π°: ΠΊΠ°ΠΊ ΡƒΡ‡Π΅Π½Ρ‹Π΅ ΠΌΠ΅Π½ΡΡŽΡ‚ ΠΌΠ΅Ρ‚Π°Π»Π»ΡƒΡ€Π³ΠΈΡŽ
Π‘ΡƒΠ΄ΡƒΡ‰Π΅Π΅ отрасли создаСтся Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΡˆΠ°Ρ…Ρ‚Π°Ρ… ΠΈ Π½Π° Π·Π°Π²ΠΎΠ΄Π°Ρ…, Π½ΠΎ ΠΈ Π² лабораториях. Π£Ρ‡Π΅Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ сплавы с ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ свойствами ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π°ΡŽΡ‚...
Π§Π΅Π³ΠΎ ΠΆΠ΄Π°Ρ‚ΡŒ Π² Π½ΠΎΠ²ΠΎΠΌ 2026 Π³ΠΎΠ΄Ρƒ? #SOFL_Ρ‚Ρ€Π΅Π½Π΄Ρ‹
Π’ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, поздравляСм всСх Π½Π°ΡˆΠΈΡ… Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ с Π½Π°ΡΡ‚ΡƒΠΏΠΈΠ²ΡˆΠΈΠΌ 2026 Π³ΠΎΠ΄ΠΎΠΌ, Π° Π²ΠΎ Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, возвращаСмся с интСрСсными постами, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π°ΠΌ Π±Ρ‹Π»ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ...
Π€ΠΎΡ‚ΠΎ
Π˜Π½Π²Π΅ΡΡ‚ идСя ΠΏΠΎ Ρ‚Ρ€Π΅Π½Π΄Ρƒ Π΄Π»ΠΈΠ½ΠΎΠΉ Π² 1 дСнь ΠΈΠ»ΠΈ Π±Π΅ΡΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΡΡ‚ΡŒ - шанс Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ риском?
Новый Π³ΠΎΠ΄ β€” врСмя Π½ΠΎΠ²Ρ‹Ρ… инвСст ΠΈΠ΄Π΅ΠΉ спСкулятивного Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π° Π”Π΅Ρ€ΠΆΠΈΡ‚Π΅ ΠΎΠ΄Π½Ρƒ ΠΈΠ· Π½ΠΈΡ… (сам взял сСгодня Π½Π° спСкулятивный счСт, скину Ссли алюминий...

Ρ‚Π΅Π³ΠΈ Π±Π»ΠΎΠ³Π° TaurusGOLD

....всС тэги



UPDONW
Новый Π΄ΠΈΠ·Π°ΠΉΠ½