@gbozee/ultimate 0.0.2-99 → 0.0.2-next.4
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.
- package/dist/frontend-index.d.ts +1124 -24
- package/dist/frontend-index.js +1694 -79
- package/dist/index.cjs +6679 -5157
- package/dist/index.d.ts +1907 -308
- package/dist/index.js +6680 -5162
- package/dist/mcp-client.cjs +6827 -529
- package/dist/mcp-client.js +6836 -529
- package/dist/mcp-server.cjs +14595 -6432
- package/dist/mcp-server.js +14597 -6438
- package/package.json +17 -5
package/dist/frontend-index.d.ts
CHANGED
|
@@ -78,7 +78,63 @@ export declare function computeSellZones(payload: {
|
|
|
78
78
|
exit: number;
|
|
79
79
|
zones?: number;
|
|
80
80
|
}): number[];
|
|
81
|
+
export type RawPosition = {
|
|
82
|
+
entry: number;
|
|
83
|
+
quantity: number;
|
|
84
|
+
price_places: string;
|
|
85
|
+
decimal_places?: string;
|
|
86
|
+
};
|
|
87
|
+
export type ConfigOptionType = {
|
|
88
|
+
reduce_ratio: number | string;
|
|
89
|
+
profit_percent: number | string;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* This function determines the take profit price for a given position based of the profit percent and the reduce ratio
|
|
93
|
+
* @param payload
|
|
94
|
+
* @returns {
|
|
95
|
+
* tp_price: number;
|
|
96
|
+
* pnl: number;
|
|
97
|
+
* quantity: number;
|
|
98
|
+
* reduce_quantity: number;
|
|
99
|
+
* expected_loss: number;
|
|
100
|
+
* }
|
|
101
|
+
*/
|
|
102
|
+
export declare function determineTPSl(payload: {
|
|
103
|
+
sell_ratio?: number;
|
|
104
|
+
positions: {
|
|
105
|
+
long: RawPosition;
|
|
106
|
+
short: RawPosition;
|
|
107
|
+
};
|
|
108
|
+
configs: {
|
|
109
|
+
long: ConfigOptionType;
|
|
110
|
+
short: ConfigOptionType;
|
|
111
|
+
};
|
|
112
|
+
kind: "long" | "short";
|
|
113
|
+
decimal_places?: string;
|
|
114
|
+
}): {
|
|
115
|
+
tp_price: number;
|
|
116
|
+
pnl: number;
|
|
117
|
+
quantity: number;
|
|
118
|
+
reduce_quantity: number;
|
|
119
|
+
expected_loss: number;
|
|
120
|
+
};
|
|
121
|
+
export interface GetEntriesParams {
|
|
122
|
+
kind: "long" | "short";
|
|
123
|
+
distribution: "arithmetic" | "geometric" | "normal" | "exponential" | "inverse-exponential";
|
|
124
|
+
margin_range: [
|
|
125
|
+
number,
|
|
126
|
+
number
|
|
127
|
+
];
|
|
128
|
+
risk_reward: number;
|
|
129
|
+
price_places?: string;
|
|
130
|
+
distribution_params?: {
|
|
131
|
+
curveFactor?: number;
|
|
132
|
+
stdDevFactor?: number;
|
|
133
|
+
lambda?: number;
|
|
134
|
+
};
|
|
135
|
+
}
|
|
81
136
|
export type SignalConfigType = {
|
|
137
|
+
symbol?: string;
|
|
82
138
|
focus: number;
|
|
83
139
|
budget: number;
|
|
84
140
|
percent_change?: number;
|
|
@@ -99,12 +155,42 @@ export type SignalConfigType = {
|
|
|
99
155
|
first_order_size?: number;
|
|
100
156
|
gap?: number;
|
|
101
157
|
max_size?: number;
|
|
158
|
+
use_kelly?: boolean;
|
|
159
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
160
|
+
kelly_confidence_factor?: number;
|
|
161
|
+
kelly_minimum_risk?: number;
|
|
162
|
+
kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
|
|
163
|
+
full_distribution?: {
|
|
164
|
+
long: GetEntriesParams["distribution"];
|
|
165
|
+
short: GetEntriesParams["distribution"];
|
|
166
|
+
};
|
|
167
|
+
max_quantity?: number;
|
|
168
|
+
distribution_params?: {
|
|
169
|
+
curveFactor?: number;
|
|
170
|
+
stdDevFactor?: number;
|
|
171
|
+
lambda?: number;
|
|
172
|
+
};
|
|
173
|
+
use_progressive_risk?: boolean;
|
|
174
|
+
risk_distribution?: {
|
|
175
|
+
enabled: boolean;
|
|
176
|
+
total_risk_budget: number;
|
|
177
|
+
risk_reward: number;
|
|
178
|
+
buckets: Array<{
|
|
179
|
+
zone_percentage: number;
|
|
180
|
+
risk_percentage: number;
|
|
181
|
+
}>;
|
|
182
|
+
};
|
|
102
183
|
};
|
|
103
184
|
declare class Signal {
|
|
104
185
|
focus: number;
|
|
105
186
|
budget: number;
|
|
106
187
|
percent_change: number;
|
|
107
188
|
price_places: string;
|
|
189
|
+
distribution_params: {
|
|
190
|
+
curveFactor?: number;
|
|
191
|
+
stdDevFactor?: number;
|
|
192
|
+
lambda?: number;
|
|
193
|
+
};
|
|
108
194
|
decimal_places: string;
|
|
109
195
|
zone_risk: number;
|
|
110
196
|
fee: number;
|
|
@@ -121,8 +207,29 @@ declare class Signal {
|
|
|
121
207
|
first_order_size: number;
|
|
122
208
|
gap: number;
|
|
123
209
|
max_size: number;
|
|
124
|
-
|
|
125
|
-
|
|
210
|
+
use_kelly: boolean;
|
|
211
|
+
kelly_prediction_model: "exponential" | "normal" | "uniform";
|
|
212
|
+
kelly_confidence_factor: number;
|
|
213
|
+
kelly_minimum_risk: number;
|
|
214
|
+
kelly_func: "theoretical" | "position_based" | "theoretical_fixed";
|
|
215
|
+
symbol?: string;
|
|
216
|
+
distribution: {
|
|
217
|
+
long: GetEntriesParams["distribution"];
|
|
218
|
+
short: GetEntriesParams["distribution"];
|
|
219
|
+
};
|
|
220
|
+
use_progressive_risk?: boolean;
|
|
221
|
+
risk_distribution?: {
|
|
222
|
+
enabled: boolean;
|
|
223
|
+
total_risk_budget: number;
|
|
224
|
+
risk_reward: number;
|
|
225
|
+
buckets: Array<{
|
|
226
|
+
zone_percentage: number;
|
|
227
|
+
risk_percentage: number;
|
|
228
|
+
}>;
|
|
229
|
+
};
|
|
230
|
+
max_quantity: number;
|
|
231
|
+
constructor({ focus, symbol, budget, percent_change, price_places, decimal_places, zone_risk, fee, support, risk_reward, resistance, risk_per_trade, increase_size, additional_increase, minimum_pnl, take_profit, increase_position, minimum_size, first_order_size, gap, max_size, use_kelly, kelly_prediction_model, kelly_confidence_factor, kelly_minimum_risk, kelly_func, full_distribution, max_quantity, distribution_params, use_progressive_risk, risk_distribution, }: SignalConfigType);
|
|
232
|
+
build_entry({ current_price, stop_loss, pnl, stop_percent, kind, risk, no_of_trades, take_profit, distribution, distribution_params, }: {
|
|
126
233
|
take_profit?: number;
|
|
127
234
|
no_of_trades?: number;
|
|
128
235
|
current_price: number;
|
|
@@ -131,6 +238,17 @@ declare class Signal {
|
|
|
131
238
|
risk: number;
|
|
132
239
|
stop_percent?: number;
|
|
133
240
|
pnl?: number;
|
|
241
|
+
distribution?: GetEntriesParams["distribution"];
|
|
242
|
+
distribution_params?: {
|
|
243
|
+
curveFactor?: number;
|
|
244
|
+
stdDevFactor?: number;
|
|
245
|
+
lambda?: number;
|
|
246
|
+
use_progressive?: boolean;
|
|
247
|
+
buckets?: Array<{
|
|
248
|
+
zone_percentage: number;
|
|
249
|
+
risk_percentage: number;
|
|
250
|
+
}>;
|
|
251
|
+
};
|
|
134
252
|
}): any;
|
|
135
253
|
get risk(): number;
|
|
136
254
|
get min_trades(): number;
|
|
@@ -164,6 +282,11 @@ declare class Signal {
|
|
|
164
282
|
kind?: "long" | "short";
|
|
165
283
|
limit?: boolean;
|
|
166
284
|
}): any;
|
|
285
|
+
get_future_zones_simple({ current_price, kind, raw, }: {
|
|
286
|
+
raw?: boolean;
|
|
287
|
+
current_price: number;
|
|
288
|
+
kind?: "long" | "short";
|
|
289
|
+
}): number[];
|
|
167
290
|
get_future_zones({ current_price, kind, raw, }: {
|
|
168
291
|
raw?: boolean;
|
|
169
292
|
current_price: number;
|
|
@@ -175,6 +298,14 @@ declare class Signal {
|
|
|
175
298
|
kind?: "long" | "short";
|
|
176
299
|
}): number[][];
|
|
177
300
|
get_margin_range(current_price: number, kind?: string): number[];
|
|
301
|
+
/**
|
|
302
|
+
* Helper function to calculate zone-specific risk based on progressive risk distribution
|
|
303
|
+
* @param index - The index of the current zone
|
|
304
|
+
* @param totalZones - Total number of zones
|
|
305
|
+
* @param account - Account configuration with risk settings
|
|
306
|
+
* @returns The risk amount for the specific zone
|
|
307
|
+
*/
|
|
308
|
+
private getZoneRisk;
|
|
178
309
|
process_orders({ current_price, stop_loss, trade_zones, kind, }: {
|
|
179
310
|
current_price: number;
|
|
180
311
|
stop_loss: number;
|
|
@@ -208,26 +339,204 @@ declare class Signal {
|
|
|
208
339
|
to_df(currentPrice: number, places?: string): number;
|
|
209
340
|
}
|
|
210
341
|
export type GlobalConfig = {
|
|
211
|
-
profit_percent
|
|
342
|
+
profit_percent?: number;
|
|
212
343
|
symbol: string;
|
|
213
|
-
profit
|
|
214
|
-
risk
|
|
215
|
-
stop_percent
|
|
344
|
+
profit?: number;
|
|
345
|
+
risk?: number;
|
|
346
|
+
stop_percent?: number;
|
|
216
347
|
kind: "long" | "short";
|
|
217
|
-
reduce_percent
|
|
348
|
+
reduce_percent?: number;
|
|
218
349
|
support: number;
|
|
219
350
|
resistance: number;
|
|
220
351
|
price_places: string;
|
|
221
352
|
decimal_places: string;
|
|
222
|
-
min_size
|
|
223
|
-
accounts
|
|
353
|
+
min_size?: number;
|
|
354
|
+
accounts?: {
|
|
224
355
|
owner: string;
|
|
225
356
|
exchange?: string;
|
|
226
357
|
}[];
|
|
227
|
-
risk_reward
|
|
228
|
-
reverse_factor
|
|
358
|
+
risk_reward?: number;
|
|
359
|
+
reverse_factor?: number;
|
|
229
360
|
leverage?: number;
|
|
361
|
+
max_quantity?: number;
|
|
362
|
+
fee_percent?: number;
|
|
230
363
|
};
|
|
364
|
+
export interface BaseSystemFields {
|
|
365
|
+
id: string;
|
|
366
|
+
created: string;
|
|
367
|
+
updated: string;
|
|
368
|
+
}
|
|
369
|
+
export interface ExchangeAccount extends BaseSystemFields {
|
|
370
|
+
exchange: "binance" | "bybit";
|
|
371
|
+
owner: string;
|
|
372
|
+
email?: string;
|
|
373
|
+
user?: string;
|
|
374
|
+
usdt?: number;
|
|
375
|
+
usdc?: number;
|
|
376
|
+
proxy?: string;
|
|
377
|
+
bullish?: boolean;
|
|
378
|
+
bearish?: boolean;
|
|
379
|
+
movePercent?: number;
|
|
380
|
+
totalRisk?: number;
|
|
381
|
+
max_non_essential?: number;
|
|
382
|
+
profit_percent?: number;
|
|
383
|
+
risk_reward?: number;
|
|
384
|
+
exclude_coins?: {
|
|
385
|
+
bullish?: string[];
|
|
386
|
+
};
|
|
387
|
+
include_delisted?: boolean;
|
|
388
|
+
}
|
|
389
|
+
export interface SymbolConfig extends BaseSystemFields {
|
|
390
|
+
symbol: string;
|
|
391
|
+
support?: number;
|
|
392
|
+
resistance?: number;
|
|
393
|
+
stop_percent?: number;
|
|
394
|
+
price_places?: string;
|
|
395
|
+
decimal_places?: string;
|
|
396
|
+
min_size?: number;
|
|
397
|
+
weight?: number;
|
|
398
|
+
leverage?: number;
|
|
399
|
+
candle_count?: number;
|
|
400
|
+
interval?: any;
|
|
401
|
+
fee_percent?: number;
|
|
402
|
+
}
|
|
403
|
+
export interface ScheduledTrade extends BaseSystemFields {
|
|
404
|
+
symbol: string;
|
|
405
|
+
account: string;
|
|
406
|
+
profit?: number;
|
|
407
|
+
risk?: number;
|
|
408
|
+
entry?: number;
|
|
409
|
+
stop?: number;
|
|
410
|
+
risk_reward?: number;
|
|
411
|
+
profit_percent?: number;
|
|
412
|
+
place_tp?: boolean;
|
|
413
|
+
kind?: "long" | "short";
|
|
414
|
+
follow?: boolean | 1 | 0;
|
|
415
|
+
reduce_ratio?: number;
|
|
416
|
+
sell_ratio?: number;
|
|
417
|
+
threshold_qty?: number;
|
|
418
|
+
pause_tp?: boolean;
|
|
419
|
+
stop_percent?: number;
|
|
420
|
+
kelly?: {
|
|
421
|
+
use_kelly?: boolean;
|
|
422
|
+
kelly_confidence_factor?: number;
|
|
423
|
+
kelly_minimum_risk?: number;
|
|
424
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
425
|
+
};
|
|
426
|
+
distribution?: GetEntriesParams["distribution"];
|
|
427
|
+
distribution_params?: {
|
|
428
|
+
curveFactor?: number;
|
|
429
|
+
stdDevFactor?: number;
|
|
430
|
+
lambda?: number;
|
|
431
|
+
};
|
|
432
|
+
settings?: {
|
|
433
|
+
gap_trading?: {
|
|
434
|
+
entry_risk?: number;
|
|
435
|
+
hedge_stop_ratio?: number;
|
|
436
|
+
};
|
|
437
|
+
bad_hedge?: {
|
|
438
|
+
hedges_distribution?: GetEntriesParams["distribution"];
|
|
439
|
+
hedges_ratio?: number;
|
|
440
|
+
opposite_trade_distribution?: GetEntriesParams["distribution"];
|
|
441
|
+
opposite_trade_ratio?: number;
|
|
442
|
+
stop_loss?: number;
|
|
443
|
+
};
|
|
444
|
+
};
|
|
445
|
+
}
|
|
446
|
+
export interface AccountStrategy extends BaseSystemFields {
|
|
447
|
+
account: string;
|
|
448
|
+
symbol: string;
|
|
449
|
+
risk?: number;
|
|
450
|
+
reward_factor?: number;
|
|
451
|
+
kind?: "long" | "short";
|
|
452
|
+
support?: number;
|
|
453
|
+
resistance?: number;
|
|
454
|
+
running?: boolean;
|
|
455
|
+
max_reward_factor?: number;
|
|
456
|
+
follow?: boolean;
|
|
457
|
+
risk_reward?: number;
|
|
458
|
+
dynamic?: boolean;
|
|
459
|
+
}
|
|
460
|
+
interface Proxy$1 extends BaseSystemFields {
|
|
461
|
+
ip_address?: string;
|
|
462
|
+
type?: "http" | "socks5";
|
|
463
|
+
}
|
|
464
|
+
export interface PositionsView {
|
|
465
|
+
id: string;
|
|
466
|
+
symbol?: any;
|
|
467
|
+
entry?: any;
|
|
468
|
+
quantity?: any;
|
|
469
|
+
take_profit?: any;
|
|
470
|
+
account?: any;
|
|
471
|
+
kind?: any;
|
|
472
|
+
target_pnl?: number;
|
|
473
|
+
liquidation?: number;
|
|
474
|
+
avg_price?: number;
|
|
475
|
+
avg_qty?: number;
|
|
476
|
+
next_order?: number;
|
|
477
|
+
last_order?: number;
|
|
478
|
+
config?: any;
|
|
479
|
+
stop_loss?: {
|
|
480
|
+
price: number;
|
|
481
|
+
quantity: number;
|
|
482
|
+
};
|
|
483
|
+
stop_pnl?: any;
|
|
484
|
+
leverage?: any;
|
|
485
|
+
avg_liquidation?: any;
|
|
486
|
+
balance?: any;
|
|
487
|
+
reduce_ratio?: number;
|
|
488
|
+
sell_ratio?: number;
|
|
489
|
+
threshold_qty?: number;
|
|
490
|
+
follow?: boolean | 1 | 0;
|
|
491
|
+
current_price?: number;
|
|
492
|
+
usd_balance?: number;
|
|
493
|
+
tp?: {
|
|
494
|
+
price: number;
|
|
495
|
+
quantity: number;
|
|
496
|
+
};
|
|
497
|
+
next_risk?: number;
|
|
498
|
+
proxy?: string;
|
|
499
|
+
expand?: {
|
|
500
|
+
p_account?: ExchangeAccount;
|
|
501
|
+
b_config?: ScheduledTrade;
|
|
502
|
+
proxy?: Proxy$1;
|
|
503
|
+
account_strategy?: AccountStrategy;
|
|
504
|
+
compound_instance?: CompoundInstance;
|
|
505
|
+
support?: SupportTable;
|
|
506
|
+
symbol_config: SymbolConfig;
|
|
507
|
+
resistance?: SupportTable;
|
|
508
|
+
anchor?: Omit<PositionsView, "expand">;
|
|
509
|
+
record?: any;
|
|
510
|
+
};
|
|
511
|
+
pnl?: number;
|
|
512
|
+
support_price?: number;
|
|
513
|
+
}
|
|
514
|
+
export interface Compounder extends BaseSystemFields {
|
|
515
|
+
risk?: number;
|
|
516
|
+
profit_percent?: number;
|
|
517
|
+
owner?: string;
|
|
518
|
+
completed?: boolean;
|
|
519
|
+
start_balance?: number;
|
|
520
|
+
starting_risk?: number;
|
|
521
|
+
fee_rate?: number;
|
|
522
|
+
}
|
|
523
|
+
export interface CompoundInstance extends BaseSystemFields {
|
|
524
|
+
ref?: string;
|
|
525
|
+
position?: string;
|
|
526
|
+
risk?: number;
|
|
527
|
+
hedged?: boolean;
|
|
528
|
+
loss?: number;
|
|
529
|
+
expand?: {
|
|
530
|
+
ref?: Compounder;
|
|
531
|
+
};
|
|
532
|
+
}
|
|
533
|
+
export interface SupportTable extends BaseSystemFields {
|
|
534
|
+
symbol?: string;
|
|
535
|
+
price?: number;
|
|
536
|
+
counter?: number;
|
|
537
|
+
last_updated?: string;
|
|
538
|
+
kind?: "long" | "short";
|
|
539
|
+
}
|
|
231
540
|
export type AppConfig = {
|
|
232
541
|
fee: number;
|
|
233
542
|
risk_per_trade: number;
|
|
@@ -255,6 +564,20 @@ export type AppConfig = {
|
|
|
255
564
|
max_size?: number;
|
|
256
565
|
last_value?: any;
|
|
257
566
|
entries?: any[];
|
|
567
|
+
max_quantity?: number;
|
|
568
|
+
kelly?: {
|
|
569
|
+
use_kelly?: boolean;
|
|
570
|
+
kelly_confidence_factor?: number;
|
|
571
|
+
kelly_minimum_risk?: number;
|
|
572
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
573
|
+
kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
|
|
574
|
+
};
|
|
575
|
+
distribution?: GetEntriesParams["distribution"];
|
|
576
|
+
distribution_params?: {
|
|
577
|
+
curveFactor?: number;
|
|
578
|
+
stdDevFactor?: number;
|
|
579
|
+
lambda?: number;
|
|
580
|
+
};
|
|
258
581
|
};
|
|
259
582
|
export type ExtendConfigType = {
|
|
260
583
|
take_profit?: number;
|
|
@@ -271,8 +594,26 @@ export type ExtendConfigType = {
|
|
|
271
594
|
kind?: "long" | "short";
|
|
272
595
|
gap?: number;
|
|
273
596
|
rr?: number;
|
|
597
|
+
min_avg_size?: number;
|
|
598
|
+
use_kelly?: boolean;
|
|
599
|
+
kelly_confidence_factor?: number;
|
|
600
|
+
kelly_minimum_risk?: number;
|
|
601
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
602
|
+
kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
|
|
603
|
+
distribution?: GetEntriesParams["distribution"];
|
|
604
|
+
distribution_params?: {
|
|
605
|
+
curveFactor?: number;
|
|
606
|
+
stdDevFactor?: number;
|
|
607
|
+
lambda?: number;
|
|
608
|
+
buckets?: Array<{
|
|
609
|
+
zone_percentage: number;
|
|
610
|
+
risk_percentage: number;
|
|
611
|
+
}>;
|
|
612
|
+
use_progressive?: boolean;
|
|
613
|
+
};
|
|
614
|
+
use_progressive_risk?: boolean;
|
|
274
615
|
};
|
|
275
|
-
export declare function buildConfig(app_config: AppConfig, { take_profit, entry, stop, raw_instance, risk, no_of_trades, min_profit, risk_reward, kind, increase, gap, rr, price_places, decimal_places, }: ExtendConfigType): any[] | Signal;
|
|
616
|
+
export declare function buildConfig(app_config: AppConfig, { take_profit, entry, stop, raw_instance, risk, no_of_trades, min_profit, risk_reward, kind, increase, gap, rr, price_places, decimal_places, use_kelly, kelly_confidence_factor, kelly_minimum_risk, kelly_prediction_model, kelly_func, min_avg_size, distribution, distribution_params, use_progressive_risk, }: ExtendConfigType): any[] | Signal;
|
|
276
617
|
export declare function buildAvg({ _trades, kind, }: {
|
|
277
618
|
_trades: any[];
|
|
278
619
|
kind: "long" | "short";
|
|
@@ -282,6 +623,17 @@ export declare function get_app_config_and_max_size(config: GlobalConfig, payloa
|
|
|
282
623
|
entry: number;
|
|
283
624
|
stop: number;
|
|
284
625
|
kind: "long" | "short";
|
|
626
|
+
use_kelly?: boolean;
|
|
627
|
+
kelly_confidence_factor?: number;
|
|
628
|
+
kelly_minimum_risk?: number;
|
|
629
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
630
|
+
kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
|
|
631
|
+
distribution?: GetEntriesParams["distribution"];
|
|
632
|
+
distribution_params?: {
|
|
633
|
+
curveFactor?: number;
|
|
634
|
+
stdDevFactor?: number;
|
|
635
|
+
lambda?: number;
|
|
636
|
+
};
|
|
285
637
|
}): {
|
|
286
638
|
app_config: AppConfig;
|
|
287
639
|
max_size: any;
|
|
@@ -301,11 +653,28 @@ export declare function buildAppConfig(config: GlobalConfig, payload: {
|
|
|
301
653
|
risk: number;
|
|
302
654
|
symbol: string;
|
|
303
655
|
profit?: number;
|
|
656
|
+
use_kelly?: boolean;
|
|
657
|
+
kelly_confidence_factor?: number;
|
|
658
|
+
kelly_minimum_risk?: number;
|
|
659
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
660
|
+
kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
|
|
661
|
+
distribution?: GetEntriesParams["distribution"];
|
|
662
|
+
distribution_params?: {
|
|
663
|
+
curveFactor?: number;
|
|
664
|
+
stdDevFactor?: number;
|
|
665
|
+
lambda?: number;
|
|
666
|
+
};
|
|
304
667
|
}): AppConfig;
|
|
305
668
|
export declare function getOptimumStopAndRisk(app_config: AppConfig, params: {
|
|
306
669
|
max_size: number;
|
|
307
670
|
target_stop: number;
|
|
308
671
|
highest_risk?: number;
|
|
672
|
+
distribution?: GetEntriesParams["distribution"];
|
|
673
|
+
distribution_params?: {
|
|
674
|
+
curveFactor?: number;
|
|
675
|
+
stdDevFactor?: number;
|
|
676
|
+
lambda?: number;
|
|
677
|
+
};
|
|
309
678
|
}): {
|
|
310
679
|
optimal_stop: number;
|
|
311
680
|
optimal_risk: number;
|
|
@@ -362,26 +731,82 @@ export declare function generateOptimumAppConfig(config: GlobalConfig, payload:
|
|
|
362
731
|
risk_reward: number;
|
|
363
732
|
start_risk: number;
|
|
364
733
|
max_risk?: number;
|
|
734
|
+
distribution?: GetEntriesParams["distribution"];
|
|
735
|
+
distribution_params?: {
|
|
736
|
+
curveFactor?: number;
|
|
737
|
+
stdDevFactor?: number;
|
|
738
|
+
lambda?: number;
|
|
739
|
+
};
|
|
365
740
|
}, position: {
|
|
366
741
|
entry: number;
|
|
367
742
|
quantity: number;
|
|
368
743
|
kind: "long" | "short";
|
|
369
744
|
}): AppConfig | null;
|
|
370
|
-
export declare function determineOptimumReward(
|
|
745
|
+
export declare function determineOptimumReward(payload: {
|
|
746
|
+
app_config: AppConfig;
|
|
747
|
+
increase?: boolean;
|
|
748
|
+
low_range?: number;
|
|
749
|
+
high_range?: number;
|
|
750
|
+
target_loss?: number;
|
|
751
|
+
distribution?: GetEntriesParams["distribution"];
|
|
752
|
+
distribution_params?: {
|
|
753
|
+
curveFactor?: number;
|
|
754
|
+
stdDevFactor?: number;
|
|
755
|
+
lambda?: number;
|
|
756
|
+
};
|
|
757
|
+
max_size?: number;
|
|
758
|
+
}): number | {
|
|
371
759
|
result: any[];
|
|
372
760
|
value: number;
|
|
373
761
|
total: number;
|
|
374
762
|
risk_per_trade: number;
|
|
375
763
|
max: number;
|
|
376
764
|
min: number;
|
|
765
|
+
avg_size: any;
|
|
377
766
|
neg_pnl: any;
|
|
378
767
|
entry: any;
|
|
379
768
|
};
|
|
769
|
+
export declare function determineOptimumRisk(config: GlobalConfig, payload: {
|
|
770
|
+
entry: number;
|
|
771
|
+
stop: number;
|
|
772
|
+
risk_reward: number;
|
|
773
|
+
risk: number;
|
|
774
|
+
symbol: string;
|
|
775
|
+
distribution?: GetEntriesParams["distribution"];
|
|
776
|
+
distribution_params?: {
|
|
777
|
+
curveFactor?: number;
|
|
778
|
+
stdDevFactor?: number;
|
|
779
|
+
lambda?: number;
|
|
780
|
+
};
|
|
781
|
+
}, params: {
|
|
782
|
+
highest_risk: number;
|
|
783
|
+
tolerance?: number;
|
|
784
|
+
max_iterations?: number;
|
|
785
|
+
}): {
|
|
786
|
+
optimal_risk: number;
|
|
787
|
+
achieved_neg_pnl: number;
|
|
788
|
+
target_neg_pnl: number;
|
|
789
|
+
difference: number;
|
|
790
|
+
iterations: number;
|
|
791
|
+
converged: boolean;
|
|
792
|
+
last_value: any;
|
|
793
|
+
entries: any[];
|
|
794
|
+
app_config: AppConfig;
|
|
795
|
+
};
|
|
380
796
|
export declare function computeRiskReward(payload: {
|
|
381
797
|
app_config: AppConfig;
|
|
382
798
|
entry: number;
|
|
383
799
|
stop: number;
|
|
384
800
|
risk_per_trade: number;
|
|
801
|
+
target_loss?: number;
|
|
802
|
+
distribution?: GetEntriesParams["distribution"];
|
|
803
|
+
distribution_params?: {
|
|
804
|
+
curveFactor?: number;
|
|
805
|
+
stdDevFactor?: number;
|
|
806
|
+
lambda?: number;
|
|
807
|
+
};
|
|
808
|
+
high_range?: number;
|
|
809
|
+
max_size?: number;
|
|
385
810
|
}): number | {
|
|
386
811
|
result: any[];
|
|
387
812
|
value: number;
|
|
@@ -389,6 +814,7 @@ export declare function computeRiskReward(payload: {
|
|
|
389
814
|
risk_per_trade: number;
|
|
390
815
|
max: number;
|
|
391
816
|
min: number;
|
|
817
|
+
avg_size: any;
|
|
392
818
|
neg_pnl: any;
|
|
393
819
|
entry: any;
|
|
394
820
|
};
|
|
@@ -397,6 +823,17 @@ export declare function getRiskReward(payload: {
|
|
|
397
823
|
stop: number;
|
|
398
824
|
risk: number;
|
|
399
825
|
global_config: GlobalConfig;
|
|
826
|
+
force_exact_risk?: boolean;
|
|
827
|
+
target_loss?: number;
|
|
828
|
+
max_size?: number;
|
|
829
|
+
distribution?: GetEntriesParams["distribution"];
|
|
830
|
+
distribution_params?: {
|
|
831
|
+
curveFactor?: number;
|
|
832
|
+
stdDevFactor?: number;
|
|
833
|
+
lambda?: number;
|
|
834
|
+
};
|
|
835
|
+
risk_factor?: number;
|
|
836
|
+
high_range?: number;
|
|
400
837
|
}): any;
|
|
401
838
|
export declare function computeProfitDetail(payload: {
|
|
402
839
|
focus_position: {
|
|
@@ -406,11 +843,12 @@ export declare function computeProfitDetail(payload: {
|
|
|
406
843
|
avg_qty: number;
|
|
407
844
|
avg_price: number;
|
|
408
845
|
};
|
|
409
|
-
strategy
|
|
846
|
+
strategy?: {
|
|
410
847
|
reward_factor: number;
|
|
411
848
|
max_reward_factor: number;
|
|
412
849
|
risk: number;
|
|
413
850
|
};
|
|
851
|
+
pnl: number;
|
|
414
852
|
reduce_position?: {
|
|
415
853
|
kind: "long" | "short";
|
|
416
854
|
entry: number;
|
|
@@ -427,11 +865,13 @@ export declare function computeProfitDetail(payload: {
|
|
|
427
865
|
quantity: number;
|
|
428
866
|
};
|
|
429
867
|
};
|
|
868
|
+
full_ratio?: number;
|
|
430
869
|
price_places?: string;
|
|
431
870
|
decimal_places?: string;
|
|
432
871
|
}): {
|
|
433
872
|
pnl: number;
|
|
434
873
|
loss: number;
|
|
874
|
+
full_loss: number;
|
|
435
875
|
original_pnl: number;
|
|
436
876
|
reward_factor: number;
|
|
437
877
|
profit_percent: number;
|
|
@@ -450,21 +890,251 @@ export declare function generateGapTp(payload: {
|
|
|
450
890
|
entry: number;
|
|
451
891
|
quantity: number;
|
|
452
892
|
};
|
|
893
|
+
risk?: number;
|
|
894
|
+
kind?: "long" | "short";
|
|
453
895
|
factor?: number;
|
|
896
|
+
sell_factor?: number;
|
|
454
897
|
price_places?: string;
|
|
455
898
|
decimal_places?: string;
|
|
456
899
|
}): {
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
900
|
+
profit_percent: {
|
|
901
|
+
long: number;
|
|
902
|
+
short: number;
|
|
903
|
+
};
|
|
904
|
+
risk: {
|
|
905
|
+
short: number;
|
|
906
|
+
long: number;
|
|
907
|
+
};
|
|
908
|
+
take_profit: {
|
|
909
|
+
long: number;
|
|
910
|
+
short: number;
|
|
911
|
+
};
|
|
912
|
+
to_reduce: {
|
|
913
|
+
short: number;
|
|
914
|
+
long: number;
|
|
915
|
+
};
|
|
916
|
+
full_reduce: {
|
|
917
|
+
short: number;
|
|
918
|
+
long: number;
|
|
919
|
+
};
|
|
920
|
+
sell_quantity: {
|
|
462
921
|
short: number;
|
|
463
922
|
long: number;
|
|
464
923
|
};
|
|
465
924
|
gap: number;
|
|
466
925
|
gap_loss: number;
|
|
467
926
|
};
|
|
927
|
+
export declare function calculateFactorFromTakeProfit(payload: {
|
|
928
|
+
long: {
|
|
929
|
+
entry: number;
|
|
930
|
+
quantity: number;
|
|
931
|
+
};
|
|
932
|
+
short: {
|
|
933
|
+
entry: number;
|
|
934
|
+
quantity: number;
|
|
935
|
+
};
|
|
936
|
+
knownTp: number;
|
|
937
|
+
tpType: "long" | "short";
|
|
938
|
+
price_places?: string;
|
|
939
|
+
}): number;
|
|
940
|
+
export declare function calculateFactorFromSellQuantity(payload: {
|
|
941
|
+
long: {
|
|
942
|
+
entry: number;
|
|
943
|
+
quantity: number;
|
|
944
|
+
};
|
|
945
|
+
short: {
|
|
946
|
+
entry: number;
|
|
947
|
+
quantity: number;
|
|
948
|
+
};
|
|
949
|
+
knownSellQuantity: number;
|
|
950
|
+
sellType: "long" | "short";
|
|
951
|
+
sell_factor?: number;
|
|
952
|
+
price_places?: string;
|
|
953
|
+
decimal_places?: string;
|
|
954
|
+
}): number;
|
|
955
|
+
export declare function determineRewardFactor(payload: {
|
|
956
|
+
quantity: number;
|
|
957
|
+
avg_qty: number;
|
|
958
|
+
minimum_pnl: number;
|
|
959
|
+
risk: number;
|
|
960
|
+
}): number;
|
|
961
|
+
export type BotPosition = {
|
|
962
|
+
kind: "long" | "short";
|
|
963
|
+
entry: number;
|
|
964
|
+
quantity: number;
|
|
965
|
+
tp: {
|
|
966
|
+
price: number;
|
|
967
|
+
};
|
|
968
|
+
};
|
|
969
|
+
export declare function getHedgeZone(payload: {
|
|
970
|
+
symbol_config: GlobalConfig;
|
|
971
|
+
risk: number;
|
|
972
|
+
position: BotPosition;
|
|
973
|
+
reward_factor?: number;
|
|
974
|
+
risk_factor?: number;
|
|
975
|
+
support?: number;
|
|
976
|
+
}): {
|
|
977
|
+
support: number;
|
|
978
|
+
resistance: number;
|
|
979
|
+
risk: number;
|
|
980
|
+
profit_percent: number;
|
|
981
|
+
};
|
|
982
|
+
export declare function getOptimumHedgeFactor(payload: {
|
|
983
|
+
target_support: number;
|
|
984
|
+
tolerance?: number;
|
|
985
|
+
max_iterations?: number;
|
|
986
|
+
min_factor?: number;
|
|
987
|
+
max_factor?: number;
|
|
988
|
+
symbol_config: GlobalConfig;
|
|
989
|
+
risk: number;
|
|
990
|
+
position: BotPosition;
|
|
991
|
+
}): {
|
|
992
|
+
reward_factor: number;
|
|
993
|
+
achieved_support: number;
|
|
994
|
+
target_support: number;
|
|
995
|
+
difference: number;
|
|
996
|
+
iterations: number;
|
|
997
|
+
converged?: undefined;
|
|
998
|
+
} | {
|
|
999
|
+
reward_factor: number;
|
|
1000
|
+
achieved_support: number;
|
|
1001
|
+
target_support: number;
|
|
1002
|
+
difference: number;
|
|
1003
|
+
iterations: number;
|
|
1004
|
+
converged: boolean;
|
|
1005
|
+
};
|
|
1006
|
+
export type CType = {
|
|
1007
|
+
next_order: number;
|
|
1008
|
+
take_profit: number;
|
|
1009
|
+
};
|
|
1010
|
+
export declare function determineCompoundLongTrade(payload: {
|
|
1011
|
+
focus_short_position: CType;
|
|
1012
|
+
focus_long_position: CType;
|
|
1013
|
+
shortConfig: {
|
|
1014
|
+
entry: number;
|
|
1015
|
+
stop: number;
|
|
1016
|
+
risk_reward: number;
|
|
1017
|
+
risk: number;
|
|
1018
|
+
symbol: string;
|
|
1019
|
+
profit_percent: number;
|
|
1020
|
+
};
|
|
1021
|
+
rr?: number;
|
|
1022
|
+
global_config: GlobalConfig;
|
|
1023
|
+
}): {
|
|
1024
|
+
start_risk: number;
|
|
1025
|
+
short_profit: number;
|
|
1026
|
+
support: number;
|
|
1027
|
+
resistance: number;
|
|
1028
|
+
long_v: any;
|
|
1029
|
+
profit_percent: number;
|
|
1030
|
+
result: any;
|
|
1031
|
+
short_max_size: any;
|
|
1032
|
+
};
|
|
1033
|
+
export declare function generateOppositeTradeConfig(payload: {
|
|
1034
|
+
kind: "long" | "short";
|
|
1035
|
+
entry: number;
|
|
1036
|
+
quantity: number;
|
|
1037
|
+
target_pnl: number;
|
|
1038
|
+
global_config: GlobalConfig;
|
|
1039
|
+
ratio?: number;
|
|
1040
|
+
}): {
|
|
1041
|
+
entry: number;
|
|
1042
|
+
stop: number;
|
|
1043
|
+
risk: number;
|
|
1044
|
+
risk_reward: number | {
|
|
1045
|
+
result: any[];
|
|
1046
|
+
value: number;
|
|
1047
|
+
total: number;
|
|
1048
|
+
risk_per_trade: number;
|
|
1049
|
+
max: number;
|
|
1050
|
+
min: number;
|
|
1051
|
+
avg_size: any;
|
|
1052
|
+
neg_pnl: any;
|
|
1053
|
+
entry: any;
|
|
1054
|
+
};
|
|
1055
|
+
};
|
|
1056
|
+
export declare function constructAppConfig(payload: {
|
|
1057
|
+
account: PositionsView;
|
|
1058
|
+
global_config: GlobalConfig;
|
|
1059
|
+
kelly_config?: {
|
|
1060
|
+
use_kelly: boolean;
|
|
1061
|
+
kelly_confidence_factor: number;
|
|
1062
|
+
kelly_minimum_risk: number;
|
|
1063
|
+
kelly_prediction_model: string;
|
|
1064
|
+
};
|
|
1065
|
+
distribution_config?: {
|
|
1066
|
+
distribution?: GetEntriesParams["distribution"];
|
|
1067
|
+
distribution_params?: {
|
|
1068
|
+
curveFactor?: number;
|
|
1069
|
+
stdDevFactor?: number;
|
|
1070
|
+
lambda?: number;
|
|
1071
|
+
};
|
|
1072
|
+
};
|
|
1073
|
+
}): {
|
|
1074
|
+
fee: number;
|
|
1075
|
+
risk_per_trade: number;
|
|
1076
|
+
risk_reward: number;
|
|
1077
|
+
symbol?: string;
|
|
1078
|
+
focus: number;
|
|
1079
|
+
budget: number;
|
|
1080
|
+
support: number;
|
|
1081
|
+
resistance: number;
|
|
1082
|
+
percent_change: number;
|
|
1083
|
+
tradeSplit?: number;
|
|
1084
|
+
take_profit?: number;
|
|
1085
|
+
kind: "long" | "short";
|
|
1086
|
+
entry: number;
|
|
1087
|
+
stop: number;
|
|
1088
|
+
min_size: number;
|
|
1089
|
+
price_places?: string;
|
|
1090
|
+
strategy?: "quantity" | "entry";
|
|
1091
|
+
as_array?: boolean;
|
|
1092
|
+
decimal_places?: string;
|
|
1093
|
+
min_profit?: number;
|
|
1094
|
+
raw?: boolean;
|
|
1095
|
+
gap?: number;
|
|
1096
|
+
rr?: number;
|
|
1097
|
+
max_size?: number;
|
|
1098
|
+
last_value?: any;
|
|
1099
|
+
max_quantity?: number;
|
|
1100
|
+
kelly?: {
|
|
1101
|
+
use_kelly?: boolean;
|
|
1102
|
+
kelly_confidence_factor?: number;
|
|
1103
|
+
kelly_minimum_risk?: number;
|
|
1104
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
1105
|
+
kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
|
|
1106
|
+
};
|
|
1107
|
+
distribution?: GetEntriesParams["distribution"];
|
|
1108
|
+
distribution_params?: {
|
|
1109
|
+
curveFactor?: number;
|
|
1110
|
+
stdDevFactor?: number;
|
|
1111
|
+
lambda?: number;
|
|
1112
|
+
};
|
|
1113
|
+
};
|
|
1114
|
+
export declare function generateDangerousConfig(payload: {
|
|
1115
|
+
account: PositionsView;
|
|
1116
|
+
global_config: GlobalConfig;
|
|
1117
|
+
config: {
|
|
1118
|
+
quantity: number;
|
|
1119
|
+
stop: number;
|
|
1120
|
+
entry: number;
|
|
1121
|
+
};
|
|
1122
|
+
}): {
|
|
1123
|
+
entry: number;
|
|
1124
|
+
risk: number;
|
|
1125
|
+
stop: number;
|
|
1126
|
+
risk_reward: number | {
|
|
1127
|
+
result: any[];
|
|
1128
|
+
value: number;
|
|
1129
|
+
total: number;
|
|
1130
|
+
risk_per_trade: number;
|
|
1131
|
+
max: number;
|
|
1132
|
+
min: number;
|
|
1133
|
+
avg_size: any;
|
|
1134
|
+
neg_pnl: any;
|
|
1135
|
+
entry: any;
|
|
1136
|
+
};
|
|
1137
|
+
};
|
|
468
1138
|
export type StrategyPosition = {
|
|
469
1139
|
entry: number;
|
|
470
1140
|
quantity: number;
|
|
@@ -650,15 +1320,48 @@ export declare class Strategy {
|
|
|
650
1320
|
gap?: number;
|
|
651
1321
|
rr?: number;
|
|
652
1322
|
max_size?: number;
|
|
1323
|
+
max_quantity?: number;
|
|
1324
|
+
kelly?: {
|
|
1325
|
+
use_kelly?: boolean;
|
|
1326
|
+
kelly_confidence_factor?: number;
|
|
1327
|
+
kelly_minimum_risk?: number;
|
|
1328
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
1329
|
+
kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
|
|
1330
|
+
};
|
|
1331
|
+
distribution?: GetEntriesParams["distribution"];
|
|
1332
|
+
distribution_params?: {
|
|
1333
|
+
curveFactor?: number;
|
|
1334
|
+
stdDevFactor?: number;
|
|
1335
|
+
lambda?: number;
|
|
1336
|
+
};
|
|
653
1337
|
};
|
|
654
1338
|
identifyGapConfig(payload: {
|
|
655
1339
|
factor?: number;
|
|
1340
|
+
sell_factor?: number;
|
|
1341
|
+
kind?: "long" | "short";
|
|
1342
|
+
risk?: number;
|
|
656
1343
|
}): {
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
1344
|
+
profit_percent: {
|
|
1345
|
+
long: number;
|
|
1346
|
+
short: number;
|
|
1347
|
+
};
|
|
1348
|
+
risk: {
|
|
1349
|
+
short: number;
|
|
1350
|
+
long: number;
|
|
1351
|
+
};
|
|
1352
|
+
take_profit: {
|
|
1353
|
+
long: number;
|
|
1354
|
+
short: number;
|
|
1355
|
+
};
|
|
1356
|
+
to_reduce: {
|
|
1357
|
+
short: number;
|
|
1358
|
+
long: number;
|
|
1359
|
+
};
|
|
1360
|
+
full_reduce: {
|
|
1361
|
+
short: number;
|
|
1362
|
+
long: number;
|
|
1363
|
+
};
|
|
1364
|
+
sell_quantity: {
|
|
662
1365
|
short: number;
|
|
663
1366
|
long: number;
|
|
664
1367
|
};
|
|
@@ -673,6 +1376,7 @@ export declare class Strategy {
|
|
|
673
1376
|
}): {
|
|
674
1377
|
pnl: number;
|
|
675
1378
|
loss: number;
|
|
1379
|
+
full_loss: number;
|
|
676
1380
|
original_pnl: number;
|
|
677
1381
|
reward_factor: number;
|
|
678
1382
|
profit_percent: number;
|
|
@@ -682,6 +1386,402 @@ export declare class Strategy {
|
|
|
682
1386
|
price_places: string;
|
|
683
1387
|
decimal_places: string;
|
|
684
1388
|
};
|
|
1389
|
+
simulateGapReduction(payload: {
|
|
1390
|
+
iterations?: number;
|
|
1391
|
+
factor?: number;
|
|
1392
|
+
direction: "long" | "short";
|
|
1393
|
+
kind?: "long" | "short";
|
|
1394
|
+
risk?: number;
|
|
1395
|
+
sell_factor?: number;
|
|
1396
|
+
}): {
|
|
1397
|
+
results: {
|
|
1398
|
+
profit_percent: {
|
|
1399
|
+
long: number;
|
|
1400
|
+
short: number;
|
|
1401
|
+
};
|
|
1402
|
+
risk: {
|
|
1403
|
+
short: number;
|
|
1404
|
+
long: number;
|
|
1405
|
+
};
|
|
1406
|
+
take_profit: {
|
|
1407
|
+
long: number;
|
|
1408
|
+
short: number;
|
|
1409
|
+
};
|
|
1410
|
+
sell_quantity: {
|
|
1411
|
+
short: number;
|
|
1412
|
+
long: number;
|
|
1413
|
+
};
|
|
1414
|
+
gap_loss: number;
|
|
1415
|
+
position: {
|
|
1416
|
+
long: {
|
|
1417
|
+
entry: number;
|
|
1418
|
+
quantity: number;
|
|
1419
|
+
};
|
|
1420
|
+
short: {
|
|
1421
|
+
entry: number;
|
|
1422
|
+
quantity: number;
|
|
1423
|
+
};
|
|
1424
|
+
};
|
|
1425
|
+
}[];
|
|
1426
|
+
quantity: number;
|
|
1427
|
+
};
|
|
685
1428
|
}
|
|
1429
|
+
export interface ComputedTrade {
|
|
1430
|
+
entry: number;
|
|
1431
|
+
quantity: number;
|
|
1432
|
+
avg_size: number;
|
|
1433
|
+
neg_pnl: number;
|
|
1434
|
+
avg_entry: number;
|
|
1435
|
+
stop: number;
|
|
1436
|
+
reverse_avg_entry: number;
|
|
1437
|
+
reverse_avg_quantity: number;
|
|
1438
|
+
fee: number;
|
|
1439
|
+
}
|
|
1440
|
+
export type TradeConfig = {
|
|
1441
|
+
entry: number;
|
|
1442
|
+
stop: number;
|
|
1443
|
+
risk_reward: number;
|
|
1444
|
+
risk: number;
|
|
1445
|
+
symbol: string;
|
|
1446
|
+
distribution?: GetEntriesParams["distribution"];
|
|
1447
|
+
distribution_params?: {
|
|
1448
|
+
curveFactor?: number;
|
|
1449
|
+
stdDevFactor?: number;
|
|
1450
|
+
lambda?: number;
|
|
1451
|
+
};
|
|
1452
|
+
};
|
|
1453
|
+
declare function constructAppConfig$1({ config, global_config, }: {
|
|
1454
|
+
config: TradeConfig;
|
|
1455
|
+
global_config: GlobalConfig;
|
|
1456
|
+
}): {
|
|
1457
|
+
fee: number;
|
|
1458
|
+
risk_per_trade: number;
|
|
1459
|
+
risk_reward: number;
|
|
1460
|
+
symbol?: string;
|
|
1461
|
+
focus: number;
|
|
1462
|
+
budget: number;
|
|
1463
|
+
support: number;
|
|
1464
|
+
resistance: number;
|
|
1465
|
+
percent_change: number;
|
|
1466
|
+
tradeSplit?: number;
|
|
1467
|
+
take_profit?: number;
|
|
1468
|
+
kind: "long" | "short";
|
|
1469
|
+
entry: number;
|
|
1470
|
+
stop: number;
|
|
1471
|
+
min_size: number;
|
|
1472
|
+
price_places?: string;
|
|
1473
|
+
strategy?: "quantity" | "entry";
|
|
1474
|
+
as_array?: boolean;
|
|
1475
|
+
decimal_places?: string;
|
|
1476
|
+
min_profit?: number;
|
|
1477
|
+
raw?: boolean;
|
|
1478
|
+
gap?: number;
|
|
1479
|
+
rr?: number;
|
|
1480
|
+
max_size?: number;
|
|
1481
|
+
last_value?: any;
|
|
1482
|
+
max_quantity?: number;
|
|
1483
|
+
kelly?: {
|
|
1484
|
+
use_kelly?: boolean;
|
|
1485
|
+
kelly_confidence_factor?: number;
|
|
1486
|
+
kelly_minimum_risk?: number;
|
|
1487
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
1488
|
+
kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
|
|
1489
|
+
};
|
|
1490
|
+
distribution?: GetEntriesParams["distribution"];
|
|
1491
|
+
distribution_params?: {
|
|
1492
|
+
curveFactor?: number;
|
|
1493
|
+
stdDevFactor?: number;
|
|
1494
|
+
lambda?: number;
|
|
1495
|
+
};
|
|
1496
|
+
};
|
|
1497
|
+
declare function buildWithOptimumReward({ config, settings, global_config, force_exact, }: {
|
|
1498
|
+
config: TradeConfig;
|
|
1499
|
+
global_config: GlobalConfig;
|
|
1500
|
+
settings: {
|
|
1501
|
+
entry?: number;
|
|
1502
|
+
stop?: number;
|
|
1503
|
+
risk: number;
|
|
1504
|
+
stop_ratio?: number;
|
|
1505
|
+
risk_reward?: number;
|
|
1506
|
+
distribution?: GetEntriesParams["distribution"];
|
|
1507
|
+
distribution_params?: {
|
|
1508
|
+
curveFactor?: number;
|
|
1509
|
+
stdDevFactor?: number;
|
|
1510
|
+
lambda?: number;
|
|
1511
|
+
};
|
|
1512
|
+
};
|
|
1513
|
+
force_exact?: boolean;
|
|
1514
|
+
}): {
|
|
1515
|
+
trades: any[];
|
|
1516
|
+
summary: {
|
|
1517
|
+
entry: number;
|
|
1518
|
+
stop: number;
|
|
1519
|
+
risk: number;
|
|
1520
|
+
risk_reward: any;
|
|
1521
|
+
avg_entry: number;
|
|
1522
|
+
avg_size: number;
|
|
1523
|
+
first_entry: number;
|
|
1524
|
+
pnl: number;
|
|
1525
|
+
fee: number;
|
|
1526
|
+
loss: number;
|
|
1527
|
+
last_entry: number;
|
|
1528
|
+
margin: number;
|
|
1529
|
+
};
|
|
1530
|
+
config: any;
|
|
1531
|
+
stop_order: {
|
|
1532
|
+
quantity: number;
|
|
1533
|
+
price: number;
|
|
1534
|
+
};
|
|
1535
|
+
kind: string;
|
|
1536
|
+
};
|
|
1537
|
+
declare function generateOppositeOptimum({ config, global_config, settings, ratio, distribution, distribution_params, risk_factor, }: {
|
|
1538
|
+
settings: {
|
|
1539
|
+
entry: number;
|
|
1540
|
+
stop: number;
|
|
1541
|
+
risk: number;
|
|
1542
|
+
};
|
|
1543
|
+
config: TradeConfig;
|
|
1544
|
+
global_config: GlobalConfig;
|
|
1545
|
+
fee_percent?: number;
|
|
1546
|
+
ratio?: number;
|
|
1547
|
+
distribution?: any;
|
|
1548
|
+
distribution_params?: {
|
|
1549
|
+
curveFactor?: number;
|
|
1550
|
+
stdDevFactor?: number;
|
|
1551
|
+
lambda?: number;
|
|
1552
|
+
};
|
|
1553
|
+
risk_factor?: number;
|
|
1554
|
+
}): {
|
|
1555
|
+
trades: any[];
|
|
1556
|
+
summary: any;
|
|
1557
|
+
config: {
|
|
1558
|
+
entry: number;
|
|
1559
|
+
stop: number;
|
|
1560
|
+
risk: number;
|
|
1561
|
+
distribution: any;
|
|
1562
|
+
distribution_params: {
|
|
1563
|
+
curveFactor?: number;
|
|
1564
|
+
stdDevFactor?: number;
|
|
1565
|
+
lambda?: number;
|
|
1566
|
+
};
|
|
1567
|
+
risk_factor: number;
|
|
1568
|
+
};
|
|
1569
|
+
kind: string;
|
|
1570
|
+
} | {
|
|
1571
|
+
trades: any[];
|
|
1572
|
+
summary: {
|
|
1573
|
+
entry: number;
|
|
1574
|
+
stop: number;
|
|
1575
|
+
risk: number;
|
|
1576
|
+
risk_reward: any;
|
|
1577
|
+
avg_entry: number;
|
|
1578
|
+
avg_size: number;
|
|
1579
|
+
first_entry: number;
|
|
1580
|
+
pnl: number;
|
|
1581
|
+
fee: number;
|
|
1582
|
+
loss: number;
|
|
1583
|
+
last_entry: number;
|
|
1584
|
+
defaultEntry: number;
|
|
1585
|
+
};
|
|
1586
|
+
config: any;
|
|
1587
|
+
kind: string;
|
|
1588
|
+
};
|
|
1589
|
+
declare function increaseTradeHelper({ increase_qty, stop, config, global_config, style, entry, position, stop_ratio, distribution: default_distribution, distribution_params: default_distribution_params, }: {
|
|
1590
|
+
position: {
|
|
1591
|
+
entry: number;
|
|
1592
|
+
quantity: number;
|
|
1593
|
+
};
|
|
1594
|
+
entry: number;
|
|
1595
|
+
stop: number;
|
|
1596
|
+
config: TradeConfig;
|
|
1597
|
+
global_config: GlobalConfig;
|
|
1598
|
+
increase_qty: number;
|
|
1599
|
+
style: "minimum" | "optimum";
|
|
1600
|
+
stop_ratio?: number;
|
|
1601
|
+
distribution?: any;
|
|
1602
|
+
distribution_params?: {
|
|
1603
|
+
curveFactor?: number;
|
|
1604
|
+
stdDevFactor?: number;
|
|
1605
|
+
lambda?: number;
|
|
1606
|
+
};
|
|
1607
|
+
}): {
|
|
1608
|
+
trades: any[];
|
|
1609
|
+
summary: any;
|
|
1610
|
+
config: any;
|
|
1611
|
+
kind: string;
|
|
1612
|
+
current: {
|
|
1613
|
+
trades: any[];
|
|
1614
|
+
summary: {
|
|
1615
|
+
first_entry: number;
|
|
1616
|
+
last_entry: number;
|
|
1617
|
+
quantity: number;
|
|
1618
|
+
entry: number;
|
|
1619
|
+
loss: number;
|
|
1620
|
+
number_of_trades: number;
|
|
1621
|
+
fee: number;
|
|
1622
|
+
anchor_pnl: any;
|
|
1623
|
+
};
|
|
1624
|
+
};
|
|
1625
|
+
stop_order?: undefined;
|
|
1626
|
+
} | {
|
|
1627
|
+
trades: any[];
|
|
1628
|
+
summary: {
|
|
1629
|
+
entry: number;
|
|
1630
|
+
stop: number;
|
|
1631
|
+
risk: number;
|
|
1632
|
+
risk_reward: any;
|
|
1633
|
+
avg_entry: number;
|
|
1634
|
+
avg_size: number;
|
|
1635
|
+
first_entry: number;
|
|
1636
|
+
pnl: number;
|
|
1637
|
+
fee: number;
|
|
1638
|
+
loss: number;
|
|
1639
|
+
last_entry: number;
|
|
1640
|
+
margin: number;
|
|
1641
|
+
};
|
|
1642
|
+
stop_order: {
|
|
1643
|
+
quantity: number;
|
|
1644
|
+
price: number;
|
|
1645
|
+
};
|
|
1646
|
+
config: any;
|
|
1647
|
+
kind: string;
|
|
1648
|
+
current: {
|
|
1649
|
+
trades: any[];
|
|
1650
|
+
summary: {
|
|
1651
|
+
first_entry: number;
|
|
1652
|
+
last_entry: number;
|
|
1653
|
+
quantity: number;
|
|
1654
|
+
entry: number;
|
|
1655
|
+
loss: number;
|
|
1656
|
+
number_of_trades: number;
|
|
1657
|
+
fee: number;
|
|
1658
|
+
anchor_pnl: any;
|
|
1659
|
+
};
|
|
1660
|
+
};
|
|
1661
|
+
};
|
|
1662
|
+
declare function generatePositionIncreaseTrade({ account, zoneAccount, ratio, config, global_config, style, distribution, distribution_params, }: {
|
|
1663
|
+
style?: "optimum" | "minimum";
|
|
1664
|
+
account: {
|
|
1665
|
+
long: {
|
|
1666
|
+
entry: number;
|
|
1667
|
+
quantity: number;
|
|
1668
|
+
};
|
|
1669
|
+
short: {
|
|
1670
|
+
entry: number;
|
|
1671
|
+
quantity: number;
|
|
1672
|
+
};
|
|
1673
|
+
};
|
|
1674
|
+
config: TradeConfig;
|
|
1675
|
+
global_config: GlobalConfig;
|
|
1676
|
+
zoneAccount: {
|
|
1677
|
+
entry: number;
|
|
1678
|
+
stop: number;
|
|
1679
|
+
};
|
|
1680
|
+
ratio?: number;
|
|
1681
|
+
distribution?: any;
|
|
1682
|
+
distribution_params?: {
|
|
1683
|
+
curveFactor?: number;
|
|
1684
|
+
stdDevFactor?: number;
|
|
1685
|
+
lambda?: number;
|
|
1686
|
+
};
|
|
1687
|
+
}): {
|
|
1688
|
+
trades: any[];
|
|
1689
|
+
summary: any;
|
|
1690
|
+
config: any;
|
|
1691
|
+
kind: string;
|
|
1692
|
+
current: {
|
|
1693
|
+
trades: any[];
|
|
1694
|
+
summary: {
|
|
1695
|
+
first_entry: number;
|
|
1696
|
+
last_entry: number;
|
|
1697
|
+
quantity: number;
|
|
1698
|
+
entry: number;
|
|
1699
|
+
loss: number;
|
|
1700
|
+
number_of_trades: number;
|
|
1701
|
+
fee: number;
|
|
1702
|
+
anchor_pnl: any;
|
|
1703
|
+
};
|
|
1704
|
+
};
|
|
1705
|
+
stop_order?: undefined;
|
|
1706
|
+
} | {
|
|
1707
|
+
trades: any[];
|
|
1708
|
+
summary: {
|
|
1709
|
+
entry: number;
|
|
1710
|
+
stop: number;
|
|
1711
|
+
risk: number;
|
|
1712
|
+
risk_reward: any;
|
|
1713
|
+
avg_entry: number;
|
|
1714
|
+
avg_size: number;
|
|
1715
|
+
first_entry: number;
|
|
1716
|
+
pnl: number;
|
|
1717
|
+
fee: number;
|
|
1718
|
+
loss: number;
|
|
1719
|
+
last_entry: number;
|
|
1720
|
+
margin: number;
|
|
1721
|
+
};
|
|
1722
|
+
stop_order: {
|
|
1723
|
+
quantity: number;
|
|
1724
|
+
price: number;
|
|
1725
|
+
};
|
|
1726
|
+
config: any;
|
|
1727
|
+
kind: string;
|
|
1728
|
+
current: {
|
|
1729
|
+
trades: any[];
|
|
1730
|
+
summary: {
|
|
1731
|
+
first_entry: number;
|
|
1732
|
+
last_entry: number;
|
|
1733
|
+
quantity: number;
|
|
1734
|
+
entry: number;
|
|
1735
|
+
loss: number;
|
|
1736
|
+
number_of_trades: number;
|
|
1737
|
+
fee: number;
|
|
1738
|
+
anchor_pnl: any;
|
|
1739
|
+
};
|
|
1740
|
+
};
|
|
1741
|
+
};
|
|
1742
|
+
declare function determineHedgeTradeToPlace({ position, config, global_config, profit_risk, allowable_loss, }: {
|
|
1743
|
+
position: {
|
|
1744
|
+
entry: number;
|
|
1745
|
+
quantity: number;
|
|
1746
|
+
kind: "long" | "short";
|
|
1747
|
+
};
|
|
1748
|
+
config: TradeConfig;
|
|
1749
|
+
global_config: GlobalConfig;
|
|
1750
|
+
profit_risk?: number;
|
|
1751
|
+
allowable_loss?: number;
|
|
1752
|
+
}): {
|
|
1753
|
+
opposite: {
|
|
1754
|
+
trades: any[];
|
|
1755
|
+
summary: {
|
|
1756
|
+
entry: number;
|
|
1757
|
+
stop: number;
|
|
1758
|
+
risk: number;
|
|
1759
|
+
risk_reward: any;
|
|
1760
|
+
avg_entry: number;
|
|
1761
|
+
avg_size: number;
|
|
1762
|
+
first_entry: number;
|
|
1763
|
+
pnl: number;
|
|
1764
|
+
fee: number;
|
|
1765
|
+
loss: number;
|
|
1766
|
+
last_entry: number;
|
|
1767
|
+
margin: number;
|
|
1768
|
+
};
|
|
1769
|
+
config: any;
|
|
1770
|
+
stop_order: {
|
|
1771
|
+
quantity: number;
|
|
1772
|
+
price: number;
|
|
1773
|
+
};
|
|
1774
|
+
kind: string;
|
|
1775
|
+
};
|
|
1776
|
+
take_profit: number;
|
|
1777
|
+
};
|
|
1778
|
+
export declare const compoundAPI: {
|
|
1779
|
+
determineHedgeTradeToPlace: typeof determineHedgeTradeToPlace;
|
|
1780
|
+
buildWithOptimumReward: typeof buildWithOptimumReward;
|
|
1781
|
+
constructAppConfig: typeof constructAppConfig$1;
|
|
1782
|
+
generateOppositeOptimum: typeof generateOppositeOptimum;
|
|
1783
|
+
increaseTradeHelper: typeof increaseTradeHelper;
|
|
1784
|
+
generatePositionIncreaseTrade: typeof generatePositionIncreaseTrade;
|
|
1785
|
+
};
|
|
686
1786
|
|
|
687
1787
|
export {};
|