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

 

이와 같이:

 //+------------------------------------------------------------------+
extern string   _____ = "Параметры Длинных позиций" ; 
extern int     RSI_period  = 20 ;
extern int     MA_period          = 21 ;
extern int     TP = 200 ;
extern int     SL = 61 ;

extern string   ____ = "Параметры Коротких позиций" ;
extern int     RSI_period_SELL  = 20 ;          
extern int     MA_period_SELL          = 21 ;
extern int     TP_ = 200 ;
extern int     SL_ = 61 ;

//------------------------------
extern string     ______ = "Общие Параметры " ;
extern double  Lot = 0.1 ;
extern int     Slippage = 3 ;
extern int    Low_lim = 8 ;
extern int   Up_lim = 8 ;

int ExpertBars ;
int ticket ;

//*********************************************************************
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init ( )
  {
//----
ExpertBars = Bars ;
//----
   return ( 0 ) ;
  }

더 나아가:





 int start ( )
  {
bool isNewBar = false ;
if ( ExpertBars ! = Bars ) { ExpertBars = Bars ; isNewBar = true ; }
if ( isNewBar ) { //если есть новый бар
 
//===== Ищем возможность войти в рынок =========================================
if ( Long )                   {     //если "выключатель" включен
if ( ! ExpertOrder ( MagicLong ) ) //если  нет открытых длинных позиций 
  {
 //------заполняем массив значениями RSI для длинных позиций --------
double RSI_array_buy [ 50 ] ;
int    j = 0 ;
while ( j < 50 )
 {
RSI_array_buy [ j ] = iRSI ( NULL , 0 , RSI_period , MODE_SMA , j ) ;
j + + ;
 }
ArraySetAsSeries ( RSI_array_buy , true ) ;
double MA_low = iMAOnArray ( RSI_array_buy , 0 , MA_period , 1 , MODE_SMA , 0 ) ;
double RSI_0 = iRSI ( NULL , 0 , RSI_period , MODE_SMA , 1 ) ;
double RSI_1 = iRSI ( NULL , 0 , RSI_period , MODE_SMA , 2 ) ;   
//---------проверяем условие на покупку----------------------------
  if   (           ( RSI_1 < MA_low )  & &
          ( RSI_0 > MA_low )  )
   {
  ticket = OrderSend ( Symbol ( ) , 0 , Lot , Ask , Slippage , Bid - SL * Point , Ask + TP * Point , NULL , MagicLong , 0 , CLR_NONE ) ;
  if ( ticket < 0 ) { Print ( "Ошибка открытия ордера BUY #" , GetLastError ( ) ) ; return ( 0 ) ;   }          
   }
   } }
   //--------------------------------------------------------------
if ( Short )                   {     //если "выключатель" включен 
if ( ! ExpertOrder ( MagicShort ) ) //если  нет открытых длинных позиций 
  {  
 // ---заполняем массив значениями рси  для коротких  позиций
double RSI_array_sell [ 50 ] ;
int    k = 0 ;
while ( k < 50 )
 {
RSI_array_sell [ k ] = iRSI ( NULL , 0 , RSI_period_SELL , MODE_SMA , k ) ;
k + + ;
 }
ArraySetAsSeries ( RSI_array_sell , true ) ;
double MA_up = iMAOnArray ( RSI_array_sell , 0 , MA_period_SELL , 1 , MODE_SMA , 0 ) ;
double RSI_0s = iRSI ( NULL , 0 , RSI_period_SELL , MODE_SMA , 1 ) ;
double RSI_1s = iRSI ( NULL , 0 , RSI_period_SELL , MODE_SMA , 2 ) ;
    
//--------проверяем условие на продажу------------------------------
  if  (           ( RSI_1s > MA_up )  & &
          ( RSI_0s < MA_up ) ) 
   {       
  ticket = OrderSend ( Symbol ( ) , 1 , Lot , Bid , Slippage , Bid + SL_ * Point , Bid - TP_ * Point , NULL , MagicShort , 0 , CLR_NONE ) ;
  if ( ticket < 0 ) { Print ( "Ошибка открытия ордера SELL #" , GetLastError ( ) ) ; return ( 0 ) ;  }     
   } 
   } } 
 

고맙습니다!

 
안녕하세요! 작업 TF에서 더 젊고 더 오래된 시간 프레임의 신호를 표시하는 히스토그램 형식으로 ZZ를 만들려고 했지만 " 'ExtMapBuffer2' - 변수가 정의되지 않음 "이라는 오류가 5개 발생했습니다. 무엇이 잘못되었습니까? .. ... 어렵지 않다면 도와주세요! !감사합니다.
파일:
dinap_zzg.mq4  4 kb
 

여러분(동지:)))

