# LightningLynk (DOM and Copy Trader)

## LightningLynk User Manual

**Platform:** Windows 10 / 11 (x64)\
**By:** [QuantVue](https://quantvue.io/)

***

LightningLynk is a Windows desktop application that streams live CME futures market data and sends order signals to [QuantLynk](https://www.quantlynk.io/) via webhook. It is not a broker. It does not hold positions. It does not have opinions about your trading. It just sends the signal to QuantLynk. What happens next is between you and your execution platform.

***

### Table of Contents

1. [Installation & Setup](#installation-and-setup)
2. [Connecting to Databento](#connecting-to-databento)
3. [QuantLynk Webhook Integration](#quantlynk-webhook-integration)
4. [Profiles & Order Configuration](#profiles-and-order-configuration)
5. [DOM / Live Feed](#dom-live-feed)
6. [Hotkeys](#hotkeys)
7. [Settings Reference](#settings-reference)
8. [Troubleshooting & FAQ](#troubleshooting-and-faq)

***

### Installation & Setup

#### Requirements

* Windows 10 or 11 (64-bit)
* A [QuantLynk](https://quantlynk.io/) account
* A [Databento](https://databento.com/) account with API access (optional, but necessary for OCO orders and DOM usage)

#### Installing

[Download the installer here.](https://lightninglynk-assets.s3.us-east-2.amazonaws.com/QuantVueLightningLynk-Setup.zip) <— If it gives you a warning about it being suspicious or blocked you'll need to bypass the warning. This is a standard warning from some browsers, including Google Chrome, when a file has been newly put on the internet and hasn't been downloaded many times.

Download the latest `QuantVueLightningLynk-Setup.exe` from the QuantVue distribution link provided to you. Run the installer and it will place LightningLynk in `%LocalAppData%\QuantVue\LightningLynk` and create a Start Menu shortcut.

The app is self-updating. On launch, the **QuantVue Launcher** checks for a newer version and downloads it automatically. You don't need to reinstall manually.

#### First Launch

On first launch you'll see an empty DOM and a disconnected feed. That's expected — you haven't configured anything yet. Head to **⚙ Settings** in the menu bar and work through the sections top to bottom.

#### Data Files

Settings and profiles are stored at:

```
%AppData%\Roaming\QuantVue\QuantLynkSender\
    settings.json
    profiles.json
```

These persist across updates. If something goes deeply wrong, deleting both files resets the app to factory defaults. Use this power wisely (or at least knowingly).

***

### Connecting to Databento

LightningLynk uses [Databento](https://databento.com/) for live CME futures market data. You need a Databento API key.\
\
You need the Standard plan for CME futures (refer to picture):

<figure><img src="/files/NINepCMpAvixpnQX0VGs" alt=""><figcaption></figcaption></figure>

#### Getting an API Key

1. Sign up at [databento.com](https://databento.com/)
2. Navigate to **API Keys** in your account dashboard
3. Create a new key and copy it

Live MBP-1 (top of book) data is part of the standard plan with CME futures. MBO (full depth) costs more. Check Databento's pricing before enabling MBO mode for extended sessions.

#### Entering Your API Key

1. Open **⚙ Settings**
2. Paste your key into the **Databento API Key** field
3. Click **OK**

The key is encrypted at rest. It is never logged, never sent anywhere except directly to Databento's API.

#### Connecting

1. Select a product from the dropdown (e.g. `NQ — E-mini Nasdaq-100`)
2. Click **Connect**

The feed status indicator in the header will pulse cyan when streaming. The title bar will show the current last price: `QuantVue LightningLynk — NQ 21,450.25`.

#### Supported Products

| Symbol | Description               |
| ------ | ------------------------- |
| NQ     | E-mini Nasdaq-100         |
| MNQ    | Micro E-mini Nasdaq-100   |
| ES     | E-mini S\&P 500           |
| MES    | Micro E-mini S\&P 500     |
| YM     | E-mini Dow Jones          |
| MYM    | Micro E-mini Dow Jones    |
| RTY    | E-mini Russell 2000       |
| M2K    | Micro E-mini Russell 2000 |
| CL     | Crude Oil                 |
| GC     | Gold                      |
| SI     | Silver                    |
| ZB     | 30-Year T-Bond            |
| ZN     | 10-Year T-Note            |

Changing the product while connected requires a reconnect.

***

### QuantLynk Webhook Integration

LightningLynk sends order signals to your [QuantLynk](https://lynk.quantvue.io/) alerts, which forward them to your execution platform.

#### How It Works

When you click **Buy**, **Sell**, or **Flatten** (or trigger a hotkey), LightningLynk fires a webhook to `lynk.quantvue.io` with the order parameters. QuantLynk authenticates the request and routes it to your configured alert targets. Your execution platform receives the alert and places the order.

The signal path is: **LightningLynk → QuantLynk → Broker**. LightningLynk has no direct broker connection.

#### Alert Targets

Each **Profile** contains one or more **Alert Targets.** These individual QuantLynk destinations identified by an **Alert ID**. An alert ID maps to your accounts inside of QuantLynk, and is gotten in the same manner as you would normally get it for a TradingView or NinjaTrader strategy.

Think of profiles as presets and alert targets as the recipients. You can have multiple targets in one profile (e.g. a live account and a sim account) and toggle each independently.

***

### Profiles & Order Configuration

#### What Is a Profile?

A profile groups a **QuantLynk User ID**, one or more **Alert Targets**, and is selected per trading session. Profiles are saved to `profiles.json` and persist across restarts.

**Example:** You might have a `NQ Scalp` profile pointing to your live NinjaTrader account, and an `NQ Sim` profile pointing to your simulator. Same setup, different destination.

#### Creating a Profile

1. Click **Manage Profiles** (or the profile button in the UI)
2. Click **Add Row** to create a new alert target
3. Fill in:
   * **Name** — a human-readable label (e.g. `Live NQ`)
   * **User ID** — your QuantLynk user ID
   * **Alert ID** — the target alert ID from QuantLynk
4. Click **OK**

You can add multiple alert targets to one profile. Each has a **Visible** and **Enabled** toggle — visible controls whether it appears in the main window toggle list; enabled controls whether orders are actually sent to it.

#### Selecting a Profile

Use the profile dropdown on the main window. The selected profile and its enabled targets determine where orders go when you click a button. If no targets are enabled, clicking Buy will result in a firmly worded log message and nothing else.

#### Configuring Orders

**Quantity:** The `Qty` spinner sets the number of contracts per order. It persists between sessions.

**Order Types:**

* **Market** — sends a plain market order at the current price.
* **Market + OCO** — wraps the order in an OSO->OCO bracket using the Target and Stop tick offsets. **Requires an active live feed (it needs a reference price).** If you disconnect mid-session while OCO is selected, the app resets to Market and warns you.

**OCO Target / Stop:** Set these in ticks using the spinners in the OCO Bracket section. These are offsets from fill price, not absolute price levels.

**Example:** NQ, Qty = 2, OCO, Target = 40 ticks, Stop = 20 ticks. Click Buy. LightningLynk sends a market buy for 2 NQ contracts with a 40-tick profit target and 20-tick stop.

***

### DOM / Live Feed

The DOM (Depth of Market) panel streams live bid/ask depth and highlights notable activity.

#### Depth Modes

Set in **⚙ Settings → Feed**:

| Mode                | Description                                                   |
| ------------------- | ------------------------------------------------------------- |
| **MBP-1** (default) | Top of book only — best bid and ask. Standard Databento plan. |
| **MBP-10**          | 10 DOM levels, requires Plus or higher.                       |
| **MBO**             | Full market-by-order depth. Requires Plus or higher.          |

#### Spread Indicator

The header displays the current best bid/ask spread in ticks. It turns green when the spread is exactly 1 tick (normal for NQ). Wider than 1 tick and it goes muted — worth noting during illiquid hours or fast markets.

#### Outsized Orders

LightningLynk highlights DOM levels with unusual volume:

* **Notable** (default: 3×): volume is 3× the average at that level — something is stacking there.
* **Large** (default: 10×): volume is 10× the average — someone brought their appetite.

Thresholds are configurable in Settings.

#### Iceberg Detection

LightningLynk tracks the ratio of filled volume to resting size at a level. A high ratio suggests resting orders are being refreshed — classic iceberg behavior. The default detection threshold is 25×. Adjust in Settings if you're seeing too many (or too few) flags. MBP-10 and MBO only, for now.

#### DOM Hysteresis

The DOM auto-centers around the current price. Hysteresis controls how far price has to drift before the DOM re-centers, preventing constant micro-scrolls.

* **Top threshold** (default: 20%) — re-center triggers when price is in the top 20% of the visible range
* **Bottom threshold** (default: 80%) — re-center triggers when price is in the bottom 80%

***

### Hotkeys

Global hotkeys fire regardless of which application has focus. You can be staring at your chart and still send an order without clicking back to LightningLynk.

#### Enabling Hotkeys

Hotkeys are **off by default**. To enable:

1. Open **⚙ Settings → Hotkeys**
2. Check **Enable**
3. Optionally change the key bindings
4. Click **OK**

#### Default Bindings

| Action  | Default Key |
| ------- | ----------- |
| Buy     | `Ctrl+F1`   |
| Sell    | `Ctrl+F2`   |
| Flatten | `Ctrl+F3`   |

#### Customizing Bindings

The key fields accept any .NET `Keys` enum name with optional modifiers. Valid examples:

```
F1
Ctrl+F1
Shift+F2
Ctrl+Shift+B
Alt+F4        ← don't do this (I'll laugh at you if you do)
```

Modifiers are recommended. Bare function keys (`F1`, `F2`) work but risk conflicting with TradingView, NinjaTrader, or whatever else is competing for them.&#x20;

#### Safety Note

Hotkeys fire whenever the buy/sell/flatten buttons are enabled.

Holding down a hotkey does not spam orders. One press = one signal. You're welcome.

#### Always on Top

**Menu → 📌 Always on Top** keeps LightningLynk floating above all other windows. Useful when using hotkeys so you can see the flash feedback without alt-tabbing. Persists between sessions.

***

### Settings Reference

Access via **⚙ Settings** in the menu bar.

#### Feed

| Setting           | Default   | Description                                                   |
| ----------------- | --------- | ------------------------------------------------------------- |
| Databento API Key | *(empty)* | Your Databento key. Encrypted at rest.                        |
| Depth Mode        | MBP-1     | Top of book or full MBO depth.                                |
| DOM Refresh Rate  | 10 Hz     | How often the DOM panel redraws. Higher = smoother, more CPU. |
| DOM Depth         | 30        | Number of price levels shown in the DOM for MBO.              |

#### DOM Display

| Setting           | Default | Description                               |
| ----------------- | ------- | ----------------------------------------- |
| Hysteresis Top    | 20%     | Re-center trigger — top boundary.         |
| Hysteresis Bottom | 80%     | Re-center trigger — bottom boundary.      |
| Outsized Notable  | 3.0×    | Volume multiple for notable highlight.    |
| Outsized Large    | 10.0×   | Volume multiple for large highlight.      |
| Iceberg Ratio     | 25.0×   | Fill-to-rest ratio for iceberg detection. |

#### Hotkeys

| Setting | Default | Description                       |
| ------- | ------- | --------------------------------- |
| Enable  | Off     | Master toggle for global hotkeys. |
| Buy     | Ctrl+F1 | Global hotkey for Buy action.     |
| Sell    | Ctrl+F2 | Global hotkey for Sell action.    |
| Flatten | Ctrl+F3 | Global hotkey for Flatten action. |

#### Display

| Setting | Default | Description                           |
| ------- | ------- | ------------------------------------- |
| Theme   | Dark    | Dark, Light, or QuantVue (cyberpunk). |

***

### Troubleshooting & FAQ

#### Feed won't connect

**Check your API key.** Go to Settings and re-paste it. Even a trailing space will cause auth to fail and Databento will not be polite about why.

**Check your Databento account status.** Log into databento.com and confirm your account is active.

**Firewall / VPN.** LightningLynk makes outbound HTTPS connections to Databento's API. Some corporate firewalls or aggressive VPN configurations block this. If you're on a VPN, try disconnecting it.

***

#### OCO buttons are greyed out

OCO bracket orders require a live feed — the app needs a reference price to construct the bracket. Connect to market data first, then select `Market + OCO` from the order type dropdown.

***

#### I clicked Buy and nothing happened

A few possibilities:

1. **No targets enabled.** Open Profiles and confirm you have a target.
2. **QuantLynk isn't set up right.** Open QuantLynk and ensure you have accounts in your groups and alerts.
3. **Webhook timeout.** The log panel at the bottom will show an error if the signal failed to reach QuantLynk. Check your internet connection.

***

#### My hotkey isn't working

1. **Hotkeys are disabled.** Check Settings → Hotkeys → Enable.
2. **Key conflict.** If the log shows `⚠ Hotkey [Buy] (Ctrl+F1) registration failed`, another application has already claimed that key. Change your binding to something less contested.
3. **App is in disconnected state.** Hotkeys only fire when the Buy button is active.

***

#### The DOM looks frozen

The DOM refreshes at the configured rate (default 10 Hz). If it appears frozen:

* Check the feed status indicator — if it's not pulsing, the feed has dropped. Reconnect.
* If the indicator is pulsing but the DOM isn't moving, market may simply be quiet. Check that price on the title bar is updating.

***

#### I want to reset everything

Delete the following files and restart:

```
%AppData%\Roaming\QuantVue\QuantLynkSender\settings.json
%AppData%\Roaming\QuantVue\QuantLynkSender\profiles.json
```

The app will start fresh with all defaults. Your Databento API key and QuantLynk credentials will need to be re-entered. Consider this the nuclear option.

***

#### Where do I get support?

* **QuantVue:** [quantvue.io](https://quantvue.io/)
* **QuantLynk:** [https://login.quantvue.io](https://login.quantvue.io/)
* [**QuantVue Discord**](https://www.discord.gg/quantvue)

***

*LightningLynk is beta software. It has been tested, but futures trading is inherently unforgiving and so are bugs. Always verify that orders reached your execution platform before assuming a position is open or closed. Trust, but verify. Preferably verify.*


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.quantvue.io/our-tools/lightninglynk-dom-and-copy-trader.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
