Reti neurali artificiali. - pagina 14

 

Ciao,

Cercherò di dirvi come ho fatto il NS.

Ho fatto un perceptron (di Kohonen), variazioni per il segnale indotto e l'uscita (di Grosberg).

Tutti i parametri sono dinamici - il prezzo non rimane in un posto.

bool var2  - и здес разписал разные варианты .

// Логика для покупка
      if ((var2 && perceptron()>BL) 
      ||  (var3 && perceptron()>BL2) 
      ||  (var4 && perceptron()>BL3)) 

         NewPosition=OP_BUY; 

// Логика для продажа
      if ((war2 && perceptron()<SL) 
      ||  (war3 && perceptron()<SL2) 
      ||  (war4 && perceptron()<SL3)) 

         NewPosition=OP_SELL;

Tutto inizia a funzionare all'apertura dei mercati (Europa, America, Asia).

Penso che sia chiaro a tutti, ma l'alimentazione dei dati è dinamica.

BL, BL2, BL3 Bene, e calcolo, attraverso il quale dovrebbe passare il perceptron, quindi c'era un segnale (Grosberg).

Come attraversare la porta.

Beh, credo che lo schema sia chiaro per voi.

 

Metterò il codice, postato di recente per il prezzo il giorno successivo.

Il codice è per MT4 (penso che possa essere fatto facilmente per MT5), come EA per il test.

//+------------------------------------------------------------------+
//|                                                    statistic.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""
//Ну как сама формула:
//Close Tomorrow = Close Today + (Close Today - Close Yesterday) * Alfa
//+------------------------------------------------------------------+
int init(){return(0);}
int deinit(){Comment("");return(0);}
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//+------------------------------------------------------------------+                    
   double spead = MarketInfo(Symbol(),MODE_SPREAD);
   
   double open_d = iOpen(Symbol(),PERIOD_D1,0);
   double open_w = iOpen(Symbol(),PERIOD_W1,0);
   double open_m = iOpen(Symbol(),PERIOD_MN1,0);
   
   double open_d1 = iOpen(Symbol(),PERIOD_D1,1);
   double open_w1 = iOpen(Symbol(),PERIOD_W1,1);
   double open_m1 = iOpen(Symbol(),PERIOD_MN1,1);
   
   double clos_d = iClose(Symbol(),PERIOD_D1,1);
   double clos_w = iClose(Symbol(),PERIOD_W1,1);
   double clos_m = iClose(Symbol(),PERIOD_MN1,1);
   
   double perc_d = NormalizeDouble((((Close[0] - open_d)/open_d)*100),2);
   double perc_w = NormalizeDouble((((Close[0] - open_w)/open_w)*100),2);
   double perc_m = NormalizeDouble((((Close[0] - open_m)/open_m)*100),2);
   double perc_d_pr = NormalizeDouble((((clos_d - open_d1)/open_d1)*100),2);
   double perc_w_pr = NormalizeDouble((((clos_w - open_w1)/open_w1)*100),2);
   double perc_m_pr = NormalizeDouble((((clos_m - open_m1)/open_m1)*100),2);
//+------------------------------------------------------------------+
   double perc_y,perc_y_pr,open_y;
   datetime month;
   if(Month() > 1) month = Month()-1;else month = Month();
   open_y = iOpen(Symbol(),PERIOD_MN1,month);
   perc_y = NormalizeDouble((((Close[0] - open_y)/open_y)*100),2);
   perc_y_pr = NormalizeDouble((((clos_m - open_y)/open_y)*100),2);                                             
//+------------------------------------------------------------------+
   if(iVolume(Symbol(),PERIOD_D1,0) > 0 && iVolume(Symbol(),PERIOD_D1,0) < 2){
      Print("perc_d_pr = ",perc_d_pr);}
   if(iVolume(Symbol(),PERIOD_W1,0) > 0 && iVolume(Symbol(),PERIOD_W1,0) < 2){
      Print("perc_w_pr = ",perc_w_pr);}
   if(Month() > 1 && iVolume(Symbol(),PERIOD_MN1,0) > 0 && iVolume(Symbol(),PERIOD_MN1,0) < 2){
      Print("perc_m_pr = ",perc_m_pr,"perc_y_pr = ",perc_y_pr);}

   Comment("\nВреме на брокера: ",TimeToStr(TimeCurrent(),TIME_SECONDS),", Локално време: "+TimeToStr(TimeLocal(),TIME_SECONDS),
           "\nТекущ спред: ",DoubleToStr(spead/10,1),
           "\n perc_d:        ",perc_d,
           "\n perc_w:       ",perc_w,
           "\n perc_m:       ",perc_m,
           "\n perc_y:        ",perc_y
             );
   return(0);
  }
//+------------------------------------------------------------------+
 

Scusa, file sbagliato - codicesuperiore per la variazione percentuale del prezzo.

Questo è quello giusto:

//+------------------------------------------------------------------+
//|                                              statistic_1.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""
//Ну как сама формула:
//Close Tomorrow = Close Today + (Close Today - Close Yesterday) * Alfa
//+------------------------------------------------------------------+
int init(){return(0);}
int deinit(){Comment("");return(0);}
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//+------------------------------------------------------------------+                    
   double spead = MarketInfo(Symbol(),MODE_SPREAD);
   double Alfa,calc_cl,diff;  
   double open_d1 = iOpen(Symbol(),PERIOD_D1,1); 

   double clos_d1 = iClose(Symbol(),PERIOD_D1,1);   
   double clos_d2 = iClose(Symbol(),PERIOD_D1,2);
   double clos_d3 = iClose(Symbol(),PERIOD_D1,3);
   Alfa    = NormalizeDouble(((clos_d2 +(clos_d2 - clos_d3))/clos_d1),Digits);
   calc_cl = NormalizeDouble(((clos_d2 +(clos_d2 - clos_d3)) * Alfa),Digits);
   diff    = NormalizeDouble((clos_d1 - calc_cl),Digits);                        
//+------------------------------------------------------------------+
   if(iVolume(Symbol(),PERIOD_D1,0) > 0 && iVolume(Symbol(),PERIOD_D1,0) < 2){
      Print("Alfa = ",Alfa,"  clos_d1 =  ",clos_d1,"  calc_cl = ",calc_cl,"  diff = ",diff);
      }
   Comment("\nВреме на брокера: ",TimeToStr(TimeCurrent(),TIME_SECONDS),", Локално време: "+TimeToStr(TimeLocal(),TIME_SECONDS),
           "\nТекущ спред: ",DoubleToStr(spead/10,1)
             );
   return(0);
  }
//+------------------------------------------------------------------+
Motivazione: