diff --git a/src/ATrade/RoboCom/Positions.hs b/src/ATrade/RoboCom/Positions.hs index 7ddb711..a1d0d5b 100644 --- a/src/ATrade/RoboCom/Positions.hs +++ b/src/ATrade/RoboCom/Positions.hs @@ -273,7 +273,8 @@ dispatchPosition event pos = case posState pos of if newstate == Cancelled then do submitOrder nextOrder - return pos { posState = PositionWaitingCloseSubmission nextOrder, posSubmissionDeadline = Just (10 `addUTCTime` lastTs), posExecutionDeadline = Nothing } + return pos { posState = PositionWaitingCloseSubmission nextOrder, + posSubmissionDeadline = Just ((30*60) `addUTCTime` lastTs), posExecutionDeadline = Nothing } else return pos (OrderUpdate _ newstate, Just _, Just PositionCancelled) -> if newstate == Cancelled @@ -466,7 +467,7 @@ enterAtMarketWithParams :: (StateHasPositions s, ParamsHasMainTicker c, MonadRob enterAtMarketWithParams account quantity signalId operation = do tickerId <- mainTicker <$> getConfig submitOrder $ order tickerId - newPosition (order tickerId) account tickerId operation quantity 20 + newPosition (order tickerId) account tickerId operation quantity (30 * 60) where order tickerId = mkOrder { orderAccountId = account, @@ -511,7 +512,7 @@ enterAtLimitForTickerWithParams tickerId timeToCancel account quantity signalId lastTs <- view seLastTimestamp <$> getEnvironment submitOrder order appendToLog $ [t|enterAtLimit: %?, deadline: %?|] tickerId (timeToCancel `addUTCTime` lastTs) - newPosition order account tickerId operation quantity 20 >>= + newPosition order account tickerId operation quantity (30 * 60) >>= modifyPosition (\p -> p { posExecutionDeadline = Just $ timeToCancel `addUTCTime` lastTs }) where order = mkOrder { @@ -551,7 +552,7 @@ exitAtMarket position operationSignalName = do modifyPosition (\pos -> pos { posState = PositionWaitingPendingCancellation, posNextState = Just $ PositionWaitingCloseSubmission (closeOrder inst), - posSubmissionDeadline = Just $ 10 `addUTCTime` lastTs, + posSubmissionDeadline = Just $ (30 * 60) `addUTCTime` lastTs, posExecutionDeadline = Nothing }) position Nothing -> do @@ -560,7 +561,7 @@ exitAtMarket position operationSignalName = do pos { posCurrentOrder = Nothing, posState = PositionWaitingCloseSubmission (closeOrder inst), posNextState = Just PositionClosed, - posSubmissionDeadline = Just $ 10 `addUTCTime` lastTs, + posSubmissionDeadline = Just $ (30 * 60) `addUTCTime` lastTs, posExecutionDeadline = Nothing }) position where closeOrder inst = mkOrder { @@ -585,7 +586,7 @@ exitAtLimit timeToCancel price position operationSignalName = do pos { posCurrentOrder = Nothing, posState = PositionWaitingCloseSubmission (closeOrder inst), posNextState = Just PositionClosed, - posSubmissionDeadline = Just $ 10 `addUTCTime` lastTs, + posSubmissionDeadline = Just $ (30 * 60) `addUTCTime` lastTs, posExecutionDeadline = Just $ timeToCancel `addUTCTime` lastTs }) position where closeOrder inst = mkOrder {