Compare commits

...

1 Commits

Author SHA1 Message Date
Denis Tereshkin 50efbf78a2 Increase submission deadline 4 years ago
  1. 13
      src/ATrade/RoboCom/Positions.hs

13
src/ATrade/RoboCom/Positions.hs

@ -273,7 +273,8 @@ dispatchPosition event pos = case posState pos of @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 {

Loading…
Cancel
Save