Всё равно не доходит, попробую более чётко пояснить, что требуется, ибо по тому, что написал и правда не понятно.
есть таблица опционов:
opt.type oper strike price.open
CALL buy 66000 800
CALL buy 66000 700
PUT sell 65000 750
...
есть вектор цены базового актива:
underline <- seq(40000, 80000, by=500)
необходимо на каждое значение в векторе базового актива провести расчёт прибыли/убытка по каждой строке, вот алгоритм вычисления по одной строке, с одним значением базового актива
underline <- seq(40000, 80000, by=500)
if(oper.type == 'BUY' & option.type == 'CALL' & underline <= strike) {
return(-price.open)
}
else if(oper.type == 'BUY' & option.type == 'CALL' & underline > strike) {
return(underline - strike - price.open)
}
else if(oper.type == 'BUY' & option.type == 'PUT' & underline <= strike) {
return(strike - underline - price.open)
}
else if(oper.type == 'BUY' & option.type == 'PUT' & underline > strike) {
return(-price.open)
}
if(oper.type == 'SELL' & option.type == 'CALL' & underline <= strike) {
return(price.open)
}
else if(oper.type == 'SELL' & option.type == 'CALL' & underline > strike) {
return(-(underline - strike - price.open))
}
else if(oper.type == 'SELL' & option.type == 'PUT' & underline <= strike) {
return(-(strike - underline - price.open))
}
else if(oper.type == 'SELL' & option.type == 'PUT' & underline > strike) {
return(price.open)
}
Далее необходимо суммировать фин. рез. по всем строкам по одной цене базового актива, записать значение в новый вектор и перейти к другому значение базового актива в векторе, и так прогнать все значения вектора к таблице. В итоге, нужно получить вектор размером как и вектор underline.
Прошу прощение за сумбур, но мне кажется сейчас подробнее изложил.