def get_configs(pair, type): config_func = change_config.Change_config() controls = config_func.get_pair_config(pair) configs = {} if type == "long": transactions = config_func.get_trading_num() lev_long = controls['lev_long'] dicount_rate = controls['long_p'] curr_price = round(price.get_price(pair), 2) configs['discount_rate'] = dicount_rate configs['price'] = curr_price configs["transaction"] = controls['long_amount'] configs['leverage_rate'] = controls['lev_long'] if configs['discount_rate']: configs['price'] = configs['price'] * (1 - configs['discount_rate']) elif type == "short": transactions = config_func.get_trading_num() lev_long = controls['lev_short'] dicount_rate = controls['short_p'] curr_price = round(price.get_price(pair), 2) configs['discount_rate'] = dicount_rate configs['price'] = curr_price configs["transaction"] = controls['short_amount'] configs['leverage_rate'] = controls['lev_short'] if configs['discount_rate']: configs['price'] = configs['price'] * (1 + configs['discount_rate']) else: print("type invalid") return configs
def limit_short_trailing(pair, short_price, quantity, trade_type='short', trigger_per=1, deviation=0.5, stop_loss_per=2): configs = change_config.Change_config() transaction_func = transaction.Buy_sell() # buy """ get order_time while curr_price is higher than price sleep 1.5 second get current price if current time > order_time +2h: print time expired return else: buy """ # update trade number allowed configs.update_trading_num("short", -1) configs.update_short_trade_avl(pair, -1) start_time = int(time.time()) curr_price = price.get_price(pair) print("current price:", curr_price) while curr_price < short_price: print("current price: " + str(curr_price) + "| long price:" + str(short_price)) time.sleep(1.5) if int(time.time()) > start_time + 7200: print("time expired") configs.update_trading_num("short", 1) configs.update_short_trade_avl(pair, 1) return curr_price = price.get_price(pair) else: buy = transaction_func.mkt_buy_sell_future(pair=pair, quantity=quantity, positionSide="SHORT", side='SELL') # trailing trailing_func = trailing.Trailing(q=quantity, trade_type=trade_type, trigger_per=trigger_per, deviation=deviation, stop_loss_per=stop_loss_per, pair=pair) trailing_func.trailing_stop_short() configs.update_trading_num("short", 1) configs.update_short_trade_avl(pair, 1) print("successful")
def limit_long_trailing(pair, long_price, quantity, trade_type='long', trigger_per=1, deviation=0.5, stop_loss_per=2): configs = change_config.Change_config() transaction_func = transaction.Buy_sell() # buy """ get order_time while curr_price is higher than price sleep 1.5 second get current price if current time > order_time +2h: print time expired return else: buy """ # trailing configs.update_trading_num("long", -1) configs.update_long_trade_avl(pair, -1) start_time = int(time.time()) curr_price = price.get_price(pair) while curr_price > long_price: print("current price: " + str(curr_price) + "| long price:" + str(long_price)) time.sleep(1.5) if int(time.time()) > start_time + 7200: print("time expired") configs.update_trading_num("long", 1) configs.update_long_trade_avl(pair, 1) return curr_price = price.get_price(pair) else: buy = transaction_func.mkt_buy_sell_future(pair=pair, quantity=quantity, positionSide="LONG", side='BUY') print("bought at " + str(curr_price)) trailing_func = trailing.Trailing( q=quantity, trade_type=trade_type, trigger_per=trigger_per, deviation=deviation, stop_loss_per=stop_loss_per, pair=pair, ) trailing_func.trailing_stop_long() configs.update_trading_num("long", 1) configs.update_long_trade_avl(pair, 1) print("successful")
def __init__(self, q, trade_type='long',trigger_per=1, deviation=0.5, stop_loss_per=2, pair="BTCUSDT",p=None): # trigger percentage self.trigger_per = trigger_per/100 # trailing percentage self.trailing_per = (trigger_per-deviation)/100 # deviation percetage self.deviation = deviation/100 self.headers = {"Content-Type": "application/json"} self.url = "https://api.binance.com/api/v3/ticker/price?symbol="+pair self.pair = pair self.buy_price = p self.config_func = change_config.Change_config() if not p: p = float(ast.literal_eval(requests.get(self.url, headers=self.headers).content.decode("UTF-8"))['price']) self.buy_price = p if trade_type == 'long': # trigger price self.trigger_p = p*(1+self.trigger_per) # trailing price self.trailing_p = p*(1+self.trailing_per) # stop loss price self.stop_loss = p*(1-(stop_loss_per/100)) elif trade_type == 'short': self.trigger_p = p*(1-self.trigger_per) # trailing price self.trailing_p = p*(1-self.trailing_per) # stop loss price self.stop_loss = p*(1+(stop_loss_per/100)) else: return self.quantity = q self.transaction_func = transaction.Buy_sell() self.messaging = send_sms.Send_message() if self.pair=="BTCUSDT": self.threhold = [0.015] self.sell_per = [0.8] else: self.threhold = [0.02] self.sell_per = [0.6] self.quantity_remain = self.quantity self.target = 0 self.decimals = {"BTCUSDT":3,"ETHUSDT":1,"BNBUSDT":1,"XRPUSDT":0}
def __init__(self, pair, db_name, record_name, threshold, interval='1m', model_path=None, columns_path=None): self.predict = get_predict.Get_predict() self.predict.load_model(model_path) self.columns = json.load(open(columns_path))['columns'] self.configs = change_config.Change_config() self.pair = pair self.interval = interval self.db_name = db_name self.record_name = record_name self.threshold = threshold self.load_long_strategy() self.load_short_strategy() #connect to sql database self.pre_sql = psql.Preprocess_sql(self.db_name, self.record_name)
def mkt_short_trailing(pair, quantity, trade_type='short', trigger_per=1, deviation=0.5, stop_loss_per=2): configs = change_config.Change_config() transaction_func = transaction.Buy_sell() trailing_func = trailing.Trailing(q=quantity, trade_type=trade_type, trigger_per=trigger_per, deviation=deviation, stop_loss_per=stop_loss_per, pair=pair) # buy configs.update_trading_num("short", -1) buy = transaction_func.mkt_buy_sell_future(pair=pair, quantity=quantity, positionSide="SHORT", side='SELL') # trailing configs.update_trading_num("long", -1) trailing_func.trailing_stop_short() print("successful")
import sys sys.path.append('../alter_config') import change_config cc = change_config.Change_config() pairs = ["XRPUSDT","BTCUSDT","ETHUSDT","BNBUSDT"] for p in pairs: print(cc.get_pair_config(p))
def change_strategy(pred,side,pair='ETHUSDT',strategy="short_strategy"): cc = change_config.Change_config() cc.update_config(pair,strategy,{"side":side,"pred":pred})
def change_lev(pair,lev_type,rate): cc = change_config.Change_config() cc.update_config(pair,lev_type,rate)
def get_strategy(pair="ETHUSDT"): cc = change_config.Change_config() print(cc.get_pair_config(pair))
def change_discount(pair="ETHUSDT",type="long_p",rate=0.005): cc = change_config.Change_config() cc.update_config(pair,type,rate)
def update_settings(cols): cc = change_config.Change_config() for i in cols: cc.add_amount_entry(i)
def turn_off(pair='ETHUSDT', t="long", option=False): cc = change_config.Change_config() cc.update_config(pair, t, option)
def off_long_short(pair,t,switch): cc = change_config.Change_config() if t =="long": cc.update_config(pair,"long",switch) elif t == "short": cc.update_config(pair,"short",switch)