Skip to content
All strategies

Strategies

Myquant ATR_STOCK CNEQ daily expansion: explicitly bounded next-open IOC entry

Outcome: Abandoned

MyquantAtrStockBoundedCneq

Outcome Summary

Across six iterations, MyquantAtrStockBoundedCneq tested an amended A-share ATR expansion port with bounded next-open entries. Its baseline produced 35.64% net return across 634 closed trades with Sharpe 0.326, but maximum drawdown reached 29.37% against a declared 20% limit. Backtest review recommended optimization, and the analyst reported completed all-fixed validation with inconclusive statistical and holdout evidence. The run was abandoned for the enforced calendar-year persistence failure—5 of 9 years positive versus 60% required—before risk review.

Hypothesis

Derived by the Research Lead from the supplied Myquant ATR_STOCK port: preserve the daily close > open + 2xATR14 expansion signal, original data-covered A-share pool, 6.8% loss exit, 20%-armed 6.8% trailing profit exit and 22-calendar-day lockout. This is an amended port. Replace source same-close execution with session-supported next-open execution. Explicitly authorize an IOC LIMIT buy with limit = signal close * 1.005 + one instrument price tick, rounded upward to a valid tick. It is eligible at the next……Show moreShow less

Derived by the Research Lead from the supplied Myquant ATR_STOCK port: preserve the daily close > open + 2xATR14 expansion signal, original data-covered A-share pool, 6.8% loss exit, 20%-armed 6.8% trailing profit exit and 22-calendar-day lockout. This is an amended port. Replace source same-close execution with session-supported next-open execution. Explicitly authorize an IOC LIMIT buy with limit = signal close * 1.005 + one instrument price tick, rounded upward to a valid tick. It is eligible at the next session open only; if the opening execution price exceeds the limit, cancel without chasing or resting through the session. A signal close of 10.00 followed by an affordable open of 10.20 intentionally cancels. Lockout starts at the qualifying signal even if quantity is zero or the order cancels. Retain partial fills and cancel the remainder. Reserve cash using the limit price and modeled entry costs without consulting the future open. Daily exit decisions fill at the next session open. Source text was not independently fetched; source attribution and rules come from the supplied brief. CNEQ T+1 and price limits are not modeled; dividends are excluded. Preserve the fixed source pool as a reproduction universe, disclose coverage and survivorship limitations, and subscribe only once to duplicated 601899.CNEQ.

The documented failure is hypothesis_mismatch, not scientific evidence against the signal. Retain the mechanism and source-market universe. Explicitly authorize the formerly unregistered 0.5%-plus-tick entry ceiling and define cancellation, partial-fill and lockout consequences. This changes the unconditional next-open contract into a bounded-entry experiment and must be evaluated as an amended port. Supported next-open execution replaces the source same-close call. Corpus concentration and current portfolio were not supplied, so no quota claim is made.

Reject this Research Lead operationalization of the amended bounded-entry Myquant ATR_STOCK port for failure of the supplied enforced calendar-year persistence requirement: 5 of 9 exposed years positive versus 60% required. This narrowly rejects measured temporal persistence, not Myquant's source strategy or ATR expansion generally. Average net trade return 1.045% exceeds the supplied 0.20% economics floor; costs are not the rejection reason. Statistical evidence and the holdout are inconclusive, and neither insufficient significance nor the holdout ratio justifies abandonment. The all-fixed validation is complete, and no demonstrated implementation defect or evidence-backed permitted change addresses the enforced failure. No accounting or data artifact is asserted.

Implementation

Amended Myquant ATR_STOCK daily CNEQ expansion port with bounded next-session-open IOC entries, signal-anchored 22-calendar-day lockout, close-based loss and persistently armed trailing exits decided for the next open. Fixed 81-name data-covered reproduction pool; duplicate 601899 is subscribed once. Coverage and survivorship limitations remain; T+1 and price limits are unmodeled and dividends excluded.

Fixes both QA findings without changing signal rules or config: the persisted per-position peak arms trailing protection permanently at 20% gain and resets on each new position. Affordability and pending reservations include commission plus the conservative 72-bp maximum of the current CNEQ spread/impact model; partial fills retain that signal-close unit-cost basis. No future open or volume is read. Source attribution comes from the supplied brief.

Verification Results

The smoke window reports 27.84% drawdown versus the registered 20% constraint, with PF 1.071 and Sharpe 0.173. Assess these on full history; they do not establish a correctness defect. Aggregate metrics imply roughly 1.78% equity deployed per completed trade, so confirm sizing interpretation before comparing risk results.

Backtest Review

Sharpe
0.33
Total return
35.64%
Max drawdown
29.37%
Trades
634
Win rate
31.7%
Profit factor
1.19

