@@ -1111,21 +1111,29 @@ def test_create_dry_run_order_fees(
11111111
11121112
11131113@pytest .mark .parametrize (
1114- "side,limit,offset,expected" ,
1114+ "side,limit,offset,is_stop, expected" ,
11151115 [
1116- ("buy" , 46.0 , 0.0 , True ),
1117- ("buy" , 26.0 , 0.0 , True ),
1118- ("buy" , 25.55 , 0.0 , False ),
1119- ("buy" , 1 , 0.0 , False ), # Very far away
1120- ("sell" , 25.5 , 0.0 , True ),
1121- ("sell" , 50 , 0.0 , False ), # Very far away
1122- ("sell" , 25.58 , 0.0 , False ),
1123- ("sell" , 25.563 , 0.01 , False ),
1124- ("sell" , 5.563 , 0.01 , True ),
1116+ ("buy" , 46.0 , 0.0 , False , True ),
1117+ ("buy" , 46.0 , 0.0 , True , False ),
1118+ ("buy" , 26.0 , 0.0 , False , True ),
1119+ ("buy" , 26.0 , 0.0 , True , False ), # Stop - didn't trigger
1120+ ("buy" , 25.55 , 0.0 , False , False ),
1121+ ("buy" , 25.55 , 0.0 , True , True ), # Stop - triggered
1122+ ("buy" , 1 , 0.0 , False , False ), # Very far away
1123+ ("buy" , 1 , 0.0 , True , True ), # Current price is above stop - triggered
1124+ ("sell" , 25.5 , 0.0 , False , True ),
1125+ ("sell" , 50 , 0.0 , False , False ), # Very far away
1126+ ("sell" , 25.58 , 0.0 , False , False ),
1127+ ("sell" , 25.563 , 0.01 , False , False ),
1128+ ("sell" , 25.563 , 0.0 , True , False ), # stop order - Not triggered, best bid
1129+ ("sell" , 25.566 , 0.0 , True , True ), # stop order - triggered
1130+ ("sell" , 26 , 0.01 , True , True ), # stop order - triggered
1131+ ("sell" , 5.563 , 0.01 , False , True ),
1132+ ("sell" , 5.563 , 0.0 , True , False ), # stop order - not triggered
11251133 ],
11261134)
11271135def test__dry_is_price_crossed_with_orderbook (
1128- default_conf , mocker , order_book_l2_usd , side , limit , offset , expected
1136+ default_conf , mocker , order_book_l2_usd , side , limit , offset , is_stop , expected
11291137):
11301138 # Best bid 25.563
11311139 # Best ask 25.566
@@ -1134,14 +1142,14 @@ def test__dry_is_price_crossed_with_orderbook(
11341142 exchange .fetch_l2_order_book = order_book_l2_usd
11351143 orderbook = order_book_l2_usd .return_value
11361144 result = exchange ._dry_is_price_crossed (
1137- "LTC/USDT" , side , limit , orderbook = orderbook , offset = offset
1145+ "LTC/USDT" , side , limit , orderbook = orderbook , offset = offset , is_stop = is_stop
11381146 )
11391147 assert result is expected
11401148 assert order_book_l2_usd .call_count == 0
11411149
11421150 # Test without passing orderbook
11431151 order_book_l2_usd .reset_mock ()
1144- result = exchange ._dry_is_price_crossed ("LTC/USDT" , side , limit , offset = offset )
1152+ result = exchange ._dry_is_price_crossed ("LTC/USDT" , side , limit , offset = offset , is_stop = is_stop )
11451153 assert result is expected
11461154
11471155
0 commit comments