[경고, 주제 닫힘!] 포럼을 어지럽히지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 당신 없이는 어디에도 없습니다. - 페이지 127

 
아니요.
 

이러한 질문: 표준 OA 표시기에서 표시기 그리기와 관련이 없는 2개의 추가 색인 버퍼 가 사용됩니다.

 //+------------------------------------------------------------------+
//|                                                  Accelerator.mq4 |
//|                      Copyright © 2005, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property  copyright "Copyright © 2005, MetaQuotes Software Corp."
#property  link      "http://www.metaquotes.net/"
//---- indicator settings
#property  indicator_separate_window
#property  indicator_buffers 3
#property  indicator_color1  Black
#property  indicator_color2  Green
#property  indicator_color3  Red
//---- indicator buffers
double     ExtBuffer0 [ ] ;
double     ExtBuffer1 [ ] ;
double     ExtBuffer2 [ ] ;
double     ExtBuffer3 [ ] ;
double     ExtBuffer4 [ ] ;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init ( )
  {
//---- 2 additional buffers are used for counting.
   IndicatorBuffers ( 5 ) ;
//---- drawing settings
   SetIndexStyle ( 0 , DRAW_NONE ) ;
   SetIndexStyle ( 1 , DRAW_HISTOGRAM ) ;
   SetIndexStyle ( 2 , DRAW_HISTOGRAM ) ;
   IndicatorDigits ( Digits + 2 ) ;
   SetIndexDrawBegin ( 0 , 38 ) ;
   SetIndexDrawBegin ( 1 , 38 ) ;
   SetIndexDrawBegin ( 2 , 38 ) ;
//---- 4 indicator buffers mapping
   SetIndexBuffer ( 0 , ExtBuffer0 ) ;
   SetIndexBuffer ( 1 , ExtBuffer1 ) ;
   SetIndexBuffer ( 2 , ExtBuffer2 ) ;
   SetIndexBuffer ( 3 , ExtBuffer3 ) ;
   SetIndexBuffer ( 4 , ExtBuffer4 ) ;
//---- name for DataWindow and indicator subwindow label
   IndicatorShortName ( "AC" ) ;
   SetIndexLabel ( 1 , NULL ) ;
   SetIndexLabel ( 2 , NULL ) ;
//---- initialization done
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+
//| Accelerator/Decelerator Oscillator                               |
//+------------------------------------------------------------------+
int start ( )
  {
   int    limit ;
   int    counted_bars = IndicatorCounted ( ) ;
   double prev , current ;
//---- last counted bar will be recounted
   if ( counted_bars > 0 ) counted_bars - - ;
   limit = Bars - counted_bars ;
//---- macd counted in the 1-st additional buffer
   for ( int i = 0 ; i & lt ; limit ; i + + )
      ExtBuffer3 [ i ] = iMA ( NULL , 0 , 5 , 0 , MODE_SMA , PRICE_MEDIAN , i ) -
                    iMA ( NULL , 0 , 34 , 0 , MODE_SMA , PRICE_MEDIAN , i ) ;
//---- signal line counted in the 2-nd additional buffer
   for ( i = 0 ; i < limit ; i + + )
      ExtBuffer4 [ i ] = iMAOnArray ( ExtBuffer3 , Bars , 5 , 0 , MODE_SMA , i ) ;
//---- dispatch values between 2 buffers
   bool up = true ;
   for ( i = limit - 1 ; i > = 0 ; i - - )
     {
      current = ExtBuffer3 [ i ] - ExtBuffer4 [ i ] ;
      prev = ExtBuffer3 [ i + 1 ] - ExtBuffer4 [ i + 1 ] ;
      if ( current > prev ) up = true ;
      if ( current & lt ; prev ) up = false ;
      if ( ! up )
        {
         ExtBuffer2 [ i ] = current ;
         ExtBuffer1 [ i ] = 0.0 ;
        }
      else
        {
         ExtBuffer1 [ i ] = current ;
         ExtBuffer2 [ i ] = 0.0 ;
        }
       ExtBuffer0 [ i ] = current ;
     }
//---- done
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+

보시다시피 이러한 배열에서는 계산만 수행됩니다. 이 배열에 인덱스 버퍼의 상태를 지정해야 하는 이유를 이해하지 못합니까?

[삭제]  
neoclassic писал(а) >>

이러한 질문: 표준 OA 표시기에는 표시기 그리기와 관련이 없는 2개의 추가 색인 버퍼가 사용됩니다.

보시다시피 이러한 배열에서는 계산만 수행됩니다. 이 배열에 인덱스 버퍼의 상태를 지정해야 하는 이유를 이해하지 못합니까?

배열의 크기를 설정합니다!

[삭제]  

안녕하세요, 포럼 사용자입니다!

저는 MQL에 대해 완전히 무지합니다. 하지만 그런 단순한 Expert Advisor를 갖고 싶습니다. 포즈가 좀 많이 퍼집니다. 고정 정지가 즉시 설정됩니다(20-30p.). 일정 이익(20~30p.)에 도달한 후 해당 포지션의 일부가 청산되고(50%), 나머지 포지션은 손익분기점으로 이동합니다. 이익 주문은 나머지 포지션에 배치되거나 수동으로 모니터링됩니다. 여기에 그러한 아이디어가 있습니다. 나는 대답에 대해 매우 감사 할 것입니다.

 
vvavva >> :

배열의 크기를 설정합니다!

그러나 많은 수의 어레이를 사용해야 하는 경우에는 어떻게 합니까? (8개 이상)

 

버퍼가 아닌 일반 배열 사용

대신에

SetIndexBuffer (3,ExtBuffer3);SetIndexBuffer(4,ExtBuffer4);

사용

ArrayResize(ExtBuffer3, 막대); ArrayResize(ExtBuffer4, 막대);

 
keekkenen >> :

버퍼가 아닌 일반 배열 사용

대신에

SetIndexBuffer(3,ExtBuffer3);SetIndexBuffer(4,ExtBuffer4);

사용

ArrayResize(ExtBuffer3, 막대); ArrayResize(ExtBuffer4, 막대);


감사해요!!

[삭제]  
neoclassic писал(а) >>

그러나 많은 수의 어레이를 사용해야 하는 경우에는 어떻게 합니까? (8개 이상)

칠면조에서 그리기 위한 배열은 설정된 제한(8개인 것 같습니다)보다 많습니다. nezya!

계산을 위한 일반 배열에도 제한이 있지만 숫자가 더 큽니다!

일반 배열의 제한을 피하려면 라이브러리를 사용해야 합니다!

 
질문이 있습니다. 뉴스 웨이터를 만들 수 있습니까? 오늘 뉴스가 있고 정확한 시간을 알 수 없고 대략적인 텍스트가 한 단어라고 가정해 보겠습니다. 더 길고 더 큰 소리 신호가 필요하면 할 수 있습니다.
 
안녕하세요, 새로운 막대 가 아직 형성되기 시작하지 않은 순간(가능한 모든 상황)에 k=Bars 변수가 변경될 수 있기 때문에 가능한 한 많은 옵션을 알려주세요. 통화 쌍, 기간, 일부를 변경했다고 가정해 보겠습니다. 일종의 mt4 업데이트 또는 d.c.