Skip to content

docs: add MiniMax model and beginner mode to READMEs - #1449

Merged
shinchan-zhai merged 26 commits into
mainfrom
dev
Mar 31, 2026
Merged

docs: add MiniMax model and beginner mode to READMEs#1449
shinchan-zhai merged 26 commits into
mainfrom
dev

Conversation

@shinchan-zhai

Copy link
Copy Markdown
Collaborator

Summary

  • Add MiniMax to AI models table across all 7 i18n READMEs
  • Add beginner mode description to Setup section (en + zh-CN)

🤖 Generated with Claude Code

Hansen1018 and others added 26 commits March 24, 2026 08:37
When CLAW402_WALLET_KEY env var is set, all nofxos.ai data API calls
(AI500, OI rankings, NetFlow, price rankings) are automatically routed
through claw402.ai with x402 USDC micropayment.

- provider/nofxos/claw402.go: x402 GET request client for data APIs
- provider/nofxos/client.go: claw402 mode support in doRequest()
- kernel/engine.go: auto-detect CLAW402_WALLET_KEY and enable routing
- mcp/payment/x402.go: MakeClaw402SignFunc helper

Without CLAW402_WALLET_KEY, falls back to direct nofxos.ai (backward compat).
When a trader uses claw402 as AI provider, the same wallet private key
is now automatically used to route nofxos data API calls (AI500, OI,
NetFlow, etc.) through claw402 payment as well.

Users don't need to configure anything extra — if they already set up
claw402 for AI, data APIs automatically go through claw402 too.
* feat: enforce strategy limits to prevent token overflow

* fix: tune token limits after real-world testing

- Relax kline max 20→30, timeframes 3→4 (tested ~41K tokens, safe under 131K)
- Restore ranking limits to original [5,10,15,20] options (only ~1.5K token impact)
- Add static coins limit (max 3) with toast notification
- Add timeframe limit toast when exceeding 4
- Log SSE token usage (prompt/completion/total) from API response
- Fix nil logger crash in claw402 data client (engine.go)

* feat: add token estimation functionality for strategy configurations

* feat: add discard changes button in Strategy Studio for unsaved modifications

* feat: retain selected strategy after saving in Strategy Studio

* feat: enhance strategy display in Strategy Studio with improved layout and sorting of token limits

* refactor: improve layout and styling of stats display in CompetitionPage

* refactor: replace select elements with NofxSelect component for improved consistency in strategy configuration forms

* style: update NofxSelect component to use smaller text size for improved readability

* feat: implement token overflow handling in strategy updates and UI

---------

Co-authored-by: Dean <afei.wuhao@gmail.com>
…n-Binance exchanges

CoinAnk recently stopped providing free kline data for OKX/Bitget/Gate
exchanges (returns success but empty array). This caused '3-minute
k-line data is empty' errors for all users on those exchanges.

Fix: detect empty kline response and automatically fallback to Binance
kline data, which is always available.
* feat: add beginner onboarding and mode switching flow

* chore: ignore local gh auth config

* fix: restore kline fallback and align onboarding language

---------