634 closed trades provide a usable optimization sample. Net average trade return is 1.045% versus the 0.15% CNEQ review floor; PF is 1.190 and Sharpe 0.326.

All closed trades are long; minimum holding time is one day, with no same-session round trips. Quantities of 100–300 shares match the equity-scaled source sizing and lot constraint.

Return is 35.64% versus approximately 20.80% for the equal-weight benchmark. Terminal unrealized contribution is only 0.964 percentage points; accounting reconciles.

QA's risk concern is confirmed: drawdown is 29.37% versus the registered 20% limit and benchmark drawdown of approximately 28.33%. Small individual positions still accumulate to approximately 100% portfolio exposure; do not increase sizing.

Performance is concentrated in 2019, with losses in 2022, 2023 and 2026. Information ratio is only 0.078. These warrant optimization scrutiny, not rejection at this review.

Trade records do not independently verify every entry ceiling. Price limits and T+1 remain unmodeled, although no same-session sale violation was observed.

Reconcile the configured broader source pool with the contract's 20-instrument list before registering the search; preserve the authorized reproduction universe.

Analysis

Fixed final parameters reproduce the baseline: 634 closed trades, 35.640% net return and 1.045% average net trade return, above the supplied 0.20% economics floor.

Accounting reconciles. Closed trades are long, quantities are 100–300 shares, and no same-session round trips occur.

The supplied enforced hard gate fails: only 5 of 9 exposed calendar years are positive, versus 60% required. This classification is enforced, not advisory, and cannot be waived.

2019 contributes 79.4% of profit. Drawdown is 29.3705% versus the declared 20% limit, with 1,120 days of drawdown duration. PF 1.190 and Calmar 0.121 miss soft floors.

Pooled outer Sharpe is 0.132. Registered pooled significance and the 641-day, 126-trade holdout are inconclusive. Holdout Sharpe is -0.688, but statistical rejection is not established; not enough trades to validate is not the abandonment reason.

Full-history trade count, return and per-trade return exceed research predictions. Pooled outer Sharpe misses the predicted 0.6, which is descriptive rather than an eligibility floor.

The recorded benchmark curve grows 14.49% between its endpoints, with 28.33% drawdown. Information ratio 0.0779 indicates weak active-return evidence. Benchmark endpoint growth uses its recorded starting value of 105,504.57.

The contract lists 20 instruments while the replay subscribes to 81; reconcile this scope discrepancy before any separately registered replication. Price-limit execution and survivorship remain disclosed limitations.

enforced hard

The Research Lead REVISED this hypothesis because the previous premise did not work. Implement the REVISED hypothesis (see the hypothesis description) from scratch — do not reuse the prior strategy. Revision rationale: The documented failure is hypothesis_mismatch, not scientific evidence against the signal. Retain the mechanism and source-market universe. Explicitly authorize the formerly unregistered 0.5%-plus-tick entry ceiling and define cancellation, partial-fill and lockout consequences. This changes the unconditional next-open contract into a bounded-entry experiment and must be evaluated as an amended port. Supported next-open execution replaces the source same-close call. Corpus concentration and current portfolio were not supplied, so no quota claim is made.

Iteration History

Verification failed (Layer 1 — static analysis): - Syntax error: invalid decimal literal (<unknown>, line 1) (line 1)

Verification failed (Layer 3 — sandbox backtest): cash_overspend: NautilusTrader stopped the backtest at 2020-07-03 01:30:00+00:00 because a CASH (spot) account went negative (balance below zero). An order cost more than the cash available, commission included. Size buys from free cash / (price x (1 + taker fee)), or use the FactoryStrategy entry helpers, which cap spot buys to what the account can pay. Bar type used: 600000.CNEQ-1-DAY-LAST-EXTERNAL, Bars processed: 0 Ensure your strategy produces trades with the given data and parameters.

hypothesis_revised: Verification exhausted 3 coding attempts on a CONTRACT problem, not a code bug: the review found a requirement of the research contract that the developer cannot implement or is not allowed to change

Preserve cash reservations while implementing the specified next-open entry through a cash-safe execution path without the arbitrary 0.5% ceiling. If bounded IOC entries are intentionally desired, obtain an explicit hypothesis amendment defining the limit, cancellation behavior and lockout consequences before treating this implementation as faithful.

_cash_safe_buy adds an unregistered entry-price filter: market_ceiling = signal close * 1.005 + one tick, followed by an IOC LIMIT buy (lines 249-254). A qualifying signal with ample cash is canceled when the next-session open exceeds this ceiling, while _lockout_days remains set for the original lockout period. For example, a close of 10 and next open of 10.20 can skip an affordable 200-share entry solely because of the new ceiling. The hypothesis specifies next-open execution and cash-based quantity reduction, with no 0.5% gap filter. The original source's on_bar lines 320-330 computes cash-limited shares and calls open_long at bar.close; it does not contain this 0.5% ceiling rule. The strategy rationale discloses the change, but no hypothesis amendment or forced, listed port deviation authorizes it. Cash safety is necessary, but this particular trade-changing ceiling is not required by the supported next-open capability.

