포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 217

 
artmedia70 :


나는 확인을 위해 경고 를 일으키려고 시도하지만 아무것도 종료하지 않습니다. 사실 내 지표는 마지막 세 막대 동안 변경되지 않습니다. 잘못된 움직임을 차단하도록 조정되었습니다.

예를 들어 커지면 커지지만 지정된 필터 내에서 다음과 같은 움직임이 발생하면 변경되지 않고 엄격하게 수평으로 이동합니다. 지표의 평면 이전에 마지막 두 값을 비교하고 추세를 결정할 필요가 있습니다. 필요하시면 코드를 보내드릴까요?

 
Forexman77 :

나는 확인을 위해 경고를 일으키려고 시도하지만 아무것도 종료하지 않습니다. 사실 내 지표는 마지막 세 막대 동안 변경되지 않습니다. 잘못된 움직임을 차단하도록 조정되었습니다.

예를 들어 커지면 커지지만 지정된 필터 내에서 다음과 같은 움직임이 발생하면 변경되지 않고 엄격하게 수평으로 이동합니다. 지표의 평면 전에 마지막 두 값을 비교하고 추세를 결정할 필요가 있습니다. 필요하시면 코드를 보내드릴까요?

어드바이저에서 표시선 의 가장 가까운 극한값을 찾는 방법을 알려 드렸습니다. nBars를 Bars와 동일하게 만들거나 nBars를 Bars로 교체
 
artmedia70 :
어드바이저에서 표시선의 가장 가까운 극한값을 찾는 방법을 알려 드렸습니다. nBars를 Bars와 동일하게 만들거나 nBars를 Bars로 교체

이제 a, b 또는 c와 같은 값을 호출할 때 많은 매개변수가 나옵니다.

표시기 코드:

 #property copyright ""
#property link       ""
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
//--- input parameters

//--- buffers
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle( 0 , DRAW_LINE , 0 , 2 );
   SetIndexBuffer ( 0 ,ExtMapBuffer1);
   IndicatorDigits( Digits + 1 );
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
     int counted_bars=IndicatorCounted(),                      
    limit;
     double
    raznica,raznica_static,
    MA_1_t,                                                  
    MA_2_t;
 
   if (counted_bars> 0 )
      counted_bars--;
   
   limit= Bars -counted_bars;
   
   static double MA_otshet;
   for ( int i= 0 ;i<limit;i++)
   {
      MA_1_t= iMA ( NULL , 0 , 7 , 0 , MODE_EMA , PRICE_CLOSE ,i+ 0 );  
      MA_2_t= iMA ( NULL , 0 , 7 , 0 , MODE_EMA , PRICE_CLOSE ,i+ 1 ); 
      raznica=MA_1_t-MA_2_t;
      raznica_static=MA_1_t-MA_otshet;
       if (raznica_static > - 0.001 && raznica_static < 0.001 )
      {
      ExtMapBuffer1[i]=MA_otshet;
      }
       else
       if (raznica > - 0.001 && raznica < 0.001 )
      {
      ExtMapBuffer1[i]=MA_2_t;
      MA_otshet=MA_2_t;
      }
       if ((raznica > 0.001 ) || (raznica <- 0.001 ))
      {
      ExtMapBuffer1[i]=MA_1_t;
      }
   }
   return ( 0 );
  }
//+------------------------------------------------------------------+
 
하지마... 조언자에서 당신이 하고 있는 일을 보여주는 것이 좋을 것입니다. 지표에서 데이터를 어떻게 얻습니까?
 
artmedia70 :
하지마... 조언자에서 당신이 하고 있는 일을 보여주는 것이 좋을 것입니다. 지표에서 데이터를 어떻게 얻습니까?

특별한 것은 없습니다. Alert에 전화를 걸어 가장 가까운 최대값을 봅니다.)

1 일 1일에 지표를 로드하고, 3일 동안 변경 없이, 아마도 이것이 문제일까요?

(i=2; i<막대; i++) {
더블 a=iCustom(NULL, 0, "EMAF",0,0,i+1);
더블 b=iCustom(NULL, 0, "EMAF",0,0,i);
더블 c=iCustom(NULL, 0, "EMAF",0,0,i-1);
if ((ab)*(bc)<0) {
if (b<c) {
;// 바닥을 찾았습니다
}
if (b>c) {
Alert("b=",b) // 스파이크 발견
}
}
}

 
Forexman77 :

특별한 것은 없습니다. Alert에 전화를 걸어 가장 가까운 최대값을 봅니다.)

1일 1일에 지표를 로드하고, 3일 동안 변경 없이, 아마도 이것이 문제일까요?

(i=2; i<막대; i++) {
더블 a=iCustom(NULL, 0, "EMAF",0,0,i+1);
더블 b=iCustom(NULL, 0, "EMAF",0,0,i);
더블 c=iCustom(NULL, 0, "EMAF",0,0,i-1);
if ((ab)*(bc)<0) {
if (b<c) {
;// 바닥을 찾았습니다
}
if (b>c) {
Alert("b=",b) // 스파이크 발견
}
}
}

문제는 이것이 될 수 없습니다. 우리는 Bar 전에 사이클을 수행했습니다. 경고 후에 break를 입력합니다.
 
artmedia70 :
문제는 이것이 될 수 없습니다. 우리는 Bar 전에 사이클을 수행했습니다. 경고 다음에 break를 입력합니다.

휴식 후; 하나의 메시지가 나타납니다. 그러나 값이 표시기에 해당하지 않습니다. 아마도 표시기 자체와 관련이 있습니까?
라인 표시기는 내가 얼마나 필요한지 보여줍니다. 지표는 현재 상황에 해당하는 세 가지 조건에서 계산 됩니다.
 
Forexman77 :
휴식 후; 하나의 메시지가 나타납니다. 그러나 값이 표시기에 해당하지 않습니다. 아마도 표시기 자체와 관련이 있습니까?
라인 표시기는 내가 얼마나 필요한지 보여줍니다. 지표는 현재 상황에 해당하는 세 가지 조건에서 계산됩니다.

경고 대신("b=",b); 입력하다:

 Alert ( "Цена b=" +DoubleToStr(b, Digits )+ "\nВремя бара=" +TimeToStr(Time[i]));
 
artmedia70 :

Alert("b=",b) 대신; 입력하다:



작동하지 않습니다. 다른 것을 시도했습니다. 값이 명백히 부적절하게 얻어지며,

모든 값의 시간은 "Bar time=2010.11.04 00:00"입니다. 스크립트를 통해 전화를 겁니다.

아마도 요점은 지표에 있습니다. 값은 다음에서 얻습니다.

ExtMapBuffer1[i]

이것은 현재 순간에 해당하는 세 가지 다른 조건에서 얻은 것입니다.

나는 EURUSD의 현재 가치를 호출합니다. 모든 것이 정상입니다: 1.3717, 최고점에 대해서는 말할 수 없습니다.

[삭제]  
얘들아 제발 코드좀 알려주지마 월초에 잔고 보여줬던 코드...