"New Neural", MetaTrader 5 platformu için bir sinir ağı motorunun Açık Kaynak projesidir. - sayfa 32

 
Ukrayna :
biraz yanlış anladın
anlamadın :)
 
TheXpert :
anlamadın :)
Devam et, parçala. PS'yi dikkate alarak
 
<?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 :

XML'de kaydetmek iyidir. MQL5 için bir XML ayrıştırıcı var mı?

Yapamazsın.

 
TheXpert :

XML'de kaydetmek iyidir. MQL5 için bir XML ayrıştırıcı var mı?

Yapamazsın.

Bir kez yaptım - bir şey kaldı

2 gün boyunca "iş" var

özellikle tembelseniz, standart dll'den msxml ayrıştırıcısını kullanabilirsiniz, ancak bu çok kaynak gerektirir

not

her varlık, kendisini XML'den/XML'ye başlatabilmeli/kaydetebilmelidir

 
yu-sha :

XML bir şeydir, onu destekliyorum, ızgara XSLT aracılığıyla tuval koduna ayrıştırılabilir ve web'de gösterilebilir. Örneğin, MQL5 forum motoruna koyun. Dosyayı yorumlara yükledim ve tüm ağ topolojisi tam görünümde.

Reg için destek olsaydı. MQL5'teki ifadeler, ayrıştırıcı yarım saat içinde yazılır.

 
canlılık :
XML bir şeydir, onu destekliyorum, ızgara XSLT aracılığıyla tuval koduna ayrıştırılabilir ve web'de gösterilebilir. Örneğin, MQL5 forum motoruna koyun. Dosyayı yorumlara yükledim ve tüm ağ topolojisi tam görünümde.

hemen böyle bir organizasyona gelmedi - iyice acı çektim

bu yüzden tavsiye ederim

xml ile her türlü görsel düzenleyiciyi kullanabilir, kendi görselleştiricilerinizi/konfigüratörlerinizi yazabilirsiniz.

 
canlılık :
XML bir şeydir, desteklediğim ......

+10000.

Yine de, geliştiriciler onlarla çalışmayı mümkün olduğunca kolaylaştıracak, ek DLL'ler ve Win API'leri kullanmadan en uygun işlevselliği sağlayacaktı (ya da daha doğrusu, tüm bunlar dilin derinliklerinde gizliydi ve bize en saf olanı verildi). MQL).

 
yu-sha :

her varlık, kendisini XML'den/XML'ye başlatabilmeli/kaydetebilmelidir

Daha da iyisi, muhtemelen fabrika aracılığıyla