コード例 #1
0
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
コード例 #2
0
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")
コード例 #3
0
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")
コード例 #4
0
ファイル: trailing.py プロジェクト: capitalallen/trading-ml
 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}
コード例 #5
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)
コード例 #6
0
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")
コード例 #7
0
ファイル: mongo_test.py プロジェクト: capitalallen/trading-ml
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))
    
コード例 #8
0
def change_strategy(pred,side,pair='ETHUSDT',strategy="short_strategy"):
    cc = change_config.Change_config()
    cc.update_config(pair,strategy,{"side":side,"pred":pred})
コード例 #9
0
def change_lev(pair,lev_type,rate):
    cc = change_config.Change_config()
    cc.update_config(pair,lev_type,rate)
コード例 #10
0
def get_strategy(pair="ETHUSDT"):
    cc = change_config.Change_config()
    print(cc.get_pair_config(pair))
コード例 #11
0
def change_discount(pair="ETHUSDT",type="long_p",rate=0.005):
    cc = change_config.Change_config()
    cc.update_config(pair,type,rate)    
コード例 #12
0
def update_settings(cols):
    cc = change_config.Change_config()
    for i in cols:
        cc.add_amount_entry(i)
コード例 #13
0
def turn_off(pair='ETHUSDT', t="long", option=False):
    cc = change_config.Change_config()
    cc.update_config(pair, t, option)
コード例 #14
0
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)