Are we all being ripped off?

mastermind007

Well-Known Member
#11
Completed some long pending issue today. Compute out the actual costs of trading and get accurate number to feed to the Amibroker Backtester
For a long time, I have realized that taxation component in non dabba trading was bigger than the brokerage being levied but never got around to pinning down the actual multiple

Here is the AFL snippet in all its glory....

Code:
numlots = Param("Traded Number of Lots", 1, 1, 1000000, 1);
lotSize = Param("Quantity in Single lot", 1, 1, 1000000, 1);
brokeragePercentage      = Param("Brokerage (Percentage)", 0.01   , 0.0001, 0.5, 0.0001) / 100;
gstRatePercentage        = Param("GST Rate  (Percentage)", 18     , 0.1, 100, 0.1) / 100;
securityTxnPercentage    = Param("S.T.Tax   (Percentage)", 0.01   , 0.0001, 0.5, 0.0001) / 100;
exhangeChargesPerecntage = Param("Exch.Fees (Percentage)", 0.0019 , 0.0001, 0.5, 0.0001) / 100;
clearingChargePercentage = Param("Clearing  (Percentage)", 0.0002 , 0.0001, 0.5, 0.0001) / 100;
SEBIChargePercentage     = Param("SEBI Fees (Percentage)", 0.00015, 0.0001, 0.5, 0.0001) / 100;
StampDutyPercentage      = Param("StampDuty (Percentage)", 0.003  , 0.0001, 0.5, 0.0001) / 100;

purchasePrice = Open; /// Substitute your field or arrays here
sellinngPrice = Close;   /// Substitute your field or arrays here
buyyTurnover = numlots * lotSize * purchasePrice;
sellTurnover = numlots * lotSize * sellinngPrice;
totlTurnover = buyyTurnover + sellTurnover;
brkrgAmount  = totlTurnover * brokeragePercentage;
secrtTrxnTax = sellTurnover * securityTxnPercentage;
exchangeFees = totlTurnover * exhangeChargesPerecntage;
goodNServTax = (brkrgAmount  + exchangeFees) * gstRatePercentage;
clearingFees = totlTurnover * clearingChargePercentage;
SEBI_Charges = totlTurnover * SEBIChargePercentage;
stampDuty    = totlTurnover * StampDutyPercentage;
totalCost    = brkrgAmount + goodNServTax + secrtTrxnTax + exchangeFees + clearingFees + SEBI_Charges + stampDuty;
breakevenCost = totalCost / (numlots * lotSize);
Cost2Brkrg    = totalCost / brkrgAmount;
AmibrokerCost = 100 * (totalCost / totlTurnover);
//AmibrokerCost = Cost2Brkrg * 100 * brokeragePercentage;

_TRACE("" + AmibrokerCost);

With my regular brick&Mortar office Brokerage house .... Cost 2 Brokerage ratio is 2.2
With discounted brokers with no office in my area Cost 2 Brokerage ratio is 6.99
 
Last edited:

mastermind007

Well-Known Member
#12
Completed some long pending issue today. Compute out the actual costs of trading and get accurate number to feed to the Amibroker Backtester
For a long time, I have realized that taxation component in non dabba trading was bigger than the brokerage being levied but never got around to pinning down the actual multiple

Here is the AFL snippet in all its glory....

Code:
numlots = Param("Traded Number of Lots", 1, 1, 1000000, 1);
lotSize = Param("Quantity in Single lot", 1, 1, 1000000, 1);
brokeragePercentage      = Param("Brokerage (Percentage)", 0.01   , 0.0001, 0.5, 0.0001) / 100;
gstRatePercentage        = Param("GST Rate  (Percentage)", 18     , 0.1, 100, 0.1) / 100;
securityTxnPercentage    = Param("S.T.Tax   (Percentage)", 0.01   , 0.0001, 0.5, 0.0001) / 100;
exhangeChargesPerecntage = Param("Exch.Fees (Percentage)", 0.0019 , 0.0001, 0.5, 0.0001) / 100;
clearingChargePercentage = Param("Clearing  (Percentage)", 0.0002 , 0.0001, 0.5, 0.0001) / 100;
SEBIChargePercentage     = Param("SEBI Fees (Percentage)", 0.00015, 0.0001, 0.5, 0.0001) / 100;
StampDutyPercentage      = Param("StampDuty (Percentage)", 0.003  , 0.0001, 0.5, 0.0001) / 100;

purchasePrice = Open; /// Substitute your field or arrays here
sellinngPrice = Close;   /// Substitute your field or arrays here
buyyTurnover = numlots * lotSize * purchasePrice;
sellTurnover = numlots * lotSize * sellinngPrice;
totlTurnover = buyyTurnover + sellTurnover;
brkrgAmount  = totlTurnover * brokeragePercentage;
goodNServTax = brkrgAmount  * gstRatePercentage;
secrtTrxnTax = sellTurnover * securityTxnPercentage;
exchangeFees = totlTurnover * exhangeChargesPerecntage;
clearingFees = totlTurnover * clearingChargePercentage;
SEBI_Charges = totlTurnover * SEBIChargePercentage;
stampDuty    = totlTurnover * StampDutyPercentage;
totalCost    = brkrgAmount + goodNServTax + secrtTrxnTax + exchangeFees + clearingFees + SEBI_Charges + stampDuty;
breakevenCost = totalCost / (numlots * lotSize);
Cost2Brkrg    = totalCost / brkrgAmount;
AmibrokerCost = 100 * (totalCost / totlTurnover);
//AmibrokerCost = Cost2Brkrg * 100 * brokeragePercentage;

_TRACE("" + AmibrokerCost);
Taxation experts and traders are welcome to examine this and correct any errors. SAMCO brokerage house on its websites seems to use 21% as brokerage.
 

mastermind007

Well-Known Member
#13
I got a private messate stating that

SEBIChargePercentage is 0.0001% and Stamp Duty in most of the states is 0.002%

Also clearing charges are applicable on equity and not f&o

Rules regarding STT vary from trade objects' category.
 

Zerodha – Open Paperless Account

Open online account with Zerodha. Free delivery trading and Max Rs 20 for Intraday, F&O, Currency and Commodity Trading. Intraday High leverage with MIS, CO and BO.

Name:Phone:
Email:City:
State:
Are you a day trader?