繁体   English   中英

如何统计 python Binance 交易机器人中的 HL2 源?

[英]How to count HL2 source in python Binance trading bot?

:))

我在 python 中创建了一个连接到我的币安账户的加密货币交易机器人。 我的问题是计算 HL2 源 ((High+Low)/2)。 我想做一个 sma(hl2, 17) 但我不知道该怎么做。 如果我简单地使用关闭(或打开、低、高)它工作正常。

我的脚本:

import websocket, json, pprint, talib, numpy
from binance.client import Client
from binance.enums import *
import config

SOCKET = "wss://stream.binance.com:9443/ws/xrpusdt@kline_1m"

#sma-data
SLOWSMA_PERIOD = 6 #source hl2

#trade-data
TRADE_SYMBOL = 'XRPUSDT'
TRADE_QUANTITY = 1

closes = []
lows = []
highs = []

in_positon = False

client = Client(config.API_KEY, config.API_SECRET)

def order(side, quantity, symbol, order_type=ORDER_TYPE_MARKET):
    try:
        print("sending order")
        order = client.create_order(symbol=symbol, side=side, type=order_type, quantity=quantity)
        print(order)
    except Exception as e:
        return False

    return True


def on_open(ws):
    print('opened connection')

def on_close(ws):
    print('closed connection')

def on_message(ws, message):
    global closes; global lows; global highs


    print('received message')
    json_message = json.loads(message)
    pprint.pprint(json_message)

    candle = json_message['k']

    is_candle_closed = candle['x']

    close = candle['c']

    low = candle['l']

    high = candle['h']

    if is_candle_closed:
        print("candle closed at {}".format(close))
        closes.append(float(close))
        print("closes")
        print(closes)

        lows.append(float(low))
        print("lows")
        print(lows)

        highs.append(float(high))
        print("highs")
        print(highs)

        if len(closes) > SLOWSMA_PERIOD:
            np_hl2 = numpy.array((closes+highs)/2)
            slowSma = talib.SMA(np_hl2, SLOWSMA_PERIOD)
            print("slowSma")
            print(slowSma)
            last_slowSma = slowSma[-1]
            print("the currect slowSma is {}".format(last_slowSma))

ws = websocket.WebSocketApp(SOCKET, on_open=on_open, on_close=on_close, on_message=on_message)
ws.run_forever()

-> 重要部分:

if len(closes) > SLOWSMA_PERIOD:
            np_hl2 = numpy.array((closes+highs)/2)
            slowSma = talib.SMA(np_hl2, SLOWSMA_PERIOD)
            print("slowSma")
            print(slowSma)
            last_slowSma = slowSma[-1]
            print("the currect slowSma is {}".format(last_slowSma))

脚本正在运行但未列出“slowSma”。

- - - - - - - - - - - 有谁能够帮我? :)) ----------------------

我尝试了一些方法并搜索 soultion 以获得 HL2 源代码,但我没有找到任何东西。

我终于找到了方法::))

HL2的计算方法:

hl2s.append(numpy.mean([float(high),float(low)]))
        print("hl2s")
        print(hl2s)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM