/Pancakeswap-v2-trading-bot

A Pancakeswap v2 trading client (and bot) with limit orders, stop-loss, custom gas strategies, a GUI and much more.

Primary LanguagePythonBSD 2-Clause "Simplified" LicenseBSD-2-Clause

Pancakeswap v2 trading client

A Pancakeswap trading client (and bot) with limit orders, stop-loss, custom gas strategies, a GUI and much more.

alt text

Prerequisites



Getting started

  1. Read prerequisites

  2. Download the latest release or download "configfile.py" and "pancakeswap_bot.exe" from the repository.

  3. Open "configfile.py" (with notepad for instance) and add your ethereum address and personal key at the bottom of the file between the quotation marks('').

...
my_address = ''
my_pk = ''
  1. Run "pancakeswap_bot.exe"
  • Make sure configfile.py and bot.exe are in the same folder.
  1. Edit settings according to choice.



Functions

Main coin/token: The token or coin you want to trade tokens for and with

Buy/Sell boundary: The amount of balance (calculated in $) that has to be present in (main-)tokens or coins has to be present in the wallet, to deduct whether the latest action was a buy or a sell. For instance: if the value is 100, your maincoin option BNB and have 120$ worth of BNB on your address, the bot will see the latest action as "sell".

Token address: Fill the token address of the token you want to trade (such as 0x0000000000000000000000000000000000000000)

Token name: The name of the token, fill it in yourself

Dec.: The amount of decimals the token operates with (18 is normal)

Sell($): The price you want the trader to sell the token for (0.01 = 1 dollar cent)

Buy($): The price you want the trader to buy the token for (0.01 = 1 dollar cent)

Activate and Trade with BNB: Toggle if you want to activate trading with your main-coin/token

Trade with BEP (Experimental!): Toggle if you want to trade the token with other BEP20 tokens of which this option is activated (see tokentokennumerator)

Stoploss: Toggle to activate stoploss (0.01 = 1 dollar cent)

Second(s) between checking price: Standard is 4 seconds. With a infura server with max 100.000tx/day 4 seconds is good for 2 activated token 24hr/day

Seconds waiting between trades: depends on how fast transactions finalize Max slippage: The maximum slippage you want to allow while trading (0.03 = 3%) $ to keep in ETH after trade: The amount of ETH/main token you want to keep after each trade (excluding transaction fees) in terms of $. GWEI: The amount of gas you want to use for each trade (5 GWEI is fine)

Different deposit address: Use this if you want the swap output to go to a different ethereum address (without extra fees).

Tokentokennumerator (Experimental!): This value lets you trade ERC tokens with each other. The code to create the value is as followed:

if pricetoken1usd > ((token1high + token1low) / 2) and pricetoken2usd < ((token2high + token2low) / 2):
  token1totoken2 = ((pricetoken1usd - token1low) / (token1high - token1low)) / ((pricetoken2usd - token2low) / (token2high - token2low))

If you dont want to wait till the token1 is sold for the maincoinoption, because you are uncertain whether token2 will still be at this price level or think that token1 will drop, you can use this function. To use this function, "Trade with ERC" should be activated for at least 2 tokens, and the highs and lows should be set seriously.

As an example, if the current price of token1 is $0.9 and its set "high"=$1 and "low"=$0, the value of this token is seen as "90%". Token2 also has a high of $1, but the current price is 0.2$, value of this token is seen as 20%. The tokentokenmnumerator is set at 3.3. If we divide the 90% by the 20%, we get 4.5, which is higher than 3.3, which means that token1 gets traded for token2 instantly. If the tokentokennumerator was set to 5, the swap would not happen.



Changelog v1

  • Recoded my uniswap bot to work with pancakeswap. This project was also made to fix bugs in the uniswap-bot, because the transaction fee's are so low.



Current bugs

  • Some tokens or trading amounts are not possible to trade with, due to this issue: ethereum/web3.py#1634 This is the error-message you get: "Python int too large to convert to C ssize_". If you get this error its best to exclude the token (which probably has a very low price per token) or trade with lower amounts.
  • Sloppy dinamic design of GUI
  • Sometimes lag when updating names or when starting the bot (0-10 seconds)
  • More: Let me know!



To do

  • Let the amount of decimals and the token-name be derived automatically (like in the uniswap-bot)
  • Add pcs v1 support
  • New, more user-friendly design
  • Fix "Python int too large to convert to C ssize_"

(Depends on whether the application is used)



Author



Donations: 0x6B1CeA1c27Bbb1428978dC3C0423642fDa404367



Disclosure

I own some of the tokens portayed in the gif. These tokens are used only for example purposes and are not meant to be an endorsement. I am not affiliated with these tokens or any subsidiaries. Use the application at your own risk, I am not in any way responsible for losses.