인공 신경망. - 페이지 14

 

여기요,

NS가 어떻게 했는지 알려 드리겠습니다.

나는 퍼셉트론(Kohonen에 따름), 칠면조에 의한 신호 변형 및 출력(Grosberg에 따름)을 만들었습니다.

모든 매개 변수는 동적입니다. 가격은 한 곳에 고정되어 있지 않습니다.

 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;

시장이 열리면 모든 것이 작동하기 시작합니다(유럽, 미국, 아시아). 그런 다음 움직임이 형성됩니다.

퍼셉트론 () 나는 그것이 모든 사람에게 분명하다고 생각합니다. 유일한 것은 데이터 피드가 동적이라는 것입니다.

BL,BL2,BL3 음, 이것은 신호(Grosberg)가 있기 위해 퍼셉트론 자체가 통과해야 하는 계산입니다.

문을 통과하는 방법.

글쎄, 나는 당신에게 계획이 명확했다고 생각합니다.

 

내가 최근에 게시한 코드를 다음 날 가격에 넣을 것입니다.

테스트용 EA로 MT4용 코드(MT5에서는 쉽게 수행할 수 있다고 생각합니다).

 //+------------------------------------------------------------------+
//|                                                    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 );
  }
//+------------------------------------------------------------------+
 

죄송합니다 . 파일을 혼동했습니다 . 가격 변동률에 대한 상위 코드입니다.

이 사람은 이길 것입니다:

//+------------------------------------------------------------------+
//|                                              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);
  }
//+------------------------------------------------------------------+