Bitcoin Whale — Input Parameters Guide

6 July 2026, 23:40
Sugianto
0
88

Bitcoin Whale — Input Parameters Guide (v1.28)

A detailed reference for every input of the Bitcoin Whale EA. Parameter names below match the labels shown in the EA's Inputs tab. Bitcoin Whale is a multi-range breakout system: several independent breakout strategies can run at once, each with its own pending orders and magic number, wrapped in a protection guard and an economic-calendar news filter. All distances are in points (the smallest price step of the symbol).

What changed since v1.28: the fixed start/end-hour window is now HH:MM trading-time inputs (server clock); breakeven and trailing are selectable dropdowns with Off / Fixed / ATR modes; an optional Virtual (hidden) SL/TP mode was added; the news filter is now keyword-based on the MT5 calendar; point inputs auto-normalize on 3/5-digit brokers; a margin buffer was added; and pending-order deletes now respect the broker's freeze level.

=== Entry Settings ===

Auto x10 all point inputs on 3/5-digit brokers (gold/JPY/FX) (default: true) — On 3- or 5-digit symbols one broker "point" is 1/10 of a pip, so the same point-based inputs would otherwise mean a 10× smaller distance than on a 2/4-digit feed. When on, the EA scales every point-distance input by 10 so the same settings give the same real distance across feeds. Runtime measurements (spread, slippage, stop level) stay raw points, and ATR-based breakeven/trailing are not scaled (ATR already scales with digits). On BTCUSD (typically 2 digits) this has no effect.

Breakout buffer beyond H/L (points) (default: 50) — Distance placed beyond a range high/low for the breakout entry price. Larger values demand a more convincing break (fewer false triggers, worse entry price); smaller values sit right on the edge of the range.

Allow long breakouts (all strategies) (default: true) — Master switch for long (Buy Stop) breakouts. Applies to every enabled strategy.

Allow short breakouts (all strategies) (default: true) — Master switch for short (Sell Stop) breakouts. Applies to every enabled strategy.

Hard cap spread to place orders (points) (default: 3500) — While the live spread exceeds this, no new orders are placed. Keeps orders out of the blown-out spreads seen around news and rollover.

Max age of last quote to treat market as live (sec) (default: 30) — Maximum age, in seconds, of the last quote for the market to be treated as live. Guards against a frozen or stale feed at the open; measured on the local clock, so a broker-clock offset can't flag a live feed as stale.


=== Trading Time Settings ===

Times use the server clock in HH:MM format. Set any of them to 00:00 to disable that specific filter.

Daily Trading Start Time (server, 00:00 = off) (default: 01:15) — Time of day from which new pending orders may be placed.

Daily Trading Pause Time (server, 00:00 = off) (default: 20:00) — Time of day after which no new orders are placed. Pendings already working are left to run (until the pending-close time below, or their end-of-day broker expiry); open positions keep being managed.

Daily Pending Order Close Time (server, 00:00 = off) (default: 20:45) — Time of day at which still-unfilled pendings are deleted and no new orders are placed for the rest of the day. Keep this later than your latest session end, or those sessions can never place. Open positions keep running.

Friday Closing Time (server, 00:00 = off) (default: 18:00) — On Fridays, at this time the EA deletes unfilled pendings (and optionally flattens open positions — see below), then stops for the week.

Close Open Positions On Friday (default: true) — When on, open positions are also closed at the Friday closing time, not just the pendings. Turn off to let Friday positions run into the weekend gap at your own risk.


=== Entry Strategies (toggle each) ===

Each toggle is an independent breakout source. Any combination can run together; each keeps its own pending orders and its own magic number (base magic + offset), so trades and management never collide. A strategy arms once per its own period, valid until end of day.

Daily: previous-day high/low (default: true) — Breakout of the previous day's high/low (magic + 0).

12-hour block high/low (default: false) — Breakout of the last completed 12-hour block's high/low (magic + 1).

8-hour block high/low (default: false) — Breakout of the last completed 8-hour block's high/low (magic + 2).

6-hour block high/low (default: false) — Breakout of the last completed 6-hour block's high/low (magic + 3).

4-hour block high/low (default: false) — Breakout of the last completed 4-hour block's high/low (magic + 4).

2-hour block high/low (default: false) — Breakout of the last completed 2-hour block's high/low (magic + 5).

US session high/low (default: false) — Breakout of the US session high/low (magic + 6). Uses the most recently completed session, so it arms early in the window regardless of the session clock.

Asia session high/low (default: false) — Breakout of the Asia session high/low (magic + 7).

Europe session high/low (default: true) — Breakout of the Europe session high/low (magic + 8).

Asia session start (server hour) / Asia session end (server hour, <24) (default: 3 / 11) — Asia session window, in server hours. End must be below 24.

Europe session start (server hour) / Europe session end (server hour, <24) (default: 10 / 18) — Europe session window, in server hours.

US session start (server hour) / US session end (server hour, <24) (default: 15 / 23) — US session window, in server hours. Keep "Daily Pending Order Close Time" later than the US end, or US pendings are cut off.


=== Risk Management ===

Risk per trade (% of balance) (default: 1.0) — Percent of account balance risked per trade, per strategy. Total exposure scales with how many strategies are enabled — lower this when running many. Accepted range is 0–10.

Stop loss (points) (default: 3500) — Base stop-loss distance. This is the requested distance; the EA may widen it to satisfy the broker's minimum (see Built-in Safeguards) and re-sizes the lot accordingly.

Take profit = SL distance x this (default: 15.5) — Take-profit distance as a multiple of the effective SL distance.

Hard cap on lot size (default: 100.0) — Upper limit on the calculated lot.

Min SL distance = live spread x this (keeps SL outside spread) (default: 2.0) — The SL is floored at live spread × this, so it is never placed inside the spread. Prevents "invalid stops" rejections in wide-spread moments.

Min SL distance as % of price (0=off; for crypto brokers w/ hidden stop min) (default: 0.25) — The SL is also floored at this percent of price. For crypto brokers that report stop level 0 yet enforce a hidden minimum (e.g. Exness on BTCUSD), this clears it so the first order is accepted with no rejected attempts. Set 0 to disable.


=== Trade Management ===

Breakeven and trailing are each a dropdown: Off, Fixed points, or ATR-based. In ATR mode the trigger/lock/start/distance are derived from the current ATR (period below, chart timeframe) × the matching multiplier, so they adapt to volatility automatically.

Breakeven mode (default: ATR-based) — Off / Fixed points / ATR-based. Moves the stop-loss to (or just beyond) entry once far enough in profit.

BE fixed: trigger (points in profit) (default: 1500) — Fixed mode only: profit required before break-even arms. Scale to your effective SL — arming after a tiny profit relative to a large SL locks trades prematurely.

BE fixed: lock-in beyond entry (points) (default: 1000) — Fixed mode only: points locked in beyond entry when break-even triggers.

BE ATR: trigger = ATR x this (default: 0.2) — ATR mode only: break-even arms once profit reaches ATR × this.

BE ATR: lock-in = ATR x this (default: 0.1) — ATR mode only: points locked in beyond entry, expressed as ATR × this.

Trailing mode (default: ATR-based) — Off / Fixed points / ATR-based. Trails the stop behind price to ride extended moves ("runners").

Trail fixed: start after (points in profit) (default: 2500) — Fixed mode only: profit required before trailing begins.

Trail fixed: distance (points) (default: 1200) — Fixed mode only: distance kept behind price. Never set closer than the broker's minimum stop/freeze distance.

Trail ATR: start = ATR x this (default: 0.25) — ATR mode only: trailing begins once profit reaches ATR × this.

Trail ATR: distance = ATR x this (default: 0.1) — ATR mode only: distance kept behind price, expressed as ATR × this.

ATR period for BE / trailing (chart TF) (default: 14) — ATR indicator period used by both ATR-based modes, on the chart timeframe. Must be ≥ 1.


=== Virtual (Hidden) SL/TP ===

Use virtual/hidden SL & TP (NOT sent to the broker) (default: false) — When on, positions are opened with no SL/TP on the broker's side — nothing for the broker or other market participants to see. The EA tracks each position's intended SL/TP internally and force-closes it with a market order the instant price trades through the level; breakeven and trailing move the internal level the same way. WARNING: protection only works while the EA is running and connected — if the terminal/VPS goes offline the position has no stop on the broker's side at all. Only enable this if you understand and accept that tradeoff.

Persist virtual levels in terminal global vars (restart-safe) (default: true) — Saves each position's virtual SL/TP in terminal global variables so they survive an EA/terminal restart while a position is still open.

Draw virtual SL/TP as dashed lines on the chart (default: true) — Draws each tracked virtual SL (red) and TP (green) as dashed horizontal lines with tooltips.


=== Protection Guard ===

Guard: react to broker slippage on fills/closes (default: true) — Measure real slippage on every fill and stop-loss close, and trip a cooldown when excessive.

Max order deviation / slippage cap (points) (default: 50) — Hard slippage cap on market operations (used as the deviation on order sends).

Trip cooldown if entry slippage > this (points) (default: 8000) — Trip the cooldown if entry-fill slippage (pending price vs actual fill) exceeds this.

Trip cooldown if SL-close slippage > this (points) (default: 8000) — Trip the cooldown if stop-loss-close slippage (SL price vs actual close) exceeds this.

Guard: pause on a broker spread spike (default: true) — Pause trading on a spread spike.

Spread guard mode (default: Spike vs learned typical spread) — "Fixed threshold (points)" trips at a fixed floor; "Spike vs learned typical spread" trips at typical spread × a multiplier (whichever is higher).

Spread trip floor (points) (default: 5000) — Absolute spread trip floor.

Relative mode: trip at typical spread x this (default: 3.0) — Trip when spread exceeds typical spread × this; also gates the spike-resistant typical-spread learning.

Typical spread (0 = auto-learn live) (default: 0) — Reference typical spread. 0 auto-learns the live spread.

Guard: pause if broker widens the stop level (default: true) — Pause if the broker widens its minimum stop level beyond tolerance.

Max tolerated stop level (points) (default: 6000) — Threshold before the stop-level guard pauses.

Cooldown after a guard trips (minutes) (default: 15) — Cooldown length after any trip. Strictly time-based; always clears afterward — never permanent.

Delete pending orders when a guard trips (default: true) — Remove unfilled pendings on a trip (freeze-level aware — see Built-in Safeguards).

Log guard events to the Experts journal (default: true) — Verbose guard/order logging.

Keep this % of equity free as margin buffer (0 = off) (default: 20.0) — Before placing a pending, the EA projects the margin needed if this order and every other working breakout stop fill together, and skips the order if that would leave less than this percent of equity free. Prevents fill-time "not enough money" (10019) when several stops trigger at once. Set 0 to disable the buffer/check.


=== Optional USD news filter ===

Enable keyword-based USD news filter (MT5 calendar) (default: true) — Pause new orders around scheduled events whose name matches your keywords, sourced from the MT5 economic calendar (no WebRequest needed). Requires the calendar to be available for the account/terminal.

Event-name keywords (comma list, case-insensitive) (default: nonfarm,nfp,fomc) — Comma-separated keywords matched as case-insensitive substrings against event names. An event matches if its name contains any keyword.

Stop trading this many minutes BEFORE a matched event (default: 100) — Halt window before a matched event.

Stop trading this many minutes AFTER a matched event (default: 60) — Halt window after a matched event.

Close open positions when a news window starts (default: true) — Flatten open positions when a news window begins.

Delete pending orders during the news window (default: true) — Remove pendings during the window (freeze-level aware).

Calendar unreadable: true = block trading, false = allow (default: false) — Fail-safe behaviour when the calendar can't be read: true blocks new trading (fail-closed), false allows it (fail-open).


=== Dashboard ===

Show on-chart info panel (default: false) — Show or hide the panel (market state, spread, per-strategy pending/position counts, guard status, broker stop/freeze levels, effective SL, news status).

Corner: 0=TL 1=TR 2=BL 3=BR (default: 0) — Anchor corner of the panel.

Panel X offset (px) (default: 12) — Horizontal offset from the corner.

Panel Y offset (px) (default: 24) — Vertical offset from the corner.

Panel font size (default: 9) — Panel font size (cosmetic).

Panel text color (default: Gainsboro) — Panel text colour.

Panel background color (default: RGB 30,30,30) — Panel background colour.


=== Misc ===

Base magic number (each strategy uses +offset) (default: 23060531) — Base magic. Each strategy uses base + offset (0–8), so keep a gap of at least 9 from any other EA on the account.

Comment (default: BITCOIN WHALE) — Order comment prefix; each strategy appends its short label, e.g. "BITCOIN WHALE EU".


Built-in Safeguards (automatic, not inputs)

These behaviours are always active and shape how the inputs play out:

  • Broker minimum-stop handling — if a stop order is rejected as "invalid stops" (some brokers report stop level 0 yet enforce a hidden minimum), the EA widens the SL and retries until accepted, then caches the working distance. The lot is re-sized from the SL actually used, preserving the risk budget.
  • Learned entry-gap handling — if a pending price is rejected as "invalid price" (10015) because the market moved or the broker enforces a hidden minimum gap, the entry is re-anchored to the live market with a learned minimum gap and retried instead of failing.
  • SL never inside the spread — the SL distance is floored at the larger of (spread × the spread multiplier) and (the % of price), so the first order attempt is already valid.
  • Tick-size alignment — all prices (entry/SL/TP) are aligned to the symbol's tick-size grid, so feeds quoting on a coarse grid (e.g. BTCUSD on 0.5) don't cause rejects.
  • One shot per period — each strategy places at most one Buy Stop and one Sell Stop per its own period (day / N-hour block / session), preventing re-entry spam.
  • Per-strategy isolation — every strategy has its own magic number; orders, positions, break-even, trailing and slippage tracking are independent.
  • Time-based cooldown — any guard trip pauses new orders for a fixed number of minutes and always clears; a frozen feed cannot stall it.
  • Market-live gate — orders are only committed when the symbol is tradeable, the session is open, and the quote feed is fresh.
  • Window cleanup — outside the trading window all unfilled pendings are deleted, while open positions keep being managed by break-even / trailing.
  • Broker-aware modifies — the SL modify used by break-even and trailing is never set closer to price than the broker's minimum stop/freeze distance, skips when price is within that distance of the TP, and learns a wider gap from any "invalid stops"/"frozen" reject.
  • Freeze-aware pending deletes (new in v1.28) — a Buy/Sell Stop whose trigger price is within the broker's freeze level of the market is not force-deleted (the broker would reject it); it is left in place and retried on a later tick once price leaves the zone or the order fills, and the delete retcode is logged rather than silently ignored.
  • Margin projection — a pending is skipped when this order plus every other working breakout stop could not all be honoured within the configured equity buffer.

Educational tool. Test on a demo account and in the Strategy Tester before any live use; defaults are starting points, not recommendations. Point-based values are scaled to the symbol (on BTCUSD one point is a tiny fraction of price), so re-scale SL/TP/buffer/guard thresholds when moving to another instrument.