Leaderboard
Popular Content
Showing content with the highest reputation on 11/16/2021 in Posts
-
1 pointUpdated: 8/8/2019 @ 12:44pm (PST) Finally out of the alpha stage and releasing this to the community, I've been using it with success. Because I had to do some musical chairs with memory I made a configuration utility as the script itself is very ugly. This is more of a BETA release for this, so if anyone wants to try this out in SIM and let me know if you have any issues with the configuration sheet or the hotkeys themselves. It's based on the work started by @fjmocke here: https://forums.bearbulltraders.com/topic/469-das-calculate-shares-based-on-account-risk/ . What it is: It's a hotkey command script that can be used to dynamically alter the share total based on: Available Buying Power (capital) Stop Location (Risk) % Account Risk OR Fixed Dollar Amount The script includes purchase power protection and won't send an order that you can not afford, it does this by calculating two factors: A - Shares You Can Afford B - Shares at Risk Parameter (e.g. $25,000 account equity, 1% risk = $250 risk, $250 * a stop distance of .10 = 2500 shares) min{A,B} = 0.5(A + B - | A - B | ) But, why male models? I just told you. /Zoolander reference You'd use this to calculate your share total based on what you're willing to risk. So instead of blindly throwing 500 shares at every setup, you can dynamically alter risked amount based on the per-trade setup. I use it on my StreamDeck (will also release the icon packs soon) with modifiers of 100%, 75%, 50%, and 25%. 100% is the A-Plus setups I see, those I have HIGH confidence in. Alternatively, if a stock has a large spread or is low-float, I may only use the 25% modifier key for those. Instructions for Configuration: Go to this link: V2.1: DOWNLOAD ^^ Recommend latest DAS version of 5.4.3.0. Requires DAS version 5.2.0.34 or above (current BETA branch as of 11/19/2018) for the physical stop portion to work. If you don't use the physical stop, you don't have to worry about it. NOTE: Thoroughly test in SIM to make sure it's doing what you expect it to do. Choose: Download the ZIP file and unzip to where you want. On "Setup & Instructions" configure your settings. Account Leverage (default for DAS is 4), this is the margin your broker gives you. Some off-shores give 6. It needs to match what is configured in DAS for proper calculations. Max Account Risk %. This is the maximum percent of equity you're willing to risk on every trade (default is 1%). You can always risk lower (more on that later). % of Total Buying Power. If you don't want to calculate based on the total buying power of 100%, you can set this to a lower percentage (example: 100,000 buying power with 60% here equals $60,000 maximum position size) Route. LIMIT, MARKET, SMRTL. Default is LIMIT. Order Bid/Ask Offset. This is the offset you use when you send the price for order, e.g. "Ask + 0.05" (meaning fill me up to 5 cents above ask) Time in Force. Default: Day+ Default Shares. This is the amount of shares you want to set as the DEFAULT SHARES for all trades (e.g. when you click a Symbol and it loads, this is the share total). You can see why this is here in the technical breakdown section below. Minimum Stop Buffer. This is an offset to the stop distance. If you set this to 0.05, it'll add 5 cents to the stop distance calculation (so if your stop distance is 0.05, it'll be calculated on 0.10). Switch to the "Hotkeys" tab. Choose your preferred style. % Risk of Equity (Dynamic) or Fixed Price (e.g. $150 risk). %Equity Risk: Use the drop down to select what you want the value to be % equity. NOTE: This is a modifier AFTER your account risk maximum %. So if you have 1% account risk, and set this to 50%, your effective account risk is 0.005 --> 0.5%. $ Fixed: Use the drop down to select what you want the value to be for dollar risk. Select "long" or "short" to flip the script's direction. Click the cell that contains the start of the command (E column) and Ctrl + C (copy). Paste it into DAS. It should look like a sample command below. Instructions for Usage: First, you must have "Double Click to Trade" turned on in Chart, Right-Click --> Configure --> Settings --> Double-click to trade. Double click the chart where you want to set a mental stop (it does not place a stop order, you can always put one in after). Hit your configured hotkey. Sample Scripts: LONG: DefShare=BP*0.98; Share=DefShare*0.25* Price * 0.01; Price = Ask - Price + 0.02;SShare = Share / Price; Share = DefShare - SShare; DefShare = DefShare + SShare; SShare = Share; SShare = DefShare - SShare; Share = 0.5 * SShare; TogSShare; ROUTE =LIMIT; Price = Ask + 0.05; TIF=DAY+; BUY=Send; DefShare = 500; SHORT: DefShare=BP*0.98; Share=DefShare*0.25* Price * 0.01; Price = Price - Bid + 0.02;SShare = Share / Price; Share = DefShare - SShare; DefShare = DefShare + SShare; SShare = Share; SShare = DefShare - SShare; Share = 0.5 * SShare; TogSShare; ROUTE =LIMIT; Price = Bid - 0.05; TIF=DAY+; SELL=Send; DefShare = 500; Technical Breakdown: DAS has basic scripting. Montage commands have access to very few read/write variables, basic operations, and only operators of addition, subtraction, division, and multiplication. To do this calculation we need additional operators (min function, and absolute function) and more memory for storage of variables. This command gets around these limitations by using user-writeable areas of memory in the program. Since DAS is written in the C++ language (from what I can tell), it's strict on what can be done in these existing memory locations. The hotkey uses the following items (plus the usual Price -- FLOAT): (Assumptions on Datatypes) DefShare -- INT (Used as a temporary variable for storage) SShare -- Unsigned INT (Behaves like an Unsigned INT in certain situations. Used as a temporary variable for storage) Share -- INT (Used as a temporary variable for storage) With the 3 INT variables, objects are moved around in memory so that we can calculate and compare with our variable limitation (be much easier if we could assign our own). To facilitate the ABS() function, we use a trick --> When a negative value is placed into an Unsigned INT it loses it's sign (thus, it becomes a POSITIVE value in memory). A more detailed technical breakdown (step by step) is located in the Configuration spreadsheet up above. Future Enhancements: If need be, I can make a step-by-step video of this entire process. I have a version that uses an AutoHotKey macro to drop a line at the stop location, I can upload that as well if people want it. ^^ Update, I discontinued this as it was too cumbersome. You had to have two sets of hotkeys for each command. I may someday revisit it if I can build out a configuration tool for it. TLDR: It does the math for you so you can risk a known amount (% or $) based on your per-trade risk position (stop distance). And yes, I'm a bit of a tech nerd. Also, longest post .. ever. Would not read again, 0/5 stars. --- KNOWN ISSUES: %Account Risk gets smaller and smaller when subsequent open positions Reason: No Equity variable, we reverse calculate equity using Buying Power. On subsequent positions, the % (e.g. 1%) calculation will be based on the available buying power and NOT the account equity. Workaround: Precalculate the %risk and use it for the $risk versions. So 1% of $25,000 equity equals $250. SSR rejection on LONG position when scaling out; rejection message (e.g. "Short marketable limit order disable due to SSR!") if using the automatic STOP trigger. Reason: DAS calculates that the position will drop below the open stop order position and reject as this can cause the position to "flip" if it was triggered. Workaround: Have a hotkey to clear the open orders (CXL ALLSYMB), clear it, scale the position (e.g. 25%). Either replace the stop or switch to a mental stop. Alternatively, you can add "CXL ALLSYMB;" to the front of the scale-out hotkeys. You just have to be cognizant to replace the stop order. Equated position size if very small (e.g. 4 or 5 shares when expected is hundreds). Reason: Wrong side was used for the order. E.g. a long hotkey is used when trying to go short. -or- Stop Distance was calculated to be a negative value (clicked too close to current price). Workaround: Be cognizant of the hotkeys used and the stop distance clicked. Clicking too close (a really tight stop) can be very dangerous if you do it inadvertently. TriggerOrder for automatic STOP placement not being sent (no stop order placed). Reason: Montage is not set to a style that doesn't allow TriggerOrder input. Styles not compatible are: Default [DAS's, if you changed it], Basic, OCO, Option, Full Fix: Use a style that is compatible, they are: Stop Order, Detail, Trigger -- I recommended using the "Stop Order" montage style. To change this, right click the montage area around where you'd enter a price and select Style --> Your Choice. --- UPDATES: 10/17/2018 - Added v.1.1 link, you'd need to use the new version to change anything. - General cleanup of the script. Added instructions for the IB issue (discussed in this thread) - NEW FEATURE: Added a new section to the Hotkeys sheet, it will now create a set up for Dynamic Scale-In hotkey commands. You'd use these by setting a scale value (say you want an additional 50% of your current position size). The hotkey will calculate the maximum share you can afford (how much you can afford at the moment) and the scale value, choosing to take the least amount. So if your current position is 1500 shares (@ $50.00) and you want to scale in at 50% your current position, it'd check if you can afford an additional 750 shares, if you can't, it'll buy the maximum you can afford. For this example, you can't afford it (if Buying Power is 100k), so it'd buy roughly $25k worth (500 shares). - CLEANUP: Cleaned up the $Dollar Risk version and removed unnecessary steps. Don't really need to replace yours if they exist, but worth noting. 10/30/2018 - Added @Michael P's suggested fixes for Excel. Configuration tool should now work in both Sheets and Excel. - NOTICE: This was a configuration tool change, no changes were made to the hotkey scripts, so no need to change any existing hotkeys. 11/19/2018 - Shortened some of the commands so we don't hit any hotkey character limit, makes them less readable, but shorter. Couldn't get them low enough to fit the montage buttons though (although removing the portions for the buying power rejection protection would likely do it). - Added a section for SELL/COVER buttons for people who just need to create those. E.g. "Sell 25% position" or "Sell 33% position". - Added @Robert H's stop suggestion. New fields on the setup page for enabling physical stops. If enabled, it'll place a MARKET or LIMIT (settings included) trigger order to go into the market once the initial order is fulfilled, these are placed at the location you double-clicked on the chart. 11/20/2018 - Added a stop-order setting to set an additional buffer for the stop price (for those that want to include or exclude the double-clicked price). - Added conditional formatting to subdue the stop settings that aren't required if you disable sending a physical stop into the market. 12/10/2018 - Added a known issues section to this post and the spreadsheet (for when a new version goes up). 12/12/2018 - Updated known issues section to include the "Montage Style" issue for TriggerOrders. 12/13/2018 - Updated to new version 1.46. Fixed a bug in the Trigger Order script which could cause it to not be interpreted by DAS's command parser on certain user settings. - Added "modifier" extra hotkeys. See instructions next to these on how to use them. - - - Set Stop to Breakeven - Long or Short - Stop Limit or Stop Market (cancels any pending orders for SYMB) - - - Set Stop to Breakeven - Bidirectional - Stop Market (cancels any pending orders for SYMB) - - - Stop - Update Price - Long or Short - Stop Limit or Stop Market (cancels pending orders, double click chart where you want stop before firing hotkey) - - - Stop - Update Price - Bidirectional - Stop Market (cancels pending orders, double click chart where you want stop before firing hotkey) - - - Stop - Update Position - Long or Short - Stop Limit or Stop Market - Replace (requires you double-click the original stop in the Orders window) - - - Stop - Update Position - Bidirectional - Stop Market Orders Only - Replace (requires you double-click the original stop in the Orders window). 8/8/2019 - New version 2.0, download the .zip file and unzip it. - Fixed an issue with some hotkey configurations that may have caused them to be inaccurate in vary rare situations. Recommend recreating your hotkeys in this new version, just to be sure. - Added Profit Target hotkeys. - Added % Scale-In Hotkeys - Added $ Risk Scale-In Hotkeys - Added Short-SSR to Long/Short dropdown for SSR hotkeys (DAS Simulator) - Added Range Order hotkeys - Added Y-Margin Scale Increase hotkey, Y-Margin Decrease, and Y-Margin Reset - Added new sheet "Example - Equity%" and "Example - $Risk" to give a more workflow outlook on what is happening. - Included a ScaleOut worksheet to manually simulate what different scale percentages / scenarios look like (instructions will be in the video). ALSO: Video is done and rendering, I think it comes in at 45minutes with 3.4gigs (4k), so it'll need to be optimized before I upload it to YouTube. Will try to do it today and will update this when done. 9/10/2019 - New version 2.1 released. Just general clean up (UI) and bug fixes. - FIXED: Issue with the Scale-In $Risk hotkeys. - FIXED: Issue with the Stop Update Price long and short hotkeys> ^^ If you use either of those, please regenerate them and replace in your DAS to avoid issues. UPDATES: The majority of this side project is completed and besides a few requests I have in with DAS developers to optimize a few things, out of any major bugs or improved scripting features, I'd say this is about done. I'll provide any edge-case support as need, but I want to move on to other BBT-community projects. So what do I have cookin' for you guys, gals, and cat? You'll see a glimpse in the video of an early prototype (buggy! I programmed that in a few hours, so bugs are expected) of a DAS calculator side program. The newer version (need to finish the UI) will incorporate a lot more in ways of tools for you, including automatically calculating changes without a hotkey intervention. It also allows you to mass-process trade log .csv files you may have exported and compile it into Excel or .CSV for import into other programs. Configuration is drag/drop friendly, so rearranging your columns is as easy as click and holding. I'm also going to shift my attention to finishing my ORB-strategy research. Right now, my datapool encompasses 15000 news article, gaplists for 2011-2019, and 1second data for stocks in that range. It's a data store of roughly 80 gigs. The idea is to test for hidden signals we may not see that can indicate a potential direction of an ORB strategy (if no rare outside influence occurs, like a terrorist attack) by leveraging a consortium of machine learning algorithms to give us a higher probability of success for each day. Depending how the research works out, the end product would likely be a probability predictor for each day. I'll share the research results with the community and may incorporate some other tests as well. VIDEO: Ok, so I may have gone down an editing rabbit hole and that took longer than expected. The videos are up, came in quite long so I chunked it down. Sorry it's a tad scattered and not one-linear cohesive unit, but I tried to mark it up as best as possible. Part 1 - Config / Math - https://youtu.be/YrRrydwGyRY Part 2 - Setup, Quick Examples, Tips - https://youtu.be/pXLlWF7T6hw Part 3 - Sim Trade Example - https://youtu.be/SO9UhJh4dTc Bonus 1 - Scale/Price Excel Calc - https://youtu.be/KTr_iJ2p0TU Bonus Tips - https://youtu.be/sNHXFMoia7A
-
1 pointHi Mario, Falcon builds really quality systems, but they do come with a pretty high price tag. I am an IT consultant so naturally, I have the skills for this lol. I built my own machine with parts from my local computer store (Microcenter) for around $2,500. Mind you, I went completely overkill because my trading platform (Tradestation) is a real resource monster and you need to have some heavy processing power in order for it to run properly. DAS isn't as nearly intensive as TradeStation, but you do want to ensure you build something that won't become obsolete in the next 2 years. Especially with how frequently Microsoft is updating Windows 10, each update comes with a bit of a hit on certain areas of performance. Also just be mindful that the more monitors you wish to add, the more power you will need. Here's my system: 1x Intel i7 6800K CPU (processor) that is water-cooled and overclocked to 4.2 GHz. 32 GB's of high performance RAM 1x Samsung EVO 950 Pro (NVMe), 256B SSD (Solid State) - For Windows and applications 1x Crucial 525MX, 525GB SSD - For profile data and basic user data 1x Western Digital 3 TB 7200RPM Mechanical drive - for bulk data like image files 2x nVidia GTX 970 video cards 1x Corsair H110ti water cooler (for CPU) 1x Asus STRIX X99 Gaming motherboard 1x Corsair 750 Watt power supply 6x Acer 24" LED LCD monitors mounted on a HEX stand that is mounted to my desk 1x NEC monitor that is rotated for portrait mode and has the chatroom, Outlook and other apps on it 2x Dell keyboards. 1 keyboard is used for normal input, the second keyboard I used a free program called HIDMacros that allowed me to program any key to executed a macro or command. So the number pad on my second keyboard handles all of the order entry commands for my platform. Windows 7 Pro Remember, I went overboard because of my platform and since I am an IT guy, I figured "why the hell not?". Plus, it was a business write-off :) You will often find that "gaming" computers are best suited for day trading, but they sometimes have video cards that are complete overkill. As I mentioned above the specs of my machine, the more monitors you wish to have, the more video processing and hardware power you will need. MOST video cards can support up to 4 monitors on 1 card. If you want more than 1 monitor, than you will likely need 2 video cards. On-board video may be an option, but some manufactures will disable the on-board video if an add-on video card is detected. However, here's a breakdown of the BARE MINIMUM you need for a decent trading workstation: Processor (CPU): Minimum of an Intel Core i7 series processor. Most of these processors are fine and the latest generation (7th generation) is sufficient to handle the load. Ideally you want a processor with a higher clock speed (measured in GHz) as this will crunch numbers and data faster. Memory (RAM): NO less than 16GB's (Gigabytes) of memory. 32 is perfect, but 16 will do the job as well. The more memory you have, the more responsive programs are and the more space a program is given to store instructions that it needs quickly. Storage (Hard Drive Space): Hard Drive capacity is measured in Gigabytes and sometimes Terabytes depending on the type of drive. This isn't super important to your trading computer unless you plan on using your trading computer for other tasks, at which point, you will likely need more space. However, the most important take-away here is you want your primary hard drive (the "C-Drive" where Windows and your programs live) to be a Solid State Drive (SSD). These come in many forms, but the BEST option here is what is called an NVME drive. This type of drive plugs DIRECTLY into the motherboard. These are the fastest drives available now. The other type of solid state drive which is still a good option and good enough for trading is a regular 2.5" solid state drive that connects via a SATA data cable to a SATA port on your motherboard. This isn't as fast as the NVME drive you plug directly into your motherboard, but if you are on a budget it will suffice. The third and final type of drive to avoid unless you need a buttload of space is a standard 7200 RPM mechanical drive. These are the drives that have been around forever and the drives that moving parts (they have discs in them that spin around). These drives are slower and have a higher failure rate. Motherboard: The motherboard is the most important piece to the puzzle here since it connects all of the components and makes them "Talk" to each other. Naturally, you want a board that is compatible with your processor but also powerful enough and offers enough expansive capacity to ensure you will be able to add more memory (RAM), additional hard drives, and most importantly, additional video cards if needed. Once again, most of the gaming motherboards will fit the bill here. If you plan to have more than 3-4 monitors then you will need to ensure the motherboard you get has the ability to add another video card. You will want a board with at least 2x PCIe (PCI Express) x8 slots. Newer boards have x16 slots which is even better (the x8 or x16 signifies the speed at which the port can operate. Newer cards need the higher speed to operate more effectively, but this is more for gaming than trading). Also ensure the board offers gigabit LAN. This is a default on almost all boards nowadays, but I have seen a few lower-end boards that only offer 10/100 speed for the LAN (rather than 10/100/1000 or 'Gigabit'). Video Cards (GPU): I discussed this above with how many monitors you plan to add to your system. I prefer the NVidia cards as they are reasonably priced and they offer lots of power. You do not need the absolute latest $700 video card that has 5 GB's of RAM. This is total overkill (unless you plan to game). Any of the lower-end 10x series or even the higher numbered 9x series cards will do the job. Each of the video cards will be independent. Gamers tend to use what is called 'SLI' to make 2 cards act like one, but that is not the case here since we just need extra monitor space. Just be sure if you want more than one video card you see my notes on the motherboard above. Case: The case is something that you can have a little fun with. This is where all of the pieces of the computer live. People tend to get creative with these and get cases with windows and lights and all sorts of fancy stuff. This is entirely up to you. The most important take-away on the case is that it MUST support proper cooling. Most cases have 2x 80mm or 120mm fans in them. The more fans the more air is moving through the case to keep the internal components cool. If your goods overheat, then your machine will shut down and could potentially fry. So make sure you find a case with decent cooling capacity. Power Supply (PSU): The power supply or PSU is what provides power to all of the components. There are calculators out there that can help you determine based on what you plan to buy how large of a PSU you will need. My rule of thumb is do not go for anything less than 500 Watts. If you plan to have additional hard drives and video cards, then you will likely need a 750-1000 Watt PSU. Also, do not buy a cheap unit here. You want something that is robust and ideally, a modular power supply. These units provide the power to all of the components. If the PSU is providing crappy quality power, then you can expect crappy performance or fried components. Do not skimp on the power supply! Cooling: One final piece I am going to add here and it relates to everything else is that you need to ensure your system is properly cooled. A computer that is improperly cooled will perform poorly and you will end up replacing parts far sooner than you should. Proper cooling primarily comes from the case (discussed above), but other environmental factors such as location of the computer (is it near a heat vent, placed in a hot room, etc) will also affect the cooling. The processor is the most important component that needs to be cooled. Depending on which CPU you get, it will either come with a factory CPU cooler, or it won't come with anything. You DO NOT need to get a water-cooled system. This is ONLY for people like me who are a bit crazy and like to push their hardware to the absolute extreme. For day trading, a simple air cooler is more than enough for the processor. "Tower Coolers" as they are known do an incredible job of keeping the CPU nice and cool even under a heavy load. If you plan to go all out with high-end cards, a high-end CPU and you plan to game, day trade, edit videos and all sorts of stuff, then you will need liquid cooling. But the point of this thread is for a DAY TRADING system. so no overkill needed! I believe I about covered everything here. I probably made your head explode with even more questions, but that's what we are here for! I also apologize for the mess in my office in the pictures above. I need to re-organize my office at some point, but I had back surgery a few months ago, so moving anything is off the table for now. Although they do so that a disorganized desk is the sign of an intelligent mind.... Please feel free to ask any follow up questions. I didn't post links to specific hardware or websites since you can get this stuff from pretty much anywhere for very close to price. I have found that Microcenter is a lot cheaper than NewEgg and Amazon are. But if you don't have a Microcenter near you, you will have to order from elsewhere.