Harbor SDK
Risk and troubleshooting
Before an order is sent, the platform checks size, drawdown, and membership. When it is not allowed, the order is not submitted and the instance log records why. The strategy does not receive raw exchange errors that contain keys.
A rejection looks like this:
{"allow":false,"action":"reduce_only","limit":"maxDrawdownPct"}- allow false means this order did not go out.
- action reduce_only allows a reduction and blocks a new increase.
- limit names the rule that fired, such as maxDrawdownPct.
01What to read in the log
- Open the hosting instance and read info, warn, and error lines.
- If there is no onBar or onTick line at all, confirm one of those hooks exists and the instance is running.
- If quotes are logged but no order appears, see whether the strategy never called create, or the platform returned allow:false.
02Common mistakes
- dual or basket without manifest.symbols.
- No onBar, onTick, or onTimer, so nothing is called on a schedule.
- Calling order or account without declaring that permission.
- A new clientOrderId on every trigger, which can fill more than once. Reuse the id for the same intent.
- Reading funding on a spot symbol, or treating an empty getSocial result as a real rank.
- Adding size after membership lapsed or drawdown was hit. Handle the rejection instead of retrying until the limit is exhausted.
