Git Product home page Git Product logo

Comments (6)

Karlheinzniebuhr avatar Karlheinzniebuhr commented on July 17, 2024

Solved here: #1405 (comment)

from python-binance.

diltoncesar avatar diltoncesar commented on July 17, 2024

I have same problem. Could you give a hint please?

from python-binance.

Karlheinzniebuhr avatar Karlheinzniebuhr commented on July 17, 2024

I have same problem. Could you give a hint please?

This is my current function which works correctly, feel free to adapt it for your needs

    def get_last_trade_pnl_and_percentage(self):
        # Fetch the most recent trades for the futures account
        pnl_data = self.client.futures_account_trades(symbol=self.symbol, limit=100, recvWindow=60000)

        # Fetch the current available balance
        futures_balances = self.client.futures_account_balance(recvWindow=60000)
        futures_balance_df = pd.DataFrame(futures_balances)
        current_balance = round(float(futures_balance_df[futures_balance_df['asset'] == self.config.BASE_ASSET]['availableBalance'].values[0]), 2)

        total_pnl = 0
        total_pnl_percentage = 0

        if pnl_data:
            # Convert the trade data into a DataFrame
            df = pd.DataFrame(pnl_data)

            # Ensure the 'realizedPnl' column is treated as numeric for calculations
            df['realizedPnl'] = pd.to_numeric(df['realizedPnl'])

            if not df.empty:
                # Group trades by orderId and side
                grouped = df.groupby(['orderId', 'side'])

                # Get the last orderId
                last_order_id = df['orderId'].iloc[-1]

                for group_name, group in grouped:
                    order_id, side = group_name

                    # If it's the last origOrderId, sum the realizedPnl to get the total PnL of the last trade
                    if order_id == last_order_id:
                        last_trade_pnl = round(group['realizedPnl'].sum(), 2)
                        break  # Exit the loop after finding the last trade

                # Calculate the balance before the last trade
                balance_before_last_trade = current_balance - total_pnl - last_trade_pnl

                # Calculate PnL percentage based on the balance before the last trade
                if balance_before_last_trade != 0:
                    last_trade_pnl_percentage = round((last_trade_pnl / balance_before_last_trade) * 100, 2)

        # Return the PnL of the last trade, its percentage, and the current balance
        return last_trade_pnl, last_trade_pnl_percentage, current_balance

from python-binance.

diltoncesar avatar diltoncesar commented on July 17, 2024

Thank you so much Karl. I got it!. In time, I'm trying in 6months to set a strategy to trade that are consistently. But I'm not successful. I used Bands, MA, RSI...etc. but due the volatile sometimes gain and lost. Another problem is set TP and SL. Could you give a north my friend? Regards.Dilton from Brazil

from python-binance.

Karlheinzniebuhr avatar Karlheinzniebuhr commented on July 17, 2024

Thank you so much Karl. I got it!. In time, I'm trying in 6months to set a strategy to trade that are consistently. But I'm not successful. I used Bands, MA, RSI...etc. but due the volatile sometimes gain and lost. Another problem is set TP and SL. Could you give a north my friend? Regards.Dilton from Brazil

you are likely overfitting, try testing your strategy on data that you have not used for optimization. Hold at least 1-2 years of data that you have never used to create your strategy, and run your simulation with that data. Also try trading other coins besides BTC they tend to be easier to trade

from python-binance.

diltoncesar avatar diltoncesar commented on July 17, 2024

Excellent Karl. I'll try to implement it. Was does your best experience, scalp or intraday? I'm trying create a scalp strategy. My dificult is to set Tp and Sl. If I use 2x1, the ratio is below 50%. If I use 1x2, the ratio increase but got a loss, your profit go out...

from python-binance.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.