@gbozee/ultimate 0.0.2-154 → 0.0.2-156
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 +1 -0
- package/dist/frontend-index.js +4 -2
- package/dist/index.cjs +38 -32
- package/dist/index.d.ts +1 -0
- package/dist/index.js +38 -32
- package/dist/mcp-server.cjs +38 -32
- package/dist/mcp-server.js +38 -32
- package/package.json +1 -1
package/dist/frontend-index.d.ts
CHANGED
package/dist/frontend-index.js
CHANGED
|
@@ -2128,7 +2128,8 @@ function getRiskReward(payload) {
|
|
|
2128
2128
|
stop,
|
|
2129
2129
|
risk,
|
|
2130
2130
|
global_config,
|
|
2131
|
-
force_exact_risk = false
|
|
2131
|
+
force_exact_risk = false,
|
|
2132
|
+
target_loss
|
|
2132
2133
|
} = payload;
|
|
2133
2134
|
const { entries, last_value, ...app_config } = buildAppConfig(global_config, {
|
|
2134
2135
|
entry,
|
|
@@ -2141,7 +2142,8 @@ function getRiskReward(payload) {
|
|
|
2141
2142
|
app_config,
|
|
2142
2143
|
entry,
|
|
2143
2144
|
stop,
|
|
2144
|
-
risk_per_trade: risk
|
|
2145
|
+
risk_per_trade: risk,
|
|
2146
|
+
target_loss
|
|
2145
2147
|
});
|
|
2146
2148
|
if (force_exact_risk) {
|
|
2147
2149
|
const new_risk_per_trade = determineOptimumRisk(global_config, {
|
package/dist/index.cjs
CHANGED
|
@@ -54529,7 +54529,8 @@ function getRiskReward(payload) {
|
|
|
54529
54529
|
stop,
|
|
54530
54530
|
risk,
|
|
54531
54531
|
global_config,
|
|
54532
|
-
force_exact_risk = false
|
|
54532
|
+
force_exact_risk = false,
|
|
54533
|
+
target_loss
|
|
54533
54534
|
} = payload;
|
|
54534
54535
|
const { entries, last_value, ...app_config } = buildAppConfig(global_config, {
|
|
54535
54536
|
entry,
|
|
@@ -54542,7 +54543,8 @@ function getRiskReward(payload) {
|
|
|
54542
54543
|
app_config,
|
|
54543
54544
|
entry,
|
|
54544
54545
|
stop,
|
|
54545
|
-
risk_per_trade: risk
|
|
54546
|
+
risk_per_trade: risk,
|
|
54547
|
+
target_loss
|
|
54546
54548
|
});
|
|
54547
54549
|
if (force_exact_risk) {
|
|
54548
54550
|
const new_risk_per_trade = determineOptimumRisk(global_config, {
|
|
@@ -60180,14 +60182,20 @@ class ExchangeAccount {
|
|
|
60180
60182
|
symbol,
|
|
60181
60183
|
kind
|
|
60182
60184
|
});
|
|
60183
|
-
await this.
|
|
60185
|
+
const focusPosition = await this.getFocusPosition({
|
|
60184
60186
|
symbol,
|
|
60185
|
-
kind
|
|
60186
|
-
limit: false,
|
|
60187
|
-
ignore_config: true,
|
|
60188
|
-
tp: true
|
|
60187
|
+
kind
|
|
60189
60188
|
});
|
|
60190
|
-
if (
|
|
60189
|
+
if (focusPosition.getInstance().quantity > 0) {
|
|
60190
|
+
await this.placeTrade({
|
|
60191
|
+
symbol,
|
|
60192
|
+
kind,
|
|
60193
|
+
limit: false,
|
|
60194
|
+
ignore_config: true,
|
|
60195
|
+
tp: true
|
|
60196
|
+
});
|
|
60197
|
+
}
|
|
60198
|
+
if (focus_position.avg_qty < last_value.avg_size || focusPosition.getInstance().quantity === 0) {
|
|
60191
60199
|
console.log("Placing trade for ", symbol, kind);
|
|
60192
60200
|
await this.placeTrade({
|
|
60193
60201
|
symbol,
|
|
@@ -60197,36 +60205,34 @@ class ExchangeAccount {
|
|
|
60197
60205
|
});
|
|
60198
60206
|
}
|
|
60199
60207
|
console.log("Checking if focus position has quantity for ", symbol, kind);
|
|
60200
|
-
const focusPosition = await this.getFocusPosition({
|
|
60201
|
-
symbol,
|
|
60202
|
-
kind
|
|
60203
|
-
});
|
|
60204
60208
|
const reversePosition = await this.getFocusPosition({
|
|
60205
60209
|
symbol,
|
|
60206
60210
|
kind: kind === "long" ? "short" : "long"
|
|
60207
60211
|
});
|
|
60208
|
-
|
|
60209
|
-
|
|
60210
|
-
|
|
60211
|
-
const reverse_config = await reversePosition.getConfig();
|
|
60212
|
-
if ((reverse_config.entry !== opposite_config.entry || reverse_config.stop !== opposite_config.stop || reverse_config.risk !== opposite_config.risk || reverse_config.risk_reward !== opposite_config.risk_reward) && focusPosition.getInstance().quantity > 0) {
|
|
60213
|
-
console.log("Updating reverse config for ", symbol, kind, "with opposite config", opposite_config);
|
|
60214
|
-
await reversePosition.getConfig({
|
|
60215
|
-
params: {
|
|
60216
|
-
entry: opposite_config.entry,
|
|
60217
|
-
stop: opposite_config.stop,
|
|
60218
|
-
risk: opposite_config.risk,
|
|
60219
|
-
risk_reward: opposite_config.risk_reward
|
|
60220
|
-
}
|
|
60221
|
-
});
|
|
60222
|
-
console.log("Placing trade for ", symbol, reversePosition.kind);
|
|
60223
|
-
await reversePosition.placeTrade({
|
|
60224
|
-
ignore_config: true,
|
|
60225
|
-
limit: true,
|
|
60226
|
-
place: true
|
|
60212
|
+
if (reversePosition.getInstance().quantity > 0) {
|
|
60213
|
+
const opposite_config = focusPosition.getOppositeConfig({
|
|
60214
|
+
ratio: reward_factor
|
|
60227
60215
|
});
|
|
60216
|
+
const reverse_config = await reversePosition.getConfig();
|
|
60217
|
+
if ((reverse_config.entry !== opposite_config.entry || reverse_config.stop !== opposite_config.stop || reverse_config.risk !== opposite_config.risk || reverse_config.risk_reward !== opposite_config.risk_reward) && focusPosition.getInstance().quantity > 0) {
|
|
60218
|
+
console.log("Updating reverse config for ", symbol, kind, "with opposite config", opposite_config);
|
|
60219
|
+
await reversePosition.getConfig({
|
|
60220
|
+
params: {
|
|
60221
|
+
entry: opposite_config.entry,
|
|
60222
|
+
stop: opposite_config.stop,
|
|
60223
|
+
risk: opposite_config.risk,
|
|
60224
|
+
risk_reward: opposite_config.risk_reward
|
|
60225
|
+
}
|
|
60226
|
+
});
|
|
60227
|
+
console.log("Placing trade for ", symbol, reversePosition.kind);
|
|
60228
|
+
await reversePosition.placeTrade({
|
|
60229
|
+
ignore_config: true,
|
|
60230
|
+
limit: true,
|
|
60231
|
+
place: true
|
|
60232
|
+
});
|
|
60233
|
+
}
|
|
60234
|
+
console.log("Opposite config for ", symbol, kind, opposite_config);
|
|
60228
60235
|
}
|
|
60229
|
-
console.log("Opposite config for ", symbol, kind, opposite_config);
|
|
60230
60236
|
return {
|
|
60231
60237
|
config_details: {
|
|
60232
60238
|
app_config,
|
package/dist/index.d.ts
CHANGED
|
@@ -1498,6 +1498,7 @@ export declare function getRiskReward(payload: {
|
|
|
1498
1498
|
risk: number;
|
|
1499
1499
|
global_config: GlobalConfig;
|
|
1500
1500
|
force_exact_risk?: boolean;
|
|
1501
|
+
target_loss?: number;
|
|
1501
1502
|
}): any;
|
|
1502
1503
|
export declare function computeProfitDetail(payload: {
|
|
1503
1504
|
focus_position: {
|
package/dist/index.js
CHANGED
|
@@ -54475,7 +54475,8 @@ function getRiskReward(payload) {
|
|
|
54475
54475
|
stop,
|
|
54476
54476
|
risk,
|
|
54477
54477
|
global_config,
|
|
54478
|
-
force_exact_risk = false
|
|
54478
|
+
force_exact_risk = false,
|
|
54479
|
+
target_loss
|
|
54479
54480
|
} = payload;
|
|
54480
54481
|
const { entries, last_value, ...app_config } = buildAppConfig(global_config, {
|
|
54481
54482
|
entry,
|
|
@@ -54488,7 +54489,8 @@ function getRiskReward(payload) {
|
|
|
54488
54489
|
app_config,
|
|
54489
54490
|
entry,
|
|
54490
54491
|
stop,
|
|
54491
|
-
risk_per_trade: risk
|
|
54492
|
+
risk_per_trade: risk,
|
|
54493
|
+
target_loss
|
|
54492
54494
|
});
|
|
54493
54495
|
if (force_exact_risk) {
|
|
54494
54496
|
const new_risk_per_trade = determineOptimumRisk(global_config, {
|
|
@@ -60126,14 +60128,20 @@ class ExchangeAccount {
|
|
|
60126
60128
|
symbol,
|
|
60127
60129
|
kind
|
|
60128
60130
|
});
|
|
60129
|
-
await this.
|
|
60131
|
+
const focusPosition = await this.getFocusPosition({
|
|
60130
60132
|
symbol,
|
|
60131
|
-
kind
|
|
60132
|
-
limit: false,
|
|
60133
|
-
ignore_config: true,
|
|
60134
|
-
tp: true
|
|
60133
|
+
kind
|
|
60135
60134
|
});
|
|
60136
|
-
if (
|
|
60135
|
+
if (focusPosition.getInstance().quantity > 0) {
|
|
60136
|
+
await this.placeTrade({
|
|
60137
|
+
symbol,
|
|
60138
|
+
kind,
|
|
60139
|
+
limit: false,
|
|
60140
|
+
ignore_config: true,
|
|
60141
|
+
tp: true
|
|
60142
|
+
});
|
|
60143
|
+
}
|
|
60144
|
+
if (focus_position.avg_qty < last_value.avg_size || focusPosition.getInstance().quantity === 0) {
|
|
60137
60145
|
console.log("Placing trade for ", symbol, kind);
|
|
60138
60146
|
await this.placeTrade({
|
|
60139
60147
|
symbol,
|
|
@@ -60143,36 +60151,34 @@ class ExchangeAccount {
|
|
|
60143
60151
|
});
|
|
60144
60152
|
}
|
|
60145
60153
|
console.log("Checking if focus position has quantity for ", symbol, kind);
|
|
60146
|
-
const focusPosition = await this.getFocusPosition({
|
|
60147
|
-
symbol,
|
|
60148
|
-
kind
|
|
60149
|
-
});
|
|
60150
60154
|
const reversePosition = await this.getFocusPosition({
|
|
60151
60155
|
symbol,
|
|
60152
60156
|
kind: kind === "long" ? "short" : "long"
|
|
60153
60157
|
});
|
|
60154
|
-
|
|
60155
|
-
|
|
60156
|
-
|
|
60157
|
-
const reverse_config = await reversePosition.getConfig();
|
|
60158
|
-
if ((reverse_config.entry !== opposite_config.entry || reverse_config.stop !== opposite_config.stop || reverse_config.risk !== opposite_config.risk || reverse_config.risk_reward !== opposite_config.risk_reward) && focusPosition.getInstance().quantity > 0) {
|
|
60159
|
-
console.log("Updating reverse config for ", symbol, kind, "with opposite config", opposite_config);
|
|
60160
|
-
await reversePosition.getConfig({
|
|
60161
|
-
params: {
|
|
60162
|
-
entry: opposite_config.entry,
|
|
60163
|
-
stop: opposite_config.stop,
|
|
60164
|
-
risk: opposite_config.risk,
|
|
60165
|
-
risk_reward: opposite_config.risk_reward
|
|
60166
|
-
}
|
|
60167
|
-
});
|
|
60168
|
-
console.log("Placing trade for ", symbol, reversePosition.kind);
|
|
60169
|
-
await reversePosition.placeTrade({
|
|
60170
|
-
ignore_config: true,
|
|
60171
|
-
limit: true,
|
|
60172
|
-
place: true
|
|
60158
|
+
if (reversePosition.getInstance().quantity > 0) {
|
|
60159
|
+
const opposite_config = focusPosition.getOppositeConfig({
|
|
60160
|
+
ratio: reward_factor
|
|
60173
60161
|
});
|
|
60162
|
+
const reverse_config = await reversePosition.getConfig();
|
|
60163
|
+
if ((reverse_config.entry !== opposite_config.entry || reverse_config.stop !== opposite_config.stop || reverse_config.risk !== opposite_config.risk || reverse_config.risk_reward !== opposite_config.risk_reward) && focusPosition.getInstance().quantity > 0) {
|
|
60164
|
+
console.log("Updating reverse config for ", symbol, kind, "with opposite config", opposite_config);
|
|
60165
|
+
await reversePosition.getConfig({
|
|
60166
|
+
params: {
|
|
60167
|
+
entry: opposite_config.entry,
|
|
60168
|
+
stop: opposite_config.stop,
|
|
60169
|
+
risk: opposite_config.risk,
|
|
60170
|
+
risk_reward: opposite_config.risk_reward
|
|
60171
|
+
}
|
|
60172
|
+
});
|
|
60173
|
+
console.log("Placing trade for ", symbol, reversePosition.kind);
|
|
60174
|
+
await reversePosition.placeTrade({
|
|
60175
|
+
ignore_config: true,
|
|
60176
|
+
limit: true,
|
|
60177
|
+
place: true
|
|
60178
|
+
});
|
|
60179
|
+
}
|
|
60180
|
+
console.log("Opposite config for ", symbol, kind, opposite_config);
|
|
60174
60181
|
}
|
|
60175
|
-
console.log("Opposite config for ", symbol, kind, opposite_config);
|
|
60176
60182
|
return {
|
|
60177
60183
|
config_details: {
|
|
60178
60184
|
app_config,
|
package/dist/mcp-server.cjs
CHANGED
|
@@ -61209,7 +61209,8 @@ function getRiskReward(payload) {
|
|
|
61209
61209
|
stop,
|
|
61210
61210
|
risk,
|
|
61211
61211
|
global_config,
|
|
61212
|
-
force_exact_risk = false
|
|
61212
|
+
force_exact_risk = false,
|
|
61213
|
+
target_loss
|
|
61213
61214
|
} = payload;
|
|
61214
61215
|
const { entries, last_value, ...app_config } = buildAppConfig(global_config, {
|
|
61215
61216
|
entry,
|
|
@@ -61222,7 +61223,8 @@ function getRiskReward(payload) {
|
|
|
61222
61223
|
app_config,
|
|
61223
61224
|
entry,
|
|
61224
61225
|
stop,
|
|
61225
|
-
risk_per_trade: risk
|
|
61226
|
+
risk_per_trade: risk,
|
|
61227
|
+
target_loss
|
|
61226
61228
|
});
|
|
61227
61229
|
if (force_exact_risk) {
|
|
61228
61230
|
const new_risk_per_trade = determineOptimumRisk(global_config, {
|
|
@@ -66854,14 +66856,20 @@ class ExchangeAccount {
|
|
|
66854
66856
|
symbol,
|
|
66855
66857
|
kind
|
|
66856
66858
|
});
|
|
66857
|
-
await this.
|
|
66859
|
+
const focusPosition = await this.getFocusPosition({
|
|
66858
66860
|
symbol,
|
|
66859
|
-
kind
|
|
66860
|
-
limit: false,
|
|
66861
|
-
ignore_config: true,
|
|
66862
|
-
tp: true
|
|
66861
|
+
kind
|
|
66863
66862
|
});
|
|
66864
|
-
if (
|
|
66863
|
+
if (focusPosition.getInstance().quantity > 0) {
|
|
66864
|
+
await this.placeTrade({
|
|
66865
|
+
symbol,
|
|
66866
|
+
kind,
|
|
66867
|
+
limit: false,
|
|
66868
|
+
ignore_config: true,
|
|
66869
|
+
tp: true
|
|
66870
|
+
});
|
|
66871
|
+
}
|
|
66872
|
+
if (focus_position.avg_qty < last_value.avg_size || focusPosition.getInstance().quantity === 0) {
|
|
66865
66873
|
console.log("Placing trade for ", symbol, kind);
|
|
66866
66874
|
await this.placeTrade({
|
|
66867
66875
|
symbol,
|
|
@@ -66871,36 +66879,34 @@ class ExchangeAccount {
|
|
|
66871
66879
|
});
|
|
66872
66880
|
}
|
|
66873
66881
|
console.log("Checking if focus position has quantity for ", symbol, kind);
|
|
66874
|
-
const focusPosition = await this.getFocusPosition({
|
|
66875
|
-
symbol,
|
|
66876
|
-
kind
|
|
66877
|
-
});
|
|
66878
66882
|
const reversePosition = await this.getFocusPosition({
|
|
66879
66883
|
symbol,
|
|
66880
66884
|
kind: kind === "long" ? "short" : "long"
|
|
66881
66885
|
});
|
|
66882
|
-
|
|
66883
|
-
|
|
66884
|
-
|
|
66885
|
-
const reverse_config = await reversePosition.getConfig();
|
|
66886
|
-
if ((reverse_config.entry !== opposite_config.entry || reverse_config.stop !== opposite_config.stop || reverse_config.risk !== opposite_config.risk || reverse_config.risk_reward !== opposite_config.risk_reward) && focusPosition.getInstance().quantity > 0) {
|
|
66887
|
-
console.log("Updating reverse config for ", symbol, kind, "with opposite config", opposite_config);
|
|
66888
|
-
await reversePosition.getConfig({
|
|
66889
|
-
params: {
|
|
66890
|
-
entry: opposite_config.entry,
|
|
66891
|
-
stop: opposite_config.stop,
|
|
66892
|
-
risk: opposite_config.risk,
|
|
66893
|
-
risk_reward: opposite_config.risk_reward
|
|
66894
|
-
}
|
|
66895
|
-
});
|
|
66896
|
-
console.log("Placing trade for ", symbol, reversePosition.kind);
|
|
66897
|
-
await reversePosition.placeTrade({
|
|
66898
|
-
ignore_config: true,
|
|
66899
|
-
limit: true,
|
|
66900
|
-
place: true
|
|
66886
|
+
if (reversePosition.getInstance().quantity > 0) {
|
|
66887
|
+
const opposite_config = focusPosition.getOppositeConfig({
|
|
66888
|
+
ratio: reward_factor
|
|
66901
66889
|
});
|
|
66890
|
+
const reverse_config = await reversePosition.getConfig();
|
|
66891
|
+
if ((reverse_config.entry !== opposite_config.entry || reverse_config.stop !== opposite_config.stop || reverse_config.risk !== opposite_config.risk || reverse_config.risk_reward !== opposite_config.risk_reward) && focusPosition.getInstance().quantity > 0) {
|
|
66892
|
+
console.log("Updating reverse config for ", symbol, kind, "with opposite config", opposite_config);
|
|
66893
|
+
await reversePosition.getConfig({
|
|
66894
|
+
params: {
|
|
66895
|
+
entry: opposite_config.entry,
|
|
66896
|
+
stop: opposite_config.stop,
|
|
66897
|
+
risk: opposite_config.risk,
|
|
66898
|
+
risk_reward: opposite_config.risk_reward
|
|
66899
|
+
}
|
|
66900
|
+
});
|
|
66901
|
+
console.log("Placing trade for ", symbol, reversePosition.kind);
|
|
66902
|
+
await reversePosition.placeTrade({
|
|
66903
|
+
ignore_config: true,
|
|
66904
|
+
limit: true,
|
|
66905
|
+
place: true
|
|
66906
|
+
});
|
|
66907
|
+
}
|
|
66908
|
+
console.log("Opposite config for ", symbol, kind, opposite_config);
|
|
66902
66909
|
}
|
|
66903
|
-
console.log("Opposite config for ", symbol, kind, opposite_config);
|
|
66904
66910
|
return {
|
|
66905
66911
|
config_details: {
|
|
66906
66912
|
app_config,
|
package/dist/mcp-server.js
CHANGED
|
@@ -61186,7 +61186,8 @@ function getRiskReward(payload) {
|
|
|
61186
61186
|
stop,
|
|
61187
61187
|
risk,
|
|
61188
61188
|
global_config,
|
|
61189
|
-
force_exact_risk = false
|
|
61189
|
+
force_exact_risk = false,
|
|
61190
|
+
target_loss
|
|
61190
61191
|
} = payload;
|
|
61191
61192
|
const { entries, last_value, ...app_config } = buildAppConfig(global_config, {
|
|
61192
61193
|
entry,
|
|
@@ -61199,7 +61200,8 @@ function getRiskReward(payload) {
|
|
|
61199
61200
|
app_config,
|
|
61200
61201
|
entry,
|
|
61201
61202
|
stop,
|
|
61202
|
-
risk_per_trade: risk
|
|
61203
|
+
risk_per_trade: risk,
|
|
61204
|
+
target_loss
|
|
61203
61205
|
});
|
|
61204
61206
|
if (force_exact_risk) {
|
|
61205
61207
|
const new_risk_per_trade = determineOptimumRisk(global_config, {
|
|
@@ -66831,14 +66833,20 @@ class ExchangeAccount {
|
|
|
66831
66833
|
symbol,
|
|
66832
66834
|
kind
|
|
66833
66835
|
});
|
|
66834
|
-
await this.
|
|
66836
|
+
const focusPosition = await this.getFocusPosition({
|
|
66835
66837
|
symbol,
|
|
66836
|
-
kind
|
|
66837
|
-
limit: false,
|
|
66838
|
-
ignore_config: true,
|
|
66839
|
-
tp: true
|
|
66838
|
+
kind
|
|
66840
66839
|
});
|
|
66841
|
-
if (
|
|
66840
|
+
if (focusPosition.getInstance().quantity > 0) {
|
|
66841
|
+
await this.placeTrade({
|
|
66842
|
+
symbol,
|
|
66843
|
+
kind,
|
|
66844
|
+
limit: false,
|
|
66845
|
+
ignore_config: true,
|
|
66846
|
+
tp: true
|
|
66847
|
+
});
|
|
66848
|
+
}
|
|
66849
|
+
if (focus_position.avg_qty < last_value.avg_size || focusPosition.getInstance().quantity === 0) {
|
|
66842
66850
|
console.log("Placing trade for ", symbol, kind);
|
|
66843
66851
|
await this.placeTrade({
|
|
66844
66852
|
symbol,
|
|
@@ -66848,36 +66856,34 @@ class ExchangeAccount {
|
|
|
66848
66856
|
});
|
|
66849
66857
|
}
|
|
66850
66858
|
console.log("Checking if focus position has quantity for ", symbol, kind);
|
|
66851
|
-
const focusPosition = await this.getFocusPosition({
|
|
66852
|
-
symbol,
|
|
66853
|
-
kind
|
|
66854
|
-
});
|
|
66855
66859
|
const reversePosition = await this.getFocusPosition({
|
|
66856
66860
|
symbol,
|
|
66857
66861
|
kind: kind === "long" ? "short" : "long"
|
|
66858
66862
|
});
|
|
66859
|
-
|
|
66860
|
-
|
|
66861
|
-
|
|
66862
|
-
const reverse_config = await reversePosition.getConfig();
|
|
66863
|
-
if ((reverse_config.entry !== opposite_config.entry || reverse_config.stop !== opposite_config.stop || reverse_config.risk !== opposite_config.risk || reverse_config.risk_reward !== opposite_config.risk_reward) && focusPosition.getInstance().quantity > 0) {
|
|
66864
|
-
console.log("Updating reverse config for ", symbol, kind, "with opposite config", opposite_config);
|
|
66865
|
-
await reversePosition.getConfig({
|
|
66866
|
-
params: {
|
|
66867
|
-
entry: opposite_config.entry,
|
|
66868
|
-
stop: opposite_config.stop,
|
|
66869
|
-
risk: opposite_config.risk,
|
|
66870
|
-
risk_reward: opposite_config.risk_reward
|
|
66871
|
-
}
|
|
66872
|
-
});
|
|
66873
|
-
console.log("Placing trade for ", symbol, reversePosition.kind);
|
|
66874
|
-
await reversePosition.placeTrade({
|
|
66875
|
-
ignore_config: true,
|
|
66876
|
-
limit: true,
|
|
66877
|
-
place: true
|
|
66863
|
+
if (reversePosition.getInstance().quantity > 0) {
|
|
66864
|
+
const opposite_config = focusPosition.getOppositeConfig({
|
|
66865
|
+
ratio: reward_factor
|
|
66878
66866
|
});
|
|
66867
|
+
const reverse_config = await reversePosition.getConfig();
|
|
66868
|
+
if ((reverse_config.entry !== opposite_config.entry || reverse_config.stop !== opposite_config.stop || reverse_config.risk !== opposite_config.risk || reverse_config.risk_reward !== opposite_config.risk_reward) && focusPosition.getInstance().quantity > 0) {
|
|
66869
|
+
console.log("Updating reverse config for ", symbol, kind, "with opposite config", opposite_config);
|
|
66870
|
+
await reversePosition.getConfig({
|
|
66871
|
+
params: {
|
|
66872
|
+
entry: opposite_config.entry,
|
|
66873
|
+
stop: opposite_config.stop,
|
|
66874
|
+
risk: opposite_config.risk,
|
|
66875
|
+
risk_reward: opposite_config.risk_reward
|
|
66876
|
+
}
|
|
66877
|
+
});
|
|
66878
|
+
console.log("Placing trade for ", symbol, reversePosition.kind);
|
|
66879
|
+
await reversePosition.placeTrade({
|
|
66880
|
+
ignore_config: true,
|
|
66881
|
+
limit: true,
|
|
66882
|
+
place: true
|
|
66883
|
+
});
|
|
66884
|
+
}
|
|
66885
|
+
console.log("Opposite config for ", symbol, kind, opposite_config);
|
|
66879
66886
|
}
|
|
66880
|
-
console.log("Opposite config for ", symbol, kind, opposite_config);
|
|
66881
66887
|
return {
|
|
66882
66888
|
config_details: {
|
|
66883
66889
|
app_config,
|