Я хочу запустить несколько бэк-тестов на определенных биржевых данных. Я хочу сделать это, сгенерировав массив опций стратегии, которые я передам в функцию обратного тестирования.
В нижеприведенном объекте я могу определить значения как массивы, чтобы сформировать несколько комбинаций стратегий.
Количество комбинаций [0,1] и [2,3] равно 4, поэтому мой выходной массив будет состоять из 4 объектов стратегии.
Для иллюстрации, это мой (упрощенный) ввод :
const backtestSettings = {
stopLoss: [5],
bands: [
{
timeframe: 1,
openMinVolatility: [0,1],
},
{
timeframe: 5,
openMinVolatility: [2,3],
},
{
timeframe: 15,
openMinVolatility: [0],
},
{
timeframe: 30,
openMinVolatility: [0],
}
]
};
И я пытаюсь получить это как мой вывод:
[
{
stopLoss: 5,
bands: [
{
timeframe: 1,
openMinVolatility: 0
},
{
timeframe: 5,
openMinVolatility: 2
},
{
timeframe: 15,
openMinVolatility: 0
},
{
timeframe: 30,
openMinVolatility: 0
}
]
},
{
stopLoss: 5,
bands: [
{
timeframe: 1,
openMinVolatility: 1
},
{
timeframe: 5,
openMinVolatility: 2
},
{
timeframe: 15,
openMinVolatility: 0
},
{
timeframe: 30,
openMinVolatility: 0
}
]
},
{
stopLoss: 5,
bands: [
{
timeframe: 1,
openMinVolatility: 0
},
{
timeframe: 5,
openMinVolatility: 3
},
{
timeframe: 15,
openMinVolatility: 0
},
{
timeframe: 30,
openMinVolatility: 0
}
]
},
{
stopLoss: 5,
bands: [
{
timeframe: 1,
openMinVolatility: 1
},
{
timeframe: 5,
openMinVolatility: 3
},
{
timeframe: 15,
openMinVolatility: 0
},
{
timeframe: 30,
openMinVolatility: 0
}
]
}
]
Вопрос: Как мне преобразовать мой ввод в желаемый вывод? (Я потратил несколько дней, пробуя много разных вещей)
Бонус: у меня есть кое-что, работающее без групп (тот факт, что он вложенный, усложняет мне задачу), объединяя некоторые функции forEach, но на самом деле количество опций существенно, что делает мой код действительно длинным и нечитаемым. Поэтому я надеюсь, что есть решение, которое также может принимать произвольное количество опций вместо цепочки функций forEach.