fix(trading): oco order submission fix for both tp and sl

This commit is contained in:
Madalina Raicu 2024-03-05 16:31:42 +00:00
parent 5752b5b089
commit 39db2b402d
No known key found for this signature in database
GPG Key ID: 688B7B31149C1DCD

View File

@ -201,9 +201,35 @@ export const mapFormValuesToTakeProfitAndStopLoss = (
? Schema.StopOrderTriggerDirection.TRIGGER_DIRECTION_FALLS_BELOW
: Schema.StopOrderTriggerDirection.TRIGGER_DIRECTION_RISES_ABOVE;
const takeProfitStopOrderSubmission =
formValues.takeProfit &&
mapFormValuesToStopOrdersSubmission(
const stopOrdersSubmission = [];
if (formValues.takeProfit && formValues.stopLoss) {
const ocoStopOrderSubmission = mapFormValuesToStopOrdersSubmission(
{
...formValues,
triggerPrice: formValues.stopLoss,
ocoTriggerPrice: formValues.takeProfit,
price: formValues.stopLoss,
triggerDirection: stopLossTriggerDirection,
triggerType: 'price',
side: oppositeSide,
expire: false,
type: Schema.OrderType.TYPE_MARKET,
oco: true,
ocoPrice: formValues.takeProfit,
ocoTriggerType: 'price',
ocoType: Schema.OrderType.TYPE_MARKET,
ocoSize: formValues.size,
ocoTimeInForce: Schema.OrderTimeInForce.TIME_IN_FORCE_FOK,
},
market.id,
market.decimalPlaces,
market.positionDecimalPlaces,
reference
);
stopOrdersSubmission.push(ocoStopOrderSubmission);
} else if (formValues.takeProfit) {
const takeProfitStopOrderSubmission = mapFormValuesToStopOrdersSubmission(
{
...formValues,
price: formValues.takeProfit,
@ -215,6 +241,7 @@ export const mapFormValuesToTakeProfitAndStopLoss = (
timeInForce: Schema.OrderTimeInForce.TIME_IN_FORCE_FOK,
ocoTriggerType: 'price',
type: Schema.OrderType.TYPE_MARKET,
oco: false,
ocoType: Schema.OrderType.TYPE_MARKET,
ocoSize: formValues.size,
ocoTimeInForce: Schema.OrderTimeInForce.TIME_IN_FORCE_FOK,
@ -224,10 +251,9 @@ export const mapFormValuesToTakeProfitAndStopLoss = (
market.positionDecimalPlaces,
reference
);
const stopLossStopOrderSubmission =
formValues.stopLoss &&
mapFormValuesToStopOrdersSubmission(
stopOrdersSubmission.push(takeProfitStopOrderSubmission);
} else if (formValues.stopLoss) {
const stopLossStopOrderSubmission = mapFormValuesToStopOrdersSubmission(
{
...formValues,
triggerPrice: formValues.stopLoss,
@ -237,6 +263,7 @@ export const mapFormValuesToTakeProfitAndStopLoss = (
side: oppositeSide,
expire: false,
type: Schema.OrderType.TYPE_MARKET,
oco: false,
ocoTriggerType: 'price',
ocoType: Schema.OrderType.TYPE_MARKET,
ocoSize: formValues.size,
@ -247,13 +274,9 @@ export const mapFormValuesToTakeProfitAndStopLoss = (
market.positionDecimalPlaces,
reference
);
const stopOrdersSubmission = [];
if (takeProfitStopOrderSubmission) {
stopOrdersSubmission.push(takeProfitStopOrderSubmission);
}
if (stopLossStopOrderSubmission) {
stopOrdersSubmission.push(stopLossStopOrderSubmission);
}
const batchMarketInstructions = {
submissions: [orderSubmission],
stopOrdersSubmission,