有没有大佬写币安机器人开源的

290 天前
 ccclo
2034 次点击
所在节点    问与答
22 条回复
worldquant
290 天前
为啥要自己造轮子呢。https://github.com/freqtrade/freqtrade
zictos
290 天前
别人的用起来感觉更复杂,自己写更简单。
就是看一下币安的 api 文档,发送下 http 请求,需要用到什么 api 就使用具体的 api 就行,尽量做到代码非常简单。获取价格和 k 线,针对 k 线进行一些计算以及一些指标的计算,循环更新 k 线,然后满足交易条件了就通过 api 开仓,满足平仓条件了就通过 api 平仓。
反正我总觉得看到别人的开源项目更复杂,压根不愿意去熟悉别人的项目,自己写的话需要什么就直接立刻上手了,每种需求的代码量都不多。
ccclo
290 天前
@zictos 你有没有代码呀
zictos
290 天前
@ccclo #3 我的代码只适合我的具体策略的需求,所以可以很简单,开源项目才需要考虑通用性。
而且我是做突破的,必须要先挂单(到达指定价格后市价触发开仓,非低买高卖的挂单),不然临时下市价单的话滑点会非常大,根本来不及。所以重点逻辑就是要处理好这种实时监控,成交后立刻设置止损并记录开仓信息,之后会每隔一段时间监控是否满足平仓条件。
ccclo
290 天前
@zictos 可以给个联系方式吗
zictos
290 天前
@ccclo #5 这个不太方便,我一般都不在网上提供联系方式的,有什么问题你可以在帖子中问的
ccclo
290 天前
那你帮我写一个 u 本位合约市价的 python 代码 和平仓 代码吗 我是用 chatgpt 写出来 下单不了,我只想要这两个代码 我在这两个代码中 在更改
@zictos
ccclo
290 天前
@zictos 我在币安的 api 上面看了一圈 不知道怎样下手写
zictos
290 天前
@ccclo #7 把****替换成四空格,或者让 chatgpt 帮你改。
import time
import requests
import hmac
import hashlib
from urllib.parse import urljoin, urlencode


def market_order(symbol, quantity, side, reduceOnly='false', loop=True):
****API_KEY = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' #替换成自己的 API_KEY
****SECRET_KEY = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' #替换成自己的 SECRET_KEY
****BASE_URL = 'https://fapi.binance.com'
****headers = {'X-MBX-APIKEY': API_KEY}
****PATH = '/fapi/v1/order'
****url = urljoin(BASE_URL, PATH)
****params = {'symbol': symbol,
************ 'quantity': quantity,
************ 'side': side,
************ 'type': 'MARKET',
************ 'reduceOnly': reduceOnly}

****while True:
********try:
************if 'signature' in params:
****************del params['signature']
************params['timestamp'] = int(time.time()) * 1000
************query_string = urlencode(params)
************params['signature'] = hmac.new(SECRET_KEY.encode('utf-8'), query_string.encode('utf-8'), hashlib.sha256).hexdigest()
************r = requests.post(url, headers=headers, params=params, timeout=4)
************# print(r.text) # 查看响应文本
************if r.status_code == 200:
****************r = r.json()
****************return r['orderId']
************if not loop:
****************return None
********except BaseException as e:
************print(e)
************if not loop:
****************return None
********time.sleep(0.1)

symbol = 'BNBUSDT' # 交易对
quantity = 0.03 # 下单的数量
side = 'BUY' # 下单的方向,BUY 或者 SELL
order = market_order(symbol, quantity, side)
ccclo
290 天前
@zictos 有没有平仓的代码 也给我发一份
zictos
290 天前
@ccclo #10 你在币安里面是设置了单向交易吧,默认就是单向交易,只要你没改过就行。

如果你现在是有多单的持仓,你平仓只需要把方向 side 参数改为 SELL 就行了,如果数量一样的话默认就是平仓。你也可以将函数的 reduceOnly 参数设为'true',保险一点,这样就无论如何都不会增加仓位,当然你不设也可以。

币安默认平仓都是要指定数量的,不过你可以设一个更大的数量,只要将 reduceOnly 设为 true 就不会增加仓位。比如你现在有 0.03 的多单,你下一个 0.3 的市价 SELL 单,并且 reduceOnly 设为 true ,也是会直接平仓的,并且不会增加仓位。
ccclo
290 天前
好的谢谢
@zictos
Her0
290 天前
不难的,就是调 API ,接入钉钉之后,听着赚钱的声音“叮叮叮”,你会敢到格外清脆。😄


来源: https://heiyetouzi.xyz/biquanzhuanqian/
ccclo
289 天前
@zictos 能在问个问题就是怎样把 tradingview 上面策略生成的信号发送到服务器
zictos
289 天前
@ccclo #14 这个我也没弄过,好像是要配置什么 Webhook ,tradingview 我只是用来看行情的,tradingview 上的策略大部分也是通过各种指标计算的,python 的 pandas_ta 库基本可以计算各种指标,如果策略比较复杂的话,那你要分析 tradingview 策略的代码,然后改写成 python 。我自己基本各种复杂的策略都可以直接通过 python 实现,关键是自己要弄清楚信号原理,别人的策略要是代码太复杂的话,我也没什么功夫去研究别人的策略的代码。

使用 tradingview 通知的话,tradingview 上面有一个“警报”按钮,点击后可以选择你正在使用的策略,然后在通知里可以配置 Webhook URL ,这个要付费才行,其实应该也可以选择发送邮件,再 python 循环检测邮箱看有没有新邮件就行。不过具体我也没测试过,不知道具体有哪些坑。
ccclo
279 天前
@zictos 你好我在想问下 这个下单数量 怎样改,我想把我余额全部下单,我试了好久 这个怎样改
ccclo
279 天前
@Her0 你的代码可以分享吗
zictos
279 天前
quantity = 0.03
之前的代码是上面这样的,这就是下单数量,bnb 是最低 0.03 ,也可以是 0.04 或 0.05 ,最多两位小数。btcusdt 是最少 0.001 ,最多三位小数,btc 现在价格 26500 左右,开 0.001 就大约是开仓了 26.5u 。你也可以把我所有说过的话发给 chatgpt 让它根据实际情况给出代码
ccclo
278 天前
@zictos 有没有这个代码可以分享一下
zictos
278 天前
@ccclo 就是把上次的代码的数量改一下,都一样啊!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/970497

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX