Example #1
0
def get_sell_condition(symbol_value):
    period_value = misc.getConfigKeyValueByKeyName('config.ini', 'config', 'period_value')
    price_buy = float(misc.getConfigKeyValueByKeyName('config.ini', symbol_value, 'price_buy'))
    price_max = float(misc.getConfigKeyValueByKeyName('config.ini', symbol_value, 'price_max'))
    k_line = api.get_k_line(symbol_value, period_value, 11)
    k_line_0_close = k_line[0]['close']
    price_low = price_max * (1 - down_percent)
    price_min = price_buy * (1 - down_percent_max)
    print('price_buy = %s' % price_buy)
    #print('price_max = %s' % price_max)
    #print('price_low = %s' % price_low)
    #print('price_min = %s' % price_min)
    print('close = %s' % k_line_0_close)
    print('percent = %.4f%%' % ((k_line_0_close / price_buy - 1) * 100))
    condition1 = k_line_0_close < k_line[0]['open']#阴线
    print('阴线 = %s' % condition1)
    if k_line_0_close > price_max:
        misc.setConfigKeyValue('config.ini', symbol_value, 'price_max', k_line_0_close)
        price_max = k_line_0_close
    if price_min > k_line_0_close:
        return True
    if price_low > k_line_0_close:
        return True
    else:
        return False
Example #2
0
def isBuyOrSellByMa5ValueAndCloseValue(operationType, ma5Value, closeValue,
                                       fatherMa5Slope):
    condition1 = ma5Value < closeValue  #true为买入机会,false为卖出机会
    condition2 = fatherMa5Slope > 0  #当true,为上升趋势,false为下跌趋势
    print('均线=', ma5Value, '\t收盘价=', closeValue, '\t趋势指导=', fatherMa5Slope,
          '\tcondition1=', condition1, '\tcondition2=', condition2)
    global buySignal
    global sellSignal
    if condition1:
        if operationType == 'buy':
            print('已买入,等待卖出机会')
            buySignal = 0
            return 'buy', None
        if not condition2:
            print('下跌趋势不买入')
            buySignal = 0
            return 'sell', None
        print('买入信号+1')
        buySignal = buySignal + 1
        if buySignal >= buySignalMax:
            #买入操作
            amount = misc.getConfigKeyValueByKeyName('config.ini', symbolValue,
                                                     'usdt')
            orderId = place(amount, 'buy-market')
            buySignal = 0
            return 'buy', orderId
        else:
            return 'sell', None
    else:
        if operationType == 'sell':
            print('已卖出,等待买入机会')
            sellSignal = 0
            return 'sell', None
        #卖出操作
        price = getLastBuyOrderPrice()
        if condition2:
            if price > closeValue:  #上升趋势,且盈利价格>市价时,不卖出
                print('price=', price)
                print('closeValue=', closeValue)
                print('上升趋势,涨幅未超过1%,不卖出')
                sellSignal = 0
                return 'buy', None
        print('卖出信号+1')
        sellSignal = sellSignal + 1
        if sellSignal >= sellSignalMax:
            print('price=', price)
            print('closeValue=', closeValue)
            balanceStr = getBlance(coinName)
            pointIndex = balanceStr.index('.')
            amount = balanceStr[0:5 + pointIndex]
            orderId = place(amount, 'sell-market')
            sellSignal = 0
            return 'sell', orderId
        else:
            return 'buy', None
Example #3
0
def get_sell_condition(symbol_value):
    period_value = misc.getConfigKeyValueByKeyName('config.ini', 'config',
                                                   'period_value')
    k_line = api.get_k_line(symbol_value, period_value, 11)
    k_line_0_close = k_line[0]['close']
    condition1 = k_line_0_close < k_line[0]['open']  #阴线
    k_line_1_close = k_line[1]['close']
    k_line_1_time = k_line[1]['id']
    k_line_time = int(
        misc.getConfigKeyValueByKeyName('config.ini', symbol_value,
                                        'k_line_time'))
    x_value = (k_line_1_time - k_line_time) / 60 / 60
    k_value = float(
        misc.getConfigKeyValueByKeyName('config.ini', symbol_value, 'k_value'))
    b_value = float(
        misc.getConfigKeyValueByKeyName('config.ini', symbol_value, 'b_value'))
    y_value = k_value * x_value + b_value
    if (k_line_1_close > y_value * up_point and x_value > 0):
        y_value_repair = y_value + (k_line_1_close - y_value) / 10
        k_value_repair = (y_value_repair - b_value) / x_value
        print('原始k k_value=%s' % k_value)
        print('斜率k修正 k_value_repair=%s' % k_value_repair)
        misc.setConfigKeyValue('config.ini', symbol_value, 'k_value',
                               str(k_value_repair))
        #return False and condition1
    k_value = float(
        misc.getConfigKeyValueByKeyName('config.ini', symbol_value, 'k_value'))
    x_value = x_value + 1
    y_value = k_value * x_value + b_value
    print('k_line_1时间 x=%s' % x_value)
    print('直线斜率 k=%s' % k_value)
    print('常数项 b=%s' % b_value)
    print('理想市价 y=%s' % y_value)
    print('实际市价 close=%s' % k_line_0_close)
    if (k_line_0_close < y_value * down_point):
        return True and condition1
    else:
        return False and condition1
Example #4
0
def get_condition():
    operationType = misc.getConfigKeyValueByKeyName('config.ini', symbol_value,
                                                    'type')
    k_line = api.get_k_line(symbol_value, period_value, 8)
    last_close_value = k_line[0]['close']
    ma_line = api.get_ma_line(k_line, 4)
    last_ma_value = ma_line[0]
    slope_list = api.get_slope_line(ma_line)
    print(slope_list)
    slope_list[0] = slope_list[0] * 1.075
    print(slope_list)
    slope_sum = 0
    for slope in slope_list:
        slope_sum = slope_sum + slope
    slope_sum = round(slope_sum, 6)
    slope_sum_last = slope_list[0] + slope_list[1]  # + slope_list[2]
    slope_sum_early = slope_list[3] + slope_list[2]  # + slope_list[5]

    condition1 = operationType == 'sell'
    condition2 = last_close_value > last_ma_value  #true为买入机会,false为卖出机会
    condition3 = slope_sum > 0  #true为斜率之和大于0,目前趋势向上,反之向下
    time_value = 0.0150
    condition4 = abs(slope_sum) > (float(last_close_value) * time_value
                                   )  #true为波动幅度大于市价的100.75%,波动幅度较大,非横盘震荡、谷底、山顶
    condition5 = slope_sum_last > slope_sum_early  #斜率后半段大于前半段
    condition6 = last_close_value > k_line[0]['open']  #true收盘价大于开盘价,阳线
    condition7 = slope_sum_last > 0  #后半段斜率之和为正
    condition8 = slope_sum_early < 0  #前半段斜率之和为负
    print('均线 = %s' % last_ma_value)
    print('市价 = %s' % last_close_value)
    print('斜率之和 = %s' % slope_sum)
    print('斜率之和(前半段) = %s' % slope_sum_early)
    print('斜率之和(后半段) = %s' % slope_sum_last)
    print('斜率波动幅度要求 = %s' % (last_close_value * time_value))
    print('1-最后一次操作为卖出 = %s' % condition1)
    print('2-市价高于均线 = %s' % condition2)
    print('3-斜率之和大于0 = %s' % condition3)
    print('4-波动幅度足够大 = %s' % condition4)
    print('5-后半段斜率之和大于前半段三斜率之和 = %s' % condition5)
    print('8-前半段斜率之和小于0 = %s' % condition8)
    print('7-后半段斜率之和大于0 = %s' % condition7)
    print('6-是否阳线 = %s' % condition6)
    return condition1, condition2, condition3, condition4, condition5, condition6, condition7, condition8
Example #5
0
def doOperation(operationType,ma5LastSlope,ma11LastSlope):
    if operationType == 'sell':
        if ma5LastSlope < 0 or ma11LastSlope < 0:
            print('条件不满足,不买入')
            return 10, 'sell', None
        #买入操作
        amount=misc.getConfigKeyValueByKeyName('config.ini',symbolValue,'usdt')
        orderId = place(amount,'buy-market')
        return 180, 'buy', orderId
    if operationType == 'buy':
        if ma5LastSlope > 0:
            print('条件不满足,不卖出')
            return 180, 'buy', None
        #卖出操作
        balanceStr=getBlance(coinName)
        pointIndex=balanceStr.index('.')
        amount=balanceStr[0:5+pointIndex]
        orderId = place(amount,'sell-market')
        return 10, 'sell', orderId
Example #6
0
def get_buy_condition(symbol_value):
    period_value = misc.getConfigKeyValueByKeyName('config.ini', 'config', 'period_value')
    k_line = api.get_k_line(symbol_value, period_value, 8)
    last_close_value = k_line[0]['close']
    ma_line = api.get_ma_line(k_line, 4)
    print(ma_line)
    last_ma_value = ma_line[0]
    slope_list = api.get_slope_line(ma_line)
    print(slope_list)
    slope_sum = 0
    for slope in slope_list:
        slope_sum = slope_sum + slope
    slope_sum = round(slope_sum, 6)
    slope_sum_last = slope_list[0] + slope_list[1]
    slope_sum_early = slope_list[3] + slope_list[2]

    condition1 = last_close_value > last_ma_value #市价在均线之上
    condition2 = last_close_value > k_line[0]['open'] #true收盘价大于开盘价,阳线
    #condition3 = slope_sum_last > slope_sum_early and slope_sum_last > 0 #斜率后半段大于前半段,且大于0
    condition3 = slope_list[0] > 0
    print('市价在均线之上 = %s' % condition1)
    print('阳线 = %s' % condition2)
    print('斜率后半段大于前半段,且大于0 = %s' % condition3)
    return condition1, condition2, condition3
Example #7
0
def main(symbol_value):
    print(misc.getTimeStr())
    print(symbol_value)
    operationType = misc.getConfigKeyValueByKeyName('config.ini', symbol_value, 'type')
    buy_signal = int(misc.getConfigKeyValueByKeyName('config.ini', symbol_value, 'buy_signal'))
    sell_signal = int(misc.getConfigKeyValueByKeyName('config.ini', symbol_value, 'sell_signal'))
    buy_signal_max = int(misc.getConfigKeyValueByKeyName('config.ini', 'config', 'buy_signal_max'))
    sell_signal_max = int(misc.getConfigKeyValueByKeyName('config.ini', 'config', 'sell_signal_max'))
    condition = operationType == 'sell'
    order_id = None
    if condition:#买入判断
        condition1, condition2, condition3 = get_buy_condition(symbol_value)
        if condition1 and condition2 and condition3:
            print('买入信号+1')
            buy_signal = buy_signal + 1
            print('buy_signal = %s' % buy_signal)
            misc.setConfigKeyValue('config.ini', symbol_value, 'buy_signal', buy_signal)
        else:
            misc.setConfigKeyValue('config.ini', symbol_value, 'buy_signal', 0)
    else:#卖出判断
        condition = get_sell_condition(symbol_value)
        if condition:
            print('卖出信号+1')
            sell_signal = sell_signal + 1
            print('sell_signal = %s' % sell_signal)
            misc.setConfigKeyValue('config.ini', symbol_value, 'sell_signal', sell_signal)
        else:
            misc.setConfigKeyValue('config.ini', symbol_value, 'sell_signal', 0)

    if buy_signal >= buy_signal_max:
        #买入操作
        amount = misc.getConfigKeyValueByKeyName('config.ini', symbol_value, 'money_value')
        #amount = api.get_balance(account_id, money_name)
        order_id = api.do_place(account_id, amount, symbol_value, 'buy-market')
        misc.setConfigKeyValue('config.ini', symbol_value, 'buy_signal', 0)
        
    if sell_signal >= sell_signal_max:
        #卖出操作
        coin_name = misc.getConfigKeyValueByKeyName('config.ini', symbol_value, 'coin_name')
        amount = api.get_balance(account_id, coin_name)
        if coin_name == 'knc' or coin_name == 'qsp':
            amount = misc.get_float_str(amount,0)
        order_id = api.do_place(account_id, amount, symbol_value, 'sell-market')
        misc.setConfigKeyValue('config.ini', symbol_value, 'sell_signal', 0)
        
    if order_id:
        time.sleep(2)
        order_detail = api.get_order_detail(order_id)[0]
        if order_detail['type'] == 'buy-market':
            misc.setConfigKeyValue('config.ini', symbol_value, 'type', 'buy')
            misc.setConfigKeyValue('config.ini', symbol_value, 'price_buy', order_detail['price'])
            misc.setConfigKeyValue('config.ini', symbol_value, 'price_max', order_detail['price'])
            coin_value = misc.get_float_str(str(float(order_detail['filled-amount']) - float(order_detail['filled-fees'])))
            misc.setConfigKeyValue('config.ini', symbol_value, 'coin_value', coin_value)
        if order_detail['type'] == 'sell-market':
            order_info = api.get_order_info(order_id)
            misc.setConfigKeyValue('config.ini', symbol_value, 'type', 'sell')
            misc.setConfigKeyValue('config.ini', symbol_value, 'price_sell', order_detail['price'])
            money_value = misc.get_float_str(str(float(order_info['field-cash-amount']) - float(order_info['field-fees'])),6)
            misc.setConfigKeyValue('config.ini', symbol_value, 'money_value', money_value)
        '''
Example #8
0
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Fri Nov 24 02:45:53 2017

@author: Marco
"""

import huo_bi_api as api
from huo_bi_utils import ApiError, ApiNetworkError
import misc
import time
from person import mailPass as mail_pass

mail_host = misc.getConfigKeyValueByKeyName('config.ini', 'mail', 'mailHost')
mail_user = misc.getConfigKeyValueByKeyName('config.ini', 'mail', 'mailUser')
receivers = misc.getConfigKeyValueByKeyName('config.ini', 'mail', 'receivers').split(',')

def get_buy_condition(symbol_value):
    period_value = misc.getConfigKeyValueByKeyName('config.ini', 'config', 'period_value')
    k_line = api.get_k_line(symbol_value, period_value, 8)
    last_close_value = k_line[0]['close']
    ma_line = api.get_ma_line(k_line, 4)
    print(ma_line)
    last_ma_value = ma_line[0]
    slope_list = api.get_slope_line(ma_line)
    print(slope_list)
    slope_sum = 0
    for slope in slope_list:
        slope_sum = slope_sum + slope
    slope_sum = round(slope_sum, 6)
Example #9
0
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Fri Nov 17 22:22:26 2017

@author: Marco
"""

import huo_bi_api as api
import misc
import time
from person import mailPass as mail_pass

mail_host = misc.getConfigKeyValueByKeyName('config.ini', 'mail', 'mailHost')
mail_user = misc.getConfigKeyValueByKeyName('config.ini', 'mail', 'mailUser')
receivers = misc.getConfigKeyValueByKeyName('config.ini', 'mail',
                                            'receivers').split(',')
#交易对
symbol_value = 'qspbtc'
money_name = 'usdt'
coin_name = 'btc'
account_id = api.get_account_id()
global buy_signal
global sell_signal
buy_signal = 0
sell_signal = 0
buy_signal_max = 4
sell_signal_max = 4

usdt = api.get_balance(account_id, 'usdt')
btc = api.get_balance(account_id, 'btc')
Example #10
0
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Sat Nov  4 10:38:01 2017

@author: Marco
"""

from person import apikey, secretkey, mailPass
import misc
from okexSpotAPI import OkexSpot
import time

mailHost = misc.getConfigKeyValueByKeyName('config.ini', 'mail', 'mailHost')
mailUser = misc.getConfigKeyValueByKeyName('config.ini', 'mail', 'mailUser')
receivers = misc.getConfigKeyValueByKeyName('config.ini', 'mail',
                                            'receivers').split(',')

okexSpot = OkexSpot(apikey, secretkey)
symbol = 'btc_usdt'

highValue = misc.getConfigKeyValueByKeyName('config.ini', 'ticker', 'high')

while True:
    ticker = okexSpot.ticker(symbol)
    high = ticker['ticker']['high']
    print(ticker)
    if high > highValue:
        content = '<html>'
        content += '<p>返回数据时服务器时间:%s</p>' % misc.getTimeStrWithUnixTimestamp(
            int(ticker['date']))
Example #11
0
def doBuy():
    #买入操作
    amount = misc.getConfigKeyValueByKeyName('config.ini', symbolValue, 'usdt')
    orderId = place(amount, 'buy-market')
    return 'buy', orderId
Example #12
0
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Thu Nov 16 00:46:24 2017

@author: Marco
"""

from person import API_KEY, API_SECRET, mailPass
import huoBiApi, misc
import time

mailHost = misc.getConfigKeyValueByKeyName('config.ini', 'mail', 'mailHost')
mailUser = misc.getConfigKeyValueByKeyName('config.ini', 'mail', 'mailUser')
receivers = misc.getConfigKeyValueByKeyName('config.ini', 'mail',
                                            'receivers').split(',')
#交易对
symbolValue = 'bccusdt'
moneyName = 'usdt'
coinName = 'bcc'
client = huoBiApi.ApiClient(API_KEY, API_SECRET)
accs = client.get('/v1/account/accounts')
accountIdValue = accs[0].id
global buySignal
buySignal = 0
global sellSignal
sellSignal = 0
buySignalMax = 1
sellSignalMax = 1

Example #13
0
def main():
    print(misc.getTimeStr())

    condition1, condition2, condition3, condition4, condition5, condition6, condition7, condition8 = get_condition(
    )
    order_id = None

    global buy_signal
    global sell_signal
    if condition1 and condition2 and (
        (condition3 and condition4) or
        (not condition4 and condition5 and condition7)) and condition6:
        print('买入信号+1')
        buy_signal = buy_signal + 1
    else:
        buy_signal = 0

    if not condition1 and not condition2 and not condition6:  #(condition4 or (not condition4 and not condition5)):
        print('卖出信号+1')
        sell_signal = sell_signal + 1
    else:
        sell_signal = 0

    if buy_signal >= buy_signal_max:
        #买入操作
        #amount = misc.getConfigKeyValueByKeyName('config.ini', symbol_value, 'usdt')
        amount = api.get_balance(account_id, money_name)
        order_id = api.do_place(account_id, amount, symbol_value, 'buy-market')
        buy_signal = 0

    if sell_signal >= sell_signal_max:
        #卖出操作
        amount = api.get_balance(account_id, coin_name)
        order_id = api.do_place(account_id, amount, symbol_value,
                                'sell-market')
        sell_signal = 0

    if order_id:
        time.sleep(10)
        order_detail = api.get_order_detail(order_id)[0]
        if order_detail['type'] == 'buy-market':
            misc.setConfigKeyValue('config.ini', symbol_value, 'type', 'buy')
            misc.setConfigKeyValue('config.ini', symbol_value, 'price_buy',
                                   order_detail['price'])
        if order_detail['type'] == 'sell-market':
            misc.setConfigKeyValue('config.ini', symbol_value, 'type', 'sell')
            misc.setConfigKeyValue('config.ini', symbol_value, 'price_sell',
                                   order_detail['price'])
        content = '<html>'
        if order_detail['type'] == 'sell-market':
            price_buy = float(
                misc.getConfigKeyValueByKeyName('config.ini', symbol_value,
                                                'price_buy'))
            price_sell = float(
                misc.getConfigKeyValueByKeyName('config.ini', symbol_value,
                                                'price_sell'))
            content += '<p>盈亏=%.4f%%</p>' % (
                (price_sell / price_buy - 1 - 0.005) * 100)
        content += '<p>created-at(交易时间)=%s</p>' % misc.getTimeStrWithUnixTimestamp(
            int(order_detail['created-at'] / 1000))
        content += '<p>symbol(交易对)=%s</p>' % order_detail['symbol']
        content += '<p>price(成交价格)=%s</p>' % order_detail['price']
        #content+='<p>filled-amount(订单数量)=%s</p>' % order_detail['filled-amount']
        #content+='<p>filled-fees(已成交手续费)=%s</p>' % order_detail['filled-fees']
        content += '<p>type(订单类型(buy-market:市价买, sell-market:市价卖))=%s</p>' % order_detail[
            'type']
        content += '<p>%s</p>' % str(order_detail)
        content += '<p>1-最后一次操作为卖出 = %s</p>' % condition1
        content += '<p>2-市价高于均线 = %s</p>' % condition2
        content += '<p>3-斜率之和大于0 = %s</p>' % condition3
        content += '<p>4-波动幅度足够大 = %s</p>' % condition4
        content += '<p>5-后半段斜率之和大于前半段三斜率之和 = %s</p>' % condition5
        content += '<p>7-后半段斜率之和大于0 = %s</p>' % condition7
        content += '<p>6-是否阳线 = %s</p>' % condition6
        content += '<p>condition1 and condition2 and ((condition3 and condition4) or (not condition4 and condition5 and condition7)) and condition6</p>'
        content += '<p>not condition1 and not condition2 and not condition6</p>'
        content += '</html>'
        misc.sendEmail(mail_host, mail_user, mail_pass, receivers,
                       '%s_%s_交易报告' % (symbol_value, order_detail['type']),
                       content)
Example #14
0
def main(symbol_value):
    print(misc.getTimeStr())
    print(symbol_value)
    operationType = misc.getConfigKeyValueByKeyName('config.ini', symbol_value,
                                                    'type')
    buy_signal = int(
        misc.getConfigKeyValueByKeyName('config.ini', symbol_value,
                                        'buy_signal'))
    sell_signal = int(
        misc.getConfigKeyValueByKeyName('config.ini', symbol_value,
                                        'sell_signal'))
    buy_signal_max = int(
        misc.getConfigKeyValueByKeyName('config.ini', symbol_value,
                                        'buy_signal_max'))
    sell_signal_max = int(
        misc.getConfigKeyValueByKeyName('config.ini', symbol_value,
                                        'sell_signal_max'))
    condition = operationType == 'sell'
    order_id = None
    if condition:  #买入判断
        k_line_1_id, ma_line, slope_list, condition1, condition2, condition3 = get_buy_condition(
            symbol_value)
        if condition1 and condition2 and condition3:
            print('买入信号+1')
            buy_signal = buy_signal + 1
            misc.setConfigKeyValue('config.ini', symbol_value, 'buy_signal',
                                   buy_signal)
        else:
            buy_signal = 0
            misc.setConfigKeyValue('config.ini', symbol_value, 'buy_signal',
                                   buy_signal)
    else:  #卖出判断
        condition = get_sell_condition(symbol_value)
        if condition:
            print('卖出信号+1')
            sell_signal = sell_signal + 1
            misc.setConfigKeyValue('config.ini', symbol_value, 'sell_signal',
                                   sell_signal)
        else:
            sell_signal = 0
            misc.setConfigKeyValue('config.ini', symbol_value, 'sell_signal',
                                   sell_signal)

    if buy_signal >= buy_signal_max:
        #买入操作
        amount = misc.getConfigKeyValueByKeyName('config.ini', symbol_value,
                                                 'money_value')
        #amount = api.get_balance(account_id, money_name)
        order_id = api.do_place(account_id, amount, symbol_value, 'buy-market')
        buy_signal = 0
        misc.setConfigKeyValue('config.ini', symbol_value, 'buy_signal',
                               buy_signal)

    if sell_signal >= sell_signal_max:
        #卖出操作
        coin_name = misc.getConfigKeyValueByKeyName('config.ini', symbol_value,
                                                    'coin_name')
        amount = api.get_balance(account_id, coin_name)
        order_id = api.do_place(account_id, amount, symbol_value,
                                'sell-market')
        sell_signal = 0
        misc.setConfigKeyValue('config.ini', symbol_value, 'sell_signal',
                               sell_signal)

    if order_id:
        time.sleep(2)
        order_detail = api.get_order_detail(order_id)[0]
        if order_detail['type'] == 'buy-market':
            misc.setConfigKeyValue('config.ini', symbol_value, 'type', 'buy')
            misc.setConfigKeyValue('config.ini', symbol_value, 'price_buy',
                                   order_detail['price'])
            misc.setConfigKeyValue(
                'config.ini', symbol_value, 'b_value',
                float(order_detail['price']) - ma_line[0] + ma_line[1])
            misc.setConfigKeyValue('config.ini', symbol_value, 'k_value',
                                   ma_line[0] - ma_line[1])
            misc.setConfigKeyValue('config.ini', symbol_value, 'k_line_time',
                                   k_line_1_id)
            coin_value = misc.get_float_str(
                str(
                    float(order_detail['filled-amount']) -
                    float(order_detail['filled-fees'])))
            misc.setConfigKeyValue('config.ini', symbol_value, 'coin_value',
                                   coin_value)
        if order_detail['type'] == 'sell-market':
            misc.setConfigKeyValue('config.ini', symbol_value, 'type', 'sell')
            misc.setConfigKeyValue('config.ini', symbol_value, 'price_sell',
                                   order_detail['price'])
            money_value = misc.get_float_str(
                str(
                    float(order_detail['filled-amount']) -
                    float(order_detail['filled-fees'])))
            misc.setConfigKeyValue('config.ini', symbol_value, 'money_value',
                                   money_value)
        content = '<html>'
        if order_detail['type'] == 'sell-market':
            price_buy = float(
                misc.getConfigKeyValueByKeyName('config.ini', symbol_value,
                                                'price_buy'))
            price_sell = float(
                misc.getConfigKeyValueByKeyName('config.ini', symbol_value,
                                                'price_sell'))
            content += '<p>盈亏=%.4f%%</p>' % (
                (price_sell / price_buy - 1 - 0.005) * 100)
        content += '<p>created-at(交易时间)=%s</p>' % misc.getTimeStrWithUnixTimestamp(
            int(order_detail['created-at'] / 1000))
        content += '<p>symbol(交易对)=%s</p>' % order_detail['symbol']
        content += '<p>price(成交价格)=%s</p>' % order_detail['price']
        #content+='<p>filled-amount(订单数量)=%s</p>' % order_detail['filled-amount']
        #content+='<p>filled-fees(已成交手续费)=%s</p>' % order_detail['filled-fees']
        content += '<p>type(订单类型)=%s</p>' % order_detail['type']
        content += '<p>%s</p>' % str(order_detail)
        content += '</html>'
        misc.sendEmail(
            mail_host, mail_user, mail_pass, receivers,
            '%s_%s_transaction_report' % (symbol_value, order_detail['type']),
            content)