100 lines
1.8 KiB
Python
100 lines
1.8 KiB
Python
"""Column contracts for the JoinQuant comparison plugin."""
|
|
|
|
from typing import Final
|
|
|
|
|
|
JOINQUANT_TARGET_COLUMNS: Final[list[str]] = [
|
|
"date",
|
|
"portfolio_name",
|
|
"symbol_id",
|
|
"jq_symbol",
|
|
"target_shares",
|
|
"target_value",
|
|
"target_weight",
|
|
"export_mode",
|
|
"snapshot_id",
|
|
]
|
|
|
|
JOINQUANT_FILL_COLUMNS: Final[list[str]] = [
|
|
"date",
|
|
"portfolio_name",
|
|
"symbol_id",
|
|
"jq_symbol",
|
|
"order_id",
|
|
"side",
|
|
"requested_shares",
|
|
"filled_shares",
|
|
"fill_price",
|
|
"trade_value",
|
|
"trade_cost",
|
|
"blocked",
|
|
"raw_status",
|
|
]
|
|
|
|
JOINQUANT_POSITION_COLUMNS: Final[list[str]] = [
|
|
"date",
|
|
"portfolio_name",
|
|
"symbol_id",
|
|
"jq_symbol",
|
|
"position_shares",
|
|
"position_value",
|
|
"cash",
|
|
"total_value",
|
|
]
|
|
|
|
JOINQUANT_PNL_COLUMNS: Final[list[str]] = [
|
|
"date",
|
|
"portfolio_name",
|
|
"gross_exposure",
|
|
"net_exposure",
|
|
"cash",
|
|
"total_value",
|
|
"pnl",
|
|
"cost",
|
|
"turnover",
|
|
]
|
|
|
|
RECONCILE_COLUMNS: Final[list[str]] = [
|
|
"date",
|
|
"portfolio_name",
|
|
"symbol_id",
|
|
"jq_symbol",
|
|
"target_shares",
|
|
"our_filled_shares",
|
|
"jq_filled_shares",
|
|
"filled_share_diff",
|
|
"our_position_shares",
|
|
"jq_position_shares",
|
|
"position_share_diff",
|
|
"our_trade_price",
|
|
"jq_trade_price",
|
|
"trade_price_diff",
|
|
"our_cost",
|
|
"jq_cost",
|
|
"cost_diff",
|
|
"our_pnl",
|
|
"jq_pnl",
|
|
"pnl_diff",
|
|
"diff_reason",
|
|
]
|
|
|
|
DIFF_REASONS: Final[list[str]] = [
|
|
"MATCH",
|
|
"SYMBOL_MAPPING",
|
|
"PRICE_MISMATCH",
|
|
"LOT_ROUNDING",
|
|
"SUSPENSION",
|
|
"LIMIT_UP_BLOCK",
|
|
"LIMIT_DOWN_BLOCK",
|
|
"VOLUME_OR_LIQUIDITY",
|
|
"COST_MODEL",
|
|
"CASH_CONSTRAINT",
|
|
"SHORT_NOT_SUPPORTED",
|
|
"CORPORATE_ACTION",
|
|
"JOINQUANT_INTERNAL_ROUNDING",
|
|
"MISSING_IN_OUR_SYSTEM",
|
|
"MISSING_IN_JOINQUANT",
|
|
"UNKNOWN",
|
|
]
|
|
|