def web_call_main(input_message):
    ans = '可执行"查询持仓、查询账户|5、下单[平多/平空/空/多,ETH,0.5P,3L]、任务[ETH,0.5P,0L,[90, 3.2, 0.054, 0.084, 1.6, 0.15]]、任务终止-ETH、查询任务、查询历史任务、help"指令'

    if input_message == '查询持仓':
        exchange = my_exchange.bitfinexV2_instance()
        ans = get_pos_info(exchange)
    elif input_message == '查询账户':
        ans = get_account_info()
    elif input_message.startswith('查询账户|'):
        sp = input_message.replace('查询账户|', '')
        if re.search('^[0-9]+$', sp) is not None:
            sp = int(sp)
        else:
            sp = 5
        ans = get_account_info(num=sp)

    elif input_message.startswith('下单'):
        ans = play_order(input_message)
    elif input_message.startswith('任务'):
        ans = exec_tasks(input_message)
    elif input_message == '查询任务':
        ans = get_all_tasks()
    elif input_message == '查询历史任务':
        ans = get_tasks_history5()
    return ans
Beispiel #2
0
def test_para_online():
    '''
    调参后,在线测试短期收益
    :return:
    '''
    #'x': 360, 'y': 3.0, 'm': 0.01, 'n': 0.0, 'h': 1.028
    #'x': 380, 'y': 3.0, 'm': 0.015, 'n': 0.02, 'h': 100
    #101.1435778634197 {'x': 90, 'y': 4.0, 'm': 0.035, 'n': 0.115, 'h': 1.5359999999999987}XRP
    #4.815276995447291 {'x': 100, 'y': 3.25, 'm': 0.01, 'n': 0.045, 'h': 1.8159999999999985}eth
    #最优: 19.291647830587838 {'x': 148, 'y': 4.800000000000003, 'm': 0.0, 'n': 0.115, 'h': 1.101999999999999}btc
    #{'x': 70, 'y': 5.400000000000004, 'm': 0.0, 'n': 0.045, 'h': 1.101999999999999}btc
    para_now = [90, 3.2, 0.005, 0.015, 1.0, 0.2]
    para_now = [90, 3.2, 0.04, 0.495, 1.4, 0.15]
    # 任务[ETH,0.5P,0L,[90, 3.2, 0.04, 0.495, 1.4, 0.15]]
    data = k_lines.get_candle_data(my_exchange.bitfinexV2_instance(),
                                   'ETH/USDT', '15m')

    data.rename(columns={'candle_begin_time_GMT8': 'candle_begin_time'},
                inplace=True)
    # 保存分析
    # data.to_excel(utils.project_path() + '/excel_output.xls', sheet_name='src')
    # 计算交易信号
    df = back_return.BollingAdvanced().signal_bolling(data, para=para_now)
    # 计算资金曲线
    df = evaluate.equity_curve_with_long_and_short(df,
                                                   leverage_rate=3,
                                                   c_rate=2.0 / 1000)
    print(para_now, '策略最终收益:', df.iloc[-1]['equity_curve'])
def play_order(exc='下单'):
    if exc == '下单':
        return '下单指令不完整!'
    #提取指令
    try:
        #exc = '下单[平多,ETH,0.7P,2.1L]'
        ma = re.search(
            '^下单\[((平多)|(平空)|空|多),\s*([A-Z]{2,9}),\s*((0\.){0,1}[0-9]{1,2})P,\s*([0-3](\.[0-9]){0,1})L\s*\]$',
            exc)
        para1, para2, para3, para4 = ma.group(1), ma.group(4), float(
            ma.group(5)), float(ma.group(7))
    except Exception as e:
        print(e)
        return '正则失败,请检查下单指令是否有误!'

    #生成操作码
    if para1 == '平多':
        sigal, sigal_before = 0, 1
    elif para1 == '平空':
        sigal, sigal_before = 0, -1
    elif para1 == '空':
        sigal, sigal_before = -1, 0
    elif para1 == '多':
        sigal, sigal_before = 1, 0
    else:
        return '只能执行[平多|平空|空|多]之一!'
    # 下单
    auto_trade_leverage(my_exchange.bitfinexV2_instance(),
                        para2 + '/USDT',
                        sigal,
                        sigal_before,
                        para=[para4, para3,
                              my_exchange.bitfinex_instance()])
    return '已执行任务!若符合持仓条件,执行结果将以邮件下发,请注意查收!'
Beispiel #4
0
def execTask():
    global eos_df, eth_df, btc_df, ltc_df, xrp_df
    # 具体任务执行内容
    data_EOS = k_lines.get_candle_data(my_exchange.bitfinexV2_instance(), 'EOS/USDT', '5m')
    eos_d = get_last_2days_data(data_EOS)
    eos_df = data_merge_2_file(eos_d,eos_df,path='/result/data_EOS.h5')
    '''
    data_ETH = k_lines.__get_candle_data(my_exchange.bitfinexV2_instance(), 'ETH/USDT', '5m')
    eth_d = get_last_2days_data(data_ETH)
    eth_df = data_merge_2_file(eth_d,eth_df, path='/result/data_ETH.h5')
    '''
    '''
    data_BTC = k_lines.__get_candle_data(my_exchange.bitfinexV2_instance(), 'BTC/USDT', '5m')

    data_LTC = k_lines.__get_candle_data(my_exchange.bitfinexV2_instance(), 'LTC/USDT', '5m')
    data_XRP = k_lines.__get_candle_data(my_exchange.bitfinexV2_instance(), 'XRP/USDT', '5m')
    '''
    utils.log_exp.info('操作执行结束')
Beispiel #5
0
from domain.tasks_main import task_making
from domain import my_exchange
from strategy import bulin_K
from Xbitfinex import orders
'''
bulin_K:
ETH[[100, 3.25, 0.01]   15956.918983]
ETH[[100, 3.25, 0.01,0.0255 ]   35064.8015]
'''
task_making(my_exchange.bitfinexV2_instance(),
            bulin_K.signal_bolling,
            strtegy_para=[395, 3.081812, 0.050710, 0.027049, 1.5],
            func_auto_trade=orders.auto_trade_leverage,
            order_para=[1.5, 0.5, my_exchange.bitfinex_instance()],
            symbol='ETH/USDT',
            interval_time='15m')