AlertmonMonitoring
This service will be supplied with the Virtual machine service.
Alertmon will greatly reduce execution errors occurring in trading, and give you more peace of mind that your trading setup is working correctly. It greatly reduces your need to manually check your setup.
I have used Alertmon for 15 years with high volume of contracts traded. It has saved me a fortune in execution errors. It's something I can't live without as all my trading occurs while I sleep.
Alertmon monitors constantly the Tradestation environment. In case it detects an error situation alarms can be raised and sent out via e-mails and or SMS.
In order to monitor Tradestation Alertmon uses the following monitoring techniques:
- Miss-match detection between your TS chart and TS brokerage account.
- Stray open positions. (Coming soon) Alarm if you have a contract or system with a position outside allowed hours.
- Heartbeats. Failure of any chart to work.
- Trigger. Specific alarm condition. IE Tradestation automation being off, or a contract rollover occurring.
- Ping. Monitor internet connectivity.
The Virtual machine is also monitored by another server to watch for any fault conditions on your trading server.
- Miss-Match:
- your ts brokerage account is compared to your chart, and an
- Heartbeats: These are periodic signals generated by an alertmon strategy which will write a text to a heartbeat file. Alertmon then checks constantly if these heartbeat files are still being updated within the expected period of time. If that is not the case an alarm will be raised.
- How to configure this is shown here. Below is an example of a heartbeat file. If you just want the high level view of alertmon, ignore the comments below, and just go to trigger. What you need to understand is when alertmon is configured correctly, an alarm will be generated if any heartbeat is missed. Alertmon now auto detects the session time(s) of the strategy used.
rt:1 means the file was written in real time. In rare cases or when a chart is opened for the first time the time stamp is not real time. (rt=0) In rare cases this is needed for further diagnosis of false alarms. The format is date bartime pcclocktime and realtime mode.
- Trigger:
- Alertmon checks a specific file if it was updated. The update of the file itself is the trigger. This trigger will raise an alert.
Triggers give us the flexibility to monitor non-standard situations. Here is an example how a trigger can be used to alert us that a Tradestation has rolled-over a contract:
Let’s say we want to be alerted when Tradestation has rolled-over a contract and we want to make sure we roll-over our current positions afterwards. We could be monitoring the current contract for crude oil (CL=104XC) and this is data1 in Tradestation. We could add the @CL contract as data2. Then we write a strategy which compares the closing prices of data1 and data2. This should always be the same price. As soon as these closing prices are not the same anymore we know that Tradestation has rolled-over @CL. In this case our strategy would append the trigger file with a text like “@CL closing prices are not equal, check if this contract was rolled over”. This will raise an alert in Alertmon. Note Tradestation rollover dates are not always ideal and for interactive Brokers trader @cl104XC is the correct rollover date.
- Ping:
- Heartbeats and Triggers are techniques used within Tradestation to monitor the correct functioning of Tradestation. However these techniques will not alert in case the trading computer loses access to the internet or something else happened to this computer or the data center. Trademaid's alertmon server checks if the Tradestation computer is still up and running. This is achieved with regular pings to the Tradestation computer to make sure the trading computer is still reachable. CPU use, disk free and memory free may also be monitored, but the settings for this are on the Trademaid server, not your VM
Alertmon will tell you if any charts are not working or open, if Tradestation / Multicharts is not working, or offline and or a exchange data feed has stopped.
It will also track your CPU usage for the trading day. This is important as low CPU availability will lead to slow execution / poor fills.
If your chart runs and automation is accidentally turned of, you can be alerted as well.
Your VM / PC is also being monitored from a data center, and you will get SMS and or email if the machine goes down. This works behind firewalls as well.
Alermon should be used with an email account, and a SMS gateway account.
SMS accounts supported are Twilio and RML connect.
Install alertmon into c:\alertmon
You can use Tradestation or Multicharts. (Ninja trader later)
Feedback from numerous users has been Tradestation 10 build 76 is the best build. Builds before 74 or after 76 are not as stable.
To stop Tradestation updating, click these settings on Alertmon
Then (needed once only) run this batch file BEFORE you open TS. (It will kill TS if open)
What you should monitor.
1) At least 1 chart on every market. This will alert if a market or Tradestation / Multicharts stops.
2) At least 1 chart per workspace. This will alert if you fail to open a workspace. (Human error) or if a workspace is not working.
However is is recommend you monitor every chart. Numerous errors occur infrequently. Strategies intermittently turn off, you might get corporate data server not found.
3) The entire virtual machine. Should the VM or data center have an outage, you need an alert. You need to provide us your mobile telephone number and email address.
Ideally I like a chart to give a signal every 5 minutes, and alarm if two signals are missed.
There is a problem however if a chart interval is greater than 5 minutes.
For example a 1 hour chart will only give a signal every 60 minutes. This is simply too long.
There are two ways around this.
i) Put a Alertmon indicator on the chart. Not a lot of negatives too this. There is a very tiny chance that the strategy is not working, even though the indicator is. (This could even be human error. For example you changed the code or had a expiry date in the code) This is my preferred option.
ii) Turn on intra-bar order generation. This has more CPU overhead.
Other types of alerts. Trigger mode.
Normally we hare looking for a heartbeat to fail,however we can also look for an alert to be sent if an event occurs.
This even could be the open of a market, rollover detected, a trade occurring etc.