"New Neural" ist ein Open-Source-Projekt für neuronale Netzwerke für die MetaTrader 5-Plattform. - Seite 32

 
Urain:
Sie sind ein kleines Missverständnis.
Du bist derjenige, der missverstanden wird :)
 
TheXpert:
Du bist derjenige, der das falsch verstanden hat :)
Na los, erklären Sie es mir.
 
<?xml version="1.0"?>
<NET>

  <!-- Слой входных нейронов --> 

  <LAYER CLASS="INDICATOR" NAME="IND">
    <NEURON NAME="NEURON:01.IND"> 
      <INDICATOR> IN\MAD</INDICATOR> 
      <SYMBOL> EURUSD</SYMBOL> 
      <TIMEFRAME> M15</TIMEFRAME> 
      <BUFFER> 0</BUFFER> 
      <OFFSET> 1</OFFSET> 
      <PARAM NAME="BAR_COMPLETE" TYPE="INT"> 2</PARAM> 
      <PARAM NAME="FAST_PERIOD" TYPE="INT"> 12</PARAM> 
      <PARAM NAME="SLOW_PERIOD" TYPE="INT"> 26</PARAM> 
      <PARAM NAME="APPLIED_PRICE" TYPE="APPLIED_PRICE"> PRICE_CLOSE</PARAM> 
    </NEURON> 
    <NEURON NAME="NEURON:02.IND"> 
      <INDICATOR> IN\RSI</INDICATOR> 
      <SYMBOL> EURUSD</SYMBOL> 
      <TIMEFRAME> M15</TIMEFRAME> 
      <BUFFER> 0</BUFFER> 
      <OFFSET> 1</OFFSET> 
      <PARAM NAME="PERIOD" TYPE="INT"> 3</PARAM> 
      <PARAM NAME="APPLIED_PRICE" TYPE="APPLIED_PRICE"> PRICE_CLOSE</PARAM> 
    </NEURON> 
    <NEURON NAME="NEURON:03.IND"> 
      <INDICATOR> IN\MAD</INDICATOR> 
      <SYMBOL> EURUSD</SYMBOL> 
      <TIMEFRAME> M15</TIMEFRAME> 
      <BUFFER> 0</BUFFER> 
      <OFFSET> 1</OFFSET> 
      <PARAM NAME="BAR_COMPLETE" TYPE="INT"> 2</PARAM> 
      <PARAM NAME="FAST_PERIOD" TYPE="INT"> 54</PARAM> 
      <PARAM NAME="SLOW_PERIOD" TYPE="INT"> 100</PARAM> 
      <PARAM NAME="APPLIED_PRICE" TYPE="APPLIED_PRICE"> PRICE_CLOSE</PARAM> 
    </NEURON> 
  </LAYER>

  <!-- Слой #1 нейронов на гип.тангенсе --> 

  <LAYER CLASS="TANH" NAME="HID:0"> 
    <NEURON NAME="NEURON:01.HID:0" BIAS="-0.552589"> 
      <LINK WEIGHT="0.816961" TO="NEURON:01.IND"/> 
      <LINK WEIGHT="0.653045" TO="NEURON:02.IND"/> 
      <LINK WEIGHT="0.619305" TO="NEURON:03.IND"/> 
    </NEURON> 
    <NEURON NAME="NEURON:02.HID:0" BIAS="-0.443185"> 
      <LINK WEIGHT="0.478712" TO="NEURON:01.IND"/> 
      <LINK WEIGHT="0.147732" TO="NEURON:02.IND"/> 
      <LINK WEIGHT="-0.207846" TO="NEURON:03.IND"/> 
    </NEURON> 
  </LAYER> 

  <!-- Слой #2 нейронов на гип.тангенсе --> 

  <LAYER CLASS="TANH" NAME="HID:1"> 
    <NEURON NAME="NEURON:01.HID:1" BIAS="0.390295"> 
      <LINK WEIGHT="-0.683868" TO="NEURON:01.HID:0"/> 
      <LINK WEIGHT="-0.91081" TO="NEURON:02.HID:0"/> 
    </NEURON> 
    <NEURON NAME="NEURON:02.HID:1" BIAS="0.0347438"> 
      <LINK WEIGHT="-0.00688827" TO="NEURON:01.HID:0"/> 
      <LINK WEIGHT="-0.262435" TO="NEURON:02.HID:0"/> 
    </NEURON>
  </LAYER> 

  <!-- Выходной слой нейронов на гип.тангенсе --> 
  <LAYER CLASS="TANH" NAME="OUT"> 
    <NEURON NAME="EURUSD:LOT.OUT" BIAS="0.586392"> 
      <LINK WEIGHT="-0.812841" TO="NEURON:01.HID:1"/> 
      <LINK WEIGHT="0.0548534" TO="NEURON:02.HID:1"/> 
    </NEURON> 
  </LAYER> 

</NET>

//-----------------------------------------------------------------------------
//                                  CNeuron                                   !
//-----------------------------------------------------------------------------

class CNeuron {

public:
  
  // Constructor procedures 
  
  void          CNeuron ();
  virtual void ~CNeuron ();
  
  virtual bool Init (CXmlElement *aXmlElement, CNet *aNet);
  virtual void Upload ();
  
  // Main procedures 

  virtual bool Run ();
  virtual float GetValue ();
  
};


CNeuron* CreateNeuron(string aClass) {

  CNeuron *n=NULL;
  
  if (aClass=="")           n = new CNeuron;           else
  if (aClass=="BIAS")       n = new CNeuronBias;       else
  if (aClass=="INDICATOR")  n = new CNeuronIndicator;  else 
  if (aClass=="EXTERN")     n = new CNeuronService;    else 
  if (aClass=="MSE")        n = new CNeuronMSE;        else
  if (aClass=="PROFIT")     n = new CNeuronProfit;     else
  if (aClass=="LINEAR")     n = new CNeuronLinear;     else
  if (aClass=="SIGMOID")    n = new CNeuronSigmoid;    else
  if (aClass=="TANH")       n = new CNeuronTanh;       else
  if (aClass=="SIN")        n = new CNeuronSin;        else
  if (aClass=="COS")        n = new CNeuronCos;        else
  if (aClass=="DISTANCE")   n = new CNeuronDistance;   else
  if (aClass=="WINNER")     n = new CNeuronWinner; 

  return(n);
};
 
yu-sha:

Das Speichern in XML ist gut. Gibt es einen XML-Parser für MQL5?

Du kannst nicht dllki machen.

 
TheXpert:

Das Speichern in XML ist gut. Gibt es einen XML-Parser für MQL5?

Mit DLLs ist das nicht möglich.

Ich habe es einmal gemacht - es ist etwas übrig geblieben

dauert es 2 Tage.

Sie können den msxml-Parser aus der Standard-DLL verwenden, aber er ist sehr ressourcenintensiv.

P.S.

jede Entität sollte in der Lage sein, sich von/nach XML zu initialisieren/speichern

 
yu-sha:

XML ist eine gute Idee, die ich unterstütze. Sie können das Raster mit XSLT in Canvas-Code umwandeln und im Web anzeigen. Stecken Sie es zum Beispiel in die MQL5-Forum-Engine. Laden Sie die Datei einfach in die Kommentarfunktion hoch, und schon steht Ihnen die gesamte Gittertopologie zur Verfügung.

Wenn MQL5 Unterstützung für reg-Ausdrücke hätte, könnte der Parser in einer halben Stunde geschrieben werden.

 
Vitalität:
XML ist eine gute Idee, ich unterstütze sie. Sie können das Raster über XSLT in Canvas-Code parsen und im Web anzeigen. Zum Beispiel in MQL5 Forum Engine. Laden Sie die Datei in die Kommentare hoch, und schon haben Sie die gesamte Gittertopologie zur Hand.

Ich habe mich nicht sofort für diese Art von Organisation entschieden - es war eine Qual für mich.

Deshalb empfehle ich es.

Mit xml können Sie visuelle Editoren aller Art verwenden, Sie können Ihre eigenen Visualisierer/Konfiguratoren schreiben.

 
Vitalität:
XML ist eine gute Sache, ich unterstütze sie, .......

+10000.

Ich wünschte, die Entwickler machten es so einfach wie möglich, mit ihnen zu arbeiten, und machten es so bequem wie möglich, ohne zusätzliche DLL und Win API (oder besser gesagt, sie versteckten alles in den Tiefen der Sprache, und gab uns die sauberste MQL).

 
yu-sha:

Jede Entität muss in der Lage sein, sich selbst von/nach XML zu initialisieren/speichern

Es ist wahrscheinlich besser, eine Fabrik zu verwenden