//+------------------------------------------------------------------+ //| Warrior_EA | //| AnimateDread | //| | //+------------------------------------------------------------------+ #include "..\Expert\ExpertSignalAIBase.mqh" // wizard description start //+------------------------------------------------------------------+ //| Description of the class | //| Title=Signals of indicator 'Convolutional AI' | //| Type=SignalAdvanced | //| Name=Convolutional AI | //| ShortName=CONV | //| Class=CSignalCONV | //| Page=signal_conv | //+------------------------------------------------------------------+ // wizard description end //+------------------------------------------------------------------+ //| Class CSignalCONV. | //| Purpose: Class of generator of trade signals based on | //| the 'Convolutional AI Neural Network. | //| Is derived from the CExpertSignalAIBase class. | //| Only the network topology differs from the other AI signals: an | //| input layer feeds a Conv+Pool stage before the common tapering | //| hidden-layer stack (see AddCustomLayers). | //+------------------------------------------------------------------+ class CSignalCONV : public CExpertSignalAIBase { protected: virtual bool AddCustomLayers(CArrayObj *topology) override; public: CSignalCONV(void); //--- method of creating the indicator and timeseries virtual bool InitIndicators(CIndicators *indicators) override; }; //+------------------------------------------------------------------+ //| Constructor | //+------------------------------------------------------------------+ CSignalCONV::CSignalCONV(void) { SetIdentity("Convolutional", "CONV"); } //+------------------------------------------------------------------+ //| Create indicators and bootstrap/load the network. | //+------------------------------------------------------------------+ bool CSignalCONV::InitIndicators(CIndicators *indicators) { return InitNeuralNetwork(indicators); } //+------------------------------------------------------------------+ //| Conv + Pool layers inserted between the input layer and the | //| common tapering hidden-layer stack. | //+------------------------------------------------------------------+ bool CSignalCONV::AddCustomLayers(CArrayObj *topology) { return AddConvStage(topology); } //+------------------------------------------------------------------+