Hi there i want to know something about the PDT rule protection that alpaca provides
“In order to prevent Alpaca Brokerage Account customers from unintentionally being designated as a Pattern Day Trader (PDT), the Alpaca Trading platform checks the PDT rule condition every time an order is submitted from a customer. If the order could potentially result in the account being flagged as a PDT, the order is rejected, and API returns error with HTTP status code 403 (Forbidden).”
My question is about running automated trading scripts 24/7 under these protections. I understand and can handle the error responses, but I want to ensure there won’t be additional consequences if the protection is triggered frequently.
My strat is probably 80% safe to the PDT rule but sometimes in backtesting it triggers 2 or 3 trades in a day, though this was rare. Is this level of frequency acceptable, or could it lead to other issues with my account?
thank you in advance.
@Alan_Villegas The SEC is very explicit in requiring an account to be designated “pattern day trader” if the account executes four or more day trades within five business days. If an account is designated “pattern day trader” and the equity in the account drops below $25,000 then the account is not allowed to open new positions (which effectively bars the account from trading).
The PDT Protections are in place to help an account, with less than $25,000, from being designated PDT and therefore not being allowed to trade. An order will typically be rejected if it creates the potential for exceeding the allowed 3 day-trades. As long as an algo, and strategy, can handle these rejected orders there won’t be an issue. Note this may leave your strategy where a position cannot be closed and therefore must be held overnight. The algo can try to close the position but the order will simply be rejected. The position can be closed the following day because that would not create a day-trade.
I understand the details now. My inquiry was prompted by the development of my own local protection system. This led me to wonder if Alpaca’s built-in PDT protection would be sufficient for my needs. I’ll just need to ensure that there’s a measure in place to prevent my system from leaving a trade open overnight due to Alpaca’s protection.
It would be beneficial if Alpaca’s API could provide real-time data on the remaining number of trades a user has before activating the protection. This feature would enable more precise and informed trading strategies, particularly for those utilizing automated systems. It’s just a thought, but I believe it would significantly enhance the user experience.
thanks
@Alan_Villegas The account object (ie the one returned by get_account
) has an attribute daytrade_count
which can be queried for the number of day trades. Note this is both actual executed day trades and also ‘potential’ day trades. For example, an open limit order to sell a stock on bought today would be a ‘potential day trade’ and would be included in this value. This is the value that the APIs look at. If it’s 3, the system will reject any new orders which could create a day trade.
Wow, I should probably go through the Alpaca documentation again to make sure I haven’t missed any other useful features. Thanks a lot for your help!