Verification failed (Layer 2 — synthetic scenarios): Parameters used: ['lot_size', 'open_vol', 'hist_size', 'atr_period', 'min_notional', 'buy_multi_atr', 'open_max_days', 'source_equity', 'sell_multi_atr', 'is_fixation_stop', 'is_movement_stop', 'entry_ceiling_pct', 'lockout_on_cancel', '_optimization_plan', 'stop_fixation_loss', 'stop_fixation_profit', 'stop_movement_profit', 'max_position_equity_pct'] Check that __init__ sets all attributes from self.parameters.get(). - volatility_spike: AttributeError: 'NoneType' object has no attribute 'client_order_id' (bar timestamp: 1746687660000)

Verification failed (Layer 4 — QA review) [class=hypothesis_mismatch]: - [critical] The hypothesis specifies a 20%-armed 6.8% trailing profit exit. The trailing expression requires CURRENT gain >= stop_fixation_profit, so protection disappears when a retracement takes gain below 20%, even after the trade exceeded the arming threshold. For entry 100, peak close 125, and subsequent close 116.5, the 6.8% trailing level is reached but this expression is false because current gain is only 16.5% (assuming no……Show moreShow less

Verification failed (Layer 4 — QA review) [class=hypothesis_mismatch]: - [critical] The hypothesis specifies a 20%-armed 6.8% trailing profit exit. The trailing expression requires CURRENT gain >= stop_fixation_profit, so protection disappears when a retracement takes gain below 20%, even after the trade exceeded the arming threshold. For entry 100, peak close 125, and subsequent close 116.5, the 6.8% trailing level is reached but this expression is false because current gain is only 16.5% (assuming no downside-expansion exit). (line 86) — fix: Persist a per-position armed flag once a qualifying close reaches 20% gain, or derive arming from the stored peak relative to entry. Once armed, exit on the specified 6.8% close-based retracement regardless of current gain; reset the flag and peak for each new position. - [critical] The amended contract explicitly requires cash reservations using the limit price AND modeled entry costs. unit_cost and reserved_* include only instrument commissions. CNEQ additionally models a 2-bp half-spread plus square-root market impact, posted to cash on fills. With max_position_equity_pct=100, allocation can consume the cash needed for those costs, so the reservation does not implement the registered affordability rule. (line 139) — fix: Include a conservative allowance for modeled spread and impact in both affordability and pending cash reservations, using information available at the signal close. Keep the same cost basis when reconciling partial fills; never consult the future opening price or volume.

Persist a per-position armed flag once a qualifying close reaches 20% gain, or derive arming from the stored peak relative to entry. Once armed, exit on the specified 6.8% close-based retracement regardless of current gain; reset the flag and peak for each new position.

The hypothesis specifies a 20%-armed 6.8% trailing profit exit. The trailing expression requires CURRENT gain >= stop_fixation_profit, so protection disappears when a retracement takes gain below 20%, even after the trade exceeded the arming threshold. For entry 100, peak close 125, and subsequent close 116.5, the 6.8% trailing level is reached but this expression is false because current gain is only 16.5% (assuming no downside-expansion exit).

Include a conservative allowance for modeled spread and impact in both affordability and pending cash reservations, using information available at the signal close. Keep the same cost basis when reconciling partial fills; never consult the future opening price or volume.

The amended contract explicitly requires cash reservations using the limit price AND modeled entry costs. unit_cost and reserved_* include only instrument commissions. CNEQ additionally models a 2-bp half-spread plus square-root market impact, posted to cash on fills. With max_position_equity_pct=100, allocation can consume the cash needed for those costs, so the reservation does not implement the registered affordability rule.

Outcome Summary

A positive aggregate return and adequate per-trade economics do not establish the calendar-year persistence required for eligibility.

After an optimize verdict at backtest review, the analyst abandoned it because only 5 of 9 exposed calendar years were positive (55.6%), below the enforced, non-waivable 60% requirement. Trading costs and inconclusive holdout evidence were explicitly not the abandonment reasons; risk review was not reached.

Capture daily A-share ATR14 expansion above 2×ATR using bounded next-session-open IOC limit entries, loss and trailing-profit exits, and a 22-calendar-day signal lockout.

The backtest recorded 35.64% net return, Sharpe 0.326 and 634 closed trades, with 1.045% average net trade return and 29.37% maximum drawdown. Analyst-reported validation showed pooled outer Sharpe 0.132 and holdout Sharpe -0.688; statistical evidence was inconclusive.

Analysis

ATR_STOCK

Backtest and paper results are hypothetical. Trading involves risk of loss.