Bonus 1

S.final <- 1527.49   # Apr 20, Close
S.final
## [1] 1527.49

Nonick42

nonick42 <- function(S){
  
  callPayoff <- function(SS,E) pmax(0,SS-E)  
  
  profit1 <- function(SS){
    call1430<-callPayoff(SS,1430)
    call1450<-callPayoff(SS,1450)
    call1470<-callPayoff(SS,1470)
    4*(call1430-108.2)-1*(call1450-92.85)-3*(call1470-80.4)
  }
  
  profit1(S)
}

nonick42(S.final)
## [1] 41.25

Beago

Beago <- function(S) {
  payoff <- pmax(0,S-1430) + pmax(0,S-1450) - pmax(0,S-1520) - pmax(0,S-1530)
  profit <- payoff - 108.2 - 96.45 + 56.6 + 52.3
  profit
}

Beago(S.final)
## [1] 71.74

BetterSafeThanSushi

BetterSafeThanSushi <- function(S) 
{
  callPayoff = function(S,E) pmax(0,S-E)
  vyplata<-10*(+callPayoff(S,1430)-callPayoff(S,1440))
  profit<-vyplata + 10*(-108.2+99.75)
  profit
}

BetterSafeThanSushi(S.final)
## [1] 15.5

R2018

R1028 = function (S) {
  callPayoff = function(S,E) pmax(0,S-E)
  return (callPayoff(S,1450) -96.45)
}

R1028(S.final)
## [1] -18.96

georgiev.slavi

georgiev.slavi <- function(S) {
  callPayoff <- function(S, E) pmax(0, S-E)
  profit <- rep(0, length(S))
  strategy <- data.frame(
    quantity = c(4, -4),
    strike = c(1510, 1560),
    price = c(63.5, 40.8)
  )
  for (i in 1:nrow(strategy)) {
    profit = profit + strategy[i,]$quantity * (callPayoff(S, strategy[i,]$strike) - strategy[i,]$price)
  }
  profit
}

georgiev.slavi(S.final)
## [1] -20.84

DAR

dar <- function(S){
 
  callPayoff <- function(S,E) pmax(0,S-E)  
  profit <- function(S) 19*(callPayoff(S,1540) - 48.95 - callPayoff(S,1550) + 43.75)
  profit(S)
  
}

dar(S.final)
## [1] -98.8

Trinástka

trinastka = function(S) {
  
  callPayoff <- function(S,E) pmax(0,S-E)  
  return (-1*callPayoff(S,1560)-2*callPayoff(S,1520)+3*callPayoff(S,1470)-3*(83.35) + 1*(40.8) + 2*56.60)
}

trinastka(S.final)
## [1] 61.44

Semančíková

semancikova<-function(S){
  callPayoff <- function(S,E) pmax(0,S-E)  
  vyp =- 3*callPayoff(S,1510)+2*callPayoff(S,1460)+2*callPayoff(S,1490)-1*callPayoff(S,1530)
  profit = vyp + 3*(61.60) - 2*(90.3)  - 2*(74.2) + 1*(52.30)
  profit
}

semancikova(S.final)
## [1] 65.59

Špekulant

spekulant <- function(S){
  callPayoff <- function(S,E) pmax(0,S-E)
  call1<-callPayoff(S,1450)
  call2<-callPayoff(S,1560)
  2*((call1-92)+(-call2+42.68))
}

spekulant(S.final)
## [1] 56.34