The Home Network, Office Network and Corporate Network Versions of NeuroShell Trader allow neural network and trading strategy optimization to be distributed across multiple computers on a network.
When using network optimization, NeuroShell Trader should be installed on your main computer (the server computer) using the normal NeuroShell Trader installation. However, in order for the NeuroShell Trader server computer to distributed optimization to different computers (client computers), NeuroShell Trader must be installed and setup properly on each of those computers.
Client Installation:
- Using NeuroShell Trader Network Client installation
On the client computers, it is recommended that you install the special NeuroShell Trader Network Installation. This smaller installation will set up all necessary files required for the NeuroShell Trader client to run remotely. Note that only the install is required and it is not necessary for NeuroShell Trader itself to be run or activated on the client computers.
In order for the NeuroShell Trader network distributed optimization to work, we use a component called NSTLocator. It is a small executable program that runs on each remote computer. The locator starts when Windows starts, and runs all the time in the background. You can see NSTLocator.exe running on the Processes tab of the Windows Task Manager. The purpose of NSTLocator is to start and shut down clients upon commands from the server. The NSTLocator runs from the NeuroShell Trader directory. The network setup also creates a system registry key that starts the NSTLocator when Windows starts.
The Neuroshell Trader Network Installation automatically starts the NSTLocator at the end of installation. The Windows firewall or any other software firewalls that may be installed on your computer will usually display a dialog box informing you that the locator application (NST Locator or NSTLocator.exe) is blocked from accepting connections from other computers. You have to press the “Unblock” button on the Windows firewall dialog. If the client computer is running another type of firewall, you need to set the firewall to permanently allow the NST Locator to communicate with other computers on the network.
- Using regular NeuroShell Trader installation
In the event that you wish to or have already run the normal version of NeuroShell Trader on a client computer, you will need to do some manual configuration. Because the regular installation does not automatically start NSTLocator.exe or create a system registry entry to the locator when Windows starts, the NSTLocator.exe must be started manually when not using the network installation on the client computers. To do so, run the NSTLocator.exe in the NeuroShell Trader directory prior to the client be called by the server. If you want NSTLocator to automatically start when windows runs, then make sure to check the appropriate check box after NSTLocator is executed and press the Apply button so that the appropriate windows registry entry will be added to the registry.
Turning On Network Distributed Optimization:
Once NeuroShell Trader is properly installed on the client computers, network optimization must be turned on within NeuroShell Trader by selecting the Options menu item on the Tools menu, selecting the Distributed Optimization tab and selecting the ‘Distributed optimization across networked computers’ option. For more information see Options – Distributed Optimization
TroubleShooting:
- WSG add-ons, 3rd party add-ons or custom indicator DLL’s must be installed on each network computer
If using WSG add-ons, 3rd party add-ons or custom indicator DLL’s, those add-on’s and DLL’s must be installed on all computers on which an optimization will be distributed so the indicators can be calculated and that computer used for optimization. If the DLL’s are not installed, that computer will not be used during network optimization even if it was selected.
- Power Saving option to “Put computer to sleep” can stop optimization
If a computer is setup with the power saving option to “Put the computer to sleep” after X minutes, then that computer will stop optimizing and be dropped from the network optimization process when the computer goes to sleep.
- Verify Network Distributed Optimization is turned on
On the server NeuroShell Trader executable select Tools->Options->Distributed Optimization and verify that ‘Distributed optimization across networked computers’ is checked.
- If NeuroShell Trader can not see a client
If the NSTLocator.exe is not running on a client, then the NeuroShell Trader will NOT see the client computer and will not list the client computer as accessible for network optimization. Try manually running NSTLocator.exe manually on each client.
- If NeuroShell Trader Is Not Talking to Clients
If your Windows Firewall does not ask you to unblock the NSTLocator, the Firewall may nevertheless block NeuroShell Trader from communicating. One clue that this is happening will be that remote computers show up in your Network Optimization dialog list of computers, but NeuroShell Trader does not start clients running on them when you begin optimizing a model. You will then either have to turn off the Windows Firewall (which some anti-virus programs do anyway) or tell the Firewall that the NSTLocator is an exception. Go to the Windows Control Panel and select “Windows Firewall”. If you decide to list the NSTLocator as an exception, you will have to select the “Exceptions” tab, select “Add Program”, and browse to the NSTLocator in the “Windows” folder. You may have to do this on all computers where you want clients to be able to run.
- Antivirus Programs and Firewalls can Block NeuroShell Trader Execution
When running the NeuroShell Trader server for the first time, you will most probably receive a warning from your firewall and/or antivirus program if you have such a program installed on your machine. The warning will say that NeuroShell Trader is trying to listen for connections from other computers on the network. The warning completely halts NeuroShell Trader execution and waits for your input. In many cases, the firewall or antivirus warning is hidden behind the NeuroShell Trader window and NeuroShell Trader appears not to be responding. You may be able to locate the firewall or antivirus program warning dialog on the Windows Task Bar, bring it up, and instruct it to permanently allow NeuroShell Trader to listen for connections from other computers on the network. Otherwise, you may need to manually add NSTLocator.exe as an exception in the firewall or antivirus program.
In general, if you are having problems running NeuroShell Trader distributed optimization across a network, it is advisable to turn off both your Firewall and Anti Virus software temporarily and rerun NeuroShell Trader. If the problems go away when there is no Firewall or Anti Virus running, then you will most likely need to create exceptions for NeuroShell Trader.exe, NSTLocator.exe and possibly the Server Port and Locator Port (see section below about ports).
- Running the network optimization across a VPN, in the Cloud or a similar remote connection.
The network optimization was only designed for use on a local area network. To the best of our knowledge, it will not work on a VPN, on a cloud computer or other remote network connections.
[Note: If you are a networking guru and figure out how to get the TCP and UDP communications working in any of these scenarios, then let us know what you did to get it working so we can add the information to this page]
- Manually running NSTLocator.exe on each client computer
Sometimes manually running the NSTLocator.exe program (located in the NeuroShell Trader directory) on each client computer highlights issues that are not otherwise obvious. For instance, NSTLocator might report that the locator port is already in use. If this is the case, then you will need to change the locator port on all the clients and the server (see below).
- Are the client computers visible to the Server and vice versa?
Go to the Control Panel -> Network and Internet -> View network computers and devices on the server and client computers. Does the server list all the client computers? Do the clients show the server computer? If not, then you may have a workgroup naming issue or some other network issue. It is unlikely that NeuroShell Trader or NSTLocator will be able to communicate with computers that do not show up in the network computer list. In general, it is recommended that all the computers be on the same workgroup.
- Computer port settings
The server communicates with the NSTLocator running on the client computers through TCP (Transmission Control Protocol) using a common communication port (i.e. Server Port). The server port can be set on the server NeuroShell Trader executable by selecting Tools->Options->Distributed Optimization and pressing the ‘Set network computers used by default’ button. The default Server Port is 1002.
The client NSTlocator programs communicate back to server through UDP (User Datagram Protocol) using a common communication port (i.e. Locator Port). The Locator Port must be set to the same value on both the Server and all the client NSTLocator programs. The server port is set on the server NeuroShell Trader executable by selecting Tools->Options->Distributed Optimization and pressing the ‘Set network computers used by default’ button. On each of the clients, the Locator Port is set by running the NSTLocator.exe (located in the NeuroShell Trader director) on each client, changing the Locator Port value and pressing the ‘Apply’ button. The default Locator Port is 12321.
- Blocked Computer port settings
If your firewall or anti virus software is setup to block communication ports, then the NeuroShell Trader Server will not be able to communicate with the clients. In this case, you will need to create an exception for the Server Port and the Locator Port on the server and client computers.
- Conflicting Computer Port Settings
The Server port must be different from the Locator port. Both ports must be different from any other port used by any other application/service running on that machine. To check which ports are currently being used on a computer, try running ‘netstat -an’ in a command prompt. The netstat command will show the TCP ports (near top) and UDP ports (near bottom) currently in use. If in doubt, choose a server port (TCP) and a locator port (UDP) that is not listed by the netstat command. Since port numbering goes up to 65535, finding a non-conflicting port is usually not a problem.
- Computer Names can make a difference
One user has reported that after changing his computer name from ‘MEGA’ to ‘Technical’ the client suddenly became visible to the server. To change the name of a computer, right click computer, go to properties and click on change and change the computer name. We are not sure why this worked, but we think it is worth trying as it seems to have fixed this particular user’s issues trying to run distributed network optimization.
Note that Ward Systems Group, Inc. provides no guarantee or warranty that NeuroShell Trader will work properly in a distributed processing mode across a computer network. The distributed processing features of NeuroShell Trader are provided only on an “as is” basis. Since troubleshooting network issues is extremely difficult even on-site, Ward Systems Group, Inc. can not provide technical support for any network issues. Contact your Network Administrator for assistance with any network problems you may encounter.