A graybox system should ideally be designed as a series of systems with subsystems. The subsystems will feed up the predictions while the control system will dictate what trades can be placed. Developing your graybox as a series of modular systems also enables possibilities for creating specific optimized sub systems for execution, for example.
The flow looks something as follows:
Prediction Sub Systems -> Master Controller -> Virtual Position Manager-> Execution Sub System
We can imagine two ways of operating the graybox. The first is to turn off and on various historically validated trading systems and to change their aggressiveness. The discretionary trader has some limited ability but can’t easily force their own trades. That could be a limitation. The fix is to create additional sub systems with simplified entry/exit logic for trading specific regimes. I think of these as “automaton” strategies or you might think of them as “naive” strategies that are optimized for specific conditions only. It is, also, possible you simply enable the ability to force both entries and exits via User Interface Controller. The complications arise because we are envisioning that the trader is running multiple systems on a specific instrument. Strategies might be both short and long at the same time. There must be a way to reconcile the differing positions. As well, let us imagine your system is long for a trend trade while you desire to scalp a measured move short. Once, you close your short then your system will need to re-establish its position.
A graybox system, also, requires something very important: a user interface. Customized proprietary displays, which may include indicators or non traditional displays, may also be valuable over exclusive chart based trading.