Excel Integration
Build live trading dashboards in Microsoft Excel. Choose between Power Query (no VBA needed) or custom VBA functions for full control. Both support auto-refresh.
Choose Your Approach
Power Query (Recommended)
No VBA or coding required. Built-in data transformation. Auto-refresh with intervals. Works in Excel 2016+.
VBA Macros
Custom cell functions like =CLAW_RSI(). Full programmatic control. Faster refresh cycles. Requires macro-enabled workbook (.xlsm).
Method 1: Power Query
Step 1 — Open Power Query Editor: Go to the Data tab > Get Data > From Web.
Step 2: Enter the API URL
Select Advanced and configure:
URL: https://tickatlas.com/v1/indicator?symbol=EURUSD&indicator=RSI_14&timeframe=H1
HTTP header:
X-API-Key: YOUR_API_KEY Step 3: Parse the JSON Response
Power Query will detect JSON automatically. Click To Table, then expand the columns you need: value, signal, timestamp.
Step 4: Enable Auto-Refresh
Right-click the query in the Queries & Connections pane > Properties.
- Check Refresh every N minutes
- Check Refresh data when opening the file
- Minimum interval: 1 minute (use VBA for faster refresh)
Tip: Multiple Symbols
Create a separate Power Query for each symbol/indicator pair. Use the /v1/multi endpoint to fetch multiple symbols in a single request and reduce your API call count.
Method 2: VBA Custom Functions
Create custom cell functions like =CLAW_RSI("EURUSD","H1"). Open the VBA editor with Alt+F11, insert a new module, and paste:
' Module: TickAtlasAPI
' Add this to a new VBA module via Alt+F11 > Insert > Module
Private Const BASE_URL As String = "https://tickatlas.com/v1"
Private Const API_KEY As String = "YOUR_API_KEY" ' Store securely in practice
Public Function CLAW_RSI(symbol As String, Optional timeframe As String = "H1") As Variant
CLAW_RSI = GetIndicator(symbol, "RSI_14", timeframe)
End Function
Public Function CLAW_MACD(symbol As String, Optional timeframe As String = "H1") As Variant
CLAW_MACD = GetIndicator(symbol, "MACD_hist", timeframe)
End Function
Public Function CLAW_QUOTE(symbol As String, Optional field As String = "bid") As Variant
Dim url As String
url = BASE_URL & "/quote?symbol=" & symbol
Dim json As String
json = MakeRequest(url)
If json = "" Then
CLAW_QUOTE = CVErr(xlErrNA)
Exit Function
End If
CLAW_QUOTE = ExtractJsonValue(json, field)
End Function
Private Function GetIndicator(symbol As String, indicator As String, timeframe As String) As Variant
Dim url As String
url = BASE_URL & "/indicator?symbol=" & symbol & _
"&indicator=" & indicator & "&timeframe=" & timeframe
Dim json As String
json = MakeRequest(url)
If json = "" Then
GetIndicator = CVErr(xlErrNA)
Exit Function
End If
GetIndicator = ExtractJsonValue(json, "value")
End Function
Private Function MakeRequest(url As String) As String
On Error GoTo ErrorHandler
Dim http As Object
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "GET", url, False
http.setRequestHeader "X-API-Key", API_KEY
http.Send
If http.Status = 200 Then
MakeRequest = http.responseText
Else
MakeRequest = ""
End If
Exit Function
ErrorHandler:
MakeRequest = ""
End Function
Private Function ExtractJsonValue(json As String, key As String) As Variant
' Simple JSON value extraction (works for flat responses)
Dim pattern As String
pattern = """" & key & """:"
Dim pos As Long
pos = InStr(json, pattern)
If pos = 0 Then
ExtractJsonValue = CVErr(xlErrNA)
Exit Function
End If
Dim startPos As Long
startPos = pos + Len(pattern)
Dim endPos As Long
endPos = InStr(startPos, json, ",")
If endPos = 0 Then endPos = InStr(startPos, json, "}")
Dim val As String
val = Mid(json, startPos, endPos - startPos)
val = Replace(val, """", "")
If IsNumeric(val) Then
ExtractJsonValue = CDbl(val)
Else
ExtractJsonValue = val
End If
End Function Auto-Refresh (VBA)
Add this to the ThisWorkbook module to auto-refresh every 30 seconds:
' Auto-refresh macro — runs every N seconds
' Add to ThisWorkbook module
Private Sub Workbook_Open()
ScheduleRefresh
End Sub
Private Sub ScheduleRefresh()
' Refresh every 30 seconds
Application.OnTime Now + TimeValue("00:00:30"), "RefreshMarketData"
End Sub
Public Sub RefreshMarketData()
' Force recalculation of all CLAW_ functions
Application.CalculateFull
' Update the "Last Updated" cell
Range("B1").Value = "Last updated: " & Format(Now, "hh:mm:ss")
' Schedule next refresh
ScheduleRefresh
End Sub
Public Sub StopRefresh()
On Error Resume Next
Application.OnTime Now + TimeValue("00:00:30"), "RefreshMarketData", , False
End Sub Security Note
Never share your workbook with the API key hardcoded. In production, store the key in a separate config sheet or Windows environment variable and reference it from VBA using Environ("CLAW_API_KEY").
Usage in Cells
| Cell Formula | Returns |
|---|---|
| =CLAW_RSI("EURUSD") | RSI value (e.g., 58.43) |
| =CLAW_RSI("XAUUSD","D1") | Daily RSI for Gold |
| =CLAW_MACD("GBPUSD") | MACD histogram value |
| =CLAW_QUOTE("EURUSD","bid") | Current bid price |