@@ -32,9 +32,7 @@ def transaction_through_bridge(self, pair: Pair):
32
32
"""
33
33
can_sell = False
34
34
balance = self .manager .get_currency_balance (pair .from_coin .symbol )
35
- from_coin_price = self .manager .get_ticker_price (
36
- pair .from_coin + self .config .BRIDGE
37
- )
35
+ from_coin_price = self .manager .get_ticker_price (pair .from_coin + self .config .BRIDGE )
38
36
39
37
if balance and balance * from_coin_price > self .manager .get_min_notional (
40
38
pair .from_coin .symbol , self .config .BRIDGE .symbol
@@ -43,10 +41,7 @@ def transaction_through_bridge(self, pair: Pair):
43
41
else :
44
42
self .logger .info ("Skipping sell" )
45
43
46
- if (
47
- can_sell
48
- and self .manager .sell_alt (pair .from_coin , self .config .BRIDGE ) is None
49
- ):
44
+ if can_sell and self .manager .sell_alt (pair .from_coin , self .config .BRIDGE ) is None :
50
45
self .logger .info ("Couldn't sell, going back to scouting mode..." )
51
46
return None
52
47
@@ -65,26 +60,16 @@ def update_trade_threshold(self, coin: Coin, coin_price: float):
65
60
"""
66
61
67
62
if coin_price is None :
68
- self .logger .info (
69
- "Skipping update... current coin {} not found" .format (
70
- coin + self .config .BRIDGE
71
- )
72
- )
63
+ self .logger .info (f"Skipping update... current coin { coin + self .config .BRIDGE } not found" )
73
64
return
74
65
75
66
session : Session
76
67
with self .db .db_session () as session :
77
68
for pair in session .query (Pair ).filter (Pair .to_coin == coin ):
78
- from_coin_price = self .manager .get_ticker_price (
79
- pair .from_coin + self .config .BRIDGE
80
- )
69
+ from_coin_price = self .manager .get_ticker_price (pair .from_coin + self .config .BRIDGE )
81
70
82
71
if from_coin_price is None :
83
- self .logger .info (
84
- "Skipping update for coin {} not found" .format (
85
- pair .from_coin + self .config .BRIDGE
86
- )
87
- )
72
+ self .logger .info (f"Skipping update for coin { pair .from_coin + self .config .BRIDGE } not found" )
88
73
continue
89
74
90
75
pair .ratio = from_coin_price / coin_price
@@ -100,26 +85,14 @@ def initialize_trade_thresholds(self):
100
85
continue
101
86
self .logger .info (f"Initializing { pair .from_coin } vs { pair .to_coin } " )
102
87
103
- from_coin_price = self .manager .get_ticker_price (
104
- pair .from_coin + self .config .BRIDGE
105
- )
88
+ from_coin_price = self .manager .get_ticker_price (pair .from_coin + self .config .BRIDGE )
106
89
if from_coin_price is None :
107
- self .logger .info (
108
- "Skipping initializing {}, symbol not found" .format (
109
- pair .from_coin + self .config .BRIDGE
110
- )
111
- )
90
+ self .logger .info (f"Skipping initializing { pair .from_coin + self .config .BRIDGE } , symbol not found" )
112
91
continue
113
92
114
- to_coin_price = self .manager .get_ticker_price (
115
- pair .to_coin + self .config .BRIDGE
116
- )
93
+ to_coin_price = self .manager .get_ticker_price (pair .to_coin + self .config .BRIDGE )
117
94
if to_coin_price is None :
118
- self .logger .info (
119
- "Skipping initializing {}, symbol not found" .format (
120
- pair .to_coin + self .config .BRIDGE
121
- )
122
- )
95
+ self .logger .info (f"Skipping initializing { pair .to_coin + self .config .BRIDGE } , symbol not found" )
123
96
continue
124
97
125
98
pair .ratio = from_coin_price / to_coin_price
@@ -137,16 +110,10 @@ def _get_ratios(self, coin: Coin, coin_price):
137
110
ratio_dict : Dict [Pair , float ] = {}
138
111
139
112
for pair in self .db .get_pairs_from (coin ):
140
- optional_coin_price = self .manager .get_ticker_price (
141
- pair .to_coin + self .config .BRIDGE
142
- )
113
+ optional_coin_price = self .manager .get_ticker_price (pair .to_coin + self .config .BRIDGE )
143
114
144
115
if optional_coin_price is None :
145
- self .logger .info (
146
- "Skipping scouting... optional coin {} not found" .format (
147
- pair .to_coin + self .config .BRIDGE
148
- )
149
- )
116
+ self .logger .info (f"Skipping scouting... optional coin { pair .to_coin + self .config .BRIDGE } not found" )
150
117
continue
151
118
152
119
self .db .log_scout (pair , pair .ratio , coin_price , optional_coin_price )
@@ -161,16 +128,11 @@ def _get_ratios(self, coin: Coin, coin_price):
161
128
162
129
if self .config .USE_MARGIN == "yes" :
163
130
ratio_dict [pair ] = (
164
- (1 - transaction_fee ) * coin_opt_coin_ratio / pair .ratio
165
- - 1
166
- - self .config .SCOUT_MARGIN / 100
131
+ (1 - transaction_fee ) * coin_opt_coin_ratio / pair .ratio - 1 - self .config .SCOUT_MARGIN / 100
167
132
)
168
133
else :
169
134
ratio_dict [pair ] = (
170
- coin_opt_coin_ratio
171
- - transaction_fee
172
- * self .config .SCOUT_MULTIPLIER
173
- * coin_opt_coin_ratio
135
+ coin_opt_coin_ratio - transaction_fee * self .config .SCOUT_MULTIPLIER * coin_opt_coin_ratio
174
136
) - pair .ratio
175
137
return ratio_dict
176
138
@@ -196,19 +158,15 @@ def bridge_scout(self):
196
158
bridge_balance = self .manager .get_currency_balance (self .config .BRIDGE .symbol )
197
159
198
160
for coin in self .db .get_coins ():
199
- current_coin_price = self .manager .get_ticker_price (
200
- coin + self .config .BRIDGE
201
- )
161
+ current_coin_price = self .manager .get_ticker_price (coin + self .config .BRIDGE )
202
162
203
163
if current_coin_price is None :
204
164
continue
205
165
206
166
ratio_dict = self ._get_ratios (coin , current_coin_price )
207
167
if not any (v > 0 for v in ratio_dict .values ()):
208
168
# There will only be one coin where all the ratios are negative. When we find it, buy it if we can
209
- if bridge_balance > self .manager .get_min_notional (
210
- coin .symbol , self .config .BRIDGE .symbol
211
- ):
169
+ if bridge_balance > self .manager .get_min_notional (coin .symbol , self .config .BRIDGE .symbol ):
212
170
self .logger .info (f"Will be purchasing { coin } using bridge coin" )
213
171
self .manager .buy_alt (coin , self .config .BRIDGE )
214
172
return coin
0 commit comments