누가 초보자를 도울 수 있습니까? ...

화살표 형태로 MAMy 표시기(코드 베이스에 있음)를 구현하려고 합니다.

마치 생긴 것 같으면서도 미형성된 막대에 화살표가 그려져 있고, 형성될 때까지 조건이 바뀌었다면 화살표가 제거되지 않고, 인디케이터를 재시작해야 화살표가 제거된다.

나는 화살표가 형성된 막대에만 그려지기를 원했습니다. 누구든지 시간이 있다면 - 실용적인 교훈을 가르치십시오 - 이 서투른 코드를 수정하십시오 ...

(불필요한 것을 찾을 가능성이 있습니다. 죄송합니다 (칠면조를 처음부터 작성하려면-내 손은 거기에서 자라지 않습니다-황금색이지만) 나는 여전히 다른 사람들의 공백을 사용합니다).

미리 감사드립니다.

파일:
 

많은 제거 감사합니다 !

이것이 바로 의사가 지시한 것입니다!

그리고 계좌 이력에서 차트에

그렇게 좋지 않은 것으로 나타났습니다.



 

plz는 mql에서 디버거를 시뮬레이트할 수 있는 방법을 알려주십시오(변수의 현재 값으로 알고리즘이 단계별로 작동하는 것을 보기 위해). 디버거가 없으면 키 입력을 기다리는 함수와 다음을 위한 함수가 있을 수 있습니다. 대화 상자 또는 이와 유사한 것을 표시합니까?

 

인쇄 기능을 찾았지만 이제 또 다른 질문이 생겼습니다. 표시기의 출력은 어떻게 작동합니까?

차트에 512개의 막대가 있습니다. 이론적으로 코드는 1x14 막대에 시작과 막대 번호를 인쇄한 다음 나머지에 주 및 막대 번호를 인쇄해야 하지만 어떤 이유로 시작만 맨 끝과 295 막대에서 인쇄됩니다. 무슨 일인지 말해주세요?

 #property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Yellow

extern int Param = 14 ;
extern double Razmah = 0.9 ;

double VH [ ] , VL [ ] , Rang = 0 , z = 0 , z1 = 0 , num = 0 , num1 = 0 ;
int init ( )
   {
   SetIndexBuffer ( 0 , VH ) ;
   SetIndexBuffer ( 1 , VL ) ;
   return ( 0 ) ;
   }
int start ( )
   {
   int i , counted_bars = IndicatorCounted ( ) ;
   if ( counted_bars < = Param + 1 ) 
   { 
       for ( i = 0 ; i < = Bars - counted_bars - 1 ; i + + )
       {
         VH [ i ] = High [ i ] ;
         VL [ i ] = Low [ i ] ;
         num + + ;
         Print ( "Start     " , num ) ;
       }
       return ( 0 ) ;
   }
   
   i = - 5 ;
   if ( counted_bars > Param + 1 ) i = Bars - counted_bars - 1 ;
   while ( i > = 0 )
     {
      num1 + + ;
       Print ( "Main     " , num1 ) ;
      VH [ i ] = High [ i ] * 1.01 ;
      VL [ i ] = Low [ i ] * 0.99 ;
      i - - ;
     }
   return ( 0 ) ;
   }
 
Andrej78 писал(а) >>

인쇄 기능을 찾았지만 이제 또 다른 질문이 생겼습니다. 표시기의 출력은 어떻게 작동합니까?

차트에 512개의 막대가 있습니다. 이론적으로 코드는 1x14 막대에 시작과 막대 번호를 인쇄한 다음 나머지에 주 및 막대 번호를 인쇄해야 하지만 어떤 이유로 시작만 맨 끝과 295 막대에서 인쇄됩니다. 무슨 일인지 말해주세요?

로그를 살펴봐야 합니다.

 
Vinin писал(а) >>

로그를 살펴봐야 합니다.

어떻게 로그를 볼 수 있습니까?

 
루핑을 도와주세요. 그렇지 않으면 뭔가 작동하지 않습니다. 신선한 모습만으로도 충분하지 않을까요? 당신의 도움에 미리 감사드립니다. 코드의 설명.
파일:
proba9.mq4  3 kb