@one_deploy/sdk 1.2.1 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/{ForexPoolDataGenerator--__twRwl.d.mts → ForexPoolDataGenerator-JxTPpJPz.d.mts} +1 -1
  2. package/dist/{ForexPoolDataGenerator-eUgwsU_B.d.ts → ForexPoolDataGenerator-qwWv6sCE.d.ts} +1 -1
  3. package/dist/{OneForexTradeHistory-TlKxjbFF.d.ts → OneForexTradeHistory-BE4rJH5t.d.ts} +1 -1
  4. package/dist/{OneForexTradeHistory-iDySMcw0.d.mts → OneForexTradeHistory-DbuHXRy0.d.mts} +1 -1
  5. package/dist/components/index.d.mts +2 -2
  6. package/dist/components/index.d.ts +2 -2
  7. package/dist/config/index.d.mts +1 -1
  8. package/dist/config/index.d.ts +1 -1
  9. package/dist/{console-BfTMA7ah.d.mts → console-Dvf-N9Gr.d.mts} +7 -0
  10. package/dist/{console-BfTMA7ah.d.ts → console-Dvf-N9Gr.d.ts} +7 -0
  11. package/dist/hooks/index.d.mts +2 -2
  12. package/dist/hooks/index.d.ts +2 -2
  13. package/dist/hooks/index.js +385 -24
  14. package/dist/hooks/index.js.map +1 -1
  15. package/dist/hooks/index.mjs +385 -24
  16. package/dist/hooks/index.mjs.map +1 -1
  17. package/dist/index.d.mts +4 -4
  18. package/dist/index.d.ts +4 -4
  19. package/dist/index.js +385 -24
  20. package/dist/index.js.map +1 -1
  21. package/dist/index.mjs +385 -24
  22. package/dist/index.mjs.map +1 -1
  23. package/dist/providers/index.d.mts +1 -1
  24. package/dist/providers/index.d.ts +1 -1
  25. package/dist/react-native.d.mts +4 -4
  26. package/dist/react-native.d.ts +4 -4
  27. package/dist/react-native.js +225 -22
  28. package/dist/react-native.js.map +1 -1
  29. package/dist/react-native.mjs +225 -22
  30. package/dist/react-native.mjs.map +1 -1
  31. package/dist/services/index.d.mts +2 -2
  32. package/dist/services/index.d.ts +2 -2
  33. package/dist/services/index.js +225 -22
  34. package/dist/services/index.js.map +1 -1
  35. package/dist/services/index.mjs +225 -22
  36. package/dist/services/index.mjs.map +1 -1
  37. package/dist/types/index.d.mts +1 -1
  38. package/dist/types/index.d.ts +1 -1
  39. package/dist/{useForexTrading-ZgW_G40Q.d.ts → useForexTrading-CA2DPQVf.d.ts} +1 -1
  40. package/dist/{useForexTrading-BleeSor8.d.mts → useForexTrading-I7nIQyog.d.mts} +1 -1
  41. package/package.json +1 -1
  42. package/src/services/forex/BotSimulationEngine.ts +447 -19
  43. package/src/services/forex/index.ts +12 -1
