Перейти к публикации
Форум ботоводов

Не работает функция


Yury

Рекомендованные сообщения

Добрый день. Создал вот такую структуру для тестирования бота на виртульаном балансе.
Функция должны по запросу валюты выдавать ее баланс.

Я брал вот такой код как пример:
 

PythonВыделить код
1
2
3
4
5
6
def get_balance(NEED_ASSET):
   need_balance = 0
   for struct in bot.account(recvWindow=16000)["balances"]:
       if struct["asset"] == NEED_ASSET:
           need_balance = float(struct["free"])
   return(need_balance)


и он работает. там он использует готовую структуру с Бинанса...
я сделал свою и вот что получил:
 

PythonВыделить код
1
2
3
4
5
6
7
8
9
10
11
12
13
14
virtualB=[{'balances':
         [{'asset':'BTC','free':'0.1'},{'asset':'BNB','free':'10'},
          {'asset':'ETH','free':'1'},{'asset':'USDT','free':'10'},
          {'asset':'NEO','free':'0.1'},{'asset':'EOS','free':'0.1'},
          {'asset':'XRP','free':'0.1'},{'asset':'LTC','free':'0.1'},
          {'asset':'TRX','free':'0.1'},{'asset':'XTZ','free':'0.1'},
          {'asset':'VET','free':'0.1'},{'asset':'ZEC','free':'0.1'}]}]
 
def get_virtual_balance(need_asset):
   need_balance=0
   for struct in virtualB()['balances']:
       if struct['asset']==need_asset:
          need_balance=float(struct['free'])
   return(need_balance)

Выдает ошибку:
=========================================================
Traceback (most recent call last):
File "D:/binance_bot/binance_bot v10.py", line 110, in <module>
get_virtual_balance()
TypeError: get_virtual_balance() missing 1 required positional argument: 'need_asset'

Я задался амбициозной целью сам написать робота для бинанса. Он в общем готов, но хочу потестировать на виртуальной валюте, прежде чем открывать реальные сделки. Но вот горю на мелочах. Потому, что недопрограммист-самоучка. Подскажите, кому не лень.

Ссылка на комментарий
Поделиться на других сайтах

Вы правы. я дальше по тексту не указал параметр. но вот теперь я его вставил и опять ошибка:

Traceback (most recent call last):
  File "D:\binance_bot\binance_bot v10.py", line 110, in <module>
    get_virtual_balance('BTC')
  File "D:\binance_bot\binance_bot v10.py", line 27, in get_virtual_balance
    for struct in virtualB()['balances']:
TypeError: 'list' object is not callable


line 27 это:
   for struct in virtualB()['balances']:

Изменено пользователем Yury
Ссылка на комментарий
Поделиться на других сайтах

Вот тут наверно я заявил структуру неправильно:

 

virtualB=[{'balances':
         [{'asset':'BTC','free':'0.1'},{'asset':'BNB','free':'10'},
          {'asset':'ETH','free':'1'},{'asset':'USDT','free':'10'},
          {'asset':'NEO','free':'0.1'},{'asset':'EOS','free':'0.1'},
          {'asset':'XRP','free':'0.1'},{'asset':'LTC','free':'0.1'},
          {'asset':'TRX','free':'0.1'},{'asset':'XTZ','free':'0.1'},
          {'asset':'VET','free':'0.1'},{'asset':'ZEC','free':'0.1'}]}]
Ссылка на комментарий
Поделиться на других сайтах

исправил. теперь опять ошибка:

Traceback (most recent call last):
  File "D:\binance_bot\binance_bot v10.py", line 110, in <module>
    vBTC=get_virtual_balance('BTC')
  File "D:\binance_bot\binance_bot v10.py", line 27, in get_virtual_balance
    for struct in virtualB['balances']:
TypeError: list indices must be integers or slices, not str

Ссылка на комментарий
Поделиться на других сайтах

выглядит так:

def get_virtual_balance(need_asset):
   need_balance=0
   for struct in virtualB['balances']:
       if struct['asset']==need_asset:
          need_balance=float(struct['free'])
   return(need_balance)

Ссылка на комментарий
Поделиться на других сайтах

Наверно я просто переделаю немного подход. будет две переменных лист. и там по индексу одного буду присваивать значение с индексом другого листа. но все равно спасибо

Ссылка на комментарий
Поделиться на других сайтах

listSymb=['BTC','BNB','ETH','USDT','NEO','EOS','XRP','LTC','TRX','XTZ','VET','ZEC']
listDep=[0.1, 10, 1, 10, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]

def get_virt_balance(need_asset):
   need_balance=0
   for i in range(len(listSymb)):
      if listSymb==need_asset:
         need_balance=listDep
   return(need_balance)

for n in range(len(listSymb)):
   print(listSymb[n],'=',listDep[n])

Изменено пользователем Yury
Ссылка на комментарий
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...