[아카이브!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 2. - 페이지 221

 

이것은 Expert Advisors가 구현하는 기능 중 하나입니다. 물론 후행 마침표 포함 하는 어드바이저를 작성할 수 있습니다(물론 이러한 어드바이저는 이미 많은 수로 작성되었습니다).

MT 터미널에는 Expert Advisor와 연결되지 않은 일반 후행도 있습니다.

 
alsu :


MT 터미널에는 Expert Advisor와 연결되지 않은 일반 후행도 있습니다.

고맙습니다. 내가 물은 것은 그에 관한 것이었다. 그럼 또 다른 질문. MQL4를 이해하는 데 시간이 얼마나 걸렸습니까? 내 말은 프로가 되지 않고 A부터 Z까지 멋진 조언자를 쓰는 것이 아닙니다. 하지만 적어도 이미 준비된 것을 조정해야 할 위치는 알고 있어야 합니다. 나 자신에 대해 더 명확하게 하기 위해: 이 단계에서 나는 오퍼레이터를 이해합니다. 연구한지 2주가 지났습니다. 가능성은 무엇이라고 생각하십니까? 반복합니다. 근처에 누구에게 물어볼 선생님이 없습니다.

답변에 감사드립니다.

[삭제]  

얘들아 이건 그냥 주석이야!!! (((

해외 DC를 선택해서 해외에서 계좌를 개설하고 싶은데... 못찾겠어요....리뷰에 따르면 다 사기이고 "SHARASHKINA OFFICE"인것 같습니다....((

MT4로 사무실을 알려주세요....감사합니다!!!!!

 
마찬가지로 새로운 피노키오는 믿을 수 있는 기적의 들판을 찾고 있습니다. 웃기지 마세요. :)
 

단일 라인 표시기.

 #property indicator_separate_window    
#property indicator_buffers 1         
#property indicator_color1 Aqua      

   int index;
   double TickPrice[1000];
//--------------------------------------------------------------------
int init()                          
  {
   SetIndexBuffer ( 0 ,TickPrice);          
   SetIndexStyle ( 0 , DRAW_LINE , STYLE_SOLID , 1 ); 
   return ;                          
  }
//--------------------------------------------------------------------
int start()                         
  {
  
      TickPrice[index] = Bid;
      index++;

   return ;                         
  }
//--------------------------------------------------------------------

문제.

오른쪽에서 왼쪽 으로 선을 그리는 이유는 무엇입니까?

 

그리고 그렇게 하면?

 #property indicator_separate_window    
#property indicator_buffers 1         
#property indicator_color1 Aqua      

   int index= 1000 ;
   double TickPrice[ 1000 ];
//--------------------------------------------------------------------
int init()                          
  {
   SetIndexBuffer ( 0 ,TickPrice);          
   SetIndexStyle ( 0 , DRAW_LINE , STYLE_SOLID , 1 ); 
   return ;                          
  }
//--------------------------------------------------------------------
int start()                         
  {
  
      TickPrice[index] = Bid;
      index -- ;

   return ;                         
  }
//--------------------------------------------------------------------
 

안녕하세요, 일일 막대가 다른 시간에 시작되도록 다시 그리는 표시기를 어디에서 찾을 수 있는지 알려주십시오.

예: 터미널 시간은 00:00입니다. 표시기의 입력 매개변수에서 설정: +4. 주간 바는 이제 4:00에 시작됩니다.

미리 감사드립니다.

 
DhP :

그리고 그렇게 하면?


예, 그게 더 좋습니다. 올바른 방향으로 그리기 시작했습니다. 그러나 index--이면 언젠가는 index==0이 되고 모든 것이 종료됩니다.

어떻게 운동을 계속할 것인가?

 
artmedia70 :
그리고 배열의 크기가 증가하는 부분은 어디입니까? 값을 어디에 쓸까요? ( ArrayResize() 함수 )


주문 및 위치 유형에 따라 배열로 정렬하는 것은 다음과 같습니다.

 int OrderStatus() {
   int z1= 1 , z2= 1 , z3= 1 , z4= 1 ;
   if (B> 0 ) { ArrayResize (TicketB,B);}
   if (S> 0 ) { ArrayResize (TicketS,S);}
   if (BS> 0 ) { ArrayResize (TicketBS,BS);}
   if (SS> 0 ) { ArrayResize (TicketSS,SS);}
   int i, k= OrdersTotal ();
      for (i= 1 ; i<=k; i++) {
         if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {
             if (OrderType()==OP_BUYSTOP && OrderSymbol()== Symbol () && OrderMagicNumber()==MG) {
            TicketBS[z1]=OrderTicket();
            z1++;
            }
             if (OrderType()==OP_SELLSTOP && OrderSymbol()== Symbol () && OrderMagicNumber()==MG) {
            TicketSS[z2]=OrderTicket();
            z2++;
            }
             if (OrderType()==OP_BUY && OrderSymbol()== Symbol () && OrderMagicNumber()==MG) {
            TicketB[z3]=OrderTicket();
            z3++;
            }
             if (OrderType()==OP_SELL && OrderSymbol()== Symbol () && OrderMagicNumber()==MG) {
            TicketS[z4]=OrderTicket();
            z4++;
            }
         }
      }
}

그러나 매수 및 매도 포지션의 수익성에 따른 추가 정렬은 작동하지 않았습니다. 현재 0을 삽입합니다.

 int OrderVBezubitok() {
   int k1= 0 , k2= 0 ;
   ArrayResize (TicketBez,B+S);
   ArrayResize (TicketTral,B+S);
   int i;
   if ( ArraySize (TicketB)> 0 ) {
       for (i= 1 ; i< ArraySize (TicketB)+ 1 ; i++) {
             OrderSelect (TicketB[i], SELECT_BY_TICKET, MODE_TRADES);
             if (OrderProfit()> 0 ) {k1++; TicketTral[k1]=TicketB[i];} 
             else {k2++; TicketBez[k2]=TicketB[i];}
                       
         
      }
   }
   if ( ArraySize (TicketS)> 0 ) {
       for (i= 1 ; i< ArraySize (TicketS)+ 1 ; i++) {
             OrderSelect (TicketS[i], SELECT_BY_TICKET, MODE_TRADES);
             if (OrderProfit()> 0 ) {k1++; TicketTral[k1]=TicketB[i];} 
             else {k2++; TicketBez[k2]=TicketB[i];}
                       
         
      }
   }      
}

왜요? 내가 이해할 수없는

[Deleted]  

안녕하세요 친구!

이것이 올바른 주소인지 모르겠습니다. 포럼의 첫 번째 게시물입니다.

도와주세요.

누군가 비슷한 일을 겪었을 수도 있습니다.

문제는 다음입니다. 해당 기간의 최고가와 최저 가격을 검색하는 지표를 작성하고 있습니다. 찾은 후 최대값을 최소값으로 나누어 별도의 창에 표시하고 싶습니다.

그러나 창은 비어 있습니다.

덧셈, 뺄셈, 곱셈 등을 할 때 MAX 및 MIN 표시기가 정상적으로 표시됩니다.

다음은 코드입니다. 그는 아주 작습니다.

 #property indicator_separate_window
#property indicator_buffers 3

#property indicator_color1 MediumSpringGreen
#property indicator_color2 Crimson
#property indicator_color3 LightGray

#property indicator_width1 1
#property indicator_width2 1
#property indicator_width3 1

extern int Buy_bars = 20 ;           //Количество баров для открытия позиции
extern int Sell_bars = 23 ;           //Количество баров для закрытия позиции  

double    buf_0[],                   //индикаторныЙ массив максимумов 
         buf_1[],                   //индикаторныЙ массив минимумов 
         buf_sr[] ;                 //индикаторныЙ массив средних значений
//extern int Shift = 0;

int init()
  {
   SetIndexBuffer ( 0 , buf_0);
   SetIndexStyle ( 0 , DRAW_LINE );
   SetIndexLabel ( 0 , "Maximum" );
   SetIndexShift ( 0 , 0 );
   
   SetIndexBuffer ( 1 , buf_1);
   SetIndexStyle ( 1 , DRAW_LINE );
   SetIndexLabel ( 1 , "Minimum" );
   SetIndexShift ( 1 , 0 );
   
   SetIndexBuffer ( 2 , buf_sr);
   SetIndexStyle ( 2 , DRAW_LINE );
   SetIndexLabel ( 2 , "Srednyaya" );
   SetIndexShift ( 2 , 0 );
   
   return ;
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int i, k ,t;
   int     counted_bars=IndicatorCounted();
//----
   i = Bars - counted_bars - 1 ;
   while (i >= 0 )
   {
       double max = 0 ;
       double min = 999999999999.99 ;
   
   for (k=i ; k<=i+Buy_bars- 1 ; k++)
      {
       if (High[k] > max) max = High[k];
      }
   for (t=i; t<=i+Sell_bars- 1 ; t++)  
      {
       if (Low[t] < min) min = Low[t];
      }
        
   i--;
   

   buf_sr[i] = (max/min);
   }
   return ;
  }
//+------------------------------------------------------------------+

오류를 지정합니다.

미리 감사합니다