Binanceの注文連打bot
連打できるプログラムを作りました。
連打できます。
import sys
import PySimpleGUI as sg
import pybotters
import asyncio
from pprint import pprint
apis = {'binance':['','']}
async def main():
sg.theme('DarkAmber')
layout = [
[sg.Text('通貨'), sg.InputText()],
[sg.Text('数量'), sg.InputText()],
[sg.Button('long'), sg.Button('short')],
[sg.Button('close')]
]
main_window = sg.Window('連打できるプログラム', layout)
async with pybotters.Client(apis=apis, base_url="https://fapi.binance.com") as client:
while True:
event, values = main_window.read()
try:
if len(values) == 2:
symbol = values[0]
pos_size = values[1]
else:
continue
except:
continue
if event == 'long':
params_buy = {
'symbol': symbol,
'side': 'BUY',
'type': 'MARKET',
'quantity': pos_size,
#'timeInForce': 'GTX',
}
res = await client.post(f'/fapi/v1/order', data=params_buy)
data = await res.json()
pprint(data)
elif event == 'short':
params_sell = {
'symbol': symbol,
'side': 'SELL',
'type': 'MARKET',
'quantity': pos_size,
#'timeInForce': 'GTX',
}
res = await client.post(f'/fapi/v1/order', data=params_sell)
data = await res.json()
pprint(data)
elif event == 'close':
check_pos_params = {'symbol': symbol}
res = await client.get('/fapi/v2/positionRisk',params=check_pos_params)
data = await res.json()
#pprint(data)
if float(data[0]['positionAmt'])>0:
params_close = {
'symbol': symbol,
'side': 'SELL',
'type': 'MARKET',
'quantity': float(data[0]['positionAmt']),
}
res = await client.post(f'/fapi/v1/order', data=params_close)
data = await res.json()
pprint(data)
elif float(data[0]['positionAmt'])<0:
params_close = {
'symbol': symbol,
'side': 'BUY',
'type': 'MARKET',
'quantity': -1*float(data[0]['positionAmt']),
}
res = await client.post(f'/fapi/v1/order', data=params_close)
data = await res.json()
pprint(data)
if __name__ == '__main__':
try:
asyncio.run(main())
except KeyboardInterrupt:
pass
この記事が気に入ったらサポートをしてみませんか?