Announcement

Collapse
No announcement yet.

Tax

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Tax

    Yes you have to pay tax regardless if you have withdrawn or not in Australia. Forex income is added to any other income you may have to assess your taxable income. Generally your MT4 stats should be enough, but if the tax office query anything you may need additional proof of deposits or withdrawals from the account, ie bank statements to back up anything they want to know. I had some unpleasant surprises from ATO a while back, mainly because of receiving funds in foreign currency back from brokers outside Australia - they receive notification from banks of incoming amounts in foreign currency but often don't get the associated information about the nature of any amounts, ie if profit or return of deposited funds. In my case they regarded return of initial deposit as profit until I was able to prove otherwise with banks stats showing deposited amounts - be careful of that & use an accountant who has previous experience of doing forex income for clients.

  • #2
    Ok thanks for that good info Littlemax

    Comment


    • #3
      Originally posted by littlemax View Post
      Yes you have to pay tax regardless if you have withdrawn or not in Australia. Forex income is added to any other income you may have to assess your taxable income. Generally your MT4 stats should be enough, but if the tax office query anything you may need additional proof of deposits or withdrawals from the account, ie bank statements to back up anything they want to know. I had some unpleasant surprises from ATO a while back, mainly because of receiving funds in foreign currency back from brokers outside Australia - they receive notification from banks of incoming amounts in foreign currency but often don't get the associated information about the nature of any amounts, ie if profit or return of deposited funds. In my case they regarded return of initial deposit as profit until I was able to prove otherwise with banks stats showing deposited amounts - be careful of that & use an accountant who has previous experience of doing forex income for clients.
      Thanks for the info Littlemax.

      I will say that brokers don't disclose your trading activity to the ATO (from what I've been told), so it's up to you to disclose it.
      Click here to check out the most popular forex channel on YouTube

      Comment


      • #4
        Can I also add that, although you can provide the standard MT4 export for the period, the format is not tax friendly, particularly in that both profit and loss are provided in the same column. Profits and losses need to be sorted and tallied up separately for tax lodgement which can be a long process if you have many trades. For example, I recently did one for a managed account with high frequency trading, and I had over 12,000 rows of data to process! Anyhow, if you're paying $250 an hour for your tax consultant, you might want to get the spreadsheet sorted before you present it.

        You export as .csv file or select and copy the whole sheet to an excel spreadsheet then copy all the profit/loss data into an empty column and manually delete all the negative sums to create the profit column and vice versa for the loss column. Auto sum at the bottom and make sure it reconciles with the summary data. Your bank statements will need to reconcile with any deposits and withdrawals from your forex account so check that this marries up also.

        Boring stuff but most tax consultants will pull their hair out if you leave it up to them to do. Hope that helps.

        Comment


        • #5
          tax csv export with seperate profit and loss

          Hello members,

          thought I should share this quick hack as we should not burn time on messing with excel or such.

          This Script code will read the MT4 trading history and produce a .csv with positive and negative trade outcome of BUY and SELL trades and respects commissions and swap for the calculations.

          I provide the simple code here if someone has a need for that and maybe wants to modify it to their needs.

          Cheers
          ESG

          Code:
          //+------------------------------------------------------------------+
          //|                                              ESG_tax_history.mq4
          //|                                                              ESG
          //|                                                       03/19/2015
          //+------------------------------------------------------------------+
          #property copyright "ESG"
          #property version   "1.00"
          #property strict
          #property script_show_inputs
          //--- input parameters
          input datetime startdate   = D'2014.01.01 00:00'; 
          input datetime enddate     = D'2015.01.01 00:00';
          input string   filename="tax_statement.csv";
          
          void OnInit() {
             int      i = 0, handle = 0, hstTotal = 0;
             double   positiveProfit = 0, negativeProfit = 0, tmpProfit = 0;
             string   orderType = "";
          
             hstTotal = HistoryTotal();
             handle=FileOpen(filename, FILE_WRITE|FILE_CSV,",");
          
             if(handle > 0) {
          
                FileWrite(handle,"Ticket,Open Time,Type,Lots,Symbol,Price,Stop/Loss,Take Profit,Close Time,Close Price,Commission,Swap,HSTProfit,PositiveProfit,NegativeProfit,Comment");
                for(i = 0; i < hstTotal; i++) {   
                   if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true) {
                      if (startdate <= OrderCloseTime() 
                          && enddate >= OrderCloseTime() 
                          && (OrderType() == OP_BUY || OrderType() == OP_SELL)) {
                         
                         if (OrderType() == OP_BUY) orderType = "Buy";
                         if (OrderType() == OP_SELL) orderType = "Sell";
                         tmpProfit = OrderProfit() + OrderCommission() + OrderSwap();
                         if (tmpProfit == 0) {
                            positiveProfit = 0.0;
                            negativeProfit = 0.0;
                         } else {
                            if (tmpProfit > 0) {
                               positiveProfit = tmpProfit;
                               negativeProfit = 0.0;
                            } else {
                               positiveProfit = 0.0;
                               negativeProfit = tmpProfit;
                            }
                         }
                         FileWrite(handle, OrderTicket(), 
                                           TimeToStr(OrderOpenTime(), TIME_DATE|TIME_MINUTES|TIME_SECONDS),
                                           orderType,
                                           OrderLots(),
                                           OrderSymbol(),
                                           DoubleToString(OrderOpenPrice(), Digits()),
                                           DoubleToString(OrderStopLoss(), Digits()),
                                           DoubleToString(OrderTakeProfit(), Digits()),
                                           TimeToStr(OrderCloseTime(),TIME_DATE|TIME_MINUTES|TIME_SECONDS),
                                           DoubleToString(OrderClosePrice(), Digits()),
                                           DoubleToString(OrderCommission(), Digits()),
                                           DoubleToString(OrderSwap(), Digits()),
                                           DoubleToString(OrderProfit(), Digits()),
                                           DoubleToString(positiveProfit, Digits()),
                                           DoubleToString(negativeProfit, Digits()),
                                           OrderComment());
                      }
                   }
                }
                FileClose(handle);
             }
          }
          //+------------------------------------------------------------------+
          void OnStart() {
          }
          //+------------------------------------------------------------------+

          Comment


          • #6
            Originally posted by ESG View Post
            Hello members,

            thought I should share this quick hack as we should not burn time on messing with excel or such.

            This Script code will read the MT4 trading history and produce a .csv with positive and negative trade outcome of BUY and SELL trades and respects commissions and swap for the calculations.

            I provide the simple code here if someone has a need for that and maybe wants to modify it to their needs.

            Cheers
            ESG
            Many thanks ESG! I've compiled and tried it and it works like a charm. Thanks for share the knowledge Appreciated.

            Comment


            • #7
              No one has mentioned using the Brokers monthly statements. Mine show every trade made. Are these not acceptable? To me they seem like true financial statements - at least more-so than an MT4 log.

              Also this is all most likely very country dependent.

              Cheers,
              Rod

              Comment


              • #8
                Originally posted by ESG View Post
                Hello members,

                thought I should share this quick hack as we should not burn time on messing with excel or such.

                This Script code will read the MT4 trading history and produce a .csv with positive and negative trade outcome of BUY and SELL trades and respects commissions and swap for the calculations.

                I provide the simple code here if someone has a need for that and maybe wants to modify it to their needs.

                Cheers
                ESG

                Code:
                //+------------------------------------------------------------------+
                //|                                              ESG_tax_history.mq4
                //|                                                              ESG
                //|                                                       03/19/2015
                //+------------------------------------------------------------------+
                #property copyright "ESG"
                #property version   "1.00"
                #property strict
                #property script_show_inputs
                //--- input parameters
                input datetime startdate   = D'2014.01.01 00:00'; 
                input datetime enddate     = D'2015.01.01 00:00';
                input string   filename="tax_statement.csv";
                
                void OnInit() {
                   int      i = 0, handle = 0, hstTotal = 0;
                   double   positiveProfit = 0, negativeProfit = 0, tmpProfit = 0;
                   string   orderType = "";
                
                   hstTotal = HistoryTotal();
                   handle=FileOpen(filename, FILE_WRITE|FILE_CSV,",");
                
                   if(handle > 0) {
                
                      FileWrite(handle,"Ticket,Open Time,Type,Lots,Symbol,Price,Stop/Loss,Take Profit,Close Time,Close Price,Commission,Swap,HSTProfit,PositiveProfit,NegativeProfit,Comment");
                      for(i = 0; i < hstTotal; i++) {   
                         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true) {
                            if (startdate <= OrderCloseTime() 
                                && enddate >= OrderCloseTime() 
                                && (OrderType() == OP_BUY || OrderType() == OP_SELL)) {
                               
                               if (OrderType() == OP_BUY) orderType = "Buy";
                               if (OrderType() == OP_SELL) orderType = "Sell";
                               tmpProfit = OrderProfit() + OrderCommission() + OrderSwap();
                               if (tmpProfit == 0) {
                                  positiveProfit = 0.0;
                                  negativeProfit = 0.0;
                               } else {
                                  if (tmpProfit > 0) {
                                     positiveProfit = tmpProfit;
                                     negativeProfit = 0.0;
                                  } else {
                                     positiveProfit = 0.0;
                                     negativeProfit = tmpProfit;
                                  }
                               }
                               FileWrite(handle, OrderTicket(), 
                                                 TimeToStr(OrderOpenTime(), TIME_DATE|TIME_MINUTES|TIME_SECONDS),
                                                 orderType,
                                                 OrderLots(),
                                                 OrderSymbol(),
                                                 DoubleToString(OrderOpenPrice(), Digits()),
                                                 DoubleToString(OrderStopLoss(), Digits()),
                                                 DoubleToString(OrderTakeProfit(), Digits()),
                                                 TimeToStr(OrderCloseTime(),TIME_DATE|TIME_MINUTES|TIME_SECONDS),
                                                 DoubleToString(OrderClosePrice(), Digits()),
                                                 DoubleToString(OrderCommission(), Digits()),
                                                 DoubleToString(OrderSwap(), Digits()),
                                                 DoubleToString(OrderProfit(), Digits()),
                                                 DoubleToString(positiveProfit, Digits()),
                                                 DoubleToString(negativeProfit, Digits()),
                                                 OrderComment());
                            }
                         }
                      }
                      FileClose(handle);
                   }
                }
                //+------------------------------------------------------------------+
                void OnStart() {
                }
                //+------------------------------------------------------------------+
                Thanks ESG!

                How do I use a Java script exactly?

                Comment


                • #9
                  Hi Isochronous,

                  It's a MT4 Script sourcecode.

                  Please use your DEMO Account for the following hints as I don't want you to mess up with your real money account while practicing how to compile and use within your MT4 installation!

                  DON'T learn to code on a real money account !!!
                  AS ALWAYS:
                  Everything you do is at your own risk!
                  I'm not responsible for whatever failure might occur by following these hints.

                  That said try the following:
                  1.
                  Open your Demo Account within your MT4 instance.
                  2.
                  Choose "Tools" -> "MetaQuotes Language Editor" from the menu.
                  3.
                  The MetaQuotes Language Editor is your environment to build scripts or other programs within MT4.
                  Choose "File" -> "New" from the menu.
                  4.
                  Select "Script" to be created within the Wizard window that's just opened and advance to the next dialogue.
                  5.
                  Within the dialogue name your script whatever you like (preserve the "Scripts\" part that's already there).
                  Your entry should look like:Scripts\YOURSCRIPTNAME
                  and advance to the next step.
                  6.
                  Now you'll see your newly created script within the editor.
                  Replace all of the content with the script source that I provided in the code section of my post.
                  7.
                  Choose "File" -> "Compile" from the menu.
                  8.
                  Close and restart your MT4 Demo Account instance.
                  9.
                  You'll find the newly compiled script in the Navigator pane in the "Scripts" subtree.
                  10.
                  Drag and drop the script on an already opened chart within your MT4 instance.
                  Fill in the parameters or keep them as they are and click OK.

                  The Script will do it's work and save the file in the "Files" folder within your MT4 working directory.
                  To locate the generated csv file choose "File" -> "Open Data Folder" from the menu within MT4.
                  Locate the MQL4 folder within the Windows Explorer window that showed up and open it.
                  Locate the Files folder within the MQL4 folder and open it.
                  Here you'll find the .csv file which was created by the script.

                  Practice a little bit and become familiar with these steps before trying to mess around on your real money account!

                  AS ALWAYS:
                  Everything you do is at your own risk!
                  I'm not responsible for whatever failure might occur by following these hints or using this script or parts of it on your accounts.

                  Kind regards,
                  ESG
                  Last edited by ESG; 03-20-2015, 07:45 AM. Reason: typo

                  Comment


                  • #10
                    Thanks ESG, that's awesome. Exactly what's needed.

                    Rod, the point is that the standard output of the broker or MT4 statements need to be adjusted, so that separate profit, loss, swaps, and brokerage amounts can be determined for tax lodgement. Sorting out twelve monthlies is going to be more work than one yearly statement. MT4 history will be just as reliable as brokers statements as long as the export parameters are right.
                    Last edited by simonb; 03-19-2015, 09:32 PM.

                    Comment


                    • #11
                      Thanks for posting that ESG, works perfectly, nice bit of work!

                      Comment


                      • #12
                        Hello guys,

                        Just wanted to share my personalized version of the script ESG initially posted in this thread. I've contacted with him by PM and he says it's okay to share it as he doesn't keep any copyright about that code.

                        In order to avoid possible problems with creating and compiling the script for people not used to work with Metaeditor, I've already compiled it myself and will publish links hosted on my Box account to download the .ex4 or .mq4 archives directly, you just copy them in your respective MT4 terminal folder and it's ready to go. Here they are:

                        Download Tax Report Script in EX4
                        Download Tax Report Script in MQ4

                        I don't plan on deleting the files from Box, as I don't use it regularly so don't have any problems with space, however if someone wants me to publish (copy-paste) the code directly here in a message just let me know.

                        I know it's been a year since the original publication, but one year ago I knew almost nothing about MQL4 hehe, and in last five months I've learned it so... here we are.
                        Just hope this will help someone as the original code from ESG did for me

                        Greetings and take care.

                        Comment


                        • #13
                          Hi Juan,

                          Well done!

                          I really love this community of open minded people to help each other to survive in the Forex environment.
                          Everyone who contributes and shares knowledge and ideas will help others to get around the vast issues that we face.

                          As we are living not to far away from each other and I have visited your country before, time will tell if we get the opportunity to meet in person in the future.
                          I would really like to!

                          Kind regards,

                          ESG


                          Originally posted by juanefex View Post
                          Hello guys,

                          Just wanted to share my personalized version of the script ESG initially posted in this thread. I've contacted with him by PM and he says it's okay to share it as he doesn't keep any copyright about that code.

                          In order to avoid possible problems with creating and compiling the script for people not used to work with Metaeditor, I've already compiled it myself and will publish links hosted on my Box account to download the .ex4 or .mq4 archives directly, you just copy them in your respective MT4 terminal folder and it's ready to go. Here they are:

                          Download Tax Report Script in EX4
                          Download Tax Report Script in MQ4

                          I don't plan on deleting the files from Box, as I don't use it regularly so don't have any problems with space, however if someone wants me to publish (copy-paste) the code directly here in a message just let me know.

                          I know it's been a year since the original publication, but one year ago I knew almost nothing about MQL4 hehe, and in last five months I've learned it so... here we are.
                          Just hope this will help someone as the original code from ESG did for me

                          Greetings and take care.

                          Comment


                          • #14
                            Glad to know you like it ESG, I felt almost 'obligated' to publish it as you did and continue the 'share some love with the community' attitude, knowing it's now a little bit improved and could help others with less technical knowledge.

                            If you visit Spain again... you know where to contact me

                            Cheers
                            Last edited by juanefex; 02-18-2016, 01:40 AM.

                            Comment

                            Working...
                            X