You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm playing with some parts of your code and I find a problem with the filter to format quantity and price properly in relation to the trading rules of the exchange.
When I use for example BTCUSDT, the values that the function ValueProcessor returns have no sense. I put you an example:
If I pass:
quantity: '0.0000000000234414211', price: 30.000000001
Returns: { quantity: '0.333334', price: '30.00' }
If I pass:
quantity: '0.3568', price: 0
Returns: { quantity: '1000.000000', price: '0.01' }
If I pass:
quantity: '1504.2356896', price: 0
Returns: { quantity: '1504.235689', price: '0.01' } This seems ok, but the rest not.
Any idea about what? I put you the complete code if it helps:
THanks in advance!!!
constapi=require('binance');constbinanceRest=newapi.BinanceRest({key: 'apikeyhere',// Get this from your account on binance.comsecret: 'apisecrethere',// Same for thistimeout: 15000,// Optional, defaults to 15000, is the request time out in millisecondsrecvWindow: 10000,// Optional, defaults to 5000, increase if you're getting timestamp errorsdisableBeautification: false,/* * Optional, default is false. Binance's API returns objects with lots of one letter keys. By * default those keys will be replaced with more descriptive, longer ones. */handleDrift: true,/* * Optional, default is false. If turned on, the library will attempt to handle any drift of * your clock on it's own. If a request fails due to drift, it'll attempt a fix by requesting * binance's server time, calculating the difference with your own clock, and then reattempting * the request. */baseUrl: 'https://api.binance.com/',/* * Optional, default is 'https://api.binance.com/'. Can be useful in case default url stops working. * In february 2018, Binance had a major outage and when service started to be up again, only * https://us.binance.com was working. */requestOptions: {}/* * Options as supported by the 'request' library * For a list of available options, see: * https://github.com/request/request */});const{ ValueProcessor }=require('binance');varsimboloFiltro;varsimboloFiltrado1;varsimboloFiltrado2;varsimboloFiltrado3;varpar1='BTCUSDT';varpar2='BTCUSDT';varpar3='BTCUSDT';varop1;varop2;varop3;// se sacan todos los pares de Binance, esto servirá para poder sacar la posicion exactavarparesRules=["ETHBTC","LTCBTC","BNBBTC","NEOBTC","QTUMETH","EOSETH","SNTETH","BNTETH","BCCBTC","GASBTC","BNBETH","BTCUSDT","ETHUSDT","HSRBTC","OAXETH","DNTETH","MCOETH","ICNETH","MCOBTC","WTCBTC","WTCETH","LRCBTC","LRCETH","QTUMBTC","YOYOBTC","OMGBTC","OMGETH","ZRXBTC","ZRXETH","STRATBTC","STRATETH","SNGLSBTC","SNGLSETH","BQXBTC","BQXETH","KNCBTC","KNCETH","FUNBTC","FUNETH","SNMBTC","SNMETH","NEOETH","IOTABTC","IOTAETH","LINKBTC","LINKETH","XVGBTC","XVGETH","SALTBTC","SALTETH","MDABTC","MDAETH","MTLBTC","MTLETH","SUBBTC","SUBETH","EOSBTC","SNTBTC","ETCETH","ETCBTC","MTHBTC","MTHETH","ENGBTC","ENGETH","DNTBTC","ZECBTC","ZECETH","BNTBTC","ASTBTC","ASTETH","DASHBTC","DASHETH","OAXBTC","ICNBTC","BTGBTC","BTGETH","EVXBTC","EVXETH","REQBTC","REQETH","VIBBTC","VIBETH","HSRETH","TRXBTC","TRXETH","POWRBTC","POWRETH","ARKBTC","ARKETH","YOYOETH","XRPBTC","XRPETH","MODBTC","MODETH","ENJBTC","ENJETH","STORJBTC","STORJETH","BNBUSDT","VENBNB","YOYOBNB","POWRBNB","VENBTC","VENETH","KMDBTC","KMDETH","NULSBNB","RCNBTC","RCNETH","RCNBNB","NULSBTC","NULSETH","RDNBTC","RDNETH","RDNBNB","XMRBTC","XMRETH","DLTBNB","WTCBNB","DLTBTC","DLTETH","AMBBTC","AMBETH","AMBBNB","BCCETH","BCCUSDT","BCCBNB","BATBTC","BATETH","BATBNB","BCPTBTC","BCPTETH","BCPTBNB","ARNBTC","ARNETH","GVTBTC","GVTETH","CDTBTC","CDTETH","GXSBTC","GXSETH","NEOUSDT","NEOBNB","POEBTC","POEETH","QSPBTC","QSPETH","QSPBNB","BTSBTC","BTSETH","BTSBNB","XZCBTC","XZCETH","XZCBNB","LSKBTC","LSKETH","LSKBNB","TNTBTC","TNTETH","FUELBTC","FUELETH","MANABTC","MANAETH","BCDBTC","BCDETH","DGDBTC","DGDETH","IOTABNB","ADXBTC","ADXETH","ADXBNB","ADABTC","ADAETH","PPTBTC","PPTETH","CMTBTC","CMTETH","CMTBNB","XLMBTC","XLMETH","XLMBNB","CNDBTC","CNDETH","CNDBNB","LENDBTC","LENDETH","WABIBTC","WABIETH","WABIBNB","LTCETH","LTCUSDT","LTCBNB","TNBBTC","TNBETH","WAVESBTC","WAVESETH","WAVESBNB","GTOBTC","GTOETH","GTOBNB","ICXBTC","ICXETH","ICXBNB","OSTBTC","OSTETH","OSTBNB","ELFBTC","ELFETH","AIONBTC","AIONETH","AIONBNB","NEBLBTC","NEBLETH","NEBLBNB","BRDBTC","BRDETH","BRDBNB","MCOBNB","EDOBTC","EDOETH","WINGSBTC","WINGSETH","NAVBTC","NAVETH","NAVBNB","LUNBTC","LUNETH","TRIGBTC","TRIGETH","TRIGBNB","APPCBTC","APPCETH","APPCBNB","VIBEBTC","VIBEETH","RLCBTC","RLCETH","RLCBNB","INSBTC","INSETH","PIVXBTC","PIVXETH","PIVXBNB","IOSTBTC","IOSTETH","CHATBTC","CHATETH","STEEMBTC","STEEMETH","STEEMBNB","NANOBTC","NANOETH","NANOBNB","VIABTC","VIAETH","VIABNB","BLZBTC","BLZETH","BLZBNB","AEBTC","AEETH","AEBNB","RPXBTC","RPXETH","RPXBNB","NCASHBTC","NCASHETH","NCASHBNB","POABTC","POAETH","POABNB","ZILBTC","ZILETH","ZILBNB","ONTBTC","ONTETH","ONTBNB","STORMBTC","STORMETH","STORMBNB","QTUMBNB","QTUMUSDT","XEMBTC","XEMETH","XEMBNB","WANBTC","WANETH","WANBNB","WPRBTC","WPRETH","QLCBTC","QLCETH","SYSBTC","SYSETH","SYSBNB","QLCBNB","GRSBTC","GRSETH","ADAUSDT","ADABNB","CLOAKBTC","CLOAKETH","GNTBTC","GNTETH","GNTBNB","LOOMBTC","LOOMETH","LOOMBNB","XRPUSDT","BCNBTC","BCNETH","BCNBNB","REPBTC","REPETH","REPBNB","BTCTUSD","TUSDBTC","ETHTUSD","TUSDETH","TUSDBNB","ZENBTC","ZENETH","ZENBNB","SKYBTC","SKYETH","SKYBNB","EOSUSDT","EOSBNB","CVCBTC","CVCETH","CVCBNB","THETABTC","THETAETH","THETABNB","XRPBNB","TUSDUSDT","IOTAUSDT","XLMUSDT","IOTXBTC","IOTXETH","QKCBTC","QKCETH","AGIBTC","AGIETH","AGIBNB","NXSBTC","NXSETH","NXSBNB","ENJBNB","DATABTC","DATAETH","ONTUSDT","TRXBNB","TRXUSDT","ETCUSDT","ETCBNB","ICXUSDT","SCBTC","SCETH","SCBNB","NPXSBTC","NPXSETH","VENUSDT","KEYBTC","KEYETH","NASBTC","NASETH","NASBNB","MFTBTC","MFTETH","MFTBNB","DENTBTC","DENTETH","ARDRBTC","ARDRETH","ARDRBNB","NULSUSDT","HOTBTC","HOTETH","VETBTC","VETETH","VETUSDT","VETBNB","DOCKBTC","DOCKETH","POLYBTC","POLYBNB","PHXBTC","PHXETH","PHXBNB","HCBTC","HCETH","GOBTC","GOBNB","PAXBTC","PAXBNB","PAXUSDT","PAXETH","RVNBTC","RVNBNB","DCRBTC","DCRBNB","USDCBNB","MITHBTC","MITHBNB","BCHABCBTC","BCHSVBTC","BCHABCUSDT","BCHSVUSDT","BNBPAX","BTCPAX","ETHPAX","XRPPAX","EOSPAX","XLMPAX","RENBTC","RENBNB","BNBTUSD","XRPTUSD","EOSTUSD","XLMTUSD","BNBUSDC","BTCUSDC","ETHUSDC","XRPUSDC","EOSUSDC","XLMUSDC","USDCUSDT","ADATUSD","TRXTUSD","NEOTUSD","TRXXRP","XZCXRP","PAXTUSD","USDCTUSD","USDCPAX","LINKUSDT","LINKTUSD","LINKPAX","LINKUSDC","WAVESUSDT","WAVESTUSD","WAVESPAX","WAVESUSDC","BCHABCTUSD","BCHABCPAX","BCHABCUSDC","BCHSVTUSD","BCHSVPAX","BCHSVUSDC","LTCTUSD","LTCPAX","LTCUSDC","TRXPAX","TRXUSDC","BTTBTC","BTTBNB","BTTUSDT","BNBUSDS","BTCUSDS","USDSUSDT","USDSPAX","USDSTUSD","USDSUSDC","BTTPAX","BTTTUSD","BTTUSDC","ONGBNB","ONGBTC","ONGUSDT","HOTBNB","HOTUSDT","ZILUSDT","ZRXBNB","ZRXUSDT","FETBNB","FETBTC","FETUSDT","BATUSDT","XMRBNB","XMRUSDT","ZECBNB","ZECUSDT","ZECPAX","ZECTUSD","ZECUSDC","IOSTBNB","IOSTUSDT","CELRBNB","CELRBTC","CELRUSDT","ADAPAX","ADAUSDC","NEOPAX","NEOUSDC","DASHBNB","DASHUSDT","NANOUSDT","OMGBNB","OMGUSDT","THETAUSDT","ENJUSDT","MITHUSDT","MATICBNB","MATICBTC","MATICUSDT","ATOMBNB","ATOMBTC","ATOMUSDT","ATOMUSDC","ATOMPAX","ATOMTUSD","ETCUSDC","ETCPAX","ETCTUSD","BATUSDC","BATPAX","BATTUSD","PHBBNB","PHBBTC","PHBUSDC","PHBTUSD","PHBPAX","TFUELBNB","TFUELBTC","TFUELUSDT","TFUELUSDC","TFUELTUSD","TFUELPAX","ONEBNB","ONEBTC","ONEUSDT","ONETUSD","ONEPAX","ONEUSDC","FTMBNB","FTMBTC","FTMUSDT","FTMTUSD","FTMPAX","FTMUSDC","BTCBBTC","BCPTTUSD","BCPTPAX","BCPTUSDC","ALGOBNB","ALGOBTC","ALGOUSDT","ALGOTUSD","ALGOPAX","ALGOUSDC","USDSBUSDT","USDSBUSDS","GTOUSDT","GTOPAX","GTOTUSD","GTOUSDC","ERDBNB","ERDBTC","ERDUSDT","ERDPAX","ERDUSDC","DOGEBNB","DOGEBTC","DOGEUSDT","DOGEPAX","DOGEUSDC","DUSKBNB","DUSKBTC","DUSKUSDT","DUSKUSDC","DUSKPAX","BGBPUSDC","ANKRBNB","ANKRBTC","ANKRUSDT","ANKRTUSD","ANKRPAX","ANKRUSDC","ONTPAX","ONTUSDC","WINBNB","WINBTC","WINUSDT","WINUSDC","COSBNB","COSBTC","COSUSDT","TUSDBTUSD","NPXSUSDT","NPXSUSDC","COCOSBNB","COCOSBTC","COCOSUSDT","MTLUSDT","TOMOBNB","TOMOBTC","TOMOUSDT","TOMOUSDC","PERLBNB","PERLBTC","PERLUSDC","PERLUSDT","DENTUSDT","MFTUSDT","KEYUSDT","STORMUSDT","DOCKUSDT","WANUSDT","FUNUSDT","CVCUSDT","BTTTRX","WINTRX","CHZBNB","CHZBTC","CHZUSDT","BANDBNB","BANDBTC","BANDUSDT","BNBBUSD","BTCBUSD","BUSDUSDT","BEAMBNB","BEAMBTC","BEAMUSDT","XTZBNB","XTZBTC","XTZUSDT","RENUSDT","RVNUSDT","HCUSDT","HBARBNB","HBARBTC","HBARUSDT","NKNBNB","NKNBTC","NKNUSDT","XRPBUSD","ETHBUSD","BCHABCBUSD","LTCBUSD","LINKBUSD","ETCBUSD","STXBNB","STXBTC","STXUSDT","KAVABNB","KAVABTC","KAVAUSDT","BUSDNGN","BNBNGN","BTCNGN","ARPABNB","ARPABTC","ARPAUSDT","TRXBUSD","EOSBUSD","IOTXUSDT","RLCUSDT","MCOUSDT","XLMBUSD","ADABUSD","CTXCBNB","CTXCBTC","CTXCUSDT","BCHBNB","BCHBTC","BCHUSDT","BCHUSDC","BCHTUSD","BCHPAX","BCHBUSD","BTCRUB","ETHRUB","XRPRUB","BNBRUB","TROYBNB","TROYBTC","TROYUSDT","BUSDRUB","QTUMBUSD","VETBUSD","VITEBNB","VITEBTC","VITEUSDT","FTTBNB","FTTBTC","FTTUSDT","BTCTRY","BNBTRY","BUSDTRY","ETHTRY","XRPTRY","USDTTRY","USDTRUB","BTCEUR","ETHEUR","BNBEUR","XRPEUR","EURBUSD","EURUSDT","OGNBNB","OGNBTC","OGNUSDT","DREPBNB","DREPBTC","DREPUSDT","BULLUSDT","BULLBUSD","BEARUSDT","BEARBUSD","ETHBULLUSDT","ETHBULLBUSD","ETHBEARUSDT","ETHBEARBUSD","TCTBNB","TCTBTC","TCTUSDT","WRXBNB","WRXBTC","WRXUSDT","ICXBUSD","BTSUSDT","BTSBUSD","LSKUSDT","BNTUSDT","BNTBUSD","LTOBNB","LTOBTC","LTOUSDT","ATOMBUSD","DASHBUSD","NEOBUSD","WAVESBUSD","XTZBUSD","EOSBULLUSDT","EOSBULLBUSD","EOSBEARUSDT","EOSBEARBUSD","XRPBULLUSDT","XRPBULLBUSD","XRPBEARUSDT","XRPBEARBUSD","BATBUSD","ENJBUSD","NANOBUSD","ONTBUSD","RVNBUSD","STRATBUSD","STRATBNB","STRATUSDT","AIONBUSD","AIONUSDT","MBLBNB","MBLBTC","MBLUSDT","COTIBNB","COTIBTC","COTIUSDT","ALGOBUSD","BTTBUSD","TOMOBUSD","XMRBUSD","ZECBUSD","BNBBULLUSDT","BNBBULLBUSD","BNBBEARUSDT","BNBBEARBUSD","STPTBNB","STPTBTC","STPTUSDT","BTCZAR","ETHZAR","BNBZAR","USDTZAR","BUSDZAR","BTCBKRW","ETHBKRW","BNBBKRW","WTCUSDT","DATABUSD","DATAUSDT","XZCUSDT","SOLBNB","SOLBTC","SOLBUSD","BTCIDRT","BNBIDRT","USDTIDRT","BUSDIDRT","CTSIBTC","CTSIUSDT","CTSIBNB","CTSIBUSD","HIVEBNB","HIVEBTC","HIVEUSDT","CHRBNB","CHRBTC","CHRUSDT","BTCUPUSDT","BTCDOWNUSDT","GXSUSDT","ARDRUSDT","ERDBUSD","LENDUSDT","HBARBUSD","MATICBUSD","WRXBUSD","ZILBUSD","MDTBNB","MDTBTC","MDTUSDT","STMXBNB","STMXBTC","STMXETH","STMXUSDT","KNCBUSD","KNCUSDT","REPBUSD","REPUSDT","LRCBUSD","LRCUSDT","IQBNB","IQBUSD","PNTBTC","PNTUSDT","BTCGBP","ETHGBP","XRPGBP","BNBGBP","GBPBUSD","DGBBNB","DGBBTC","DGBBUSD","BTCUAH","USDTUAH","COMPBTC","COMPBNB","COMPBUSD","COMPUSDT","BTCBIDR","ETHBIDR","BNBBIDR","BUSDBIDR","USDTBIDR",];varparPos1=0;varparPos2=0;varparPos3=0;binanceRest.exchangeInfo((err,data)=>{//Con esta función refrescamos el objeto simboloFiltro para tener los datos necesarios para poder aplicar las restricciones de precio y cantidadif(err){console.error(err);}else{simboloFiltro=data;// console.log(simboloFiltro.symbols[1].filters); // esta es la posicion en la que se sacan las restricciones del simbolo en la posicion 1, es solo un ejemplo}});setTimeout(function(){parPos1=paresRules.indexOf(par1);// sacamos la posicion del par1 en el arreglo paresRulesconsole.log(parPos1);simboloFiltrado1=ValueProcessor.processFilters(simboloFiltro.symbols[parPos1],{// se filtra el par con la cantidad y precio, y esta funcion retorna los valores filtrados y formateados para poder tradearquantity: '0.0000000000234414211',price: 30.000000001// Puede ser texto o numero// Puede ser texto o numero});parPos2=paresRules.indexOf(par2);// sacamos la posicion del par1 en el arreglo paresRulesconsole.log(parPos2);simboloFiltrado2=ValueProcessor.processFilters(simboloFiltro.symbols[parPos2],{// se filtra el par con la cantidad y precio, y esta funcion retorna los valores filtrados y formateados para poder tradearquantity: '0.3568',// Puede ser texto o numeroprice: 0// Puede ser texto o numero});parPos3=paresRules.indexOf(par3);// sacamos la posicion del par1 en el arreglo paresRulesconsole.log(parPos3);simboloFiltrado3=ValueProcessor.processFilters(simboloFiltro.symbols[parPos3],{// se filtra el par con la cantidad y precio, y esta funcion retorna los valores filtrados y formateados para poder tradearquantity: '1504.2356896',// Puede ser texto o numeroprice: 0// Puede ser texto o numero});console.log(simboloFiltrado1);// objeto con cantidad y precio filtrado y formateado correctamente.console.log(simboloFiltrado2);console.log(simboloFiltrado3);console.log(simboloFiltro.symbols[parPos3].filters[2]);},4000);
The text was updated successfully, but these errors were encountered:
Not sure I can answer your question, but I have a code-style recommendation. Comments like the multi-line ones you have in the api.BinanceRest initialization should be above the field they reference. Makes it a little more difficult to read when the rest of the programming world does it differently.
EDIT:
I just noticed that's how the author of the library does it. 🤷♂️
Hi, first of all, congratulations for the code!!
I'm playing with some parts of your code and I find a problem with the filter to format quantity and price properly in relation to the trading rules of the exchange.
When I use for example BTCUSDT, the values that the function ValueProcessor returns have no sense. I put you an example:
If I pass:
quantity: '0.0000000000234414211', price: 30.000000001
Returns: { quantity: '0.333334', price: '30.00' }
If I pass:
quantity: '0.3568', price: 0
Returns: { quantity: '1000.000000', price: '0.01' }
If I pass:
quantity: '1504.2356896', price: 0
Returns: { quantity: '1504.235689', price: '0.01' } This seems ok, but the rest not.
Any idea about what? I put you the complete code if it helps:
THanks in advance!!!
The text was updated successfully, but these errors were encountered: