|
|
|
|
@ -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 { |
|
|
|
|
|