1
1
{-# OPTIONS_HADDOCK show-extensions #-}
2
2
3
3
module Bfx.Math
4
- ( tweakMoneyPip ,
5
- tweakMakerRate ,
4
+ ( tweakMoneyAmount ,
5
+ tweakQuotePerBase ,
6
6
newCounterOrder ,
7
7
CounterArgs (.. ),
8
8
CounterRates (.. ),
@@ -14,23 +14,23 @@ where
14
14
15
15
import Bfx.Import.External
16
16
17
- tweakMoneyPip ::
17
+ tweakMoneyAmount ::
18
18
( MonadThrow m
19
19
) =>
20
20
BuyOrSell ->
21
21
MoneyAmount ->
22
22
m MoneyAmount
23
- tweakMoneyPip =
24
- tweakMoneyPipRec pip
23
+ tweakMoneyAmount =
24
+ tweakMoneyAmountRec pip
25
25
26
- tweakMoneyPipRec ::
26
+ tweakMoneyAmountRec ::
27
27
( MonadThrow m
28
28
) =>
29
29
Ratio Natural ->
30
30
BuyOrSell ->
31
31
MoneyAmount ->
32
32
m MoneyAmount
33
- tweakMoneyPipRec tweak bos prev = do
33
+ tweakMoneyAmountRec tweak bos prev = do
34
34
next <-
35
35
roundMoneyAmount
36
36
. MoneyAmount
@@ -39,33 +39,33 @@ tweakMoneyPipRec tweak bos prev = do
39
39
Sell -> unMoneyAmount prev - tweak
40
40
if next /= prev
41
41
then pure next
42
- else tweakMoneyPipRec (tweak + pip) bos prev
42
+ else tweakMoneyAmountRec (tweak + pip) bos prev
43
43
44
- tweakMakerRate ::
44
+ tweakQuotePerBase ::
45
45
( MonadThrow m
46
46
) =>
47
47
BuyOrSell ->
48
48
QuotePerBase ->
49
49
m QuotePerBase
50
- tweakMakerRate =
51
- tweakMakerRateRec pip
50
+ tweakQuotePerBase =
51
+ tweakQuotePerBaseRec pip
52
52
53
- tweakMakerRateRec ::
53
+ tweakQuotePerBaseRec ::
54
54
( MonadThrow m
55
55
) =>
56
56
Ratio Natural ->
57
57
BuyOrSell ->
58
58
QuotePerBase ->
59
59
m QuotePerBase
60
- tweakMakerRateRec tweak bos prev = do
60
+ tweakQuotePerBaseRec tweak bos prev = do
61
61
next <- roundQuotePerBase
62
62
. QuotePerBase
63
63
$ case bos of
64
64
Buy -> unQuotePerBase prev - tweak
65
65
Sell -> unQuotePerBase prev + tweak
66
66
if next /= prev
67
67
then pure next
68
- else tweakMakerRateRec (tweak + pip) bos prev
68
+ else tweakQuotePerBaseRec (tweak + pip) bos prev
69
69
70
70
pip :: Ratio Natural
71
71
pip = 0.00000001
@@ -113,7 +113,7 @@ data CounterExit = CounterExit
113
113
114
114
newCounterOrder :: (MonadThrow m ) => CounterArgs -> m CounterExit
115
115
newCounterOrder args = do
116
- exitBase <- tweakMoneyPip Sell =<< roundMoneyAmount exitBaseLoss
116
+ exitBase <- tweakMoneyAmount Sell =<< roundMoneyAmount exitBaseLoss
117
117
exitPrice <- roundQuotePerBase exitRate
118
118
pure
119
119
CounterExit
0 commit comments