@@ -1,4 +1,4 @@
1
- export { M as AGENT_STATUS_COLORS, G as AIDecision, A as AILogType, D as AIPosition, U as AIQuantConsoleOptions, y as AI_LOG_COLORS, V as AgentConsoleOptions, L as AgentStatus, a as BotLogEntry, B as BotLogType, c as BotState, N as CombinedLogEntry, K as ConsoleMetrics, Y as DEFAULT_CONSOLE_METRICS, W as DEFAULT_CONSOLE_OPTIONS, X as DEFAULT_RISK_STATUS, E as DecisionAction, v as FOREX_AGENT, F as FOREX_CAPITAL_SPLIT, h as FOREX_CURRENCY_PAIRS, f as FOREX_CYCLE_OPTIONS, z as FOREX_LOG_COLORS, k as FOREX_POOL_DEFAULTS, u as ForexAgent, g as ForexCurrencyPair, e as ForexCycleOption, p as ForexInvestment, t as ForexLogEntry, s as ForexLogType, j as ForexPool, n as ForexPoolDailySnapshot, m as ForexPoolTransaction, l as ForexPoolTransactionType, i as ForexPoolType, o as ForexPosition, r as ForexTradeRecord, q as ForexTradeStatus, I as IndicatorSnapshot, P as PositionSide, C as PositionStatus, H as RISK_LEVEL_COLORS, R as RiskStatus, S as StrategyPersonality, J as TRADING_STATUS_COLORS, Q as TradingConsoleOptions, O as TradingConsoleState, T as TradingStatus, w as calculateForexNetProfit, Z as calculateRiskLevel, d as computePoolAllocations, x as estimateForexProfit, $ as formatPercent, _ as formatPnl } from '../console-BfTMA7ah.mjs';
1
+ export { M as AGENT_STATUS_COLORS, G as AIDecision, A as AILogType, D as AIPosition, U as AIQuantConsoleOptions, y as AI_LOG_COLORS, V as AgentConsoleOptions, L as AgentStatus, a as BotLogEntry, B as BotLogType, c as BotState, N as CombinedLogEntry, K as ConsoleMetrics, Y as DEFAULT_CONSOLE_METRICS, W as DEFAULT_CONSOLE_OPTIONS, X as DEFAULT_RISK_STATUS, E as DecisionAction, v as FOREX_AGENT, F as FOREX_CAPITAL_SPLIT, h as FOREX_CURRENCY_PAIRS, f as FOREX_CYCLE_OPTIONS, z as FOREX_LOG_COLORS, k as FOREX_POOL_DEFAULTS, u as ForexAgent, g as ForexCurrencyPair, e as ForexCycleOption, p as ForexInvestment, t as ForexLogEntry, s as ForexLogType, j as ForexPool, n as ForexPoolDailySnapshot, m as ForexPoolTransaction, l as ForexPoolTransactionType, i as ForexPoolType, o as ForexPosition, r as ForexTradeRecord, q as ForexTradeStatus, I as IndicatorSnapshot, P as PositionSide, C as PositionStatus, H as RISK_LEVEL_COLORS, R as RiskStatus, S as StrategyPersonality, J as TRADING_STATUS_COLORS, Q as TradingConsoleOptions, O as TradingConsoleState, T as TradingStatus, w as calculateForexNetProfit, Z as calculateRiskLevel, d as computePoolAllocations, x as estimateForexProfit, $ as formatPercent, _ as formatPnl } from '../console-Dvf-N9Gr.mjs';
2
2
 
3
3
  type StrategyCategory$1 = 'conservative' | 'balanced' | 'aggressive' | 'hedge' | 'arbitrage' | 'trend' | 'grid' | 'dca';
4
4
  type OrderStatus = 'pending' | 'active' | 'paused' | 'completed' | 'cancelled' | 'pending_redemption' | 'redeemed';
@@ -1,4 +1,4 @@
1
- export { M as AGENT_STATUS_COLORS, G as AIDecision, A as AILogType, D as AIPosition, U as AIQuantConsoleOptions, y as AI_LOG_COLORS, V as AgentConsoleOptions, L as AgentStatus, a as BotLogEntry, B as BotLogType, c as BotState, N as CombinedLogEntry, K as ConsoleMetrics, Y as DEFAULT_CONSOLE_METRICS, W as DEFAULT_CONSOLE_OPTIONS, X as DEFAULT_RISK_STATUS, E as DecisionAction, v as FOREX_AGENT, F as FOREX_CAPITAL_SPLIT, h as FOREX_CURRENCY_PAIRS, f as FOREX_CYCLE_OPTIONS, z as FOREX_LOG_COLORS, k as FOREX_POOL_DEFAULTS, u as ForexAgent, g as ForexCurrencyPair, e as ForexCycleOption, p as ForexInvestment, t as ForexLogEntry, s as ForexLogType, j as ForexPool, n as ForexPoolDailySnapshot, m as ForexPoolTransaction, l as ForexPoolTransactionType, i as ForexPoolType, o as ForexPosition, r as ForexTradeRecord, q as ForexTradeStatus, I as IndicatorSnapshot, P as PositionSide, C as PositionStatus, H as RISK_LEVEL_COLORS, R as RiskStatus, S as StrategyPersonality, J as TRADING_STATUS_COLORS, Q as TradingConsoleOptions, O as TradingConsoleState, T as TradingStatus, w as calculateForexNetProfit, Z as calculateRiskLevel, d as computePoolAllocations, x as estimateForexProfit, $ as formatPercent, _ as formatPnl } from '../console-BfTMA7ah.js';
1
+ export { M as AGENT_STATUS_COLORS, G as AIDecision, A as AILogType, D as AIPosition, U as AIQuantConsoleOptions, y as AI_LOG_COLORS, V as AgentConsoleOptions, L as AgentStatus, a as BotLogEntry, B as BotLogType, c as BotState, N as CombinedLogEntry, K as ConsoleMetrics, Y as DEFAULT_CONSOLE_METRICS, W as DEFAULT_CONSOLE_OPTIONS, X as DEFAULT_RISK_STATUS, E as DecisionAction, v as FOREX_AGENT, F as FOREX_CAPITAL_SPLIT, h as FOREX_CURRENCY_PAIRS, f as FOREX_CYCLE_OPTIONS, z as FOREX_LOG_COLORS, k as FOREX_POOL_DEFAULTS, u as ForexAgent, g as ForexCurrencyPair, e as ForexCycleOption, p as ForexInvestment, t as ForexLogEntry, s as ForexLogType, j as ForexPool, n as ForexPoolDailySnapshot, m as ForexPoolTransaction, l as ForexPoolTransactionType, i as ForexPoolType, o as ForexPosition, r as ForexTradeRecord, q as ForexTradeStatus, I as IndicatorSnapshot, P as PositionSide, C as PositionStatus, H as RISK_LEVEL_COLORS, R as RiskStatus, S as StrategyPersonality, J as TRADING_STATUS_COLORS, Q as TradingConsoleOptions, O as TradingConsoleState, T as TradingStatus, w as calculateForexNetProfit, Z as calculateRiskLevel, d as computePoolAllocations, x as estimateForexProfit, $ as formatPercent, _ as formatPnl } from '../console-Dvf-N9Gr.js';
2
2
 
3
3
  type StrategyCategory$1 = 'conservative' | 'balanced' | 'aggressive' | 'hedge' | 'arbitrage' | 'trend' | 'grid' | 'dca';
4
4
  type OrderStatus = 'pending' | 'active' | 'paused' | 'completed' | 'cancelled' | 'pending_redemption' | 'redeemed';
@@ -1,4 +1,4 @@
1
- import { j as ForexPool, p as ForexInvestment, t as ForexLogEntry, m as ForexPoolTransaction, i as ForexPoolType, n as ForexPoolDailySnapshot, F as FOREX_CAPITAL_SPLIT, v as FOREX_AGENT, h as FOREX_CURRENCY_PAIRS, f as FOREX_CYCLE_OPTIONS, d as computePoolAllocations, x as estimateForexProfit } from './console-BfTMA7ah.js';
1
+ import { j as ForexPool, p as ForexInvestment, t as ForexLogEntry, m as ForexPoolTransaction, i as ForexPoolType, n as ForexPoolDailySnapshot, F as FOREX_CAPITAL_SPLIT, v as FOREX_AGENT, h as FOREX_CURRENCY_PAIRS, f as FOREX_CYCLE_OPTIONS, d as computePoolAllocations, x as estimateForexProfit } from './console-Dvf-N9Gr.js';
2
2
 
3
3
  /** Set the access token for authenticated forex API calls */
4
4
  declare function setForexAccessToken(token: string): void;
@@ -1,4 +1,4 @@
1
- import { j as ForexPool, p as ForexInvestment, t as ForexLogEntry, m as ForexPoolTransaction, i as ForexPoolType, n as ForexPoolDailySnapshot, F as FOREX_CAPITAL_SPLIT, v as FOREX_AGENT, h as FOREX_CURRENCY_PAIRS, f as FOREX_CYCLE_OPTIONS, d as computePoolAllocations, x as estimateForexProfit } from './console-BfTMA7ah.mjs';
1
+ import { j as ForexPool, p as ForexInvestment, t as ForexLogEntry, m as ForexPoolTransaction, i as ForexPoolType, n as ForexPoolDailySnapshot, F as FOREX_CAPITAL_SPLIT, v as FOREX_AGENT, h as FOREX_CURRENCY_PAIRS, f as FOREX_CYCLE_OPTIONS, d as computePoolAllocations, x as estimateForexProfit } from './console-Dvf-N9Gr.mjs';
2
2
 
3
3
  /** Set the access token for authenticated forex API calls */
4
4
  declare function setForexAccessToken(token: string): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@one_deploy/sdk",
3
- "version": "1.2.1",
3
+ "version": "1.2.2",
4
4
  "description": "ONE Ecosystem SDK - Shared services, types, utilities, and React providers",
5
5
  "files": [
6
6
  "dist",
@@ -80,6 +80,224 @@ export interface StrategyPersonality {
80
80
  riskTolerance: 'low' | 'medium' | 'high';
81
81
  preferredPairs: string[];
82
82
  rsiBias: number;
83
+ // Yield configuration
84
+ tier: InvestmentTier;
85
+ dailyYieldMin: number; // Min daily interest rate (%)
86
+ dailyYieldMax: number; // Max daily interest rate (%)
87
+ description: string;
88
+ category: StrategyCategory;
89
+ }
90
+
91
+ export type StrategyCategory =
92
+ | 'conservative' // 保守型 - 稳健收益
93
+ | 'balanced' // 平衡型 - 风险收益均衡
94
+ | 'growth' // 成长型 - 较高收益
95
+ | 'aggressive' // 激进型 - 高风险高收益
96
+ | 'quantitative'; // 量化型 - AI驱动
97
+
98
+ export type InvestmentTier = 'starter' | 'basic' | 'standard' | 'premium' | 'elite' | 'vip';
99
+
100
+ // ── Investment Tier Configuration ─────────────────────────────────────────────
101
+
102
+ export interface TierConfig {
103
+ id: InvestmentTier;
104
+ name: string;
105
+ nameCn: string;
106
+ minInvestment: number;
107
+ maxInvestment: number;
108
+ color: string;
109
+ icon: string;
110
+ }
111
+
112
+ export const INVESTMENT_TIERS: Record<InvestmentTier, TierConfig> = {
113
+ starter: {
114
+ id: 'starter',
115
+ name: 'Starter',
116
+ nameCn: '入门版',
117
+ minInvestment: 100,
118
+ maxInvestment: 999,
119
+ color: '#6B7280',
120
+ icon: '🌱',
121
+ },
122
+ basic: {
123
+ id: 'basic',
124
+ name: 'Basic',
125
+ nameCn: '基础版',
126
+ minInvestment: 1000,
127
+ maxInvestment: 4999,
128
+ color: '#3B82F6',
129
+ icon: '📊',
130
+ },
131
+ standard: {
132
+ id: 'standard',
133
+ name: 'Standard',
134
+ nameCn: '标准版',
135
+ minInvestment: 5000,
136
+ maxInvestment: 19999,
137
+ color: '#10B981',
138
+ icon: '💎',
139
+ },
140
+ premium: {
141
+ id: 'premium',
142
+ name: 'Premium',
143
+ nameCn: '高级版',
144
+ minInvestment: 20000,
145
+ maxInvestment: 49999,
146
+ color: '#8B5CF6',
147
+ icon: '👑',
148
+ },
149
+ elite: {
150
+ id: 'elite',
151
+ name: 'Elite',
152
+ nameCn: '精英版',
153
+ minInvestment: 50000,
154
+ maxInvestment: 99999,
155
+ color: '#F59E0B',
156
+ icon: '🏆',
157
+ },
158
+ vip: {
159
+ id: 'vip',
160
+ name: 'VIP',
161
+ nameCn: 'VIP专属',
162
+ minInvestment: 100000,
163
+ maxInvestment: Infinity,
164
+ color: '#EF4444',
165
+ icon: '🔥',
166
+ },
167
+ };
168
+
169
+ // ── Investment Cycle Configuration ────────────────────────────────────────────
170
+
171
+ export interface CycleConfig {
172
+ id: string;
173
+ days: number;
174
+ name: string;
175
+ nameCn: string;
176
+ profitSharePercent: number; // Platform takes this %, user gets (100 - this)%
177
+ bonusMultiplier: number; // Bonus yield multiplier for longer cycles
178
+ earlyWithdrawPenalty: number; // Penalty % for early withdrawal
179
+ }
180
+
181
+ export const INVESTMENT_CYCLES: CycleConfig[] = [
182
+ {
183
+ id: 'flexible',
184
+ days: 0,
185
+ name: 'Flexible',
186
+ nameCn: '灵活期',
187
+ profitSharePercent: 30, // Platform 30%, User 70%
188
+ bonusMultiplier: 1.0,
189
+ earlyWithdrawPenalty: 0,
190
+ },
191
+ {
192
+ id: 'week',
193
+ days: 7,
194
+ name: '7 Days',
195
+ nameCn: '7天期',
196
+ profitSharePercent: 25, // Platform 25%, User 75%
197
+ bonusMultiplier: 1.1,
198
+ earlyWithdrawPenalty: 5,
199
+ },
200
+ {
201
+ id: 'biweek',
202
+ days: 14,
203
+ name: '14 Days',
204
+ nameCn: '14天期',
205
+ profitSharePercent: 22, // Platform 22%, User 78%
206
+ bonusMultiplier: 1.2,
207
+ earlyWithdrawPenalty: 8,
208
+ },
209
+ {
210
+ id: 'month',
211
+ days: 30,
212
+ name: '30 Days',
213
+ nameCn: '30天期',
214
+ profitSharePercent: 20, // Platform 20%, User 80%
215
+ bonusMultiplier: 1.35,
216
+ earlyWithdrawPenalty: 10,
217
+ },
218
+ {
219
+ id: 'quarter',
220
+ days: 90,
221
+ name: '90 Days',
222
+ nameCn: '90天期',
223
+ profitSharePercent: 15, // Platform 15%, User 85%
224
+ bonusMultiplier: 1.5,
225
+ earlyWithdrawPenalty: 15,
226
+ },
227
+ {
228
+ id: 'halfyear',
229
+ days: 180,
230
+ name: '180 Days',
231
+ nameCn: '180天期',
232
+ profitSharePercent: 12, // Platform 12%, User 88%
233
+ bonusMultiplier: 1.8,
234
+ earlyWithdrawPenalty: 20,
235
+ },
236
+ {
237
+ id: 'year',
238
+ days: 365,
239
+ name: '365 Days',
240
+ nameCn: '365天期',
241
+ profitSharePercent: 10, // Platform 10%, User 90%
242
+ bonusMultiplier: 2.0,
243
+ earlyWithdrawPenalty: 25,
244
+ },
245
+ ];
246
+
247
+ // ── Yield Calculator ──────────────────────────────────────────────────────────
248
+
249
+ export function calculateDailyYield(
250
+ strategy: StrategyPersonality,
251
+ tier: InvestmentTier,
252
+ cycle: CycleConfig
253
+ ): { grossYield: number; netYield: number; platformFee: number } {
254
+ // Base yield from strategy
255
+ const baseYield = (strategy.dailyYieldMin + strategy.dailyYieldMax) / 2;
256
+
257
+ // Tier bonus (higher tiers get slightly better rates)
258
+ const tierBonuses: Record<InvestmentTier, number> = {
259
+ starter: 0,
260
+ basic: 0.02,
261
+ standard: 0.05,
262
+ premium: 0.08,
263
+ elite: 0.12,
264
+ vip: 0.15,
265
+ };
266
+
267
+ // Calculate gross yield with bonuses
268
+ const grossYield = baseYield * cycle.bonusMultiplier * (1 + tierBonuses[tier]);
269
+
270
+ // Calculate platform fee and net yield
271
+ const platformFee = grossYield * (cycle.profitSharePercent / 100);
272
+ const netYield = grossYield - platformFee;
273
+
274
+ return { grossYield, netYield, platformFee };
275
+ }
276
+
277
+ export function estimateReturns(
278
+ principal: number,
279
+ strategy: StrategyPersonality,
280
+ tier: InvestmentTier,
281
+ cycle: CycleConfig
282
+ ): {
283
+ dailyReturn: number;
284
+ totalReturn: number;
285
+ finalAmount: number;
286
+ platformProfit: number;
287
+ userProfit: number;
288
+ apr: number;
289
+ } {
290
+ const { netYield, platformFee } = calculateDailyYield(strategy, tier, cycle);
291
+ const days = cycle.days || 30; // Default to 30 days for flexible
292
+
293
+ const dailyReturn = principal * (netYield / 100);
294
+ const totalReturn = dailyReturn * days;
295
+ const finalAmount = principal + totalReturn;
296
+ const platformProfit = principal * (platformFee / 100) * days;
297
+ const userProfit = totalReturn;
298
+ const apr = netYield * 365;
299
+
300
+ return { dailyReturn, totalReturn, finalAmount, platformProfit, userProfit, apr };
83
301
  }
84
302
 
85
303
  type LogCallback = (entry: BotLogEntry) => void;
@@ -87,12 +305,63 @@ type LogCallback = (entry: BotLogEntry) => void;
87
305
  // ── Strategy Personalities ─────────────────────────────────────────────────────
88
306
 
89
307
  export const STRATEGY_PERSONALITIES: StrategyPersonality[] = [
308
+ // ═══════════════════════════════════════════════════════════════════════════
309
+ // CONSERVATIVE STRATEGIES (保守型) - Low risk, stable returns
310
+ // ═══════════════════════════════════════════════════════════════════════════
311
+ {
312
+ id: 'stable-yield-01',
313
+ name: 'Stable Yield',
314
+ shortName: 'STB',
315
+ color: '#6B7280',
316
+ scanIntervalMin: 80000,
317
+ scanIntervalMax: 120000,
318
+ tradeFrequency: 0.15,
319
+ positionSizeMin: 5,
320
+ positionSizeMax: 15,
321
+ leverageMin: 1,
322
+ leverageMax: 3,
323
+ primaryIndicators: ['Bollinger', 'Volume'],
324
+ riskTolerance: 'low',
325
+ preferredPairs: ['BTC/USDT', 'ETH/USDT'],
326
+ rsiBias: 45,
327
+ tier: 'starter',
328
+ dailyYieldMin: 0.15,
329
+ dailyYieldMax: 0.25,
330
+ description: '稳健收益策略,低风险低波动,适合新手入门',
331
+ category: 'conservative',
332
+ },
90
333
  {
91
- id: 'balanced-01',
334
+ id: 'conservative-shield-01',
335
+ name: 'Conservative Shield',
336
+ shortName: 'CON',
337
+ color: '#10B981',
338
+ scanIntervalMin: 60000,
339
+ scanIntervalMax: 90000,
340
+ tradeFrequency: 0.25,
341
+ positionSizeMin: 10,
342
+ positionSizeMax: 20,
343
+ leverageMin: 2,
344
+ leverageMax: 5,
345
+ primaryIndicators: ['Bollinger', 'Volume', 'RSI'],
346
+ riskTolerance: 'low',
347
+ preferredPairs: ['BTC/USDT', 'ETH/USDT'],
348
+ rsiBias: 45,
349
+ tier: 'basic',
350
+ dailyYieldMin: 0.25,
351
+ dailyYieldMax: 0.40,
352
+ description: '保守防御策略,注重资金安全,稳定收益',
353
+ category: 'conservative',
354
+ },
355
+
356
+ // ═══════════════════════════════════════════════════════════════════════════
357
+ // BALANCED STRATEGIES (平衡型) - Moderate risk, balanced returns
358
+ // ═══════════════════════════════════════════════════════════════════════════
359
+ {
360
+ id: 'balanced-alpha-01',
92
361
  name: 'Balanced Alpha',
93
362
  shortName: 'BAL',
94
363
  color: '#3B82F6',
95
- scanIntervalMin: 45000, // 45-70s between cycles (slower for readability)
364
+ scanIntervalMin: 45000,
96
365
  scanIntervalMax: 70000,
97
366
  tradeFrequency: 0.4,
98
367
  positionSizeMin: 15,
@@ -103,30 +372,92 @@ export const STRATEGY_PERSONALITIES: StrategyPersonality[] = [
103
372
  riskTolerance: 'medium',
104
373
  preferredPairs: ['BTC/USDT', 'ETH/USDT', 'SOL/USDT'],
105
374
  rsiBias: 50,
375
+ tier: 'standard',
376
+ dailyYieldMin: 0.40,
377
+ dailyYieldMax: 0.65,
378
+ description: '平衡型策略,风险收益均衡,适合稳健投资者',
379
+ category: 'balanced',
106
380
  },
107
381
  {
108
- id: 'conservative-01',
109
- name: 'Conservative Shield',
110
- shortName: 'CON',
111
- color: '#10B981',
112
- scanIntervalMin: 60000, // 60-90s between cycles (slower for readability)
113
- scanIntervalMax: 90000,
114
- tradeFrequency: 0.25,
115
- positionSizeMin: 10,
116
- positionSizeMax: 20,
117
- leverageMin: 2,
118
- leverageMax: 5,
119
- primaryIndicators: ['Bollinger', 'Volume'],
120
- riskTolerance: 'low',
121
- preferredPairs: ['BTC/USDT', 'ETH/USDT'],
122
- rsiBias: 45,
382
+ id: 'smart-rebalance-01',
383
+ name: 'Smart Rebalance',
384
+ shortName: 'SRB',
385
+ color: '#06B6D4',
386
+ scanIntervalMin: 50000,
387
+ scanIntervalMax: 75000,
388
+ tradeFrequency: 0.35,
389
+ positionSizeMin: 12,
390
+ positionSizeMax: 30,
391
+ leverageMin: 3,
392
+ leverageMax: 8,
393
+ primaryIndicators: ['RSI', 'EMA', 'Volume'],
394
+ riskTolerance: 'medium',
395
+ preferredPairs: ['BTC/USDT', 'ETH/USDT', 'BNB/USDT', 'SOL/USDT'],
396
+ rsiBias: 50,
397
+ tier: 'standard',
398
+ dailyYieldMin: 0.45,
399
+ dailyYieldMax: 0.70,
400
+ description: '智能再平衡策略,动态调整持仓,优化收益',
401
+ category: 'balanced',
123
402
  },
403
+
404
+ // ═══════════════════════════════════════════════════════════════════════════
405
+ // GROWTH STRATEGIES (成长型) - Higher risk, higher returns
406
+ // ═══════════════════════════════════════════════════════════════════════════
124
407
  {
125
- id: 'aggressive-01',
408
+ id: 'growth-momentum-01',
409
+ name: 'Growth Momentum',
410
+ shortName: 'GRO',
411
+ color: '#8B5CF6',
412
+ scanIntervalMin: 40000,
413
+ scanIntervalMax: 60000,
414
+ tradeFrequency: 0.45,
415
+ positionSizeMin: 20,
416
+ positionSizeMax: 40,
417
+ leverageMin: 5,
418
+ leverageMax: 12,
419
+ primaryIndicators: ['RSI', 'MACD', 'EMA'],
420
+ riskTolerance: 'medium',
421
+ preferredPairs: ['BTC/USDT', 'ETH/USDT', 'SOL/USDT', 'AVAX/USDT'],
422
+ rsiBias: 52,
423
+ tier: 'premium',
424
+ dailyYieldMin: 0.60,
425
+ dailyYieldMax: 0.95,
426
+ description: '成长动量策略,追求较高收益,适合有经验投资者',
427
+ category: 'growth',
428
+ },
429
+ {
430
+ id: 'trend-hunter-01',
431
+ name: 'Trend Hunter',
432
+ shortName: 'TRH',
433
+ color: '#EC4899',
434
+ scanIntervalMin: 38000,
435
+ scanIntervalMax: 55000,
436
+ tradeFrequency: 0.48,
437
+ positionSizeMin: 22,
438
+ positionSizeMax: 42,
439
+ leverageMin: 5,
440
+ leverageMax: 15,
441
+ primaryIndicators: ['EMA', 'MACD', 'Volume', 'Bollinger'],
442
+ riskTolerance: 'medium',
443
+ preferredPairs: ['BTC/USDT', 'ETH/USDT', 'SOL/USDT', 'ARB/USDT', 'OP/USDT'],
444
+ rsiBias: 53,
445
+ tier: 'premium',
446
+ dailyYieldMin: 0.65,
447
+ dailyYieldMax: 1.00,
448
+ description: '趋势猎手策略,捕捉市场趋势,追求超额收益',
449
+ category: 'growth',
450
+ },
451
+
452
+ // ═══════════════════════════════════════════════════════════════════════════
453
+ // AGGRESSIVE STRATEGIES (激进型) - High risk, high returns
454
+ // ═══════════════════════════════════════════════════════════════════════════
455
+ {
456
+ id: 'aggressive-momentum-01',
126
457
  name: 'Aggressive Momentum',
127
458
  shortName: 'AGG',
128
459
  color: '#EF4444',
129
- scanIntervalMin: 35000, // 35-55s between cycles (slower for readability)
460
+ scanIntervalMin: 35000,
130
461
  scanIntervalMax: 55000,
131
462
  tradeFrequency: 0.5,
132
463
  positionSizeMin: 25,
@@ -137,6 +468,103 @@ export const STRATEGY_PERSONALITIES: StrategyPersonality[] = [
137
468
  riskTolerance: 'high',
138
469
  preferredPairs: ['BTC/USDT', 'ETH/USDT', 'SOL/USDT', 'DOGE/USDT', 'AVAX/USDT'],
139
470
  rsiBias: 55,
471
+ tier: 'elite',
472
+ dailyYieldMin: 0.85,
473
+ dailyYieldMax: 1.40,
474
+ description: '激进动量策略,高风险高收益,适合风险承受能力强的投资者',
475
+ category: 'aggressive',
476
+ },
477
+ {
478
+ id: 'leverage-maximizer-01',
479
+ name: 'Leverage Maximizer',
480
+ shortName: 'LEV',
481
+ color: '#F97316',
482
+ scanIntervalMin: 30000,
483
+ scanIntervalMax: 50000,
484
+ tradeFrequency: 0.55,
485
+ positionSizeMin: 30,
486
+ positionSizeMax: 55,
487
+ leverageMin: 10,
488
+ leverageMax: 25,
489
+ primaryIndicators: ['RSI', 'MACD', 'EMA', 'Volume', 'Bollinger'],
490
+ riskTolerance: 'high',
491
+ preferredPairs: ['BTC/USDT', 'ETH/USDT', 'SOL/USDT', 'DOGE/USDT', 'AVAX/USDT', 'ARB/USDT'],
492
+ rsiBias: 55,
493
+ tier: 'elite',
494
+ dailyYieldMin: 1.00,
495
+ dailyYieldMax: 1.80,
496
+ description: '杠杆最大化策略,追求极致收益,需要专业投资经验',
497
+ category: 'aggressive',
498
+ },
499
+
500
+ // ═══════════════════════════════════════════════════════════════════════════
501
+ // QUANTITATIVE STRATEGIES (量化型) - AI-driven, advanced algorithms
502
+ // ═══════════════════════════════════════════════════════════════════════════
503
+ {
504
+ id: 'ai-quant-alpha-01',
505
+ name: 'AI Quant Alpha',
506
+ shortName: 'AQA',
507
+ color: '#A855F7',
508
+ scanIntervalMin: 42000,
509
+ scanIntervalMax: 65000,
510
+ tradeFrequency: 0.42,
511
+ positionSizeMin: 18,
512
+ positionSizeMax: 38,
513
+ leverageMin: 4,
514
+ leverageMax: 12,
515
+ primaryIndicators: ['RSI', 'MACD', 'EMA', 'Volume', 'Bollinger'],
516
+ riskTolerance: 'medium',
517
+ preferredPairs: ['BTC/USDT', 'ETH/USDT', 'SOL/USDT', 'BNB/USDT'],
518
+ rsiBias: 51,
519
+ tier: 'premium',
520
+ dailyYieldMin: 0.70,
521
+ dailyYieldMax: 1.10,
522
+ description: 'AI量化Alpha策略,机器学习驱动,智能风控',
523
+ category: 'quantitative',
524
+ },
525
+ {
526
+ id: 'neural-trader-01',
527
+ name: 'Neural Trader',
528
+ shortName: 'NRT',
529
+ color: '#14B8A6',
530
+ scanIntervalMin: 40000,
531
+ scanIntervalMax: 62000,
532
+ tradeFrequency: 0.44,
533
+ positionSizeMin: 20,
534
+ positionSizeMax: 40,
535
+ leverageMin: 5,
536
+ leverageMax: 15,
537
+ primaryIndicators: ['RSI', 'MACD', 'EMA', 'Volume', 'Bollinger'],
538
+ riskTolerance: 'medium',
539
+ preferredPairs: ['BTC/USDT', 'ETH/USDT', 'SOL/USDT', 'AVAX/USDT', 'LINK/USDT'],
540
+ rsiBias: 52,
541
+ tier: 'elite',
542
+ dailyYieldMin: 0.80,
543
+ dailyYieldMax: 1.25,
544
+ description: '神经网络交易策略,深度学习模型,自适应市场',
545
+ category: 'quantitative',
546
+ },
547
+ {
548
+ id: 'quantum-edge-01',
549
+ name: 'Quantum Edge',
550
+ shortName: 'QTE',
551
+ color: '#6366F1',
552
+ scanIntervalMin: 35000,
553
+ scanIntervalMax: 55000,
554
+ tradeFrequency: 0.5,
555
+ positionSizeMin: 25,
556
+ positionSizeMax: 50,
557
+ leverageMin: 8,
558
+ leverageMax: 20,
559
+ primaryIndicators: ['RSI', 'MACD', 'EMA', 'Volume', 'Bollinger'],
560
+ riskTolerance: 'high',
561
+ preferredPairs: ['BTC/USDT', 'ETH/USDT', 'SOL/USDT', 'AVAX/USDT', 'ARB/USDT', 'OP/USDT'],
562
+ rsiBias: 54,
563
+ tier: 'vip',
564
+ dailyYieldMin: 1.20,
565
+ dailyYieldMax: 2.00,
566
+ description: 'VIP量子优势策略,顶级AI算法,极致收益追求',
567
+ category: 'quantitative',
140
568
  },
141
569
  ];
142
570
 
@@ -11,11 +11,22 @@ export type { PairState } from './ForexSimulationEngine';
11
11
  export { ForexPoolDataGenerator } from './ForexPoolDataGenerator';
12
12
 
13
13
  // Bot Simulation Engine (AI crypto trading strategies)
14
- export { botSimulationEngine, STRATEGY_PERSONALITIES } from './BotSimulationEngine';
14
+ export {
15
+ botSimulationEngine,
16
+ STRATEGY_PERSONALITIES,
17
+ INVESTMENT_TIERS,
18
+ INVESTMENT_CYCLES,
19
+ calculateDailyYield,
20
+ estimateReturns,
21
+ } from './BotSimulationEngine';
15
22
  export type {
16
23
  BotLogType,
17
24
  BotLogEntry,
18
25
  IndicatorSnapshot,
19
26
  BotState,
20
27
  StrategyPersonality,
28
+ StrategyCategory,
29
+ InvestmentTier,
30
+ TierConfig,
31
+ CycleConfig,
21
32
  } from './BotSimulationEngine';