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

 
41ckm39fi :
PrevSignal과 관련된 모든 것을 제거했지만 메시지가 표시되지 않습니다.

나는 코끼리도 눈치채지 못했다.

이것이 표시기이면 버퍼의 초기화를 수행하십시오.

#속성 표시기_차트_창

정수(){

표시기버퍼(2);

SetIndexBuffer(0,DeMarker_buffer0);

SetIndexBuffer(1,MA_buffer1);

SetIndexStyle(0,DRAW_NONE);

SetIndexStyle(1,DRAW_NONE);

}

ArraySetAsSeries..에 대한 호출을 제거하고

DeMarker_buffer0[i]= iDeMarker ( NULL , 0 , 14 , 1 );

1 대신 마지막 매개 변수를 넣으십시오.

 
keekkenen :

나는 코끼리도 눈치채지 못했다.

이것이 표시기이면 버퍼의 초기화를 수행하십시오.

#속성 표시기_차트_창

정수(){

표시기버퍼(2);

SetIndexBuffer(0,DeMarker_buffer0);

SetIndexBuffer(1,MA_buffer1);

SetIndexStyle(0,DRAW_NONE);

SetIndexStyle(1,DRAW_NONE);

}

ArraySetAsSeries..에 대한 호출을 제거하고

1 대신 마지막 매개 변수를 넣으십시오.


다음은 일어난 일입니다.

 #property  indicator_level1 0.3
#property  indicator_level2 0.7
#property indicator_chart_window
//---- 
extern int         period_MA            = 5 ,
                  period_DeMarker      = 14 ;
//---- 
double             DeMarker_buffer0[],
                  MA_buffer1[],
                  Signal_Buffer2[];       
#define SIGNAL_BAR 1
 //+------------------------------------------------------------------+
int init()
{

IndicatorBuffers( 2 );

SetIndexBuffer ( 0 ,DeMarker_buffer0);

SetIndexBuffer ( 1 ,MA_buffer1);

SetIndexStyle( 0 , DRAW_NONE );

SetIndexStyle( 1 , DRAW_NONE );

return ( 0 );
  }
   //+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//|   
//+------------------------------------------------------------------+
int start()
  {
   int     i,limit= ArraySize (DeMarker_buffer0);
        
   int     counted_bars=IndicatorCounted();
//----
   if (counted_bars> 0 ) counted_bars--;
   limit= Bars -counted_bars;
//----
   for (i=limit; i>= 0 ; i--)
  DeMarker_buffer0[i]= iDeMarker ( NULL , 0 , 14 ,i);
//---- 
   for (i=limit; i>= 0 ; i--)
  
  MA_buffer1[i]=iMAOnArray(DeMarker_buffer0,limit, 5 , 0 , MODE_LWMA ,i);
//----  
                 if (MA_buffer1[SIGNAL_BAR] - 0.3 > 0 && 0.3 - MA_buffer1[SIGNAL_BAR+ 1 ] >= 0 )  
//---- 
                                 Alert ( "sMA(" , Symbol (), ", " , Period (), ")  -  BUY!!!" );
//----
                 if ( 0.7 - MA_buffer1[SIGNAL_BAR] > 0 && MA_buffer1[SIGNAL_BAR+ 1 ] - 0.7 >= 0 )
//----               
                                 Alert ( "sMA(" , Symbol (), ", " , Period (), ")  -  SELL!!!" );
                        
   return ( 0 );
  }

하지만 이 라인은 나를 혼란스럽게 한다

MA_buffer1[i]=iMAOnArray(DeMarker_buffer0,limit, 5 , 0 , MODE_LWMA ,i);

다른 합성 지표에서는 한계 대신 막대가 기록됩니다.

 
41ckm39fi :


다음은 일어난 일입니다.

하지만 이 라인은 나를 혼란스럽게 한다

다른 합성 지표에서는 한계 대신 막대가 기록됩니다.




나도 혼란스러워.. 이 iMAOnArray() 함수, 두 번째 매개 변수가 0과 다른 경우 평균을 계산할 수 있는지 잘 모르겠습니다. 전체 배열 DeMarker_buffer0 에 대한 계산, 0으로 설정하는 것이 좋습니다..
 
keekkenen :
나도 혼란스러워.. 이 iMAOnArray() 함수, 두 번째 매개 변수가 0과 다른 경우 평균을 계산할 수 있는지 잘 모르겠습니다. 전체 DeMarker_buffer0 배열에 대한 계산을 수행하려면 0으로 설정하는 것이 좋습니다.
제한 대신 Bar를 등록하고 프로그램에서 메시지를 발행하기 시작했습니다!!! 모든 것이 내가 원하는 대로 작동하는 것 같습니다. 신호 막대가 닫힐 때까지 메시지만 여러 번 이동합니다.
 
안녕하세요. 나는 어드바이저를 다운로드하고, 저장하고, 컴파일하고, 터미널을 다시 로드했습니다. MT4에 추가된 Expert Advisor가 차트에 첨부되지 않은 이유를 알려주세요. 뭔가 잘못 되었습니까?
 
41ckm39fi :

내가 대신 바를 처방했습니다 ...

신호 막대가 닫힐 때까지 메시지만 여러 번 이동합니다.

여전히 0이 맞습니다.

시간 제어를 다시 가져옵니다..

 static int PrevTime = Time[0] ;
//---- 
if (PrevTime >= Time[ 0 ] ) return ( 0 );
//---- 
PrevTime = Time[ 0 ];

// а здесь проверяйте условия на алерт
 

나는 그 라인을 언급하는 것을 잊었다

 int     i,limit= ArraySize (DeMarker_buffer0);

나는 그것을 대체했다

 int     i,limit;

라인의 막대로 대체된 한계

MA_buffer1[i]=iMAOnArray(DeMarker_buffer0, Bars , 5 , 0 , MODE_LWMA ,i);

이제 PrevTime을 반환하고 두 번째 매개변수 Bars 를 0으로 바꾸라는 말을 하려고 합니다.

 

예를 들어, mql4 전문가가 저를 위해 일합니다.

extern 변수 를 실행할 때 일부 값을 설정합니다.

질문: 임의의 시점에서 변경할 수 있습니까?

작동 중 일부 EA 변수(예: 키보드에서) 및 EA가 다시 시작되지 않도록?

 
Jazzz :

예를 들어, mql4 전문가가 저를 위해 일합니다.

extern 변수를 실행할 때 일부 값을 설정합니다.

질문: 임의의 시점에서 변경할 수 있습니까?

작동 중 일부 EA 변수(예: 키보드에서) 및 EA가 다시 시작되지 않도록?


전역 수준 변수를 사용하는 경우 가능합니다. 어드바이저를 끄지 않고 키보드에서 값을 변경하려면 터미널에서 F3을 눌러야 합니다.
 
감사합니다!