@gbozee/ultimate 0.0.2-99 → 0.0.2-next.0
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 +1085 -24
- package/dist/frontend-index.js +1645 -78
- package/dist/index.cjs +8691 -2993
- package/dist/index.d.ts +1858 -303
- package/dist/index.js +8695 -3001
- package/dist/mcp-client.cjs +25 -50
- package/dist/mcp-client.js +25 -50
- package/dist/mcp-server.cjs +8632 -2698
- package/dist/mcp-server.js +8636 -2706
- package/package.json +7 -4
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,32 @@ 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
|
+
};
|
|
102
173
|
};
|
|
103
174
|
declare class Signal {
|
|
104
175
|
focus: number;
|
|
105
176
|
budget: number;
|
|
106
177
|
percent_change: number;
|
|
107
178
|
price_places: string;
|
|
179
|
+
distribution_params: {
|
|
180
|
+
curveFactor?: number;
|
|
181
|
+
stdDevFactor?: number;
|
|
182
|
+
lambda?: number;
|
|
183
|
+
};
|
|
108
184
|
decimal_places: string;
|
|
109
185
|
zone_risk: number;
|
|
110
186
|
fee: number;
|
|
@@ -121,8 +197,19 @@ declare class Signal {
|
|
|
121
197
|
first_order_size: number;
|
|
122
198
|
gap: number;
|
|
123
199
|
max_size: number;
|
|
124
|
-
|
|
125
|
-
|
|
200
|
+
use_kelly: boolean;
|
|
201
|
+
kelly_prediction_model: "exponential" | "normal" | "uniform";
|
|
202
|
+
kelly_confidence_factor: number;
|
|
203
|
+
kelly_minimum_risk: number;
|
|
204
|
+
kelly_func: "theoretical" | "position_based" | "theoretical_fixed";
|
|
205
|
+
symbol?: string;
|
|
206
|
+
distribution: {
|
|
207
|
+
long: GetEntriesParams["distribution"];
|
|
208
|
+
short: GetEntriesParams["distribution"];
|
|
209
|
+
};
|
|
210
|
+
max_quantity: number;
|
|
211
|
+
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, }: SignalConfigType);
|
|
212
|
+
build_entry({ current_price, stop_loss, pnl, stop_percent, kind, risk, no_of_trades, take_profit, distribution, distribution_params, }: {
|
|
126
213
|
take_profit?: number;
|
|
127
214
|
no_of_trades?: number;
|
|
128
215
|
current_price: number;
|
|
@@ -131,6 +218,12 @@ declare class Signal {
|
|
|
131
218
|
risk: number;
|
|
132
219
|
stop_percent?: number;
|
|
133
220
|
pnl?: number;
|
|
221
|
+
distribution?: GetEntriesParams["distribution"];
|
|
222
|
+
distribution_params?: {
|
|
223
|
+
curveFactor?: number;
|
|
224
|
+
stdDevFactor?: number;
|
|
225
|
+
lambda?: number;
|
|
226
|
+
};
|
|
134
227
|
}): any;
|
|
135
228
|
get risk(): number;
|
|
136
229
|
get min_trades(): number;
|
|
@@ -164,6 +257,11 @@ declare class Signal {
|
|
|
164
257
|
kind?: "long" | "short";
|
|
165
258
|
limit?: boolean;
|
|
166
259
|
}): any;
|
|
260
|
+
get_future_zones_simple({ current_price, kind, raw, }: {
|
|
261
|
+
raw?: boolean;
|
|
262
|
+
current_price: number;
|
|
263
|
+
kind?: "long" | "short";
|
|
264
|
+
}): number[];
|
|
167
265
|
get_future_zones({ current_price, kind, raw, }: {
|
|
168
266
|
raw?: boolean;
|
|
169
267
|
current_price: number;
|
|
@@ -208,26 +306,204 @@ declare class Signal {
|
|
|
208
306
|
to_df(currentPrice: number, places?: string): number;
|
|
209
307
|
}
|
|
210
308
|
export type GlobalConfig = {
|
|
211
|
-
profit_percent
|
|
309
|
+
profit_percent?: number;
|
|
212
310
|
symbol: string;
|
|
213
|
-
profit
|
|
214
|
-
risk
|
|
215
|
-
stop_percent
|
|
311
|
+
profit?: number;
|
|
312
|
+
risk?: number;
|
|
313
|
+
stop_percent?: number;
|
|
216
314
|
kind: "long" | "short";
|
|
217
|
-
reduce_percent
|
|
315
|
+
reduce_percent?: number;
|
|
218
316
|
support: number;
|
|
219
317
|
resistance: number;
|
|
220
318
|
price_places: string;
|
|
221
319
|
decimal_places: string;
|
|
222
|
-
min_size
|
|
223
|
-
accounts
|
|
320
|
+
min_size?: number;
|
|
321
|
+
accounts?: {
|
|
224
322
|
owner: string;
|
|
225
323
|
exchange?: string;
|
|
226
324
|
}[];
|
|
227
|
-
risk_reward
|
|
228
|
-
reverse_factor
|
|
325
|
+
risk_reward?: number;
|
|
326
|
+
reverse_factor?: number;
|
|
229
327
|
leverage?: number;
|
|
328
|
+
max_quantity?: number;
|
|
329
|
+
fee_percent?: number;
|
|
230
330
|
};
|
|
331
|
+
export interface BaseSystemFields {
|
|
332
|
+
id: string;
|
|
333
|
+
created: string;
|
|
334
|
+
updated: string;
|
|
335
|
+
}
|
|
336
|
+
export interface ExchangeAccount extends BaseSystemFields {
|
|
337
|
+
exchange: "binance" | "bybit";
|
|
338
|
+
owner: string;
|
|
339
|
+
email?: string;
|
|
340
|
+
user?: string;
|
|
341
|
+
usdt?: number;
|
|
342
|
+
usdc?: number;
|
|
343
|
+
proxy?: string;
|
|
344
|
+
bullish?: boolean;
|
|
345
|
+
bearish?: boolean;
|
|
346
|
+
movePercent?: number;
|
|
347
|
+
totalRisk?: number;
|
|
348
|
+
max_non_essential?: number;
|
|
349
|
+
profit_percent?: number;
|
|
350
|
+
risk_reward?: number;
|
|
351
|
+
exclude_coins?: {
|
|
352
|
+
bullish?: string[];
|
|
353
|
+
};
|
|
354
|
+
include_delisted?: boolean;
|
|
355
|
+
}
|
|
356
|
+
export interface SymbolConfig extends BaseSystemFields {
|
|
357
|
+
symbol: string;
|
|
358
|
+
support?: number;
|
|
359
|
+
resistance?: number;
|
|
360
|
+
stop_percent?: number;
|
|
361
|
+
price_places?: string;
|
|
362
|
+
decimal_places?: string;
|
|
363
|
+
min_size?: number;
|
|
364
|
+
weight?: number;
|
|
365
|
+
leverage?: number;
|
|
366
|
+
candle_count?: number;
|
|
367
|
+
interval?: any;
|
|
368
|
+
fee_percent?: number;
|
|
369
|
+
}
|
|
370
|
+
export interface ScheduledTrade extends BaseSystemFields {
|
|
371
|
+
symbol: string;
|
|
372
|
+
account: string;
|
|
373
|
+
profit?: number;
|
|
374
|
+
risk?: number;
|
|
375
|
+
entry?: number;
|
|
376
|
+
stop?: number;
|
|
377
|
+
risk_reward?: number;
|
|
378
|
+
profit_percent?: number;
|
|
379
|
+
place_tp?: boolean;
|
|
380
|
+
kind?: "long" | "short";
|
|
381
|
+
follow?: boolean | 1 | 0;
|
|
382
|
+
reduce_ratio?: number;
|
|
383
|
+
sell_ratio?: number;
|
|
384
|
+
threshold_qty?: number;
|
|
385
|
+
pause_tp?: boolean;
|
|
386
|
+
stop_percent?: number;
|
|
387
|
+
kelly?: {
|
|
388
|
+
use_kelly?: boolean;
|
|
389
|
+
kelly_confidence_factor?: number;
|
|
390
|
+
kelly_minimum_risk?: number;
|
|
391
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
392
|
+
};
|
|
393
|
+
distribution?: GetEntriesParams["distribution"];
|
|
394
|
+
distribution_params?: {
|
|
395
|
+
curveFactor?: number;
|
|
396
|
+
stdDevFactor?: number;
|
|
397
|
+
lambda?: number;
|
|
398
|
+
};
|
|
399
|
+
settings?: {
|
|
400
|
+
gap_trading?: {
|
|
401
|
+
entry_risk?: number;
|
|
402
|
+
hedge_stop_ratio?: number;
|
|
403
|
+
};
|
|
404
|
+
bad_hedge?: {
|
|
405
|
+
hedges_distribution?: GetEntriesParams["distribution"];
|
|
406
|
+
hedges_ratio?: number;
|
|
407
|
+
opposite_trade_distribution?: GetEntriesParams["distribution"];
|
|
408
|
+
opposite_trade_ratio?: number;
|
|
409
|
+
stop_loss?: number;
|
|
410
|
+
};
|
|
411
|
+
};
|
|
412
|
+
}
|
|
413
|
+
export interface AccountStrategy extends BaseSystemFields {
|
|
414
|
+
account: string;
|
|
415
|
+
symbol: string;
|
|
416
|
+
risk?: number;
|
|
417
|
+
reward_factor?: number;
|
|
418
|
+
kind?: "long" | "short";
|
|
419
|
+
support?: number;
|
|
420
|
+
resistance?: number;
|
|
421
|
+
running?: boolean;
|
|
422
|
+
max_reward_factor?: number;
|
|
423
|
+
follow?: boolean;
|
|
424
|
+
risk_reward?: number;
|
|
425
|
+
dynamic?: boolean;
|
|
426
|
+
}
|
|
427
|
+
interface Proxy$1 extends BaseSystemFields {
|
|
428
|
+
ip_address?: string;
|
|
429
|
+
type?: "http" | "socks5";
|
|
430
|
+
}
|
|
431
|
+
export interface PositionsView {
|
|
432
|
+
id: string;
|
|
433
|
+
symbol?: any;
|
|
434
|
+
entry?: any;
|
|
435
|
+
quantity?: any;
|
|
436
|
+
take_profit?: any;
|
|
437
|
+
account?: any;
|
|
438
|
+
kind?: any;
|
|
439
|
+
target_pnl?: number;
|
|
440
|
+
liquidation?: number;
|
|
441
|
+
avg_price?: number;
|
|
442
|
+
avg_qty?: number;
|
|
443
|
+
next_order?: number;
|
|
444
|
+
last_order?: number;
|
|
445
|
+
config?: any;
|
|
446
|
+
stop_loss?: {
|
|
447
|
+
price: number;
|
|
448
|
+
quantity: number;
|
|
449
|
+
};
|
|
450
|
+
stop_pnl?: any;
|
|
451
|
+
leverage?: any;
|
|
452
|
+
avg_liquidation?: any;
|
|
453
|
+
balance?: any;
|
|
454
|
+
reduce_ratio?: number;
|
|
455
|
+
sell_ratio?: number;
|
|
456
|
+
threshold_qty?: number;
|
|
457
|
+
follow?: boolean | 1 | 0;
|
|
458
|
+
current_price?: number;
|
|
459
|
+
usd_balance?: number;
|
|
460
|
+
tp?: {
|
|
461
|
+
price: number;
|
|
462
|
+
quantity: number;
|
|
463
|
+
};
|
|
464
|
+
next_risk?: number;
|
|
465
|
+
proxy?: string;
|
|
466
|
+
expand?: {
|
|
467
|
+
p_account?: ExchangeAccount;
|
|
468
|
+
b_config?: ScheduledTrade;
|
|
469
|
+
proxy?: Proxy$1;
|
|
470
|
+
account_strategy?: AccountStrategy;
|
|
471
|
+
compound_instance?: CompoundInstance;
|
|
472
|
+
support?: SupportTable;
|
|
473
|
+
symbol_config: SymbolConfig;
|
|
474
|
+
resistance?: SupportTable;
|
|
475
|
+
anchor?: Omit<PositionsView, "expand">;
|
|
476
|
+
record?: any;
|
|
477
|
+
};
|
|
478
|
+
pnl?: number;
|
|
479
|
+
support_price?: number;
|
|
480
|
+
}
|
|
481
|
+
export interface Compounder extends BaseSystemFields {
|
|
482
|
+
risk?: number;
|
|
483
|
+
profit_percent?: number;
|
|
484
|
+
owner?: string;
|
|
485
|
+
completed?: boolean;
|
|
486
|
+
start_balance?: number;
|
|
487
|
+
starting_risk?: number;
|
|
488
|
+
fee_rate?: number;
|
|
489
|
+
}
|
|
490
|
+
export interface CompoundInstance extends BaseSystemFields {
|
|
491
|
+
ref?: string;
|
|
492
|
+
position?: string;
|
|
493
|
+
risk?: number;
|
|
494
|
+
hedged?: boolean;
|
|
495
|
+
loss?: number;
|
|
496
|
+
expand?: {
|
|
497
|
+
ref?: Compounder;
|
|
498
|
+
};
|
|
499
|
+
}
|
|
500
|
+
export interface SupportTable extends BaseSystemFields {
|
|
501
|
+
symbol?: string;
|
|
502
|
+
price?: number;
|
|
503
|
+
counter?: number;
|
|
504
|
+
last_updated?: string;
|
|
505
|
+
kind?: "long" | "short";
|
|
506
|
+
}
|
|
231
507
|
export type AppConfig = {
|
|
232
508
|
fee: number;
|
|
233
509
|
risk_per_trade: number;
|
|
@@ -255,6 +531,20 @@ export type AppConfig = {
|
|
|
255
531
|
max_size?: number;
|
|
256
532
|
last_value?: any;
|
|
257
533
|
entries?: any[];
|
|
534
|
+
max_quantity?: number;
|
|
535
|
+
kelly?: {
|
|
536
|
+
use_kelly?: boolean;
|
|
537
|
+
kelly_confidence_factor?: number;
|
|
538
|
+
kelly_minimum_risk?: number;
|
|
539
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
540
|
+
kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
|
|
541
|
+
};
|
|
542
|
+
distribution?: GetEntriesParams["distribution"];
|
|
543
|
+
distribution_params?: {
|
|
544
|
+
curveFactor?: number;
|
|
545
|
+
stdDevFactor?: number;
|
|
546
|
+
lambda?: number;
|
|
547
|
+
};
|
|
258
548
|
};
|
|
259
549
|
export type ExtendConfigType = {
|
|
260
550
|
take_profit?: number;
|
|
@@ -271,8 +561,20 @@ export type ExtendConfigType = {
|
|
|
271
561
|
kind?: "long" | "short";
|
|
272
562
|
gap?: number;
|
|
273
563
|
rr?: number;
|
|
564
|
+
min_avg_size?: number;
|
|
565
|
+
use_kelly?: boolean;
|
|
566
|
+
kelly_confidence_factor?: number;
|
|
567
|
+
kelly_minimum_risk?: number;
|
|
568
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
569
|
+
kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
|
|
570
|
+
distribution?: GetEntriesParams["distribution"];
|
|
571
|
+
distribution_params?: {
|
|
572
|
+
curveFactor?: number;
|
|
573
|
+
stdDevFactor?: number;
|
|
574
|
+
lambda?: number;
|
|
575
|
+
};
|
|
274
576
|
};
|
|
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;
|
|
577
|
+
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, }: ExtendConfigType): any[] | Signal;
|
|
276
578
|
export declare function buildAvg({ _trades, kind, }: {
|
|
277
579
|
_trades: any[];
|
|
278
580
|
kind: "long" | "short";
|
|
@@ -282,6 +584,17 @@ export declare function get_app_config_and_max_size(config: GlobalConfig, payloa
|
|
|
282
584
|
entry: number;
|
|
283
585
|
stop: number;
|
|
284
586
|
kind: "long" | "short";
|
|
587
|
+
use_kelly?: boolean;
|
|
588
|
+
kelly_confidence_factor?: number;
|
|
589
|
+
kelly_minimum_risk?: number;
|
|
590
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
591
|
+
kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
|
|
592
|
+
distribution?: GetEntriesParams["distribution"];
|
|
593
|
+
distribution_params?: {
|
|
594
|
+
curveFactor?: number;
|
|
595
|
+
stdDevFactor?: number;
|
|
596
|
+
lambda?: number;
|
|
597
|
+
};
|
|
285
598
|
}): {
|
|
286
599
|
app_config: AppConfig;
|
|
287
600
|
max_size: any;
|
|
@@ -301,11 +614,28 @@ export declare function buildAppConfig(config: GlobalConfig, payload: {
|
|
|
301
614
|
risk: number;
|
|
302
615
|
symbol: string;
|
|
303
616
|
profit?: number;
|
|
617
|
+
use_kelly?: boolean;
|
|
618
|
+
kelly_confidence_factor?: number;
|
|
619
|
+
kelly_minimum_risk?: number;
|
|
620
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
621
|
+
kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
|
|
622
|
+
distribution?: GetEntriesParams["distribution"];
|
|
623
|
+
distribution_params?: {
|
|
624
|
+
curveFactor?: number;
|
|
625
|
+
stdDevFactor?: number;
|
|
626
|
+
lambda?: number;
|
|
627
|
+
};
|
|
304
628
|
}): AppConfig;
|
|
305
629
|
export declare function getOptimumStopAndRisk(app_config: AppConfig, params: {
|
|
306
630
|
max_size: number;
|
|
307
631
|
target_stop: number;
|
|
308
632
|
highest_risk?: number;
|
|
633
|
+
distribution?: GetEntriesParams["distribution"];
|
|
634
|
+
distribution_params?: {
|
|
635
|
+
curveFactor?: number;
|
|
636
|
+
stdDevFactor?: number;
|
|
637
|
+
lambda?: number;
|
|
638
|
+
};
|
|
309
639
|
}): {
|
|
310
640
|
optimal_stop: number;
|
|
311
641
|
optimal_risk: number;
|
|
@@ -362,26 +692,82 @@ export declare function generateOptimumAppConfig(config: GlobalConfig, payload:
|
|
|
362
692
|
risk_reward: number;
|
|
363
693
|
start_risk: number;
|
|
364
694
|
max_risk?: number;
|
|
695
|
+
distribution?: GetEntriesParams["distribution"];
|
|
696
|
+
distribution_params?: {
|
|
697
|
+
curveFactor?: number;
|
|
698
|
+
stdDevFactor?: number;
|
|
699
|
+
lambda?: number;
|
|
700
|
+
};
|
|
365
701
|
}, position: {
|
|
366
702
|
entry: number;
|
|
367
703
|
quantity: number;
|
|
368
704
|
kind: "long" | "short";
|
|
369
705
|
}): AppConfig | null;
|
|
370
|
-
export declare function determineOptimumReward(
|
|
706
|
+
export declare function determineOptimumReward(payload: {
|
|
707
|
+
app_config: AppConfig;
|
|
708
|
+
increase?: boolean;
|
|
709
|
+
low_range?: number;
|
|
710
|
+
high_range?: number;
|
|
711
|
+
target_loss?: number;
|
|
712
|
+
distribution?: GetEntriesParams["distribution"];
|
|
713
|
+
distribution_params?: {
|
|
714
|
+
curveFactor?: number;
|
|
715
|
+
stdDevFactor?: number;
|
|
716
|
+
lambda?: number;
|
|
717
|
+
};
|
|
718
|
+
max_size?: number;
|
|
719
|
+
}): number | {
|
|
371
720
|
result: any[];
|
|
372
721
|
value: number;
|
|
373
722
|
total: number;
|
|
374
723
|
risk_per_trade: number;
|
|
375
724
|
max: number;
|
|
376
725
|
min: number;
|
|
726
|
+
avg_size: any;
|
|
377
727
|
neg_pnl: any;
|
|
378
728
|
entry: any;
|
|
379
729
|
};
|
|
730
|
+
export declare function determineOptimumRisk(config: GlobalConfig, payload: {
|
|
731
|
+
entry: number;
|
|
732
|
+
stop: number;
|
|
733
|
+
risk_reward: number;
|
|
734
|
+
risk: number;
|
|
735
|
+
symbol: string;
|
|
736
|
+
distribution?: GetEntriesParams["distribution"];
|
|
737
|
+
distribution_params?: {
|
|
738
|
+
curveFactor?: number;
|
|
739
|
+
stdDevFactor?: number;
|
|
740
|
+
lambda?: number;
|
|
741
|
+
};
|
|
742
|
+
}, params: {
|
|
743
|
+
highest_risk: number;
|
|
744
|
+
tolerance?: number;
|
|
745
|
+
max_iterations?: number;
|
|
746
|
+
}): {
|
|
747
|
+
optimal_risk: number;
|
|
748
|
+
achieved_neg_pnl: number;
|
|
749
|
+
target_neg_pnl: number;
|
|
750
|
+
difference: number;
|
|
751
|
+
iterations: number;
|
|
752
|
+
converged: boolean;
|
|
753
|
+
last_value: any;
|
|
754
|
+
entries: any[];
|
|
755
|
+
app_config: AppConfig;
|
|
756
|
+
};
|
|
380
757
|
export declare function computeRiskReward(payload: {
|
|
381
758
|
app_config: AppConfig;
|
|
382
759
|
entry: number;
|
|
383
760
|
stop: number;
|
|
384
761
|
risk_per_trade: number;
|
|
762
|
+
target_loss?: number;
|
|
763
|
+
distribution?: GetEntriesParams["distribution"];
|
|
764
|
+
distribution_params?: {
|
|
765
|
+
curveFactor?: number;
|
|
766
|
+
stdDevFactor?: number;
|
|
767
|
+
lambda?: number;
|
|
768
|
+
};
|
|
769
|
+
high_range?: number;
|
|
770
|
+
max_size?: number;
|
|
385
771
|
}): number | {
|
|
386
772
|
result: any[];
|
|
387
773
|
value: number;
|
|
@@ -389,6 +775,7 @@ export declare function computeRiskReward(payload: {
|
|
|
389
775
|
risk_per_trade: number;
|
|
390
776
|
max: number;
|
|
391
777
|
min: number;
|
|
778
|
+
avg_size: any;
|
|
392
779
|
neg_pnl: any;
|
|
393
780
|
entry: any;
|
|
394
781
|
};
|
|
@@ -397,6 +784,17 @@ export declare function getRiskReward(payload: {
|
|
|
397
784
|
stop: number;
|
|
398
785
|
risk: number;
|
|
399
786
|
global_config: GlobalConfig;
|
|
787
|
+
force_exact_risk?: boolean;
|
|
788
|
+
target_loss?: number;
|
|
789
|
+
max_size?: number;
|
|
790
|
+
distribution?: GetEntriesParams["distribution"];
|
|
791
|
+
distribution_params?: {
|
|
792
|
+
curveFactor?: number;
|
|
793
|
+
stdDevFactor?: number;
|
|
794
|
+
lambda?: number;
|
|
795
|
+
};
|
|
796
|
+
risk_factor?: number;
|
|
797
|
+
high_range?: number;
|
|
400
798
|
}): any;
|
|
401
799
|
export declare function computeProfitDetail(payload: {
|
|
402
800
|
focus_position: {
|
|
@@ -406,11 +804,12 @@ export declare function computeProfitDetail(payload: {
|
|
|
406
804
|
avg_qty: number;
|
|
407
805
|
avg_price: number;
|
|
408
806
|
};
|
|
409
|
-
strategy
|
|
807
|
+
strategy?: {
|
|
410
808
|
reward_factor: number;
|
|
411
809
|
max_reward_factor: number;
|
|
412
810
|
risk: number;
|
|
413
811
|
};
|
|
812
|
+
pnl: number;
|
|
414
813
|
reduce_position?: {
|
|
415
814
|
kind: "long" | "short";
|
|
416
815
|
entry: number;
|
|
@@ -427,11 +826,13 @@ export declare function computeProfitDetail(payload: {
|
|
|
427
826
|
quantity: number;
|
|
428
827
|
};
|
|
429
828
|
};
|
|
829
|
+
full_ratio?: number;
|
|
430
830
|
price_places?: string;
|
|
431
831
|
decimal_places?: string;
|
|
432
832
|
}): {
|
|
433
833
|
pnl: number;
|
|
434
834
|
loss: number;
|
|
835
|
+
full_loss: number;
|
|
435
836
|
original_pnl: number;
|
|
436
837
|
reward_factor: number;
|
|
437
838
|
profit_percent: number;
|
|
@@ -450,21 +851,251 @@ export declare function generateGapTp(payload: {
|
|
|
450
851
|
entry: number;
|
|
451
852
|
quantity: number;
|
|
452
853
|
};
|
|
854
|
+
risk?: number;
|
|
855
|
+
kind?: "long" | "short";
|
|
453
856
|
factor?: number;
|
|
857
|
+
sell_factor?: number;
|
|
454
858
|
price_places?: string;
|
|
455
859
|
decimal_places?: string;
|
|
456
860
|
}): {
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
861
|
+
profit_percent: {
|
|
862
|
+
long: number;
|
|
863
|
+
short: number;
|
|
864
|
+
};
|
|
865
|
+
risk: {
|
|
866
|
+
short: number;
|
|
867
|
+
long: number;
|
|
868
|
+
};
|
|
869
|
+
take_profit: {
|
|
870
|
+
long: number;
|
|
871
|
+
short: number;
|
|
872
|
+
};
|
|
873
|
+
to_reduce: {
|
|
874
|
+
short: number;
|
|
875
|
+
long: number;
|
|
876
|
+
};
|
|
877
|
+
full_reduce: {
|
|
878
|
+
short: number;
|
|
879
|
+
long: number;
|
|
880
|
+
};
|
|
881
|
+
sell_quantity: {
|
|
462
882
|
short: number;
|
|
463
883
|
long: number;
|
|
464
884
|
};
|
|
465
885
|
gap: number;
|
|
466
886
|
gap_loss: number;
|
|
467
887
|
};
|
|
888
|
+
export declare function calculateFactorFromTakeProfit(payload: {
|
|
889
|
+
long: {
|
|
890
|
+
entry: number;
|
|
891
|
+
quantity: number;
|
|
892
|
+
};
|
|
893
|
+
short: {
|
|
894
|
+
entry: number;
|
|
895
|
+
quantity: number;
|
|
896
|
+
};
|
|
897
|
+
knownTp: number;
|
|
898
|
+
tpType: "long" | "short";
|
|
899
|
+
price_places?: string;
|
|
900
|
+
}): number;
|
|
901
|
+
export declare function calculateFactorFromSellQuantity(payload: {
|
|
902
|
+
long: {
|
|
903
|
+
entry: number;
|
|
904
|
+
quantity: number;
|
|
905
|
+
};
|
|
906
|
+
short: {
|
|
907
|
+
entry: number;
|
|
908
|
+
quantity: number;
|
|
909
|
+
};
|
|
910
|
+
knownSellQuantity: number;
|
|
911
|
+
sellType: "long" | "short";
|
|
912
|
+
sell_factor?: number;
|
|
913
|
+
price_places?: string;
|
|
914
|
+
decimal_places?: string;
|
|
915
|
+
}): number;
|
|
916
|
+
export declare function determineRewardFactor(payload: {
|
|
917
|
+
quantity: number;
|
|
918
|
+
avg_qty: number;
|
|
919
|
+
minimum_pnl: number;
|
|
920
|
+
risk: number;
|
|
921
|
+
}): number;
|
|
922
|
+
export type BotPosition = {
|
|
923
|
+
kind: "long" | "short";
|
|
924
|
+
entry: number;
|
|
925
|
+
quantity: number;
|
|
926
|
+
tp: {
|
|
927
|
+
price: number;
|
|
928
|
+
};
|
|
929
|
+
};
|
|
930
|
+
export declare function getHedgeZone(payload: {
|
|
931
|
+
symbol_config: GlobalConfig;
|
|
932
|
+
risk: number;
|
|
933
|
+
position: BotPosition;
|
|
934
|
+
reward_factor?: number;
|
|
935
|
+
risk_factor?: number;
|
|
936
|
+
support?: number;
|
|
937
|
+
}): {
|
|
938
|
+
support: number;
|
|
939
|
+
resistance: number;
|
|
940
|
+
risk: number;
|
|
941
|
+
profit_percent: number;
|
|
942
|
+
};
|
|
943
|
+
export declare function getOptimumHedgeFactor(payload: {
|
|
944
|
+
target_support: number;
|
|
945
|
+
tolerance?: number;
|
|
946
|
+
max_iterations?: number;
|
|
947
|
+
min_factor?: number;
|
|
948
|
+
max_factor?: number;
|
|
949
|
+
symbol_config: GlobalConfig;
|
|
950
|
+
risk: number;
|
|
951
|
+
position: BotPosition;
|
|
952
|
+
}): {
|
|
953
|
+
reward_factor: number;
|
|
954
|
+
achieved_support: number;
|
|
955
|
+
target_support: number;
|
|
956
|
+
difference: number;
|
|
957
|
+
iterations: number;
|
|
958
|
+
converged?: undefined;
|
|
959
|
+
} | {
|
|
960
|
+
reward_factor: number;
|
|
961
|
+
achieved_support: number;
|
|
962
|
+
target_support: number;
|
|
963
|
+
difference: number;
|
|
964
|
+
iterations: number;
|
|
965
|
+
converged: boolean;
|
|
966
|
+
};
|
|
967
|
+
export type CType = {
|
|
968
|
+
next_order: number;
|
|
969
|
+
take_profit: number;
|
|
970
|
+
};
|
|
971
|
+
export declare function determineCompoundLongTrade(payload: {
|
|
972
|
+
focus_short_position: CType;
|
|
973
|
+
focus_long_position: CType;
|
|
974
|
+
shortConfig: {
|
|
975
|
+
entry: number;
|
|
976
|
+
stop: number;
|
|
977
|
+
risk_reward: number;
|
|
978
|
+
risk: number;
|
|
979
|
+
symbol: string;
|
|
980
|
+
profit_percent: number;
|
|
981
|
+
};
|
|
982
|
+
rr?: number;
|
|
983
|
+
global_config: GlobalConfig;
|
|
984
|
+
}): {
|
|
985
|
+
start_risk: number;
|
|
986
|
+
short_profit: number;
|
|
987
|
+
support: number;
|
|
988
|
+
resistance: number;
|
|
989
|
+
long_v: any;
|
|
990
|
+
profit_percent: number;
|
|
991
|
+
result: any;
|
|
992
|
+
short_max_size: any;
|
|
993
|
+
};
|
|
994
|
+
export declare function generateOppositeTradeConfig(payload: {
|
|
995
|
+
kind: "long" | "short";
|
|
996
|
+
entry: number;
|
|
997
|
+
quantity: number;
|
|
998
|
+
target_pnl: number;
|
|
999
|
+
global_config: GlobalConfig;
|
|
1000
|
+
ratio?: number;
|
|
1001
|
+
}): {
|
|
1002
|
+
entry: number;
|
|
1003
|
+
stop: number;
|
|
1004
|
+
risk: number;
|
|
1005
|
+
risk_reward: number | {
|
|
1006
|
+
result: any[];
|
|
1007
|
+
value: number;
|
|
1008
|
+
total: number;
|
|
1009
|
+
risk_per_trade: number;
|
|
1010
|
+
max: number;
|
|
1011
|
+
min: number;
|
|
1012
|
+
avg_size: any;
|
|
1013
|
+
neg_pnl: any;
|
|
1014
|
+
entry: any;
|
|
1015
|
+
};
|
|
1016
|
+
};
|
|
1017
|
+
export declare function constructAppConfig(payload: {
|
|
1018
|
+
account: PositionsView;
|
|
1019
|
+
global_config: GlobalConfig;
|
|
1020
|
+
kelly_config?: {
|
|
1021
|
+
use_kelly: boolean;
|
|
1022
|
+
kelly_confidence_factor: number;
|
|
1023
|
+
kelly_minimum_risk: number;
|
|
1024
|
+
kelly_prediction_model: string;
|
|
1025
|
+
};
|
|
1026
|
+
distribution_config?: {
|
|
1027
|
+
distribution?: GetEntriesParams["distribution"];
|
|
1028
|
+
distribution_params?: {
|
|
1029
|
+
curveFactor?: number;
|
|
1030
|
+
stdDevFactor?: number;
|
|
1031
|
+
lambda?: number;
|
|
1032
|
+
};
|
|
1033
|
+
};
|
|
1034
|
+
}): {
|
|
1035
|
+
fee: number;
|
|
1036
|
+
risk_per_trade: number;
|
|
1037
|
+
risk_reward: number;
|
|
1038
|
+
symbol?: string;
|
|
1039
|
+
focus: number;
|
|
1040
|
+
budget: number;
|
|
1041
|
+
support: number;
|
|
1042
|
+
resistance: number;
|
|
1043
|
+
percent_change: number;
|
|
1044
|
+
tradeSplit?: number;
|
|
1045
|
+
take_profit?: number;
|
|
1046
|
+
kind: "long" | "short";
|
|
1047
|
+
entry: number;
|
|
1048
|
+
stop: number;
|
|
1049
|
+
min_size: number;
|
|
1050
|
+
price_places?: string;
|
|
1051
|
+
strategy?: "quantity" | "entry";
|
|
1052
|
+
as_array?: boolean;
|
|
1053
|
+
decimal_places?: string;
|
|
1054
|
+
min_profit?: number;
|
|
1055
|
+
raw?: boolean;
|
|
1056
|
+
gap?: number;
|
|
1057
|
+
rr?: number;
|
|
1058
|
+
max_size?: number;
|
|
1059
|
+
last_value?: any;
|
|
1060
|
+
max_quantity?: number;
|
|
1061
|
+
kelly?: {
|
|
1062
|
+
use_kelly?: boolean;
|
|
1063
|
+
kelly_confidence_factor?: number;
|
|
1064
|
+
kelly_minimum_risk?: number;
|
|
1065
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
1066
|
+
kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
|
|
1067
|
+
};
|
|
1068
|
+
distribution?: GetEntriesParams["distribution"];
|
|
1069
|
+
distribution_params?: {
|
|
1070
|
+
curveFactor?: number;
|
|
1071
|
+
stdDevFactor?: number;
|
|
1072
|
+
lambda?: number;
|
|
1073
|
+
};
|
|
1074
|
+
};
|
|
1075
|
+
export declare function generateDangerousConfig(payload: {
|
|
1076
|
+
account: PositionsView;
|
|
1077
|
+
global_config: GlobalConfig;
|
|
1078
|
+
config: {
|
|
1079
|
+
quantity: number;
|
|
1080
|
+
stop: number;
|
|
1081
|
+
entry: number;
|
|
1082
|
+
};
|
|
1083
|
+
}): {
|
|
1084
|
+
entry: number;
|
|
1085
|
+
risk: number;
|
|
1086
|
+
stop: number;
|
|
1087
|
+
risk_reward: number | {
|
|
1088
|
+
result: any[];
|
|
1089
|
+
value: number;
|
|
1090
|
+
total: number;
|
|
1091
|
+
risk_per_trade: number;
|
|
1092
|
+
max: number;
|
|
1093
|
+
min: number;
|
|
1094
|
+
avg_size: any;
|
|
1095
|
+
neg_pnl: any;
|
|
1096
|
+
entry: any;
|
|
1097
|
+
};
|
|
1098
|
+
};
|
|
468
1099
|
export type StrategyPosition = {
|
|
469
1100
|
entry: number;
|
|
470
1101
|
quantity: number;
|
|
@@ -650,15 +1281,48 @@ export declare class Strategy {
|
|
|
650
1281
|
gap?: number;
|
|
651
1282
|
rr?: number;
|
|
652
1283
|
max_size?: number;
|
|
1284
|
+
max_quantity?: number;
|
|
1285
|
+
kelly?: {
|
|
1286
|
+
use_kelly?: boolean;
|
|
1287
|
+
kelly_confidence_factor?: number;
|
|
1288
|
+
kelly_minimum_risk?: number;
|
|
1289
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
1290
|
+
kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
|
|
1291
|
+
};
|
|
1292
|
+
distribution?: GetEntriesParams["distribution"];
|
|
1293
|
+
distribution_params?: {
|
|
1294
|
+
curveFactor?: number;
|
|
1295
|
+
stdDevFactor?: number;
|
|
1296
|
+
lambda?: number;
|
|
1297
|
+
};
|
|
653
1298
|
};
|
|
654
1299
|
identifyGapConfig(payload: {
|
|
655
1300
|
factor?: number;
|
|
1301
|
+
sell_factor?: number;
|
|
1302
|
+
kind?: "long" | "short";
|
|
1303
|
+
risk?: number;
|
|
656
1304
|
}): {
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
1305
|
+
profit_percent: {
|
|
1306
|
+
long: number;
|
|
1307
|
+
short: number;
|
|
1308
|
+
};
|
|
1309
|
+
risk: {
|
|
1310
|
+
short: number;
|
|
1311
|
+
long: number;
|
|
1312
|
+
};
|
|
1313
|
+
take_profit: {
|
|
1314
|
+
long: number;
|
|
1315
|
+
short: number;
|
|
1316
|
+
};
|
|
1317
|
+
to_reduce: {
|
|
1318
|
+
short: number;
|
|
1319
|
+
long: number;
|
|
1320
|
+
};
|
|
1321
|
+
full_reduce: {
|
|
1322
|
+
short: number;
|
|
1323
|
+
long: number;
|
|
1324
|
+
};
|
|
1325
|
+
sell_quantity: {
|
|
662
1326
|
short: number;
|
|
663
1327
|
long: number;
|
|
664
1328
|
};
|
|
@@ -673,6 +1337,7 @@ export declare class Strategy {
|
|
|
673
1337
|
}): {
|
|
674
1338
|
pnl: number;
|
|
675
1339
|
loss: number;
|
|
1340
|
+
full_loss: number;
|
|
676
1341
|
original_pnl: number;
|
|
677
1342
|
reward_factor: number;
|
|
678
1343
|
profit_percent: number;
|
|
@@ -682,6 +1347,402 @@ export declare class Strategy {
|
|
|
682
1347
|
price_places: string;
|
|
683
1348
|
decimal_places: string;
|
|
684
1349
|
};
|
|
1350
|
+
simulateGapReduction(payload: {
|
|
1351
|
+
iterations?: number;
|
|
1352
|
+
factor?: number;
|
|
1353
|
+
direction: "long" | "short";
|
|
1354
|
+
kind?: "long" | "short";
|
|
1355
|
+
risk?: number;
|
|
1356
|
+
sell_factor?: number;
|
|
1357
|
+
}): {
|
|
1358
|
+
results: {
|
|
1359
|
+
profit_percent: {
|
|
1360
|
+
long: number;
|
|
1361
|
+
short: number;
|
|
1362
|
+
};
|
|
1363
|
+
risk: {
|
|
1364
|
+
short: number;
|
|
1365
|
+
long: number;
|
|
1366
|
+
};
|
|
1367
|
+
take_profit: {
|
|
1368
|
+
long: number;
|
|
1369
|
+
short: number;
|
|
1370
|
+
};
|
|
1371
|
+
sell_quantity: {
|
|
1372
|
+
short: number;
|
|
1373
|
+
long: number;
|
|
1374
|
+
};
|
|
1375
|
+
gap_loss: number;
|
|
1376
|
+
position: {
|
|
1377
|
+
long: {
|
|
1378
|
+
entry: number;
|
|
1379
|
+
quantity: number;
|
|
1380
|
+
};
|
|
1381
|
+
short: {
|
|
1382
|
+
entry: number;
|
|
1383
|
+
quantity: number;
|
|
1384
|
+
};
|
|
1385
|
+
};
|
|
1386
|
+
}[];
|
|
1387
|
+
quantity: number;
|
|
1388
|
+
};
|
|
1389
|
+
}
|
|
1390
|
+
export interface ComputedTrade {
|
|
1391
|
+
entry: number;
|
|
1392
|
+
quantity: number;
|
|
1393
|
+
avg_size: number;
|
|
1394
|
+
neg_pnl: number;
|
|
1395
|
+
avg_entry: number;
|
|
1396
|
+
stop: number;
|
|
1397
|
+
reverse_avg_entry: number;
|
|
1398
|
+
reverse_avg_quantity: number;
|
|
1399
|
+
fee: number;
|
|
685
1400
|
}
|
|
1401
|
+
export type TradeConfig = {
|
|
1402
|
+
entry: number;
|
|
1403
|
+
stop: number;
|
|
1404
|
+
risk_reward: number;
|
|
1405
|
+
risk: number;
|
|
1406
|
+
symbol: string;
|
|
1407
|
+
distribution?: GetEntriesParams["distribution"];
|
|
1408
|
+
distribution_params?: {
|
|
1409
|
+
curveFactor?: number;
|
|
1410
|
+
stdDevFactor?: number;
|
|
1411
|
+
lambda?: number;
|
|
1412
|
+
};
|
|
1413
|
+
};
|
|
1414
|
+
declare function constructAppConfig$1({ config, global_config, }: {
|
|
1415
|
+
config: TradeConfig;
|
|
1416
|
+
global_config: GlobalConfig;
|
|
1417
|
+
}): {
|
|
1418
|
+
fee: number;
|
|
1419
|
+
risk_per_trade: number;
|
|
1420
|
+
risk_reward: number;
|
|
1421
|
+
symbol?: string;
|
|
1422
|
+
focus: number;
|
|
1423
|
+
budget: number;
|
|
1424
|
+
support: number;
|
|
1425
|
+
resistance: number;
|
|
1426
|
+
percent_change: number;
|
|
1427
|
+
tradeSplit?: number;
|
|
1428
|
+
take_profit?: number;
|
|
1429
|
+
kind: "long" | "short";
|
|
1430
|
+
entry: number;
|
|
1431
|
+
stop: number;
|
|
1432
|
+
min_size: number;
|
|
1433
|
+
price_places?: string;
|
|
1434
|
+
strategy?: "quantity" | "entry";
|
|
1435
|
+
as_array?: boolean;
|
|
1436
|
+
decimal_places?: string;
|
|
1437
|
+
min_profit?: number;
|
|
1438
|
+
raw?: boolean;
|
|
1439
|
+
gap?: number;
|
|
1440
|
+
rr?: number;
|
|
1441
|
+
max_size?: number;
|
|
1442
|
+
last_value?: any;
|
|
1443
|
+
max_quantity?: number;
|
|
1444
|
+
kelly?: {
|
|
1445
|
+
use_kelly?: boolean;
|
|
1446
|
+
kelly_confidence_factor?: number;
|
|
1447
|
+
kelly_minimum_risk?: number;
|
|
1448
|
+
kelly_prediction_model?: "exponential" | "normal" | "uniform";
|
|
1449
|
+
kelly_func?: "theoretical" | "position_based" | "theoretical_fixed";
|
|
1450
|
+
};
|
|
1451
|
+
distribution?: GetEntriesParams["distribution"];
|
|
1452
|
+
distribution_params?: {
|
|
1453
|
+
curveFactor?: number;
|
|
1454
|
+
stdDevFactor?: number;
|
|
1455
|
+
lambda?: number;
|
|
1456
|
+
};
|
|
1457
|
+
};
|
|
1458
|
+
declare function buildWithOptimumReward({ config, settings, global_config, force_exact, }: {
|
|
1459
|
+
config: TradeConfig;
|
|
1460
|
+
global_config: GlobalConfig;
|
|
1461
|
+
settings: {
|
|
1462
|
+
entry?: number;
|
|
1463
|
+
stop?: number;
|
|
1464
|
+
risk: number;
|
|
1465
|
+
stop_ratio?: number;
|
|
1466
|
+
risk_reward?: number;
|
|
1467
|
+
distribution?: GetEntriesParams["distribution"];
|
|
1468
|
+
distribution_params?: {
|
|
1469
|
+
curveFactor?: number;
|
|
1470
|
+
stdDevFactor?: number;
|
|
1471
|
+
lambda?: number;
|
|
1472
|
+
};
|
|
1473
|
+
};
|
|
1474
|
+
force_exact?: boolean;
|
|
1475
|
+
}): {
|
|
1476
|
+
trades: any[];
|
|
1477
|
+
summary: {
|
|
1478
|
+
entry: number;
|
|
1479
|
+
stop: number;
|
|
1480
|
+
risk: number;
|
|
1481
|
+
risk_reward: any;
|
|
1482
|
+
avg_entry: number;
|
|
1483
|
+
avg_size: number;
|
|
1484
|
+
first_entry: number;
|
|
1485
|
+
pnl: number;
|
|
1486
|
+
fee: number;
|
|
1487
|
+
loss: number;
|
|
1488
|
+
last_entry: number;
|
|
1489
|
+
margin: number;
|
|
1490
|
+
};
|
|
1491
|
+
config: any;
|
|
1492
|
+
stop_order: {
|
|
1493
|
+
quantity: number;
|
|
1494
|
+
price: number;
|
|
1495
|
+
};
|
|
1496
|
+
kind: string;
|
|
1497
|
+
};
|
|
1498
|
+
declare function generateOppositeOptimum({ config, global_config, settings, ratio, distribution, distribution_params, risk_factor, }: {
|
|
1499
|
+
settings: {
|
|
1500
|
+
entry: number;
|
|
1501
|
+
stop: number;
|
|
1502
|
+
risk: number;
|
|
1503
|
+
};
|
|
1504
|
+
config: TradeConfig;
|
|
1505
|
+
global_config: GlobalConfig;
|
|
1506
|
+
fee_percent?: number;
|
|
1507
|
+
ratio?: number;
|
|
1508
|
+
distribution?: any;
|
|
1509
|
+
distribution_params?: {
|
|
1510
|
+
curveFactor?: number;
|
|
1511
|
+
stdDevFactor?: number;
|
|
1512
|
+
lambda?: number;
|
|
1513
|
+
};
|
|
1514
|
+
risk_factor?: number;
|
|
1515
|
+
}): {
|
|
1516
|
+
trades: any[];
|
|
1517
|
+
summary: any;
|
|
1518
|
+
config: {
|
|
1519
|
+
entry: number;
|
|
1520
|
+
stop: number;
|
|
1521
|
+
risk: number;
|
|
1522
|
+
distribution: any;
|
|
1523
|
+
distribution_params: {
|
|
1524
|
+
curveFactor?: number;
|
|
1525
|
+
stdDevFactor?: number;
|
|
1526
|
+
lambda?: number;
|
|
1527
|
+
};
|
|
1528
|
+
risk_factor: number;
|
|
1529
|
+
};
|
|
1530
|
+
kind: string;
|
|
1531
|
+
} | {
|
|
1532
|
+
trades: any[];
|
|
1533
|
+
summary: {
|
|
1534
|
+
entry: number;
|
|
1535
|
+
stop: number;
|
|
1536
|
+
risk: number;
|
|
1537
|
+
risk_reward: any;
|
|
1538
|
+
avg_entry: number;
|
|
1539
|
+
avg_size: number;
|
|
1540
|
+
first_entry: number;
|
|
1541
|
+
pnl: number;
|
|
1542
|
+
fee: number;
|
|
1543
|
+
loss: number;
|
|
1544
|
+
last_entry: number;
|
|
1545
|
+
defaultEntry: number;
|
|
1546
|
+
};
|
|
1547
|
+
config: any;
|
|
1548
|
+
kind: string;
|
|
1549
|
+
};
|
|
1550
|
+
declare function increaseTradeHelper({ increase_qty, stop, config, global_config, style, entry, position, stop_ratio, distribution: default_distribution, distribution_params: default_distribution_params, }: {
|
|
1551
|
+
position: {
|
|
1552
|
+
entry: number;
|
|
1553
|
+
quantity: number;
|
|
1554
|
+
};
|
|
1555
|
+
entry: number;
|
|
1556
|
+
stop: number;
|
|
1557
|
+
config: TradeConfig;
|
|
1558
|
+
global_config: GlobalConfig;
|
|
1559
|
+
increase_qty: number;
|
|
1560
|
+
style: "minimum" | "optimum";
|
|
1561
|
+
stop_ratio?: number;
|
|
1562
|
+
distribution?: any;
|
|
1563
|
+
distribution_params?: {
|
|
1564
|
+
curveFactor?: number;
|
|
1565
|
+
stdDevFactor?: number;
|
|
1566
|
+
lambda?: number;
|
|
1567
|
+
};
|
|
1568
|
+
}): {
|
|
1569
|
+
trades: any[];
|
|
1570
|
+
summary: any;
|
|
1571
|
+
config: any;
|
|
1572
|
+
kind: string;
|
|
1573
|
+
current: {
|
|
1574
|
+
trades: any[];
|
|
1575
|
+
summary: {
|
|
1576
|
+
first_entry: number;
|
|
1577
|
+
last_entry: number;
|
|
1578
|
+
quantity: number;
|
|
1579
|
+
entry: number;
|
|
1580
|
+
loss: number;
|
|
1581
|
+
number_of_trades: number;
|
|
1582
|
+
fee: number;
|
|
1583
|
+
anchor_pnl: any;
|
|
1584
|
+
};
|
|
1585
|
+
};
|
|
1586
|
+
stop_order?: undefined;
|
|
1587
|
+
} | {
|
|
1588
|
+
trades: any[];
|
|
1589
|
+
summary: {
|
|
1590
|
+
entry: number;
|
|
1591
|
+
stop: number;
|
|
1592
|
+
risk: number;
|
|
1593
|
+
risk_reward: any;
|
|
1594
|
+
avg_entry: number;
|
|
1595
|
+
avg_size: number;
|
|
1596
|
+
first_entry: number;
|
|
1597
|
+
pnl: number;
|
|
1598
|
+
fee: number;
|
|
1599
|
+
loss: number;
|
|
1600
|
+
last_entry: number;
|
|
1601
|
+
margin: number;
|
|
1602
|
+
};
|
|
1603
|
+
stop_order: {
|
|
1604
|
+
quantity: number;
|
|
1605
|
+
price: number;
|
|
1606
|
+
};
|
|
1607
|
+
config: any;
|
|
1608
|
+
kind: string;
|
|
1609
|
+
current: {
|
|
1610
|
+
trades: any[];
|
|
1611
|
+
summary: {
|
|
1612
|
+
first_entry: number;
|
|
1613
|
+
last_entry: number;
|
|
1614
|
+
quantity: number;
|
|
1615
|
+
entry: number;
|
|
1616
|
+
loss: number;
|
|
1617
|
+
number_of_trades: number;
|
|
1618
|
+
fee: number;
|
|
1619
|
+
anchor_pnl: any;
|
|
1620
|
+
};
|
|
1621
|
+
};
|
|
1622
|
+
};
|
|
1623
|
+
declare function generatePositionIncreaseTrade({ account, zoneAccount, ratio, config, global_config, style, distribution, distribution_params, }: {
|
|
1624
|
+
style?: "optimum" | "minimum";
|
|
1625
|
+
account: {
|
|
1626
|
+
long: {
|
|
1627
|
+
entry: number;
|
|
1628
|
+
quantity: number;
|
|
1629
|
+
};
|
|
1630
|
+
short: {
|
|
1631
|
+
entry: number;
|
|
1632
|
+
quantity: number;
|
|
1633
|
+
};
|
|
1634
|
+
};
|
|
1635
|
+
config: TradeConfig;
|
|
1636
|
+
global_config: GlobalConfig;
|
|
1637
|
+
zoneAccount: {
|
|
1638
|
+
entry: number;
|
|
1639
|
+
stop: number;
|
|
1640
|
+
};
|
|
1641
|
+
ratio?: number;
|
|
1642
|
+
distribution?: any;
|
|
1643
|
+
distribution_params?: {
|
|
1644
|
+
curveFactor?: number;
|
|
1645
|
+
stdDevFactor?: number;
|
|
1646
|
+
lambda?: number;
|
|
1647
|
+
};
|
|
1648
|
+
}): {
|
|
1649
|
+
trades: any[];
|
|
1650
|
+
summary: any;
|
|
1651
|
+
config: any;
|
|
1652
|
+
kind: string;
|
|
1653
|
+
current: {
|
|
1654
|
+
trades: any[];
|
|
1655
|
+
summary: {
|
|
1656
|
+
first_entry: number;
|
|
1657
|
+
last_entry: number;
|
|
1658
|
+
quantity: number;
|
|
1659
|
+
entry: number;
|
|
1660
|
+
loss: number;
|
|
1661
|
+
number_of_trades: number;
|
|
1662
|
+
fee: number;
|
|
1663
|
+
anchor_pnl: any;
|
|
1664
|
+
};
|
|
1665
|
+
};
|
|
1666
|
+
stop_order?: undefined;
|
|
1667
|
+
} | {
|
|
1668
|
+
trades: any[];
|
|
1669
|
+
summary: {
|
|
1670
|
+
entry: number;
|
|
1671
|
+
stop: number;
|
|
1672
|
+
risk: number;
|
|
1673
|
+
risk_reward: any;
|
|
1674
|
+
avg_entry: number;
|
|
1675
|
+
avg_size: number;
|
|
1676
|
+
first_entry: number;
|
|
1677
|
+
pnl: number;
|
|
1678
|
+
fee: number;
|
|
1679
|
+
loss: number;
|
|
1680
|
+
last_entry: number;
|
|
1681
|
+
margin: number;
|
|
1682
|
+
};
|
|
1683
|
+
stop_order: {
|
|
1684
|
+
quantity: number;
|
|
1685
|
+
price: number;
|
|
1686
|
+
};
|
|
1687
|
+
config: any;
|
|
1688
|
+
kind: string;
|
|
1689
|
+
current: {
|
|
1690
|
+
trades: any[];
|
|
1691
|
+
summary: {
|
|
1692
|
+
first_entry: number;
|
|
1693
|
+
last_entry: number;
|
|
1694
|
+
quantity: number;
|
|
1695
|
+
entry: number;
|
|
1696
|
+
loss: number;
|
|
1697
|
+
number_of_trades: number;
|
|
1698
|
+
fee: number;
|
|
1699
|
+
anchor_pnl: any;
|
|
1700
|
+
};
|
|
1701
|
+
};
|
|
1702
|
+
};
|
|
1703
|
+
declare function determineHedgeTradeToPlace({ position, config, global_config, profit_risk, allowable_loss, }: {
|
|
1704
|
+
position: {
|
|
1705
|
+
entry: number;
|
|
1706
|
+
quantity: number;
|
|
1707
|
+
kind: "long" | "short";
|
|
1708
|
+
};
|
|
1709
|
+
config: TradeConfig;
|
|
1710
|
+
global_config: GlobalConfig;
|
|
1711
|
+
profit_risk?: number;
|
|
1712
|
+
allowable_loss?: number;
|
|
1713
|
+
}): {
|
|
1714
|
+
opposite: {
|
|
1715
|
+
trades: any[];
|
|
1716
|
+
summary: {
|
|
1717
|
+
entry: number;
|
|
1718
|
+
stop: number;
|
|
1719
|
+
risk: number;
|
|
1720
|
+
risk_reward: any;
|
|
1721
|
+
avg_entry: number;
|
|
1722
|
+
avg_size: number;
|
|
1723
|
+
first_entry: number;
|
|
1724
|
+
pnl: number;
|
|
1725
|
+
fee: number;
|
|
1726
|
+
loss: number;
|
|
1727
|
+
last_entry: number;
|
|
1728
|
+
margin: number;
|
|
1729
|
+
};
|
|
1730
|
+
config: any;
|
|
1731
|
+
stop_order: {
|
|
1732
|
+
quantity: number;
|
|
1733
|
+
price: number;
|
|
1734
|
+
};
|
|
1735
|
+
kind: string;
|
|
1736
|
+
};
|
|
1737
|
+
take_profit: number;
|
|
1738
|
+
};
|
|
1739
|
+
export declare const compoundAPI: {
|
|
1740
|
+
determineHedgeTradeToPlace: typeof determineHedgeTradeToPlace;
|
|
1741
|
+
buildWithOptimumReward: typeof buildWithOptimumReward;
|
|
1742
|
+
constructAppConfig: typeof constructAppConfig$1;
|
|
1743
|
+
generateOppositeOptimum: typeof generateOppositeOptimum;
|
|
1744
|
+
increaseTradeHelper: typeof increaseTradeHelper;
|
|
1745
|
+
generatePositionIncreaseTrade: typeof generatePositionIncreaseTrade;
|
|
1746
|
+
};
|
|
686
1747
|
|
|
687
1748
|
export {};
|