Co-authored-by: zavier-bin <zhaobbbhhh@gmail.com>
Replace zero-value fallback with undefined, pass accountFailed prop to
distinguish load failure from initial loading skeleton.
- Pass `lang` from register request body to createDefaultStrategies
- Support zh/en/id locales for strategy names and descriptions
- Wrap strategy creation in a transaction to prevent partial writes
- Frontend sends current UI language in register request body
- Strategy list UI: 2-line clamp, unselected border, larger spacing, smaller font for non-zh
- Lower MaxCandidateCoins from 50 to 10 (backend)
- Update CoinSourceEditor: options 1-10, default 3, max static coins 10
- Fix NofxSelect dropdown closing on internal scroll
- Fix NofxSelect position flash on open (useLayoutEffect)
Update react-router, rollup, picomatch, and yaml to patched versions.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- main.go: prevent panic when trader ID < 8 chars
- SetupPage: add zh/en i18n labels
- BeginnerOnboardingPage: show private key by default, simplify code
Co-authored-by: Codex <codex@openai.com>
- auto_trader_risk: skip drawdown check when entryPrice <= 0
- AuthContext: redirect to / on logout
- App.tsx: simplify data page navigation
- BeginnerOnboardingPage: add close button to overlay
…ing (#1444)

Co-authored-by: Dean <afei.wuhao@gmail.com>
- LoginPage/SetupPage: clear localStorage auth tokens on mount
- AuthContext: clear onboarding state on register, invalidate config on logout
- Extract shared LanguageSwitcher component for consistent UI
- Merge duplicate config import in AuthContext
- invalidateSystemConfig() now dispatches a custom event
- useSystemConfig() listens for the event and re-fetches automatically
- Fixes stale initialized=false after register/logout causing
  incorrect redirect to SetupPage
Co-authored-by: apple <apple@MacbookPro-zbh.local>
…i18n READMEs

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@shinchan-zhai
shinchan-zhai merged commit 057f6c2 into main Mar 31, 2026
28 of 29 checks passed
@github-actions

Copy link
Copy Markdown

🚨 This PR is large (>4430 lines changed). Please consider breaking it into smaller, focused PRs for easier review.

@cla-assistant

cla-assistant Bot commented Mar 31, 2026

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
2 out of 5 committers have signed the CLA.

✅ deanokk
✅ Hansen1018
❌ shinchan-zhai
❌ zavier-bin
❌ Dean-afei
You have signed the CLA already but the status is still pending? Let us recheck it.

@github-actions

Copy link
Copy Markdown

🐳 Docker Build Check Results

AMD64 builds: ✅ success
ARM64 build (native runner): ✅ success

🎉 All Docker builds passed!

✨ Using GitHub native ARM64 runners - 3x faster than emulation!

After merge, full multi-arch builds will run in ~10-12 minutes.

Checked: Backend (amd64 + arm64 native), Frontend (amd64) | Powered by GitHub ARM64 Runners

@github-actions

Copy link
Copy Markdown

🤖 Advisory Check Results

These are advisory checks to help improve code quality. They won't block your PR from being merged.

📋 PR Information

Title Format: ✅ Good - Follows Conventional Commits
PR Size: 🔴 Large (4430 lines: +3661 -769)

💡 Suggestion: This is a large PR. Consider breaking it into smaller, focused PRs for easier review.

🔧 Backend Checks

Go Formatting: ⚠️ Needs formatting

Files needing formatting
api/handler_wallet.go
api/utils_test.go
config/config.go
kernel/engine.go
kernel/formatter.go
kernel/grid_engine.go
kernel/validate_test.go
main.go
manager/trader_manager.go
market/data.go

Go Vet: ✅ Good
Tests: ✅ Passed

Fix locally:

go fmt ./...      # Format code
go vet ./...      # Check for issues
go test ./...     # Run tests

⚛️ Frontend Checks

Build & Type Check: ✅ Success

Fix locally:

cd web
npm run build  # Test build (includes type checking)

📖 Resources

Questions? Feel free to ask in the comments! 🙏


These checks are advisory and won't block your PR from being merged. This comment is automatically generated from pr-checks-run.yml.

@github-actions

Copy link
Copy Markdown

🔴 Go Test Coverage Report

Total Coverage: 10.0% (needs improvement)

Coverage

📊 Detailed Coverage Report (click to expand)

Coverage by Package

nofx/api/crypto_handler.go:18:				NewCryptoHandler			0.0%
nofx/api/crypto_handler.go:27:				HandleGetCryptoConfig			0.0%
nofx/api/crypto_handler.go:37:				HandleGetPublicKey			0.0%
nofx/api/crypto_handler.go:59:				HandleDecryptSensitiveData		0.0%
nofx/api/crypto_handler.go:86:				isValidPrivateKey			0.0%
nofx/api/errors.go:13:					SafeError				0.0%
nofx/api/errors.go:23:					SafeInternalError			0.0%
nofx/api/errors.go:30:					SafeBadRequest				0.0%
nofx/api/errors.go:35:					SafeNotFound				0.0%
nofx/api/errors.go:40:					SafeUnauthorized			0.0%
nofx/api/errors.go:45:					SafeForbidden				0.0%
nofx/api/errors.go:50:					IsSensitiveError			0.0%
nofx/api/errors.go:87:					SanitizeError				0.0%
nofx/api/handler_ai_cost.go:10:				handleGetAICosts			0.0%
nofx/api/handler_ai_cost.go:33:				handleGetAICostsSummary			0.0%
nofx/api/handler_ai_model.go:49:			handleGetModelConfigs			0.0%
nofx/api/handler_ai_model.go:108:			handleUpdateModelConfigs		0.0%
nofx/api/handler_ai_model.go:210:			handleGetSupportedModels		0.0%
nofx/api/handler_competition.go:17:			handleDecisions				0.0%
nofx/api/handler_competition.go:41:			handleLatestDecisions			0.0%
nofx/api/handler_competition.go:81:			handleStatistics			0.0%
nofx/api/handler_competition.go:104:			handleCompetition			0.0%
nofx/api/handler_competition.go:124:			handleEquityHistory			0.0%
nofx/api/handler_competition.go:184:			handlePublicTraderList			0.0%
nofx/api/handler_competition.go:228:			handlePublicCompetition			0.0%
nofx/api/handler_competition.go:239:			handleTopTraders			0.0%
nofx/api/handler_competition.go:251:			handleEquityHistoryBatch		0.0%
nofx/api/handler_competition.go:321:			getEquityHistoryForTraders		0.0%
nofx/api/handler_competition.go:441:			handleGetPublicTraderConfig		0.0%
nofx/api/handler_exchange.go:80:			handleGetExchangeConfigs		0.0%
nofx/api/handler_exchange.go:120:			handleUpdateExchangeConfigs		0.0%
nofx/api/handler_exchange.go:213:			handleCreateExchange			0.0%
nofx/api/handler_exchange.go:295:			handleDeleteExchange			0.0%
nofx/api/handler_exchange.go:335:			handleGetSupportedExchanges		0.0%
nofx/api/handler_klines.go:23:				handleKlines				0.0%
nofx/api/handler_klines.go:84:				getKlinesFromCoinank			0.0%
nofx/api/handler_klines.go:209:				getKlinesFromAlpaca			0.0%
nofx/api/handler_klines.go:242:				getKlinesFromTwelveData			0.0%
nofx/api/handler_klines.go:284:				getKlinesFromHyperliquid		0.0%
nofx/api/handler_klines.go:324:				handleSymbols				0.0%
nofx/api/handler_onboarding.go:42:			handleBeginnerOnboarding		0.0%
nofx/api/handler_onboarding.go:95:			handleCurrentBeginnerWallet		0.0%
nofx/api/handler_onboarding.go:154:			resolveBeginnerWallet			0.0%
nofx/api/handler_onboarding.go:188:			findConfiguredClaw402ModelID		0.0%
nofx/api/handler_onboarding.go:203:			walletAddressFromPrivateKey		0.0%
nofx/api/handler_onboarding.go:220:			persistBeginnerWalletEnv		0.0%
nofx/api/handler_onboarding.go:251:			uniqueEnvPaths				0.0%
nofx/api/handler_onboarding.go:265:			upsertEnvFile				0.0%
nofx/api/handler_order.go:14:				handleTraderList			0.0%
nofx/api/handler_order.go:60:				handleGetTraderConfig			0.0%
nofx/api/handler_order.go:111:				handleStatus				0.0%
nofx/api/handler_order.go:129:				handleAccount				0.0%
nofx/api/handler_order.go:159:				handlePositions				0.0%
nofx/api/handler_order.go:182:				handlePositionHistory			0.0%
nofx/api/handler_order.go:234:				handleTrades				0.0%
nofx/api/handler_order.go:289:				handleOrders				0.0%
nofx/api/handler_order.go:334:				handleOrderFills			0.0%
nofx/api/handler_order.go:371:				handleOpenOrders			0.0%
nofx/api/handler_telegram.go:10:			handleGetTelegramConfig			0.0%
nofx/api/handler_telegram.go:44:			handleUpdateTelegramConfig		0.0%
nofx/api/handler_telegram.go:75:			handleUnbindTelegram			0.0%
nofx/api/handler_telegram.go:84:			handleUpdateTelegramModel		0.0%
nofx/api/handler_trader.go:66:				handleCreateTrader			0.0%
nofx/api/handler_trader.go:303:				handleUpdateTrader			0.0%
nofx/api/handler_trader.go:448:				handleDeleteTrader			0.0%
nofx/api/handler_trader.go:476:				handleStartTrader			0.0%
nofx/api/handler_trader.go:565:				handleStopTrader			0.0%
nofx/api/handler_trader_config.go:12:			handleUpdateTraderPrompt		0.0%
nofx/api/handler_trader_config.go:45:			handleToggleCompetition			0.0%
nofx/api/handler_trader_status.go:26:			handleGetGridRiskInfo			0.0%
nofx/api/handler_trader_status.go:40:			handleSyncBalance			0.0%
nofx/api/handler_trader_status.go:195:			handleClosePosition			0.0%
nofx/api/handler_trader_status.go:354:			recordClosePositionOrder		0.0%
nofx/api/handler_trader_status.go:461:			pollAndUpdateOrderStatus		0.0%
nofx/api/handler_trader_status.go:549:			pollLighterTradeHistory			0.0%
nofx/api/handler_trader_status.go:556:			getSideFromAction			0.0%
nofx/api/handler_user.go:19:				handleLogout				0.0%
nofx/api/handler_user.go:49:				handleRegister				0.0%
nofx/api/handler_user.go:127:				handleLogin				0.0%
nofx/api/handler_user.go:167:				handleChangePassword			0.0%
nofx/api/handler_user.go:189:				handleResetPassword			0.0%
nofx/api/handler_user.go:226:				initUserDefaultConfigs			0.0%
nofx/api/handler_user.go:235:				createDefaultStrategies			0.0%
nofx/api/handler_wallet.go:29:				handleWalletValidate			0.0%
nofx/api/handler_wallet.go:101:				handleWalletGenerate			0.0%
nofx/api/handler_wallet.go:118:				checkClaw402Health			0.0%
nofx/api/route_registry.go:22:				route					0.0%
nofx/api/route_registry.go:28:				routeWithSchema				0.0%
nofx/api/route_registry.go:50:				GetAPIDocs				0.0%
nofx/api/server.go:31:					NewServer				0.0%
nofx/api/server.go:58:					corsMiddleware				0.0%
nofx/api/server.go:74:					setupRoutes				0.0%
nofx/api/server.go:358:					handleHealth				0.0%
nofx/api/server.go:366:					handleGetSystemConfig			0.0%
nofx/api/server.go:376:					handleGetServerIP			0.0%
nofx/api/server.go:398:					getPublicIPFromAPI			0.0%
nofx/api/server.go:438:					getPublicIPFromInterface		0.0%
nofx/api/server.go:483:					isPrivateIP				0.0%
nofx/api/server.go:505:					getTraderFromQuery			0.0%
nofx/api/server.go:535:					authMiddleware				0.0%
nofx/api/server.go:578:					Start					0.0%
nofx/api/server.go:614:					Shutdown				0.0%
nofx/api/server.go:624:					SetTelegramReloadCh			0.0%
nofx/api/strategy.go:21:				validateStrategyConfig			0.0%
nofx/api/strategy.go:35:				handleEstimateTokens			0.0%
nofx/api/strategy.go:49:				handlePublicStrategies			0.0%
nofx/api/strategy.go:86:				handleGetStrategies			0.0%
nofx/api/strategy.go:125:				handleGetStrategy			0.0%
nofx/api/strategy.go:157:				handleCreateStrategy			0.0%
nofx/api/strategy.go:226:				handleUpdateStrategy			0.0%
nofx/api/strategy.go:337:				handleDeleteStrategy			0.0%
nofx/api/strategy.go:355:				handleActivateStrategy			0.0%
nofx/api/strategy.go:373:				handleDuplicateStrategy			0.0%
nofx/api/strategy.go:404:				handleGetActiveStrategy			0.0%
nofx/api/strategy.go:434:				handleGetDefaultStrategyConfig		0.0%
nofx/api/strategy.go:447:				handlePreviewPrompt			0.0%
nofx/api/strategy.go:496:				handleStrategyTestRun			0.0%
nofx/api/strategy.go:660:				runRealAITest				0.0%
nofx/api/utils.go:7:					MaskSensitiveString			100.0%
nofx/api/utils.go:19:					SanitizeModelConfigForLog		100.0%
nofx/api/utils.go:38:					SanitizeExchangeConfigForLog		76.2%
nofx/api/utils.go:91:					MaskEmail				100.0%
nofx/auth/auth.go:26:					SetJWTSecret				0.0%
nofx/auth/auth.go:31:					BlacklistToken				0.0%
nofx/auth/auth.go:52:					IsTokenBlacklisted			0.0%
nofx/auth/auth.go:73:					HashPassword				0.0%
nofx/auth/auth.go:79:					CheckPassword				0.0%
nofx/auth/auth.go:85:					GenerateJWT				0.0%
nofx/auth/auth.go:102:					ValidateJWT				0.0%
nofx/config/config.go:49:				Init					0.0%
nofx/config/config.go:140:				Get					0.0%
nofx/crypto/crypto.go:56:				NewCryptoService			0.0%
nofx/crypto/crypto.go:77:				loadRSAPrivateKeyFromEnv		0.0%
nofx/crypto/crypto.go:90:				loadDataKeyFromEnv			0.0%
nofx/crypto/crypto.go:109:				ParseRSAPrivateKeyFromPEM		0.0%
nofx/crypto/crypto.go:134:				decodePossibleKey			0.0%
nofx/crypto/crypto.go:153:				normalizeAESKey				0.0%
nofx/crypto/crypto.go:167:				HasDataKey				0.0%
nofx/crypto/crypto.go:171:				GetPublicKeyPEM				0.0%
nofx/crypto/crypto.go:185:				EncryptForStorage			0.0%
nofx/crypto/crypto.go:219:				DecryptFromStorage			0.0%
nofx/crypto/crypto.go:269:				IsEncryptedStorageValue			0.0%
nofx/crypto/crypto.go:273:				composeAAD				0.0%
nofx/crypto/crypto.go:280:				isEncryptedStorageValue			0.0%
nofx/crypto/crypto.go:284:				DecryptPayload				0.0%
nofx/crypto/crypto.go:351:				DecryptSensitiveData			0.0%
nofx/crypto/crypto.go:361:				GenerateKeyPair				0.0%
nofx/crypto/crypto.go:389:				GenerateDataKey				0.0%
nofx/crypto/crypto.go:405:				SetGlobalCryptoService			0.0%
nofx/crypto/crypto.go:415:				Scan					0.0%
nofx/crypto/crypto.go:449:				Value					0.0%
nofx/crypto/crypto.go:467:				String					0.0%
nofx/hook/hooks.go:14:					HookExec				0.0%
nofx/hook/hooks.go:30:					RegisterHook				0.0%
nofx/hook/http_client_hook.go:13:			Error					0.0%
nofx/hook/http_client_hook.go:20:			GetResult				0.0%
nofx/hook/ip_hook.go:10:				Error					0.0%
nofx/hook/ip_hook.go:14:				GetResult				0.0%
nofx/hook/trader_hook.go:15:				Error					0.0%
nofx/hook/trader_hook.go:22:				GetResult				0.0%
nofx/hook/trader_hook.go:32:				Error					0.0%
nofx/hook/trader_hook.go:39:				GetResult				0.0%
nofx/kernel/engine.go:191:				NewStrategyEngine			0.0%
nofx/kernel/engine.go:228:				GetRiskControlConfig			0.0%
nofx/kernel/engine.go:233:				GetLanguage				0.0%
nofx/kernel/engine.go:246:				GetConfig				0.0%
nofx/kernel/engine.go:255:				GetCandidateCoins			0.0%
nofx/kernel/engine.go:450:				filterExcludedCoins			0.0%
nofx/kernel/engine.go:475:				getAI500Coins				0.0%
nofx/kernel/engine.go:495:				getOITopCoins				0.0%
nofx/kernel/engine.go:519:				getOILowCoins				0.0%
nofx/kernel/engine.go:544:				getHyperAllCoins			0.0%
nofx/kernel/engine.go:565:				getHyperMainCoins			0.0%
nofx/kernel/engine.go:594:				FetchMarketData				0.0%
nofx/kernel/engine.go:599:				FetchExternalData			0.0%
nofx/kernel/engine.go:614:				fetchSingleExternalSource		0.0%
nofx/kernel/engine.go:660:				extractJSONPath				0.0%
nofx/kernel/engine.go:676:				FetchQuantData				0.0%
nofx/kernel/engine.go:749:				FetchQuantDataBatch			0.0%
nofx/kernel/engine.go:771:				FetchOIRankingData			0.0%
nofx/kernel/engine.go:802:				FetchNetFlowRankingData			0.0%
nofx/kernel/engine.go:834:				FetchPriceRankingData			0.0%
nofx/kernel/engine.go:869:				detectLanguage				0.0%
nofx/kernel/engine_analysis.go:38:			GetFullDecision				0.0%
nofx/kernel/engine_analysis.go:45:			GetFullDecisionWithStrategy		0.0%
nofx/kernel/engine_analysis.go:149:			fetchMarketDataWithStrategy		0.0%
nofx/kernel/engine_analysis.go:230:			parseFullDecisionResponse		0.0%
nofx/kernel/engine_analysis.go:254:			extractCoTTrace				0.0%
nofx/kernel/engine_analysis.go:274:			extractDecisions			0.0%
nofx/kernel/engine_analysis.go:337:			fixMissingQuotes			0.0%
nofx/kernel/engine_analysis.go:361:			validateJSONFormat			0.0%
nofx/kernel/engine_analysis.go:388:			min					0.0%
nofx/kernel/engine_analysis.go:395:			removeInvisibleRunes			0.0%
nofx/kernel/engine_analysis.go:399:			compactArrayOpen			0.0%
nofx/kernel/engine_position.go:12:			validateDecisions			0.0%
nofx/kernel/engine_position.go:21:			validateDecision			79.6%
nofx/kernel/engine_prompt.go:17:			BuildSystemPrompt			0.0%
nofx/kernel/engine_prompt.go:155:			writeAvailableIndicators		0.0%
nofx/kernel/engine_prompt.go:228:			BuildUserPrompt				0.0%
nofx/kernel/engine_prompt.go:402:			formatPositionInfo			0.0%
nofx/kernel/engine_prompt.go:442:			formatCoinSourceTag			0.0%
nofx/kernel/engine_prompt.go:503:			formatMarketData			0.0%
nofx/kernel/engine_prompt.go:613:			formatTimeframeSeriesData		0.0%
nofx/kernel/engine_prompt.go:669:			formatQuantData				0.0%
nofx/kernel/engine_prompt.go:754:			formatFlowValue				0.0%
nofx/kernel/engine_prompt.go:773:			formatFloatSlice			0.0%
nofx/kernel/formatter.go:20:				FormatContextForAI			100.0%
nofx/kernel/formatter.go:34:				FormatContextDataOnly			0.0%
nofx/kernel/formatter.go:39:				formatContextData			75.9%
nofx/kernel/formatter.go:107:				formatHeaderZH				100.0%
nofx/kernel/formatter.go:113:				formatAccountZH				84.6%
nofx/kernel/formatter.go:135:				formatTradingStatsZH			0.0%
nofx/kernel/formatter.go:196:				formatRecentTradesZH			88.9%
nofx/kernel/formatter.go:227:				formatCurrentPositionsZH		82.6%
nofx/kernel/formatter.go:270:				formatCandidateCoinsZH			33.3%
nofx/kernel/formatter.go:319:				formatKlineDataZH			0.0%
nofx/kernel/formatter.go:361:				getOIInterpretationZH			0.0%
nofx/kernel/formatter.go:376:				formatHeaderEN				100.0%
nofx/kernel/formatter.go:382:				formatAccountEN				84.6%
nofx/kernel/formatter.go:404:				formatTradingStatsEN			0.0%
nofx/kernel/formatter.go:465:				formatRecentTradesEN			88.9%
nofx/kernel/formatter.go:495:				formatCurrentPositionsEN		82.6%
nofx/kernel/formatter.go:536:				formatCandidateCoinsEN			33.3%
nofx/kernel/formatter.go:581:				formatKlineDataEN			0.0%
nofx/kernel/formatter.go:626:				getOIInterpretationEN			0.0%
nofx/kernel/grid_engine.go:97:				BuildGridSystemPrompt			0.0%
nofx/kernel/grid_engine.go:104:				buildGridSystemPromptZh			0.0%
nofx/kernel/grid_engine.go:156:				buildGridSystemPromptEn			0.0%
nofx/kernel/grid_engine.go:209:				BuildGridUserPrompt			0.0%
nofx/kernel/grid_engine.go:216:				buildGridUserPromptZh			0.0%
nofx/kernel/grid_engine.go:327:				buildGridUserPromptEn			0.0%
nofx/kernel/grid_engine.go:443:				GetGridDecisions			0.0%
nofx/kernel/grid_engine.go:489:				parseGridDecisions			0.0%
nofx/kernel/grid_engine.go:516:				extractJSONArray			0.0%
nofx/kernel/grid_engine.go:533:				isValidGridAction			0.0%
nofx/kernel/grid_engine.go:557:				BuildGridContextFromMarketData		0.0%
nofx/kernel/grid_engine.go:613:				max					0.0%
nofx/kernel/prompt_builder.go:20:			NewPromptBuilder			100.0%
nofx/kernel/prompt_builder.go:25:			BuildSystemPrompt			100.0%
nofx/kernel/prompt_builder.go:33:			BuildUserPrompt				100.0%
nofx/kernel/prompt_builder.go:46:			buildSystemPromptZH			100.0%
nofx/kernel/prompt_builder.go:125:			getDecisionRequirementsZH		100.0%
nofx/kernel/prompt_builder.go:181:			buildSystemPromptEN			100.0%
nofx/kernel/prompt_builder.go:260:			getDecisionRequirementsEN		100.0%
nofx/kernel/prompt_builder.go:317:			FormatDecisionExample			100.0%
nofx/kernel/prompt_builder.go:334:			ValidateDecisionFormat			100.0%
nofx/kernel/schema.go:36:				GetName					0.0%
nofx/kernel/schema.go:44:				GetFormula				0.0%
nofx/kernel/schema.go:52:				GetDesc					0.0%
nofx/kernel/schema.go:232:				GetDesc					0.0%
nofx/kernel/schema.go:240:				GetReason				0.0%
nofx/kernel/schema.go:446:				GetSchemaPrompt				100.0%
nofx/kernel/schema.go:454:				getSchemaPromptZH			100.0%
nofx/kernel/schema.go:493:				getSchemaPromptEN			100.0%
nofx/kernel/schema.go:532:				formatFieldDefZH			100.0%
nofx/kernel/schema.go:545:				formatFieldDefEN			100.0%
nofx/logger/config.go:9:				SetDefaults				0.0%
nofx/logger/logger.go:27:				Format					0.0%
nofx/logger/logger.go:52:				init					0.0%
nofx/logger/logger.go:66:				Init					0.0%
nofx/logger/logger.go:110:				InitWithSimpleConfig			0.0%
nofx/logger/logger.go:115:				Shutdown				0.0%
nofx/logger/logger.go:127:				WithFields				0.0%
nofx/logger/logger.go:132:				WithField				0.0%
nofx/logger/logger.go:137:				Debug					0.0%
nofx/logger/logger.go:141:				Info					0.0%
nofx/logger/logger.go:145:				Warn					0.0%
nofx/logger/logger.go:149:				Debugf					0.0%
nofx/logger/logger.go:153:				Infof					0.0%
nofx/logger/logger.go:157:				Warnf					0.0%
nofx/logger/logger.go:161:				Error					0.0%
nofx/logger/logger.go:165:				Errorf					0.0%
nofx/logger/logger.go:169:				Fatal					0.0%
nofx/logger/logger.go:173:				Fatalf					0.0%
nofx/logger/logger.go:177:				Panic					0.0%
nofx/logger/logger.go:181:				Panicf					0.0%
nofx/logger/logger.go:194:				NewMCPLogger				0.0%
nofx/logger/logger.go:198:				Debugf					0.0%
nofx/logger/logger.go:202:				Infof					0.0%
nofx/logger/logger.go:206:				Warnf					0.0%
nofx/logger/logger.go:210:				Errorf					0.0%
nofx/main.go:24:					main					0.0%
nofx/main.go:164:					initInstallationID			0.0%
nofx/manager/trader_manager.go:30:			NewTraderManager			0.0%
nofx/manager/trader_manager.go:41:			GetLoadError				0.0%
nofx/manager/trader_manager.go:48:			GetTrader				0.0%
nofx/manager/trader_manager.go:60:			GetAllTraders				0.0%
nofx/manager/trader_manager.go:72:			GetTraderIDs				0.0%
nofx/manager/trader_manager.go:84:			StartAll				0.0%
nofx/manager/trader_manager.go:100:			StopAll					0.0%
nofx/manager/trader_manager.go:111:			AutoStartRunningTraders			0.0%
nofx/manager/trader_manager.go:154:			GetComparisonData			0.0%
nofx/manager/trader_manager.go:191:			GetCompetitionData			0.0%
nofx/manager/trader_manager.go:260:			getConcurrentTraderData			0.0%
nofx/manager/trader_manager.go:359:			GetTopTradersData			0.0%
nofx/manager/trader_manager.go:390:			RemoveTrader				0.0%
nofx/manager/trader_manager.go:407:			LoadUserTradersFromStore		0.0%
nofx/manager/trader_manager.go:503:			LoadTradersFromStore			0.0%
nofx/manager/trader_manager.go:605:			addTraderFromStore			0.0%
nofx/market/api_client.go:22:				NewAPIClient				0.0%
nofx/market/api_client.go:38:				GetExchangeInfo				0.0%
nofx/market/api_client.go:59:				GetKlines				0.0%
nofx/market/api_client.go:103:				parseKline				0.0%
nofx/market/api_client.go:126:				GetCurrentPrice				0.0%
nofx/market/data.go:28:					Get					0.0%
nofx/market/data.go:33:					GetWithExchange				0.0%
nofx/market/data.go:147:				GetWithTimeframes			0.0%
nofx/market/data.go:259:				getOpenInterestData			0.0%
nofx/market/data.go:293:				getFundingRate				0.0%
nofx/market/data.go:345:				Format					0.0%
nofx/market/data.go:433:				formatTimeframeData			0.0%
nofx/market/data.go:486:				formatPriceWithDynamicPrecision		0.0%
nofx/market/data.go:516:				formatFloatSlice			0.0%
nofx/market/data.go:541:				IsXyzDexAsset				0.0%
nofx/market/data.go:557:				Normalize				0.0%
nofx/market/data.go:590:				parseFloat				0.0%
nofx/market/data.go:606:				BuildDataFromKlines			0.0%
nofx/market/data.go:636:				priceChangeFromSeries			0.0%
nofx/market/data.go:656:				isStaleData				100.0%
nofx/market/data_indicators.go:6:			calculateEMA				90.0%
nofx/market/data_indicators.go:28:			calculateMACD				80.0%
nofx/market/data_indicators.go:42:			calculateRSI				95.7%
nofx/market/data_indicators.go:86:			calculateATR				100.0%
nofx/market/data_indicators.go:121:			calculateBOLL				0.0%
nofx/market/data_indicators.go:150:			calculateDonchian			100.0%
nofx/market/data_indicators.go:184:			calculateBoxData			85.7%
nofx/market/data_indicators.go:203:			ExportCalculateEMA			0.0%
nofx/market/data_indicators.go:208:			ExportCalculateMACD			0.0%
nofx/market/data_indicators.go:213:			ExportCalculateRSI			0.0%
nofx/market/data_indicators.go:218:			ExportCalculateATR			0.0%
nofx/market/data_indicators.go:223:			ExportCalculateBOLL			0.0%
nofx/market/data_indicators.go:228:			ExportCalculateDonchian			100.0%
nofx/market/data_indicators.go:233:			ExportCalculateBoxData			100.0%
nofx/market/data_klines.go:18:				getKlinesFromCoinAnk			0.0%
nofx/market/data_klines.go:116:				getKlinesFromHyperliquid		0.0%
nofx/market/data_klines.go:157:				calculateTimeframeSeries		0.0%
nofx/market/data_klines.go:242:				calculatePriceChangeByBars		0.0%
nofx/market/data_klines.go:273:				parseTimeframeToMinutes			0.0%
nofx/market/data_klines.go:309:				calculateIntradaySeries			100.0%
nofx/market/data_klines.go:359:				calculateLongerTermData			0.0%
nofx/market/data_klines.go:405:				GetBoxData				0.0%
nofx/market/historical.go:17:				GetKlinesRange				0.0%
nofx/market/timeframe.go:26:				NormalizeTimeframe			0.0%
nofx/market/timeframe.go:38:				TFDuration				0.0%
nofx/market/timeframe.go:47:				MustNormalizeTimeframe			0.0%
nofx/market/timeframe.go:56:				SupportedTimeframes			0.0%
nofx/market/types.go:243:				GetBuySellRatio				0.0%
nofx/mcp/client.go:56:					Channel					0.0%
nofx/mcp/client.go:87:					New					0.0%
nofx/mcp/client.go:110:					NewClient				100.0%
nofx/mcp/client.go:146:					SetAPIKey				0.0%
nofx/mcp/client.go:162:					SetTimeout				100.0%
nofx/mcp/client.go:167:					CallWithMessages			100.0%
nofx/mcp/client.go:207:					SetAuthHeader				100.0%
nofx/mcp/client.go:211:					BuildMCPRequestBody			64.3%
nofx/mcp/client.go:254:					MarshalRequestBody			75.0%
nofx/mcp/client.go:262:					ParseMCPResponse			100.0%
nofx/mcp/client.go:272:					ParseMCPResponseFull			77.8%
nofx/mcp/client.go:313:					BuildUrl				100.0%
nofx/mcp/client.go:320:					BuildRequest				83.3%
nofx/mcp/client.go:336:					Call					88.5%
nofx/mcp/client.go:390:					String					100.0%
nofx/mcp/client.go:396:					BaseClient				0.0%
nofx/mcp/client.go:399:					IsRetryableError			100.0%
nofx/mcp/client.go:415:					CallWithRequest				54.5%
nofx/mcp/client.go:461:					CallWithRequestFull			0.0%
nofx/mcp/client.go:492:					callWithRequestFull			0.0%
nofx/mcp/client.go:525:					callWithRequest				75.0%
nofx/mcp/client.go:569:					BuildRequestBodyFromRequest		65.1%
nofx/mcp/client.go:666:					CallWithRequestStream			0.0%
nofx/mcp/client.go:741:					ParseSSEStream				0.0%
nofx/mcp/config.go:41:					DefaultConfig				100.0%
nofx/mcp/config.go:58:					getEnvInt				50.0%
nofx/mcp/config.go:68:					getEnvString				0.0%
nofx/mcp/context_guard.go:11:				estimateMessageTokens			100.0%
nofx/mcp/context_guard.go:23:				estimateMessageTokensAny		0.0%
nofx/mcp/context_guard.go:42:				truncateMessages			90.3%
nofx/mcp/context_guard.go:97:				truncateMessagesAny			0.0%
nofx/mcp/logger.go:16:					Debugf					0.0%
nofx/mcp/logger.go:17:					Infof					0.0%
nofx/mcp/logger.go:18:					Warnf					0.0%
nofx/mcp/logger.go:19:					Errorf					0.0%
nofx/mcp/logger.go:22:					NewNoopLogger				0.0%
nofx/mcp/options.go:19:					WithLogger				100.0%
nofx/mcp/options.go:34:					WithHTTPClient				100.0%
nofx/mcp/options.go:48:					WithTimeout				100.0%
nofx/mcp/options.go:59:					WithMaxRetries				100.0%
nofx/mcp/options.go:69:					WithRetryWaitBase			100.0%
nofx/mcp/options.go:83:					WithMaxTokens				100.0%
nofx/mcp/options.go:96:					WithMaxContext				0.0%
nofx/mcp/options.go:106:				WithTemperature				100.0%
nofx/mcp/options.go:117:				WithAPIKey				100.0%
nofx/mcp/options.go:124:				WithBaseURL				100.0%
nofx/mcp/options.go:131:				WithModel				100.0%
nofx/mcp/options.go:138:				WithProvider				100.0%
nofx/mcp/options.go:145:				WithUseFullURL				100.0%
nofx/mcp/options.go:159:				WithDeepSeekConfig			100.0%
nofx/mcp/options.go:172:				WithQwenConfig				100.0%
nofx/mcp/options.go:186:				WithMiniMaxConfig			0.0%
nofx/mcp/payment/claw402.go:44:				init					0.0%
nofx/mcp/payment/claw402.go:59:				BaseClient				0.0%
nofx/mcp/payment/claw402.go:62:				NewClaw402Client			0.0%
nofx/mcp/payment/claw402.go:67:				NewClaw402ClientWithOptions		0.0%
nofx/mcp/payment/claw402.go:86:				SetAPIKey				0.0%
nofx/mcp/payment/claw402.go:114:			resolveEndpoint				0.0%
nofx/mcp/payment/claw402.go:125:			SetAuthHeader				0.0%
nofx/mcp/payment/claw402.go:127:			Call					0.0%
nofx/mcp/payment/claw402.go:131:			CallWithRequestFull			0.0%
nofx/mcp/payment/claw402.go:136:			signPayment				0.0%
nofx/mcp/payment/claw402.go:142:			BuildMCPRequestBody			0.0%
nofx/mcp/payment/claw402.go:149:			BuildRequestBodyFromRequest		0.0%
nofx/mcp/payment/claw402.go:156:			ParseMCPResponse			0.0%
nofx/mcp/payment/claw402.go:163:			ParseMCPResponseFull			0.0%
nofx/mcp/payment/claw402.go:171:			BuildUrl				0.0%
nofx/mcp/payment/claw402.go:175:			BuildRequest				0.0%
nofx/mcp/payment/x402.go:73:				X402DecodeHeader			0.0%
nofx/mcp/payment/x402.go:85:				MakeClaw402SignFunc			0.0%
nofx/mcp/payment/x402.go:93:				SignBasePaymentHeader			0.0%
nofx/mcp/payment/x402.go:116:				DoX402Request				0.0%
nofx/mcp/payment/x402.go:251:				DoX402RequestStream			0.0%
nofx/mcp/payment/x402.go:392:				X402CallStream				0.0%
nofx/mcp/payment/x402.go:479:				X402BuildRequest			0.0%
nofx/mcp/payment/x402.go:490:				X402SetAuthHeader			0.0%
nofx/mcp/payment/x402.go:493:				X402Call				0.0%
nofx/mcp/payment/x402.go:512:				X402CallFull				0.0%
nofx/mcp/payment/x402.go:551:				keccak256String				0.0%
nofx/mcp/payment/x402.go:557:				keccak256Bytes				0.0%
nofx/mcp/payment/x402.go:566:				SignX402Payment				0.0%
nofx/mcp/payment/x402.go:677:				buildDomainSeparatorDynamic		0.0%
nofx/mcp/payment/x402.go:709:				buildTransferWithAuthHashDynamic	0.0%
nofx/mcp/payment/x402.go:738:				hexToAddress				0.0%
nofx/mcp/payment/x402.go:750:				hexToBytes32				0.0%
nofx/mcp/payment/x402.go:762:				parseBigInt				0.0%
nofx/mcp/payment/x402.go:777:				leftPad32				0.0%
nofx/mcp/provider/claude.go:32:				init					50.0%
nofx/mcp/provider/claude.go:45:				BaseClient				0.0%
nofx/mcp/provider/claude.go:48:				NewClaudeClient				0.0%
nofx/mcp/provider/claude.go:53:				NewClaudeClientWithOptions		0.0%
nofx/mcp/provider/claude.go:68:				SetAPIKey				0.0%
nofx/mcp/provider/claude.go:84:				SetAuthHeader				0.0%
nofx/mcp/provider/claude.go:90:				BuildUrl				0.0%
nofx/mcp/provider/claude.go:96:				BuildMCPRequestBody			0.0%
nofx/mcp/provider/claude.go:109:			BuildRequestBodyFromRequest		0.0%
nofx/mcp/provider/claude.go:165:			ConvertMessagesToAnthropic		0.0%
nofx/mcp/provider/claude.go:227:			ParseMCPResponse			0.0%
nofx/mcp/provider/claude.go:237:			ParseMCPResponseFull			0.0%
nofx/mcp/provider/deepseek.go:9:			init					50.0%
nofx/mcp/provider/deepseek.go:19:			BaseClient				0.0%
nofx/mcp/provider/deepseek.go:24:			NewDeepSeekClient			0.0%
nofx/mcp/provider/deepseek.go:29:			NewDeepSeekClientWithOptions		100.0%
nofx/mcp/provider/deepseek.go:47:			SetAPIKey				0.0%
nofx/mcp/provider/deepseek.go:67:			SetAuthHeader				0.0%
nofx/mcp/provider/gemini.go:14:				init					50.0%
nofx/mcp/provider/gemini.go:24:				BaseClient				0.0%
nofx/mcp/provider/gemini.go:27:				NewGeminiClient				0.0%
nofx/mcp/provider/gemini.go:32:				NewGeminiClientWithOptions		0.0%
nofx/mcp/provider/gemini.go:50:				SetAPIKey				0.0%
nofx/mcp/provider/gemini.go:71:				SetAuthHeader				0.0%
nofx/mcp/provider/grok.go:14:				init					50.0%
nofx/mcp/provider/grok.go:24:				BaseClient				0.0%
nofx/mcp/provider/grok.go:27:				NewGrokClient				0.0%
nofx/mcp/provider/grok.go:32:				NewGrokClientWithOptions		0.0%
nofx/mcp/provider/grok.go:50:				SetAPIKey				0.0%
nofx/mcp/provider/grok.go:71:				SetAuthHeader				0.0%
nofx/mcp/provider/kimi.go:14:				init					50.0%
nofx/mcp/provider/kimi.go:24:				BaseClient				0.0%
nofx/mcp/provider/kimi.go:27:				NewKimiClient				0.0%
nofx/mcp/provider/kimi.go:32:				NewKimiClientWithOptions		0.0%
nofx/mcp/provider/kimi.go:51:				SetAPIKey				0.0%
nofx/mcp/provider/kimi.go:72:				SetAuthHeader				0.0%
nofx/mcp/provider/minimax.go:14:			init					50.0%
nofx/mcp/provider/minimax.go:24:			BaseClient				0.0%
nofx/mcp/provider/minimax.go:27:			NewMiniMaxClient			0.0%
nofx/mcp/provider/minimax.go:32:			NewMiniMaxClientWithOptions		0.0%
nofx/mcp/provider/minimax.go:50:			SetAPIKey				0.0%
nofx/mcp/provider/minimax.go:71:			SetAuthHeader				0.0%
nofx/mcp/provider/openai.go:14:				init					50.0%
nofx/mcp/provider/openai.go:24:				BaseClient				0.0%
nofx/mcp/provider/openai.go:27:				NewOpenAIClient				0.0%
nofx/mcp/provider/openai.go:32:				NewOpenAIClientWithOptions		0.0%
nofx/mcp/provider/openai.go:50:				SetAPIKey				0.0%
nofx/mcp/provider/openai.go:71:				SetAuthHeader				0.0%
nofx/mcp/provider/qwen.go:14:				init					50.0%
nofx/mcp/provider/qwen.go:24:				BaseClient				0.0%
nofx/mcp/provider/qwen.go:29:				NewQwenClient				0.0%
nofx/mcp/provider/qwen.go:34:				NewQwenClientWithOptions		100.0%
nofx/mcp/provider/qwen.go:52:				SetAPIKey				0.0%
nofx/mcp/provider/qwen.go:72:				SetAuthHeader				0.0%
nofx/mcp/registry.go:8:					RegisterProvider			100.0%
nofx/mcp/registry.go:14:				NewAIClientByProvider			0.0%
nofx/mcp/request.go:68:					NewMessage				0.0%
nofx/mcp/request.go:76:					NewSystemMessage			100.0%
nofx/mcp/request.go:84:					NewUserMessage				100.0%
nofx/mcp/request.go:92:					NewAssistantMessage			100.0%
nofx/mcp/request_builder.go:30:				NewRequestBuilder			100.0%
nofx/mcp/request_builder.go:42:				WithModel				0.0%
nofx/mcp/request_builder.go:48:				WithStream				0.0%
nofx/mcp/request_builder.go:58:				WithSystemPrompt			100.0%
nofx/mcp/request_builder.go:66:				WithUserPrompt				100.0%
nofx/mcp/request_builder.go:74:				AddSystemMessage			100.0%
nofx/mcp/request_builder.go:79:				AddUserMessage				100.0%
nofx/mcp/request_builder.go:84:				AddAssistantMessage			100.0%
nofx/mcp/request_builder.go:92:				AddMessage				0.0%
nofx/mcp/request_builder.go:100:			AddMessages				0.0%
nofx/mcp/request_builder.go:106:			AddConversationHistory			100.0%
nofx/mcp/request_builder.go:112:			ClearMessages				0.0%
nofx/mcp/request_builder.go:123:			WithTemperature				42.9%
nofx/mcp/request_builder.go:138:			WithMaxTokens				100.0%
nofx/mcp/request_builder.go:147:			WithTopP				100.0%
nofx/mcp/request_builder.go:156:			WithFrequencyPenalty			100.0%
nofx/mcp/request_builder.go:165:			WithPresencePenalty			100.0%
nofx/mcp/request_builder.go:174:			WithStopSequences			100.0%
nofx/mcp/request_builder.go:180:			AddStopSequence				0.0%
nofx/mcp/request_builder.go:192:			AddTool					100.0%
nofx/mcp/request_builder.go:198:			AddFunction				100.0%
nofx/mcp/request_builder.go:215:			WithToolChoice				100.0%
nofx/mcp/request_builder.go:225:			Build					100.0%
nofx/mcp/request_builder.go:263:			MustBuild				75.0%
nofx/mcp/request_builder.go:276:			ForChat					100.0%
nofx/mcp/request_builder.go:288:			ForCodeGeneration			100.0%
nofx/mcp/request_builder.go:302:			ForCreativeWriting			100.0%
nofx/provider/alpaca/kline.go:45:			NewClient				0.0%
nofx/provider/alpaca/kline.go:57:			NewClientWithKeys			0.0%
nofx/provider/alpaca/kline.go:69:			GetBars					0.0%
nofx/provider/alpaca/kline.go:134:			MapTimeframe				0.0%
nofx/provider/coinank/base_coin.go:10:			ListCoin				0.0%
nofx/provider/coinank/base_coin.go:33:			ListSymbols				0.0%
nofx/provider/coinank/coinank_api/base_coin.go:11:	BaseCoinSymbols				76.5%
nofx/provider/coinank/coinank_api/depth_ws.go:19:	DepthWsConn				80.0%
nofx/provider/coinank/coinank_api/depth_ws.go:32:	Subscribe				77.8%
nofx/provider/coinank/coinank_api/depth_ws.go:50:	UnSubscribe				77.8%
nofx/provider/coinank/coinank_api/depth_ws.go:68:	Close					100.0%
nofx/provider/coinank/coinank_api/depth_ws.go:72:	depth_ws				77.8%
nofx/provider/coinank/coinank_api/depth_ws.go:86:	depth_read				100.0%
nofx/provider/coinank/coinank_api/kline.go:19:		Kline					89.3%
nofx/provider/coinank/coinank_api/kline.go:55:		get					80.0%
nofx/provider/coinank/coinank_api/kline_ws.go:23:	WsConn					83.3%
nofx/provider/coinank/coinank_api/kline_ws.go:38:	Subscribe				77.8%
nofx/provider/coinank/coinank_api/kline_ws.go:56:	UnSubscribe				77.8%
nofx/provider/coinank/coinank_api/kline_ws.go:74:	Close					100.0%
nofx/provider/coinank/coinank_api/kline_ws.go:78:	ws					77.8%
nofx/provider/coinank/coinank_api/kline_ws.go:92:	read					100.0%
nofx/provider/coinank/coinank_api/kline_ws.go:105:	handleResponse				94.6%
nofx/provider/coinank/coinank_api/kline_ws.go:154:	toInt64					100.0%
nofx/provider/coinank/coinank_api/kline_ws.go:159:	toFloat64				75.0%
nofx/provider/coinank/coinank_http.go:41:		NewCoinankClient			0.0%
nofx/provider/coinank/coinank_http.go:46:		Get					0.0%
nofx/provider/coinank/coinank_http.go:70:		Post					0.0%
nofx/provider/coinank/instrument_agg_rank.go:11:	VisualScreener				0.0%
nofx/provider/coinank/instrument_agg_rank.go:30:	OiRank					0.0%
nofx/provider/coinank/instrument_agg_rank.go:51:	LongShortRank				0.0%
nofx/provider/coinank/instrument_agg_rank.go:72:	LiquidationRank				0.0%
nofx/provider/coinank/instrument_agg_rank.go:93:	PriceRank				0.0%
nofx/provider/coinank/instrument_agg_rank.go:114:	VolumeRank				0.0%
nofx/provider/coinank/instrument_agg_rank.go:134:	rankParam				0.0%
nofx/provider/coinank/instruments.go:10:		GetLastPrice				0.0%
nofx/provider/coinank/instruments.go:32:		GetCoinMarketCap			0.0%
nofx/provider/coinank/kline.go:11:			Kline					0.0%
nofx/provider/coinank/liquidation.go:11:		LiquidationExchangeStatistics		0.0%
nofx/provider/coinank/liquidation.go:30:		LiquidationCoinAggHistory		0.0%
nofx/provider/coinank/liquidation.go:53:		LiquidationHistory			0.0%
nofx/provider/coinank/liquidation.go:77:		LiquidationOrders			0.0%
nofx/provider/coinank/net_positions.go:11:		NetPositions				0.0%
nofx/provider/coinank/open_interest.go:11:		OpenInterestAll				0.0%
nofx/provider/coinank/open_interest.go:30:		OpenInterestChartV2			0.0%
nofx/provider/coinank/open_interest.go:58:		OpenInterestSymbolChart			0.0%
nofx/provider/coinank/open_interest.go:85:		OpenInterestKline			0.0%
nofx/provider/coinank/open_interest.go:112:		OpenInterestAggKline			0.0%
nofx/provider/coinank/open_interest.go:138:		TickersTopOIByEx			0.0%
nofx/provider/coinank/open_interest.go:157:		InstrumentsOiVsMc			0.0%
nofx/provider/hyperliquid/coins.go:41:			GetProvider				0.0%
nofx/provider/hyperliquid/coins.go:63:			fetchCoins				0.0%
nofx/provider/hyperliquid/coins.go:142:			ensureUpdated				0.0%
nofx/provider/hyperliquid/coins.go:154:			GetAllCoins				0.0%
nofx/provider/hyperliquid/coins.go:169:			GetMainCoins				0.0%
nofx/provider/hyperliquid/coins.go:193:			GetAllCoinSymbols			0.0%
nofx/provider/hyperliquid/coins.go:207:			GetMainCoinSymbols			0.0%
nofx/provider/hyperliquid/coins.go:221:			ForceRefresh				0.0%
nofx/provider/hyperliquid/kline.go:54:			NewClient				100.0%
nofx/provider/hyperliquid/kline.go:64:			NewTestnetClient			0.0%
nofx/provider/hyperliquid/kline.go:77:			GetCandles				76.9%
nofx/provider/hyperliquid/kline.go:140:			GetAllMids				100.0%
nofx/provider/hyperliquid/kline.go:145:			GetAllMidsXYZ				100.0%
nofx/provider/hyperliquid/kline.go:150:			GetAllMidsWithDex			73.9%
nofx/provider/hyperliquid/kline.go:190:			GetMeta					71.4%
nofx/provider/hyperliquid/kline.go:244:			NormalizeCoin				100.0%
nofx/provider/hyperliquid/kline.go:249:			MapTimeframe				0.0%
nofx/provider/hyperliquid/kline.go:287:			getIntervalDuration			15.4%
nofx/provider/hyperliquid/kline.go:357:			IsStockPerp				100.0%
nofx/provider/hyperliquid/kline.go:368:			IsXYZAsset				100.0%
nofx/provider/hyperliquid/kline.go:386:			NormalizeCoinBase			100.0%
nofx/provider/hyperliquid/kline.go:408:			FormatCoinForAPI			100.0%
nofx/provider/nofxos/ai500.go:34:			GetAI500List				0.0%
nofx/provider/nofxos/ai500.go:59:			fetchAI500				0.0%
nofx/provider/nofxos/ai500.go:93:			GetTopRatedCoins			0.0%
nofx/provider/nofxos/ai500.go:137:			GetAvailableCoins			0.0%
nofx/provider/nofxos/ai500.go:156:			NormalizeSymbol				0.0%
nofx/provider/nofxos/claw402.go:29:			NewClaw402DataClient			0.0%
nofx/provider/nofxos/claw402.go:65:			mapEndpoint				0.0%
nofx/provider/nofxos/claw402.go:77:			DoRequest				0.0%
nofx/provider/nofxos/client.go:37:			DefaultClient				0.0%
nofx/provider/nofxos/client.go:49:			NewClient				0.0%
nofx/provider/nofxos/client.go:64:			SetClaw402				0.0%
nofx/provider/nofxos/client.go:71:			SetConfig				0.0%
nofx/provider/nofxos/client.go:83:			GetBaseURL				0.0%
nofx/provider/nofxos/client.go:90:			GetAuthKey				0.0%
nofx/provider/nofxos/client.go:98:			doRequest				0.0%
nofx/provider/nofxos/client.go:147:			Error					0.0%
nofx/provider/nofxos/client.go:152:			ExtractAuthKey				0.0%
nofx/provider/nofxos/coin.go:54:			GetCoinData				0.0%
nofx/provider/nofxos/coin.go:87:			GetCoinDataBatch			0.0%
nofx/provider/nofxos/coin.go:107:			FormatQuantDataForAI			0.0%
nofx/provider/nofxos/coin.go:118:			formatQuantDataZH			0.0%
nofx/provider/nofxos/coin.go:168:			formatQuantDataEN			0.0%
nofx/provider/nofxos/netflow.go:45:			GetNetFlowRanking			0.0%
nofx/provider/nofxos/netflow.go:98:			fetchNetFlowRanking			0.0%
nofx/provider/nofxos/netflow.go:120:			FormatNetFlowRankingForAI		0.0%
nofx/provider/nofxos/netflow.go:131:			formatNetFlowRankingZH			0.0%
nofx/provider/nofxos/netflow.go:198:			formatNetFlowRankingEN			0.0%
nofx/provider/nofxos/oi.go:50:				GetOIRanking				0.0%
nofx/provider/nofxos/oi.go:86:				fetchOIRanking				0.0%
nofx/provider/nofxos/oi.go:108:				GetOITopPositions			0.0%
nofx/provider/nofxos/oi.go:117:				GetOITopSymbols				0.0%
nofx/provider/nofxos/oi.go:133:				GetOILowPositions			0.0%
nofx/provider/nofxos/oi.go:142:				GetOILowSymbols				0.0%
nofx/provider/nofxos/oi.go:158:				FormatOIRankingForAI			0.0%
nofx/provider/nofxos/oi.go:169:				formatOIRankingZH			0.0%
nofx/provider/nofxos/oi.go:204:				formatOIRankingEN			0.0%
nofx/provider/nofxos/price.go:47:			GetPriceRanking				0.0%
nofx/provider/nofxos/price.go:87:			FormatPriceRankingForAI			0.0%
nofx/provider/nofxos/price.go:98:			formatPriceRankingZH			0.0%
nofx/provider/nofxos/price.go:141:			formatPriceRankingEN			0.0%
nofx/provider/nofxos/util.go:14:			formatValue				0.0%
nofx/provider/twelvedata/kline.go:78:			NewClient				0.0%
nofx/provider/twelvedata/kline.go:88:			NewClientWithKey			0.0%
nofx/provider/twelvedata/kline.go:99:			GetTimeSeries				0.0%
nofx/provider/twelvedata/kline.go:148:			GetQuote				0.0%
nofx/provider/twelvedata/kline.go:195:			MapTimeframe				0.0%
nofx/provider/twelvedata/kline.go:235:			ParseBar				0.0%
nofx/security/url_validator.go:17:			init					0.0%
nofx/security/url_validator.go:48:			Error					0.0%
nofx/security/url_validator.go:53:			isPrivateIP				0.0%
nofx/security/url_validator.go:85:			ValidateURL				0.0%
nofx/security/url_validator.go:158:			SafeHTTPClient				0.0%
nofx/security/url_validator.go:208:			SafeGet					0.0%
nofx/store/ai_charge.go:19:				TableName				0.0%
nofx/store/ai_charge.go:40:				GetModelPrice				0.0%
nofx/store/ai_charge.go:53:				NewAIChargeStore			0.0%
nofx/store/ai_charge.go:57:				initTables				0.0%
nofx/store/ai_charge.go:62:				Record					0.0%
nofx/store/ai_charge.go:74:				GetCharges				0.0%
nofx/store/ai_charge.go:90:				GetDailyCost				0.0%
nofx/store/ai_charge.go:99:				GetSummary				0.0%
nofx/store/ai_charge.go:126:				applyPeriodFilter			0.0%
nofx/store/ai_charge.go:151:				IsClaw402Config				0.0%
nofx/store/ai_charge.go:156:				EstimateRunway				0.0%
nofx/store/ai_model.go:33:				TableName				0.0%
nofx/store/ai_model.go:36:				NewAIModelStore				0.0%
nofx/store/ai_model.go:40:				initTables				0.0%
nofx/store/ai_model.go:52:				initDefaultData				0.0%
nofx/store/ai_model.go:58:				List					0.0%
nofx/store/ai_model.go:68:				Get					0.0%
nofx/store/ai_model.go:98:				GetByID					0.0%
nofx/store/ai_model.go:112:				GetDefault				0.0%
nofx/store/ai_model.go:129:				firstEnabled				0.0%
nofx/store/ai_model.go:142:				GetAnyEnabled				0.0%
nofx/store/ai_model.go:155:				Update					0.0%
nofx/store/ai_model.go:238:				Create					0.0%
nofx/store/decision.go:36:				TableName				0.0%
nofx/store/decision.go:108:				NewDecisionStore			0.0%
nofx/store/decision.go:113:				initTables				0.0%
nofx/store/decision.go:126:				toRecord				0.0%
nofx/store/decision.go:148:				LogDecision				0.0%
nofx/store/decision.go:185:				GetLatestRecords			0.0%
nofx/store/decision.go:209:				GetAllLatestRecords			0.0%
nofx/store/decision.go:230:				GetRecordsByDate			0.0%
nofx/store/decision.go:250:				CleanOldRecords				0.0%
nofx/store/decision.go:262:				GetStatistics				0.0%
nofx/store/decision.go:281:				GetAllStatistics			0.0%
nofx/store/decision.go:300:				GetLastCycleNumber			0.0%
nofx/store/driver.go:41:				NewDBDriver				0.0%
nofx/store/driver.go:65:				NewDBDriverFromEnv			0.0%
nofx/store/driver.go:94:				DB					0.0%
nofx/store/driver.go:99:				Close					0.0%
nofx/store/driver.go:104:				AutoIncrement				0.0%
nofx/store/driver.go:115:				Placeholder				0.0%
nofx/store/driver.go:125:				ConvertPlaceholders			0.0%
nofx/store/driver.go:141:				TableExists				0.0%
nofx/store/driver.go:167:				UpsertSyntax				0.0%
nofx/store/driver.go:172:				openSQLite				0.0%
nofx/store/driver.go:210:				openPostgres				0.0%
nofx/store/driver.go:235:				getEnv					0.0%
nofx/store/driver.go:244:				convertQuery				0.0%
nofx/store/driver.go:270:				boolDefault				0.0%
nofx/store/equity.go:28:				TableName				0.0%
nofx/store/equity.go:31:				NewEquityStore				0.0%
nofx/store/equity.go:36:				initTables				0.0%
nofx/store/equity.go:49:				Save					0.0%
nofx/store/equity.go:65:				GetLatest				0.0%
nofx/store/equity.go:84:				GetByTimeRange				0.0%
nofx/store/equity.go:96:				GetAllTradersLatest			0.0%
nofx/store/equity.go:121:				CleanOldRecords				0.0%
nofx/store/equity.go:133:				GetCount				0.0%
nofx/store/equity.go:140:				MigrateFromDecision			0.0%
nofx/store/exchange.go:44:				TableName				0.0%
nofx/store/exchange.go:47:				NewExchangeStore			0.0%
nofx/store/exchange.go:51:				initTables				0.0%
nofx/store/exchange.go:80:				migrateToMultiAccount			0.0%
nofx/store/exchange.go:135:				initDefaultData				0.0%
nofx/store/exchange.go:141:				List					0.0%
nofx/store/exchange.go:151:				GetByID					0.0%
nofx/store/exchange.go:161:				getExchangeNameAndType			0.0%
nofx/store/exchange.go:185:				Create					0.0%
nofx/store/exchange.go:231:				Update					0.0%
nofx/store/exchange.go:280:				UpdateAccountName			0.0%
nofx/store/exchange.go:297:				Delete					0.0%
nofx/store/exchange.go:311:				CreateLegacy				0.0%
nofx/store/gorm.go:17:					DB					0.0%
nofx/store/gorm.go:22:					InitGorm				0.0%
nofx/store/gorm.go:53:					InitGormPostgres			0.0%
nofx/store/gorm.go:84:					InitGormWithConfig			0.0%
nofx/store/gorm.go:109:					ForUser					0.0%
nofx/store/gorm.go:116:					ForTrader				0.0%
nofx/store/gorm.go:123:					OpenPositions				0.0%
nofx/store/gorm.go:130:					ClosedPositions				0.0%
nofx/store/gorm.go:137:					OrderByCreatedDesc			0.0%
nofx/store/gorm.go:144:					OrderByUpdatedDesc			0.0%
nofx/store/gorm.go:151:					Paginate				0.0%
nofx/store/grid.go:72:					TableName				0.0%
nofx/store/grid.go:132:					TableName				0.0%
nofx/store/grid.go:156:					TableName				0.0%
nofx/store/grid.go:179:					TableName				0.0%
nofx/store/grid.go:205:					TableName				0.0%
nofx/store/grid.go:217:					NewGridStore				0.0%
nofx/store/grid.go:222:					InitTables				0.0%
nofx/store/grid.go:258:					SaveGridConfig				0.0%
nofx/store/grid.go:267:					LoadGridConfig				0.0%
nofx/store/grid.go:277:					LoadGridConfigByTrader			0.0%
nofx/store/grid.go:287:					ListGridConfigs				0.0%
nofx/store/grid.go:297:					DeleteGridConfig			0.0%
nofx/store/grid.go:331:					SaveGridInstance			0.0%
nofx/store/grid.go:337:					LoadGridInstance			0.0%
nofx/store/grid.go:349:					LoadGridInstanceByID			0.0%
nofx/store/grid.go:359:					ListGridInstances			0.0%
nofx/store/grid.go:373:					SaveGridLevel				0.0%
nofx/store/grid.go:379:					SaveGridLevels				0.0%
nofx/store/grid.go:391:					LoadGridLevels				0.0%
nofx/store/grid.go:403:					DeleteGridLevels			0.0%
nofx/store/grid.go:410:					SaveGridEvent				0.0%
nofx/store/grid.go:418:					LoadRecentGridEvents			0.0%
nofx/store/grid.go:433:					LoadGridEventsByType			0.0%
nofx/store/grid.go:448:					CountGridEvents				0.0%
nofx/store/grid.go:459:					SaveGridRegimeAssessment		0.0%
nofx/store/grid.go:467:					LoadLatestGridRegime			0.0%
nofx/store/grid.go:479:					LoadGridRegimeHistory			0.0%
nofx/store/grid.go:496:					GetGridInstanceStatistics		0.0%
nofx/store/grid.go:551:					GetGridPerformanceMetrics		0.0%
nofx/store/order.go:46:					TableName				0.0%
nofx/store/order.go:73:					TableName				0.0%
nofx/store/order.go:83:					NewOrderStore				0.0%
nofx/store/order.go:88:					InitTables				0.0%
nofx/store/order.go:152:				CreateOrder				0.0%
nofx/store/order.go:169:				UpdateOrderStatus			0.0%
nofx/store/order.go:186:				CreateFill				0.0%
nofx/store/order.go:202:				GetFillByExchangeTradeID		0.0%
nofx/store/order.go:215:				GetOrderByExchangeID			0.0%
nofx/store/order.go:228:				GetTraderOrders				0.0%
nofx/store/order.go:241:				GetTraderOrdersFiltered			0.0%
nofx/store/order.go:262:				GetOrderFills				0.0%
nofx/store/order.go:274:				GetTraderOrderStats			0.0%
nofx/store/order.go:306:				CleanupDuplicateOrders			0.0%
nofx/store/order.go:322:				CleanupDuplicateFills			0.0%
nofx/store/order.go:338:				GetDuplicateOrdersCount			0.0%
nofx/store/order.go:353:				GetDuplicateFillsCount			0.0%
nofx/store/order.go:367:				GetMaxTradeIDsByExchange		0.0%
nofx/store/order.go:401:				GetLastFillTimeByExchange		0.0%
nofx/store/order.go:413:				GetRecentFillSymbolsByExchange		0.0%
nofx/store/position.go:16:				adaptivePriceRound			0.0%
nofx/store/position.go:51:				getPriceDecimalPlaces			0.0%
nofx/store/position.go:64:				formatDuration				0.0%
nofx/store/position.go:69:				formatDurationMs			0.0%
nofx/store/position.go:124:				TableName				0.0%
nofx/store/position.go:134:				NewPositionStore			0.0%
nofx/store/position.go:139:				isPostgres				0.0%
nofx/store/position.go:144:				InitTables				0.0%
nofx/store/position.go:189:				Create					0.0%
nofx/store/position.go:198:				ClosePosition				0.0%
nofx/store/position.go:213:				UpdatePositionQuantityAndPrice		0.0%
nofx/store/position.go:243:				ReducePositionQuantity			0.0%
nofx/store/position.go:291:				UpdatePositionExchangeInfo		0.0%
nofx/store/position.go:302:				ClosePositionFully			0.0%
nofx/store/position.go:327:				DeleteAllOpenPositions			0.0%
nofx/store/position.go:332:				GetOpenPositions			0.0%
nofx/store/position.go:351:				GetOpenPositionBySymbol			0.0%
nofx/store/position.go:384:				GetClosedPositions			0.0%
nofx/store/position.go:403:				GetAllOpenPositions			0.0%
nofx/store/position.go:421:				ExistsWithExchangePositionID		0.0%
nofx/store/position.go:437:				GetOpenPositionByExchangePositionID	0.0%
nofx/store/position.go:459:				CreateOpenPosition			0.0%
nofx/store/position.go:507:				ClosePositionWithAccurateData		0.0%
nofx/store/position_builder.go:21:			NewPositionBuilder			0.0%
nofx/store/position_builder.go:29:			ProcessTrade				0.0%
nofx/store/position_builder.go:45:			handleOpen				0.0%
nofx/store/position_builder.go:97:			handleClose				0.0%
nofx/store/position_builder.go:178:			quantitiesMatch				0.0%
nofx/store/position_history.go:38:			GetHistorySummary			0.0%
nofx/store/position_history.go:120:			calculateStreaks			0.0%
nofx/store/position_history.go:193:			CreateFromClosedPnL			0.0%
nofx/store/position_history.go:276:			GetLastClosedPositionTime		0.0%
nofx/store/position_history.go:293:			SyncClosedPositions			0.0%
nofx/store/position_query.go:25:			GetPositionStats			0.0%
nofx/store/position_query.go:58:			GetFullStats				0.0%
nofx/store/position_query.go:131:			GetRecentTrades				0.0%
nofx/store/position_query.go:173:			calculateSharpeRatioFromPnls		0.0%
nofx/store/position_query.go:198:			calculateMaxDrawdownFromPnls		0.0%
nofx/store/position_query.go:236:			GetSymbolStats				0.0%
nofx/store/position_query.go:306:			GetHoldingTimeStats			0.0%
nofx/store/position_query.go:376:			GetDirectionStats			0.0%
nofx/store/store.go:38:					New					0.0%
nofx/store/store.go:69:					NewWithConfig				0.0%
nofx/store/store.go:104:				NewFromGorm				0.0%
nofx/store/store.go:114:				NewFromDB				0.0%
nofx/store/store.go:119:				initTables				0.0%
nofx/store/store.go:171:				initDefaultData				0.0%
nofx/store/store.go:191:				User					0.0%
nofx/store/store.go:201:				AIModel					0.0%
nofx/store/store.go:211:				Exchange				0.0%
nofx/store/store.go:221:				Trader					0.0%
nofx/store/store.go:231:				Decision				0.0%
nofx/store/store.go:241:				Position				0.0%
nofx/store/store.go:251:				Strategy				0.0%
nofx/store/store.go:261:				Equity					0.0%
nofx/store/store.go:271:				Order					0.0%
nofx/store/store.go:281:				Grid					0.0%
nofx/store/store.go:291:				AICharge				0.0%
nofx/store/store.go:301:				TelegramConfig				0.0%
nofx/store/store.go:311:				Close					0.0%
nofx/store/store.go:322:				GormDB					0.0%
nofx/store/store.go:327:				Driver					0.0%
nofx/store/store.go:332:				DBType					0.0%
nofx/store/store.go:349:				q					0.0%
nofx/store/store.go:355:				DB					0.0%
nofx/store/store.go:360:				GetSystemConfig				0.0%
nofx/store/store.go:376:				SetSystemConfig				0.0%
nofx/store/store.go:385:				Transaction				0.0%
nofx/store/store.go:391:				TransactionSQL				0.0%
nofx/store/strategy.go:23:				ClampLimits				0.0%
nofx/store/strategy.go:83:				TableName				0.0%
nofx/store/strategy.go:288:				NewStrategyStore			0.0%
nofx/store/strategy.go:292:				initTables				0.0%
nofx/store/strategy.go:297:				initDefaultData				0.0%
nofx/store/strategy.go:303:				GetDefaultStrategyConfig		100.0%
nofx/store/strategy.go:421:				Create					0.0%
nofx/store/strategy.go:426:				Update					0.0%
nofx/store/strategy.go:440:				Delete					0.0%
nofx/store/strategy.go:461:				List					0.0%
nofx/store/strategy.go:473:				ListPublic				0.0%
nofx/store/strategy.go:485:				Get					0.0%
nofx/store/strategy.go:496:				GetActive				0.0%
nofx/store/strategy.go:510:				GetDefault				0.0%
nofx/store/strategy.go:520:				SetActive				0.0%
nofx/store/strategy.go:536:				Duplicate				0.0%
nofx/store/strategy.go:558:				ParseConfig				0.0%
nofx/store/strategy.go:567:				SetConfig				0.0%
nofx/store/strategy.go:630:				GetContextLimit				100.0%
nofx/store/strategy.go:639:				GetContextLimitForClient		0.0%
nofx/store/strategy.go:667:				EstimateTokens				95.7%
nofx/store/strategy.go:839:				getEffectiveCoinCount			37.5%
nofx/store/strategy.go:870:				getEffectiveTimeframeCount		33.3%
nofx/store/telegram_config.go:26:			String					0.0%
nofx/store/telegram_config.go:54:			NewTelegramConfigStore			0.0%
nofx/store/telegram_config.go:58:			initTables				0.0%
nofx/store/telegram_config.go:62:			Get					0.0%
nofx/store/telegram_config.go:72:			SaveToken				0.0%
nofx/store/telegram_config.go:76:			Save					0.0%
nofx/store/telegram_config.go:90:			BindUser				0.0%
nofx/store/telegram_config.go:105:			IsBound					0.0%
nofx/store/telegram_config.go:118:			GetBoundChatID				0.0%
nofx/store/telegram_config.go:131:			Unbind					0.0%
nofx/store/telegram_config.go:140:			SetLanguage				0.0%
nofx/store/telegram_config.go:153:			GetLanguage				0.0%
nofx/store/trader.go:16:				NewTraderStore				0.0%
nofx/store/trader.go:48:				TableName				0.0%
nofx/store/trader.go:60:				initTables				0.0%
nofx/store/trader.go:77:				Create					0.0%
nofx/store/trader.go:82:				List					0.0%
nofx/store/trader.go:94:				UpdateStatus				0.0%
nofx/store/trader.go:101:				UpdateShowInCompetition			0.0%
nofx/store/trader.go:108:				Update					0.0%
nofx/store/trader.go:138:				UpdateInitialBalance			0.0%
nofx/store/trader.go:145:				UpdateCustomPrompt			0.0%
nofx/store/trader.go:155:				Delete					0.0%
nofx/store/trader.go:164:				GetFullConfig				0.0%
nofx/store/trader.go:204:				getStrategyByID				0.0%
nofx/store/trader.go:215:				getActiveOrDefaultStrategy		0.0%
nofx/store/trader.go:233:				GetByID					0.0%
nofx/store/trader.go:243:				ListAll					0.0%
nofx/store/trader.go:253:				ListByExchangeID			0.0%
nofx/store/trader.go:263:				ListByAIModelID				0.0%
nofx/store/user.go:23:					TableName				0.0%
nofx/store/user.go:26:					NewUserStore				0.0%
nofx/store/user.go:30:					initTables				0.0%
nofx/store/user.go:62:					Create					0.0%
nofx/store/user.go:67:					GetByEmail				0.0%
nofx/store/user.go:77:					GetByID					0.0%
nofx/store/user.go:87:					Count					0.0%
nofx/store/user.go:94:					GetAllIDs				0.0%
nofx/store/user.go:101:					GetAll					0.0%
nofx/store/user.go:108:					UpdatePassword				0.0%
nofx/store/user.go:116:					EnsureAdmin				0.0%
nofx/telegram/agent/agent.go:57:			New					100.0%
nofx/telegram/agent/agent.go:70:			GenerateBotToken			0.0%
nofx/telegram/agent/agent.go:77:			buildAccountContext			72.2%
nofx/telegram/agent/agent.go:194:			Run					79.1%
nofx/telegram/agent/agent.go:283:			ResetMemory				0.0%
nofx/telegram/agent/apicall.go:29:			newAPICallTool				100.0%
nofx/telegram/agent/apicall.go:38:			execute					80.0%
nofx/telegram/agent/manager.go:26:			NewManager				0.0%
nofx/telegram/agent/manager.go:42:			Run					0.0%
nofx/telegram/agent/manager.go:55:			Reset					0.0%
nofx/telegram/agent/manager.go:64:			getOrCreate				0.0%
nofx/telegram/agent/prompt.go:9:			BuildAgentPrompt			0.0%
nofx/telegram/bot.go:23:				Start					0.0%
nofx/telegram/bot.go:45:				resolveToken				0.0%
nofx/telegram/bot.go:54:				runBot					0.0%
nofx/telegram/bot.go:254:				sendMsg					0.0%
nofx/telegram/bot.go:259:				sendMarkdownMsg				0.0%
nofx/telegram/bot.go:270:				newLLMClient				0.0%
nofx/telegram/bot.go:319:				isUSDCProvider				0.0%
nofx/telegram/bot.go:323:				clientForProvider			0.0%
nofx/telegram/bot.go:335:				statusMsg				0.0%
nofx/telegram/bot.go:401:				langMenuMsg				0.0%
nofx/telegram/bot.go:405:				parseLangChoice				0.0%
nofx/telegram/bot.go:417:				helpMsg					0.0%
nofx/telegram/session/memory.go:28:			NewMemory				0.0%
nofx/telegram/session/memory.go:33:			Add					0.0%
nofx/telegram/session/memory.go:41:			BuildContext				0.0%
nofx/telegram/session/memory.go:58:			Reset					0.0%
nofx/telegram/session/memory.go:63:			ResetFull				0.0%
nofx/telegram/session/memory.go:68:			estimateTokens				0.0%
nofx/telegram/session/memory.go:79:			compact					0.0%
nofx/telemetry/experience.go:60:			Init					0.0%
nofx/telemetry/experience.go:69:			SetInstallationID			0.0%
nofx/telemetry/experience.go:78:			GetInstallationID			0.0%
nofx/telemetry/experience.go:87:			SetEnabled				0.0%
nofx/telemetry/experience.go:96:			IsEnabled				0.0%
nofx/telemetry/experience.go:105:			TrackTrade				0.0%
nofx/telemetry/experience.go:117:			sendTradeEvent				0.0%
nofx/telemetry/experience.go:163:			TrackStartup				0.0%
nofx/telemetry/experience.go:200:			TrackAIUsage				0.0%
nofx/trader/aster/trader.go:52:				NewAsterTrader				87.5%
nofx/trader/aster/trader.go:83:				genNonce				100.0%
nofx/trader/aster/trader.go:88:				getPrecision				89.3%
nofx/trader/aster/trader.go:152:			roundToTickSize				80.0%
nofx/trader/aster/trader.go:165:			formatPrice				57.1%
nofx/trader/aster/trader.go:182:			formatQuantity				57.1%
nofx/trader/aster/trader.go:199:			formatFloatWithPrecision		100.0%
nofx/trader/aster/trader.go:211:			normalizeAndStringify			71.4%
nofx/trader/aster/trader.go:224:			normalize				52.0%
nofx/trader/aster/trader.go:268:			sign					86.2%
nofx/trader/aster/trader.go:329:			request					55.0%
nofx/trader/aster/trader.go:372:			doRequest				80.0%
nofx/trader/aster/trader_account.go:16:			GetBalance				86.4%
nofx/trader/aster/trader_account.go:104:		GetMarketPrice				78.6%
nofx/trader/aster/trader_account.go:133:		GetClosedPnL				0.0%
nofx/trader/aster/trader_account.go:204:		GetTrades				0.0%
nofx/trader/aster/trader_account.go:254:		GetOrderBook				0.0%
nofx/trader/aster/trader_orders.go:13:			OpenLong				66.7%
nofx/trader/aster/trader_orders.go:86:			OpenShort				66.7%
nofx/trader/aster/trader_orders.go:159:			CloseLong				71.1%
nofx/trader/aster/trader_orders.go:241:			CloseShort				71.1%
nofx/trader/aster/trader_orders.go:324:			SetStopLoss				82.4%
nofx/trader/aster/trader_orders.go:365:			SetTakeProfit				82.4%
nofx/trader/aster/trader_orders.go:406:			CancelStopLossOrders			40.0%
nofx/trader/aster/trader_orders.go:465:			CancelTakeProfitOrders			40.0%
nofx/trader/aster/trader_orders.go:524:			CancelAllOrders				100.0%
nofx/trader/aster/trader_orders.go:534:			CancelStopOrders			43.5%
nofx/trader/aster/trader_orders.go:589:			FormatQuantity				75.0%
nofx/trader/aster/trader_orders.go:598:			GetOrderStatus				0.0%
nofx/trader/aster/trader_orders.go:647:			GetOpenOrders				0.0%
nofx/trader/aster/trader_orders.go:697:			PlaceLimitOrder				0.0%
nofx/trader/aster/trader_orders.go:775:			CancelOrder				0.0%
nofx/trader/aster/trader_positions.go:12:		GetPositions				76.9%
nofx/trader/aster/trader_positions.go:66:		SetMarginMode				40.0%
nofx/trader/aster/trader_positions.go:113:		SetLeverage				100.0%
nofx/trader/aster/trader_sync.go:17:			SyncOrdersFromAster			0.0%
nofx/trader/aster/trader_sync.go:149:			deriveAsterOrderAction			0.0%
nofx/trader/aster/trader_sync.go:183:			StartOrderSync				0.0%
nofx/trader/auto_trader.go:158:				NewAutoTrader				0.0%
nofx/trader/auto_trader.go:374:				Run					0.0%
nofx/trader/auto_trader.go:521:				Stop					0.0%
nofx/trader/auto_trader.go:536:				GetID					0.0%
nofx/trader/auto_trader.go:542:				GetUnderlyingTrader			0.0%
nofx/trader/auto_trader.go:547:				GetName					0.0%
nofx/trader/auto_trader.go:552:				GetAIModel				0.0%
nofx/trader/auto_trader.go:557:				GetExchange				0.0%
nofx/trader/auto_trader.go:562:				GetShowInCompetition			0.0%
nofx/trader/auto_trader.go:567:				SetShowInCompetition			0.0%
nofx/trader/auto_trader.go:572:				SetCustomPrompt				0.0%
nofx/trader/auto_trader.go:577:				SetOverrideBasePrompt			0.0%
nofx/trader/auto_trader.go:582:				GetSystemPromptTemplate			0.0%
nofx/trader/auto_trader.go:593:				GetStore				0.0%
nofx/trader/auto_trader.go:599:				calculatePnLPercentage			0.0%
nofx/trader/auto_trader.go:607:				runPreLaunchChecks			0.0%
nofx/trader/auto_trader.go:651:				deriveWalletAddress			0.0%
nofx/trader/auto_trader_decision.go:15:			saveEquitySnapshot			0.0%
nofx/trader/auto_trader_decision.go:36:			saveDecision				0.0%
nofx/trader/auto_trader_decision.go:59:			GetStatus				0.0%
nofx/trader/auto_trader_decision.go:97:			GetAccountInfo				0.0%
nofx/trader/auto_trader_decision.go:194:		GetPositions				0.0%
nofx/trader/auto_trader_decision.go:244:		recordAndConfirmOrder			0.0%
nofx/trader/auto_trader_decision.go:360:		recordPositionChange			0.0%
nofx/trader/auto_trader_decision.go:410:		createOrderRecord			0.0%
nofx/trader/auto_trader_decision.go:459:		recordOrderFill				0.0%
nofx/trader/auto_trader_decision.go:525:		GetOpenOrders				0.0%
nofx/trader/auto_trader_grid.go:75:			NewGridState				0.0%
nofx/trader/auto_trader_grid.go:99:			checkBreakout				0.0%
nofx/trader/auto_trader_grid.go:133:			checkMaxDrawdown			0.0%
nofx/trader/auto_trader_grid.go:185:			checkDailyLossLimit			0.0%
nofx/trader/auto_trader_grid.go:212:			updateDailyPnL				0.0%
nofx/trader/auto_trader_grid.go:220:			emergencyExit				0.0%
nofx/trader/auto_trader_grid.go:255:			handleBreakout				0.0%
nofx/trader/auto_trader_grid.go:289:			InitializeGrid				0.0%
nofx/trader/auto_trader_grid.go:342:			RunGridCycle				0.0%
nofx/trader/auto_trader_grid.go:454:			buildGridContext			0.0%
nofx/trader/auto_trader_grid.go:519:			executeGridDecision			0.0%
nofx/trader/auto_trader_grid.go:552:			IsGridStrategy				0.0%
nofx/trader/auto_trader_grid.go:560:			saveGridDecisionRecord			0.0%
nofx/trader/auto_trader_grid_levels.go:16:		calculateDefaultBounds			0.0%
nofx/trader/auto_trader_grid_levels.go:24:		calculateATRBounds			0.0%
nofx/trader/auto_trader_grid_levels.go:46:		initializeGridLevels			0.0%
nofx/trader/auto_trader_grid_levels.go:98:		applyGridDirection			0.0%
nofx/trader/auto_trader_grid_levels.go:186:		checkGridSkew				0.0%
nofx/trader/auto_trader_grid_levels.go:228:		autoAdjustGrid				0.0%
nofx/trader/auto_trader_grid_levels.go:333:		calculateDefaultBoundsLocked		0.0%
nofx/trader/auto_trader_grid_levels.go:341:		calculateATRBoundsLocked		0.0%
nofx/trader/auto_trader_grid_levels.go:363:		initializeGridLevelsLocked		0.0%
nofx/trader/auto_trader_grid_levels.go:414:		applyGridDirectionLocked		0.0%
nofx/trader/auto_trader_grid_orders.go:17:		checkTotalPositionLimit			0.0%
nofx/trader/auto_trader_grid_orders.go:58:		placeGridLimitOrder			0.0%
nofx/trader/auto_trader_grid_orders.go:154:		cancelGridOrder				0.0%
nofx/trader/auto_trader_grid_orders.go:181:		cancelAllGridOrders			0.0%
nofx/trader/auto_trader_grid_orders.go:205:		pauseGrid				0.0%
nofx/trader/auto_trader_grid_orders.go:217:		resumeGrid				0.0%
nofx/trader/auto_trader_grid_orders.go:227:		adjustGrid				0.0%
nofx/trader/auto_trader_grid_orders.go:247:		syncGridState				0.0%
nofx/trader/auto_trader_grid_orders.go:324:		closeAllPositions			0.0%
nofx/trader/auto_trader_grid_orders.go:360:		checkAndExecuteStopLoss			0.0%
nofx/trader/auto_trader_grid_regime.go:16:		checkBoxBreakout			0.0%
nofx/trader/auto_trader_grid_regime.go:79:		executeBreakoutAction			0.0%
nofx/trader/auto_trader_grid_regime.go:119:		executeDirectionAdjustment		0.0%
nofx/trader/auto_trader_grid_regime.go:140:		adjustGridDirection			0.0%
nofx/trader/auto_trader_grid_regime.go:169:		checkFalseBreakoutRecovery		0.0%
nofx/trader/auto_trader_grid_regime.go:227:		GetGridRiskInfo				0.0%
nofx/trader/auto_trader_loop.go:15:			runCycle				0.0%
nofx/trader/auto_trader_loop.go:290:			buildTradingContext			0.0%
nofx/trader/auto_trader_loop.go:585:			sortDecisionsByPriority			0.0%
nofx/trader/auto_trader_loop.go:621:			checkClaw402Balance			0.0%
nofx/trader/auto_trader_orders.go:13:			executeDecisionWithRecord		0.0%
nofx/trader/auto_trader_orders.go:32:			executeOpenLongWithRecord		0.0%
nofx/trader/auto_trader_orders.go:149:			executeOpenShortWithRecord		0.0%
nofx/trader/auto_trader_orders.go:266:			executeCloseLongWithRecord		0.0%
nofx/trader/auto_trader_orders.go:330:			executeCloseShortWithRecord		0.0%
nofx/trader/auto_trader_risk.go:11:			startDrawdownMonitor			0.0%
nofx/trader/auto_trader_risk.go:34:			checkPositionDrawdown			0.0%
nofx/trader/auto_trader_risk.go:116:			emergencyClosePosition			0.0%
nofx/trader/auto_trader_risk.go:138:			GetPeakPnLCache				0.0%
nofx/trader/auto_trader_risk.go:151:			UpdatePeakPnL				0.0%
nofx/trader/auto_trader_risk.go:168:			ClearPeakPnLCache			0.0%
nofx/trader/auto_trader_risk.go:181:			isBTCETH				0.0%
nofx/trader/auto_trader_risk.go:191:			enforcePositionValueRatio		0.0%
nofx/trader/auto_trader_risk.go:226:			enforceMinPositionSize			0.0%
nofx/trader/auto_trader_risk.go:243:			enforceMaxPositions			0.0%
nofx/trader/auto_trader_risk.go:260:			getSideFromAction			0.0%
nofx/trader/binance/futures.go:21:			getBrOrderID				88.9%
nofx/trader/binance/futures.go:64:			NewFuturesTrader			88.9%
nofx/trader/binance/futures.go:89:			setDualSidePosition			44.4%
nofx/trader/binance/futures.go:111:			syncBinanceServerTime			50.0%
nofx/trader/binance/futures.go:126:			contains				100.0%
nofx/trader/binance/futures.go:130:			stringContains				75.0%
nofx/trader/binance/futures.go:140:			calculatePrecision			88.9%
nofx/trader/binance/futures.go:163:			trimTrailingZeros			57.1%
nofx/trader/binance/futures_account.go:13:		GetBalance				72.7%
nofx/trader/binance/futures_account.go:55:		GetClosedPnL				0.0%
nofx/trader/binance/futures_account.go:112:		GetTrades				0.0%
nofx/trader/binance/futures_account.go:155:		GetTradesForSymbol			0.0%
nofx/trader/binance/futures_account.go:198:		GetTradesForSymbolFromID		0.0%
nofx/trader/binance/futures_account.go:241:		GetCommissionSymbols			0.0%
nofx/trader/binance/futures_account.go:268:		GetPnLSymbols				0.0%
nofx/trader/binance/futures_orders.go:14:		OpenLong				72.7%
nofx/trader/binance/futures_orders.go:69:		OpenShort				72.7%
nofx/trader/binance/futures_orders.go:124:		CloseLong				75.0%
nofx/trader/binance/futures_orders.go:179:		CloseShort				75.0%
nofx/trader/binance/futures_orders.go:235:		CancelStopLossOrders			32.4%
nofx/trader/binance/futures_orders.go:311:		CancelTakeProfitOrders			32.4%
nofx/trader/binance/futures_orders.go:387:		CancelAllOrders				80.0%
nofx/trader/binance/futures_orders.go:418:		PlaceLimitOrder				0.0%
nofx/trader/binance/futures_orders.go:484:		CancelOrder				0.0%
nofx/trader/binance/futures_orders.go:506:		GetOrderBook				0.0%
nofx/trader/binance/futures_orders.go:537:		CancelStopOrders			52.4%
nofx/trader/binance/futures_orders.go:596:		GetOpenOrders				0.0%
nofx/trader/binance/futures_orders.go:655:		SetStopLoss				91.7%
nofx/trader/binance/futures_orders.go:689:		SetTakeProfit				91.7%
nofx/trader/binance/futures_orders.go:722:		GetOrderStatus				0.0%
nofx/trader/binance/futures_positions.go:14:		GetPositions				78.8%
nofx/trader/binance/futures_positions.go:69:		SetMarginMode				42.3%
nofx/trader/binance/futures_positions.go:120:		SetLeverage				81.0%
nofx/trader/binance/futures_positions.go:166:		GetMarketPrice				77.8%
nofx/trader/binance/futures_positions.go:185:		CalculatePositionSize			100.0%
nofx/trader/binance/futures_positions.go:193:		GetMinNotional				100.0%
nofx/trader/binance/futures_positions.go:199:		CheckMinNotional			75.0%
nofx/trader/binance/futures_positions.go:219:		GetSymbolPrecision			76.9%
nofx/trader/binance/futures_positions.go:244:		FormatQuantity				80.0%
nofx/trader/binance/futures_positions.go:256:		GetSymbolPricePrecision			0.0%
nofx/trader/binance/futures_positions.go:280:		FormatPrice				0.0%
nofx/trader/binance/order_sync.go:24:			SyncOrdersFromBinance			0.0%
nofx/trader/binance/order_sync.go:295:			getPositionSymbols			0.0%
nofx/trader/binance/order_sync.go:311:			determineOrderAction			0.0%
nofx/trader/binance/order_sync.go:352:			StartOrderSync				0.0%
nofx/trader/bitget/order_sync.go:32:			GetTrades				0.0%
nofx/trader/bitget/order_sync.go:159:			SyncOrdersFromBitget			0.0%
nofx/trader/bitget/order_sync.go:282:			StartOrderSync				0.0%
nofx/trader/bitget/trader.go:84:			NewBitgetTrader				0.0%
nofx/trader/bitget/trader.go:110:			setPositionMode				0.0%
nofx/trader/bitget/trader.go:129:			sign					0.0%
nofx/trader/bitget/trader.go:138:			doRequest				0.0%
nofx/trader/bitget/trader.go:215:			convertSymbol				0.0%
nofx/trader/bitget/trader.go:221:			getContract				0.0%
nofx/trader/bitget/trader.go:291:			FormatQuantity				0.0%
nofx/trader/bitget/trader.go:303:			clearCache				0.0%
nofx/trader/bitget/trader.go:314:			genBitgetClientOid			0.0%
nofx/trader/bitget/trader_account.go:13:		GetBalance				0.0%
nofx/trader/bitget/trader_account.go:71:		SetMarginMode				0.0%
nofx/trader/bitget/trader_account.go:103:		SetLeverage				0.0%
nofx/trader/bitget/trader_account.go:127:		GetMarketPrice				0.0%
nofx/trader/bitget/trader_account.go:162:		GetOrderBook				0.0%
nofx/trader/bitget/trader_orders.go:13:			OpenLong				0.0%
nofx/trader/bitget/trader_orders.go:67:			OpenShort				0.0%
nofx/trader/bitget/trader_orders.go:121:		CloseLong				0.0%
nofx/trader/bitget/trader_orders.go:184:		CloseShort				0.0%
nofx/trader/bitget/trader_orders.go:252:		SetStopLoss				0.0%
nofx/trader/bitget/trader_orders.go:291:		SetTakeProfit				0.0%
nofx/trader/bitget/trader_orders.go:330:		CancelStopLossOrders			0.0%
nofx/trader/bitget/trader_orders.go:335:		CancelTakeProfitOrders			0.0%
nofx/trader/bitget/trader_orders.go:340:		cancelPlanOrders			0.0%
nofx/trader/bitget/trader_orders.go:380:		CancelAllOrders				0.0%
nofx/trader/bitget/trader_orders.go:423:		CancelStopOrders			0.0%
nofx/trader/bitget/trader_orders.go:430:		GetOrderStatus				0.0%
nofx/trader/bitget/trader_orders.go:494:		GetOpenOrders				0.0%
nofx/trader/bitget/trader_orders.go:625:		PlaceLimitOrder				0.0%
nofx/trader/bitget/trader_orders.go:695:		CancelOrder				0.0%
nofx/trader/bitget/trader_positions.go:12:		GetPositions				0.0%
nofx/trader/bitget/trader_positions.go:96:		GetClosedPnL				0.0%
nofx/trader/bybit/order_sync.go:38:			GetTrades				0.0%
nofx/trader/bybit/order_sync.go:43:			getTradesViaHTTP			0.0%
nofx/trader/bybit/order_sync.go:106:			parseTradesResult			0.0%
nofx/trader/bybit/order_sync.go:178:			SyncOrdersFromBybit			0.0%
nofx/trader/bybit/order_sync.go:301:			StartOrderSync				0.0%
nofx/trader/bybit/trader.go:43:				NewBybitTrader				0.0%
nofx/trader/bybit/trader.go:80:				RoundTrip				0.0%
nofx/trader/bybit/trader.go:86:				getQtyStep				0.0%
nofx/trader/bybit/trader.go:144:			FormatQuantity				0.0%
nofx/trader/bybit/trader.go:169:			clearCache				0.0%
nofx/trader/bybit/trader.go:179:			parseOrderResult			0.0%
nofx/trader/bybit/trader_account.go:18:			GetBalance				0.0%
nofx/trader/bybit/trader_account.go:93:			GetClosedPnL				0.0%
nofx/trader/bybit/trader_account.go:99:			getClosedPnLViaHTTP			0.0%
nofx/trader/bybit/trader_account.go:160:		parseClosedPnLResult			0.0%
nofx/trader/bybit/trader_orders.go:16:			OpenLong				0.0%
nofx/trader/bybit/trader_orders.go:59:			OpenShort				0.0%
nofx/trader/bybit/trader_orders.go:102:			CloseLong				0.0%
nofx/trader/bybit/trader_orders.go:147:			CloseShort				0.0%
nofx/trader/bybit/trader_orders.go:192:			SetLeverage				0.0%
nofx/trader/bybit/trader_orders.go:217:			SetMarginMode				0.0%
nofx/trader/bybit/trader_orders.go:245:			GetMarketPrice				0.0%
nofx/trader/bybit/trader_orders.go:282:			SetStopLoss				0.0%
nofx/trader/bybit/trader_orders.go:328:			SetTakeProfit				0.0%
nofx/trader/bybit/trader_orders.go:374:			CancelStopLossOrders			0.0%
nofx/trader/bybit/trader_orders.go:379:			CancelTakeProfitOrders			0.0%
nofx/trader/bybit/trader_orders.go:384:			CancelAllOrders				0.0%
nofx/trader/bybit/trader_orders.go:399:			CancelStopOrders			0.0%
nofx/trader/bybit/trader_orders.go:409:			cancelConditionalOrders			0.0%
nofx/trader/bybit/trader_orders.go:466:			GetOrderStatus				0.0%
nofx/trader/bybit/trader_orders.go:527:			GetOpenOrders				0.0%
nofx/trader/bybit/trader_orders.go:589:			PlaceLimitOrder				0.0%
nofx/trader/bybit/trader_orders.go:664:			CancelOrder				0.0%
nofx/trader/bybit/trader_orders.go:686:			GetOrderBook				0.0%
nofx/trader/bybit/trader_positions.go:13:		GetPositions				0.0%
nofx/trader/gate/order_sync.go:34:			GetTrades				0.0%
nofx/trader/gate/order_sync.go:153:			SyncOrdersFromGate			0.0%
nofx/trader/gate/order_sync.go:294:			StartOrderSync				0.0%
nofx/trader/gate/trader.go:34:				NewGateTrader				100.0%
nofx/trader/gate/trader.go:58:				convertSymbol				83.3%
nofx/trader/gate/trader.go:72:				revertSymbol				100.0%
nofx/trader/gate/trader.go:77:				getContract				0.0%
nofx/trader/gate/trader.go:103:				clearCache				100.0%
nofx/trader/gate/trader_account.go:14:			GetBalance				0.0%
nofx/trader/gate/trader_account.go:50:			GetPositions				0.0%
nofx/trader/gate/trader_account.go:126:			GetClosedPnL				0.0%
nofx/trader/gate/trader_orders.go:16:			SetLeverage				0.0%
nofx/trader/gate/trader_orders.go:34:			SetMarginMode				0.0%
nofx/trader/gate/trader_orders.go:43:			OpenLong				0.0%
nofx/trader/gate/trader_orders.go:101:			OpenShort				0.0%
nofx/trader/gate/trader_orders.go:158:			CloseLong				0.0%
nofx/trader/gate/trader_orders.go:226:			CloseShort				0.0%
nofx/trader/gate/trader_orders.go:299:			GetMarketPrice				0.0%
nofx/trader/gate/trader_orders.go:320:			SetStopLoss				0.0%
nofx/trader/gate/trader_orders.go:372:			SetTakeProfit				0.0%
nofx/trader/gate/trader_orders.go:423:			CancelStopLossOrders			0.0%
nofx/trader/gate/trader_orders.go:428:			CancelTakeProfitOrders			0.0%
nofx/trader/gate/trader_orders.go:433:			cancelTriggerOrders			0.0%
nofx/trader/gate/trader_orders.go:458:			CancelAllOrders				0.0%
nofx/trader/gate/trader_orders.go:477:			CancelStopOrders			0.0%
nofx/trader/gate/trader_orders.go:484:			FormatQuantity				0.0%
nofx/trader/gate/trader_orders.go:502:			GetOrderStatus				0.0%
nofx/trader/gate/trader_orders.go:563:			GetOpenOrders				0.0%
nofx/trader/grid_regime.go:16:				classifyRegimeLevel			100.0%
nofx/trader/grid_regime.go:37:				getRegimeLeverageLimit			0.0%
nofx/trader/grid_regime.go:65:				getRegimePositionLimit			0.0%
nofx/trader/grid_regime.go:98:				detectBoxBreakout			75.0%
nofx/trader/grid_regime.go:147:				confirmBreakout				100.0%
nofx/trader/grid_regime.go:185:				getBreakoutAction			100.0%
nofx/trader/grid_regime.go:212:				determineGridDirection			84.6%
nofx/trader/grid_regime.go:252:				determineRecoveryDirection		100.0%
nofx/trader/grid_regime.go:282:				getBreakoutActionWithDirection		100.0%
nofx/trader/grid_regime.go:304:				shouldRecoverDirection			100.0%
nofx/trader/helpers.go:9:				SafeFloat64				0.0%
nofx/trader/helpers.go:37:				SafeString				0.0%
nofx/trader/helpers.go:54:				SafeInt					0.0%
nofx/trader/hyperliquid/order_sync.go:17:		SyncOrdersFromHyperliquid		0.0%
nofx/trader/hyperliquid/order_sync.go:139:		StartOrderSync				0.0%
nofx/trader/hyperliquid/trader.go:71:			isXyzDexAsset				0.0%
nofx/trader/hyperliquid/trader.go:88:			convertSymbolToHyperliquid		0.0%
nofx/trader/hyperliquid/trader.go:112:			absFloat				0.0%
nofx/trader/hyperliquid/trader.go:121:			NewHyperliquidTrader			0.0%
nofx/trader/hyperliquid/trader.go:233:			FormatQuantity				0.0%
nofx/trader/hyperliquid/trader.go:243:			getSzDecimals				80.0%
nofx/trader/hyperliquid/trader.go:265:			roundToSzDecimals			0.0%
nofx/trader/hyperliquid/trader.go:280:			roundPriceToSigfigs			0.0%
nofx/trader/hyperliquid/trader_account.go:17:		GetBalance				0.0%
nofx/trader/hyperliquid/trader_account.go:203:		getXYZDexBalance			0.0%
nofx/trader/hyperliquid/trader_account.go:270:		GetMarketPrice				0.0%
nofx/trader/hyperliquid/trader_account.go:297:		getXyzMarketPrice			0.0%
nofx/trader/hyperliquid/trader_account.go:358:		GetOrderStatus				0.0%
nofx/trader/hyperliquid/trader_account.go:405:		GetClosedPnL				0.0%
nofx/trader/hyperliquid/trader_account.go:456:		GetTrades				0.0%
nofx/trader/hyperliquid/trader_account.go:528:		GetOpenOrders				0.0%
nofx/trader/hyperliquid/trader_account.go:563:		GetOrderBook				0.0%
nofx/trader/hyperliquid/trader_orders.go:19:		OpenLong				0.0%
nofx/trader/hyperliquid/trader_orders.go:91:		OpenShort				0.0%
nofx/trader/hyperliquid/trader_orders.go:163:		CloseLong				0.0%
nofx/trader/hyperliquid/trader_orders.go:250:		CloseShort				0.0%
nofx/trader/hyperliquid/trader_orders.go:337:		CancelStopLossOrders			0.0%
nofx/trader/hyperliquid/trader_orders.go:345:		CancelTakeProfitOrders			0.0%
nofx/trader/hyperliquid/trader_orders.go:353:		CancelAllOrders				0.0%
nofx/trader/hyperliquid/trader_orders.go:385:		CancelStopOrders			0.0%
nofx/trader/hyperliquid/trader_orders.go:427:		cancelXyzOrders				0.0%
nofx/trader/hyperliquid/trader_orders.go:495:		cancelXyzOrder				0.0%
nofx/trader/hyperliquid/trader_orders.go:570:		floatToWireStr				0.0%
nofx/trader/hyperliquid/trader_orders.go:584:		placeXyzOrder				0.0%
nofx/trader/hyperliquid/trader_orders.go:746:		placeXyzTriggerOrder			0.0%
nofx/trader/hyperliquid/trader_orders.go:900:		SetStopLoss				0.0%
nofx/trader/hyperliquid/trader_orders.go:948:		SetTakeProfit				0.0%
nofx/trader/hyperliquid/trader_orders.go:997:		PlaceLimitOrder				0.0%
nofx/trader/hyperliquid/trader_orders.go:1059:		CancelOrder				0.0%
nofx/trader/hyperliquid/trader_positions.go:11:		GetPositions				0.0%
nofx/trader/hyperliquid/trader_positions.go:142:	SetMarginMode				0.0%
nofx/trader/hyperliquid/trader_positions.go:154:	SetLeverage				0.0%
nofx/trader/hyperliquid/trader_sync.go:15:		refreshMetaIfNeeded			0.0%
nofx/trader/hyperliquid/trader_sync.go:50:		fetchXyzMeta				0.0%
nofx/trader/hyperliquid/trader_sync.go:100:		getXyzSzDecimals			0.0%
nofx/trader/hyperliquid/trader_sync.go:127:		getXyzAssetIndex			0.0%
nofx/trader/indodax/trader.go:93:			NewIndodaxTrader			100.0%
nofx/trader/indodax/trader.go:105:			getNonce				100.0%
nofx/trader/indodax/trader.go:113:			sign					100.0%
nofx/trader/indodax/trader.go:120:			doPublicRequest				0.0%
nofx/trader/indodax/trader.go:147:			doPrivateRequest			0.0%
nofx/trader/indodax/trader.go:195:			convertSymbol				88.9%
nofx/trader/indodax/trader.go:218:			convertSymbolBack			100.0%
nofx/trader/indodax/trader.go:224:			getCoinFromSymbol			80.0%
nofx/trader/indodax/trader.go:234:			loadPairs				0.0%
nofx/trader/indodax/trader.go:269:			getPair					0.0%
nofx/trader/indodax/trader.go:293:			clearCache				100.0%
nofx/trader/indodax/trader.go:301:			parseFloat				72.7%
nofx/trader/indodax/trader_account.go:15:		GetBalance				0.0%
nofx/trader/indodax/trader_account.go:87:		GetPositions				0.0%
nofx/trader/indodax/trader_account.go:163:		GetClosedPnL				0.0%
nofx/trader/indodax/trader_orders.go:15:		OpenLong				0.0%
nofx/trader/indodax/trader_orders.go:58:		OpenShort				100.0%
nofx/trader/indodax/trader_orders.go:63:		CloseLong				0.0%
nofx/trader/indodax/trader_orders.go:119:		CloseShort				100.0%
nofx/trader/indodax/trader_orders.go:124:		SetLeverage				100.0%
nofx/trader/indodax/trader_orders.go:130:		SetMarginMode				100.0%
nofx/trader/indodax/trader_orders.go:136:		GetMarketPrice				0.0%
nofx/trader/indodax/trader_orders.go:158:		SetStopLoss				100.0%
nofx/trader/indodax/trader_orders.go:163:		SetTakeProfit				100.0%
nofx/trader/indodax/trader_orders.go:168:		CancelStopLossOrders			0.0%
nofx/trader/indodax/trader_orders.go:173:		CancelTakeProfitOrders			0.0%
nofx/trader/indodax/trader_orders.go:178:		CancelAllOrders				0.0%
nofx/trader/indodax/trader_orders.go:224:		CancelStopOrders			0.0%
nofx/trader/indodax/trader_orders.go:229:		FormatQuantity				0.0%
nofx/trader/indodax/trader_orders.go:249:		GetOrderStatus				0.0%
nofx/trader/indodax/trader_orders.go:301:		GetOpenOrders				0.0%
nofx/trader/interface.go:27:				NewGridTraderAdapter			0.0%
nofx/trader/interface.go:33:				PlaceLimitOrder				0.0%
nofx/trader/interface.go:67:				CancelOrder				0.0%
nofx/trader/interface.go:85:				GetOrderBook				0.0%
nofx/trader/kucoin/order_sync.go:30:			GetTrades				0.0%
nofx/trader/kucoin/order_sync.go:162:			GetRecentTrades				0.0%
nofx/trader/kucoin/order_sync.go:254:			ToTradeRecord				100.0%
nofx/trader/kucoin/order_sync.go:279:			SyncOrdersFromKuCoin			0.0%
nofx/trader/kucoin/order_sync.go:402:			StartOrderSync				0.0%
nofx/trader/kucoin/trader.go:98:			NewKuCoinTrader				0.0%
nofx/trader/kucoin/trader.go:123:			syncServerTime				0.0%
nofx/trader/kucoin/trader.go:161:			getTimestamp				0.0%
nofx/trader/kucoin/trader.go:172:			sign					0.0%
nofx/trader/kucoin/trader.go:181:			signPassphrase				0.0%
nofx/trader/kucoin/trader.go:188:			signPartner				0.0%
nofx/trader/kucoin/trader.go:196:			doRequest				0.0%
nofx/trader/kucoin/trader.go:261:			convertSymbol				0.0%
nofx/trader/kucoin/trader.go:273:			convertSymbolBack			0.0%
nofx/trader/kucoin/trader.go:284:			getContract				0.0%
nofx/trader/kucoin/trader.go:350:			quantityToLots				0.0%
nofx/trader/kucoin/trader_account.go:11:		GetBalance				0.0%
nofx/trader/kucoin/trader_orders.go:15:			OpenLong				0.0%
nofx/trader/kucoin/trader_orders.go:70:			OpenShort				0.0%
nofx/trader/kucoin/trader_orders.go:125:		queryOrderFillPrice			0.0%
nofx/trader/kucoin/trader_orders.go:150:		CloseLong				0.0%
nofx/trader/kucoin/trader_orders.go:231:		CloseShort				0.0%
nofx/trader/kucoin/trader_orders.go:312:		GetMarketPrice				0.0%
nofx/trader/kucoin/trader_orders.go:334:		SetStopLoss				0.0%
nofx/trader/kucoin/trader_orders.go:374:		SetTakeProfit				0.0%
nofx/trader/kucoin/trader_orders.go:414:		CancelStopLossOrders			0.0%
nofx/trader/kucoin/trader_orders.go:419:		CancelTakeProfitOrders			0.0%
nofx/trader/kucoin/trader_orders.go:424:		cancelStopOrdersByType			0.0%
nofx/trader/kucoin/trader_orders.go:476:		CancelStopOrders			0.0%
nofx/trader/kucoin/trader_orders.go:494:		CancelAllOrders				0.0%
nofx/trader/kucoin/trader_orders.go:511:		SetMarginMode				0.0%
nofx/trader/kucoin/trader_orders.go:518:		SetLeverage				0.0%
nofx/trader/kucoin/trader_orders.go:541:		FormatQuantity				0.0%
nofx/trader/kucoin/trader_orders.go:557:		GetOrderStatus				0.0%
nofx/trader/kucoin/trader_orders.go:597:		GetClosedPnL				0.0%
nofx/trader/kucoin/trader_orders.go:678:		GetOpenOrders				0.0%
nofx/trader/kucoin/trader_positions.go:10:		GetPositions				0.0%
nofx/trader/kucoin/trader_positions.go:110:		InvalidatePositionCache			0.0%
nofx/trader/lighter/account.go:15:			getFullAccountInfo			0.0%
nofx/trader/lighter/account.go:85:			GetBalance				0.0%
nofx/trader/lighter/account.go:108:			GetAccountBalance			0.0%
nofx/trader/lighter/account.go:160:			GetPositions				0.0%
nofx/trader/lighter/account.go:186:			GetPositionsRaw				0.0%
nofx/trader/lighter/account.go:267:			GetPosition				0.0%
nofx/trader/lighter/account.go:284:			GetMarketPrice				0.0%
nofx/trader/lighter/account.go:353:			FormatQuantity				0.0%
nofx/trader/lighter/account.go:361:			GetOrderBook				0.0%
nofx/trader/lighter/order_sync.go:17:			SyncOrdersFromLighter			0.0%
nofx/trader/lighter/order_sync.go:148:			StartOrderSync				0.0%
nofx/trader/lighter/orders.go:17:			SetStopLoss				0.0%
nofx/trader/lighter/orders.go:39:			SetTakeProfit				0.0%
nofx/trader/lighter/orders.go:60:			CancelAllOrders				0.0%
nofx/trader/lighter/orders.go:95:			GetOrderStatus				0.0%
nofx/trader/lighter/orders.go:159:			CancelStopLossOrders			0.0%
nofx/trader/lighter/orders.go:166:			CancelTakeProfitOrders			0.0%
nofx/trader/lighter/orders.go:173:			CancelStopOrders			0.0%
nofx/trader/lighter/orders.go:204:			GetActiveOrders				0.0%
nofx/trader/lighter/orders.go:270:			CancelOrder				0.0%
nofx/trader/lighter/orders.go:329:			getOrderIndexByTxHash			0.0%
nofx/trader/lighter/trader.go:102:			NewLighterTraderV2			0.0%
nofx/trader/lighter/trader.go:183:			initializeAccount			0.0%
nofx/trader/lighter/trader.go:200:			getAccountByL1Address			0.0%
nofx/trader/lighter/trader.go:274:			getApiKeyFromServer			0.0%
nofx/trader/lighter/trader.go:315:			checkClient				0.0%
nofx/trader/lighter/trader.go:342:			GenerateAndRegisterAPIKey		0.0%
nofx/trader/lighter/trader.go:354:			refreshAuthToken			0.0%
nofx/trader/lighter/trader.go:376:			ensureAuthToken				0.0%
nofx/trader/lighter/trader.go:390:			GetExchangeType				0.0%
nofx/trader/lighter/trader.go:395:			Cleanup					0.0%
nofx/trader/lighter/trader.go:402:			GetClosedPnL				0.0%
nofx/trader/lighter/trader.go:451:			GetTrades				0.0%
nofx/trader/lighter/trading.go:20:			OpenLong				0.0%
nofx/trader/lighter/trading.go:61:			OpenShort				0.0%
nofx/trader/lighter/trading.go:102:			CloseLong				0.0%
nofx/trader/lighter/trading.go:146:			CloseShort				0.0%
nofx/trader/lighter/trading.go:190:			CreateOrder				0.0%
nofx/trader/lighter/trading.go:352:			submitOrder				0.0%
nofx/trader/lighter/trading.go:443:			pollForOrderIndex			0.0%
nofx/trader/lighter/trading.go:471:			normalizeSymbol				0.0%
nofx/trader/lighter/trading.go:482:			getMarketInfo				0.0%
nofx/trader/lighter/trading.go:503:			getMarketIndex				0.0%
nofx/trader/lighter/trading.go:523:			fetchMarketList				0.0%
nofx/trader/lighter/trading.go:598:			getFallbackMarketIndex			0.0%
nofx/trader/lighter/trading.go:625:			SetLeverage				0.0%
nofx/trader/lighter/trading.go:687:			SetMarginMode				0.0%
nofx/trader/lighter/trading.go:752:			CreateStopOrder				0.0%
nofx/trader/lighter/trading.go:843:			boolToUint8				0.0%
nofx/trader/lighter/trading.go:851:			pow10					0.0%
nofx/trader/lighter/trading.go:860:			GetOpenOrders				0.0%
nofx/trader/lighter/trading.go:929:			PlaceLimitOrder				0.0%
nofx/trader/lighter/types.go:107:			parseFloat				0.0%
nofx/trader/lighter/types.go:118:			ToChecksumAddress			0.0%
nofx/trader/okx/order_sync.go:35:			GetTrades				0.0%
nofx/trader/okx/order_sync.go:152:			SyncOrdersFromOKX			0.0%
nofx/trader/okx/order_sync.go:275:			StartOrderSync				0.0%
nofx/trader/okx/trader.go:98:				genOkxClOrdID				0.0%
nofx/trader/okx/trader.go:112:				NewOKXTrader				0.0%
nofx/trader/okx/trader.go:147:				detectPositionMode			0.0%
nofx/trader/okx/trader.go:170:				setPositionMode				0.0%
nofx/trader/okx/trader.go:190:				sign					0.0%
nofx/trader/okx/trader.go:198:				doRequest				0.0%
nofx/trader/okx/trader.go:252:				convertSymbol				0.0%
nofx/trader/okx/trader.go:260:				convertSymbolBack			0.0%
nofx/trader/okx/trader.go:269:				FormatQuantity				0.0%
nofx/trader/okx/trader.go:281:				formatSize				0.0%
nofx/trader/okx/trader_account.go:14:			GetBalance				0.0%
nofx/trader/okx/trader_account.go:84:			SetMarginMode				0.0%
nofx/trader/okx/trader_account.go:117:			SetLeverage				0.0%
nofx/trader/okx/trader_account.go:144:			GetMarketPrice				0.0%
nofx/trader/okx/trader_account.go:175:			GetClosedPnL				0.0%
nofx/trader/okx/trader_orders.go:13:			OpenLong				0.0%
nofx/trader/okx/trader_orders.go:90:			OpenShort				0.0%
nofx/trader/okx/trader_orders.go:167:			CloseLong				0.0%
nofx/trader/okx/trader_orders.go:278:			CloseShort				0.0%
nofx/trader/okx/trader_orders.go:392:			SetStopLoss				0.0%
nofx/trader/okx/trader_orders.go:435:			SetTakeProfit				0.0%
nofx/trader/okx/trader_orders.go:478:			CancelStopLossOrders			0.0%
nofx/trader/okx/trader_orders.go:483:			CancelTakeProfitOrders			0.0%
nofx/trader/okx/trader_orders.go:488:			cancelAlgoOrders			0.0%
nofx/trader/okx/trader_orders.go:532:			CancelAllOrders				0.0%
nofx/trader/okx/trader_orders.go:571:			CancelStopOrders			0.0%
nofx/trader/okx/trader_orders.go:576:			GetOrderStatus				0.0%
nofx/trader/okx/trader_orders.go:649:			GetOpenOrders				0.0%
nofx/trader/okx/trader_orders.go:790:			PlaceLimitOrder				0.0%
nofx/trader/okx/trader_orders.go:878:			CancelOrder				0.0%
nofx/trader/okx/trader_orders.go:897:			GetOrderBook				0.0%
nofx/trader/okx/trader_positions.go:12:			GetPositions				0.0%
nofx/trader/okx/trader_positions.go:121:		InvalidatePositionCache			0.0%
nofx/trader/okx/trader_positions.go:129:		getInstrument				0.0%
nofx/trader/position_rebuild.go:42:			RebuildPositionsFromTrades		0.0%
nofx/trader/position_rebuild.go:92:			determinePositionSide			0.0%
nofx/trader/position_rebuild.go:122:			buildClosedPosition			0.0%
nofx/trader/position_snapshot.go:16:			CreatePositionSnapshot			0.0%
nofx/trader/testutil/test_suite.go:25:			NewTraderTestSuite			0.0%
nofx/trader/testutil/test_suite.go:34:			Cleanup					0.0%
nofx/trader/testutil/test_suite.go:42:			RunAllTests				0.0%
nofx/trader/testutil/test_suite.go:71:			TestGetBalance				0.0%
nofx/trader/testutil/test_suite.go:104:			TestGetPositions			0.0%
nofx/trader/testutil/test_suite.go:141:			TestGetMarketPrice			0.0%
nofx/trader/testutil/test_suite.go:180:			TestSetLeverage				0.0%
nofx/trader/testutil/test_suite.go:214:			TestSetMarginMode			0.0%
nofx/trader/testutil/test_suite.go:248:			TestFormatQuantity			0.0%
nofx/trader/testutil/test_suite.go:292:			TestCancelAllOrders			0.0%
nofx/trader/testutil/test_suite.go:322:			TestOpenLong				0.0%
nofx/trader/testutil/test_suite.go:371:			TestOpenShort				0.0%
nofx/trader/testutil/test_suite.go:420:			TestCloseLong				0.0%
nofx/trader/testutil/test_suite.go:463:			TestCloseShort				0.0%
nofx/trader/testutil/test_suite.go:510:			TestSetStopLoss				0.0%
nofx/trader/testutil/test_suite.go:550:			TestSetTakeProfit			0.0%
nofx/trader/testutil/test_suite.go:590:			TestCancelStopOrders			0.0%
nofx/trader/testutil/test_suite.go:616:			TestCancelStopLossOrders		0.0%
nofx/trader/testutil/test_suite.go:642:			TestCancelTakeProfitOrders		0.0%
nofx/trader/types/interface.go:169:			NewGridTraderAdapter			0.0%
nofx/trader/types/interface.go:175:			PlaceLimitOrder				0.0%
nofx/trader/types/interface.go:209:			CancelOrder				0.0%
nofx/trader/types/interface.go:227:			GetOrderBook				0.0%
nofx/wallet/usdc.go:22:					QueryUSDCBalance			0.0%
nofx/wallet/usdc.go:33:					QueryUSDCBalanceStr			0.0%
total:							(statements)				10.0%

Coverage Guidelines

  • 🟢 >= 80%: Excellent
  • 🟡 >= 60%: Good
  • 🟠 >= 40%: Fair
  • 🔴 < 40%: Needs improvement

This is an automated coverage report. The coverage requirement is advisory and does not block PR merging.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants