MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 114

 
Sergey Gritsay :
R 어떤 물체를 구별할 수 없습니까? 그리고 객체의 유형을 대체한 다음 속성이 축소된다는 것은 무엇을 의미합니까?

즉, 현재 코드에서 수평선 개체를 현재 촛불의 추세선 또는 수직선으로 바꾸면 다른 개체의 매개변수를 지정하더라도 동일한 색상과 빨간색이 계속 작동합니다.

이 모든 조작의 목적은 표시기와 어드바이저를 결합하는 것입니다. 저는 지금 이것이 일어나는 일 때문에 오류 자체를 찾으려고 노력하고 있습니다.

저것들. 생성, 이동 및 삭제는 괜찮지만 구매할 때는 파란색이 필요하고 판매할 때는 빨간색이 필요하고 어쨌든 빨간색은 필요하지 않습니다.
 

인사말. 이 경우 "double bb" 뒤의 () 괄호 안에 있는 항목은 무엇을 제공하고 {} 괄호 안에 있는 항목은 " double bb( int buff, int shift)" 에 대해 무엇을 제공하는지 알려주세요

double bb( int buff, int shift){ double val = iCustom ( _Symbol , 0 , "BvsB" ,BB_Period,buff,shift); return (val);}  


그리고 여전히 여기에 있습니다. 구매 및 판매는 bool 유형 입니다. "< , &&, >"를 사용할 때 할당된 항목을 이해하는 방법은 무엇입니까?

void Entry()
{  
   if (!UseHTF){
  Buy  = (bb( 0 , 1 ) < bb( 1 , 1 ) && bb( 0 , 2 ) > bb( 1 , 2 ));
  Sell = (bb( 0 , 1 ) > bb( 1 , 1 ) && bb( 0 , 2 ) < bb( 1 , 2 ));}
  
   if (UseHTF){
  Buy  = (bbh( 0 , 1 ) < bbh( 1 , 1 ) && bb( 0 , 1 ) < bb( 1 , 1 ) && bb( 0 , 2 ) > bb( 1 , 2 ));
  Sell = (bbh( 0 , 1 ) > bbh( 1 , 1 ) && bb( 0 , 1 ) > bb( 1 , 1 ) && bb( 0 , 2 ) < bb( 1 , 2 ));}  
  
 
Andrey Sokolov :

인사말. 이 경우 "double bb" 뒤의 () 괄호 안에 있는 항목은 무엇을 제공하고 {} 괄호 안에 있는 항목은 " double bb( int buff, int shift)" 에 대해 무엇을 제공하는지 알려주세요

double bb( int buff, int shift){ double val = iCustom ( _Symbol , 0 , "BvsB" ,BB_Period,buff,shift); return (val);}  


그리고 여전히 여기에 있습니다. 구매 및 판매는 bool 유형 입니다. "< , &&, >"를 사용할 때 할당된 항목을 이해하는 방법은 무엇입니까?

void Entry()
{  
   if (!UseHTF){
  Buy  = (bb( 0 , 1 ) < bb( 1 , 1 ) && bb( 0 , 2 ) > bb( 1 , 2 ));
  Sell = (bb( 0 , 1 ) > bb( 1 , 1 ) && bb( 0 , 2 ) < bb( 1 , 2 ));}
  
   if (UseHTF){
  Buy  = (bbh( 0 , 1 ) < bbh( 1 , 1 ) && bb( 0 , 1 ) < bb( 1 , 1 ) && bb( 0 , 2 ) > bb( 1 , 2 ));
  Sell = (bbh( 0 , 1 ) > bbh( 1 , 1 ) && bb( 0 , 1 ) > bb( 1 , 1 ) && bb( 0 , 2 ) < bb( 1 , 2 ));}  
  


1. 이것은 함수입니다. 괄호 안에는 함수가 호출될 때 전달되는 매개변수가 있습니다. 이 경우 표시기 버퍼의 수와 표시기 값을 가져오는 막대의 오프셋입니다.

2. 부울 변수에는 할당 기호(=) 다음에 오는 전체 논리 표현식의 결과가 할당됩니다. 모든 조건이 true이면 변수가 true로 설정되고 그렇지 않으면 false로 설정됩니다.
 
trader781 :

즉, 현재 코드에서 수평선 개체를 현재 촛불의 추세선 또는 수직선으로 바꾸면 다른 개체의 매개변수를 지정하더라도 동일한 색상과 빨간색이 계속 작동합니다.

이 모든 조작의 목적은 표시기와 어드바이저를 결합하는 것입니다. 저는 지금 이것이 일어나는 일 때문에 오류 자체를 찾으려고 노력하고 있습니다.

저것들. 생성, 이동 및 삭제는 괜찮지만 구매할 때는 파란색이 필요하고 판매할 때는 빨간색이 필요하고 어쨌든 빨간색은 필요하지 않습니다.
그래픽 개체의 매개변수를 다시 잘못 설정했다는 의미입니다.
 
Sergey Gritsay :
그래픽 개체의 매개변수를 다시 잘못 설정했다는 의미입니다.

더 가능성이 있습니다.

모든 것이 교과서대로 보이지만 결과가 같지 않기 때문에 여기에 코드를 던졌습니다.

 
안녕하세요!
내가 생성하지 않은 경우 터미널에 클라이언트 터미널 전역 변수가 있는 이유를 이해할 수 없습니까? ( GlobalVariablesTotal() 함수는 값 "1"을 반환 합니다). 사전 설치된 터미널이 있습니까? 그렇다면 이름을 알고 GlobalVariableName(0) 또는 GlobalVariableName(1) 함수를 호출할 때 이름이 표시되지 않는 이유는 무엇입니까? 무엇이 잘못될 수 있는지 말씀해 주십시오.
 

인사말. 가격 차트에 중첩되지 않고 그 아래에 별도로 표시되는 표시기의 빨간색 선에서 데이터를 가져와야 합니다. 차트에 중첩된 지표와 같이 하려고 하는데 뭔가 잘못되었습니다. 내가 어디에서 잘못 되었습니까?

Signal= iCustom ( NULL , 0 , "ytg_Def_RSI_3_Symbol" , RSI_1_Period, RSI_2_Period, applied_price, ma_period, ma_method, 1 ,shift);

다음은 지표입니다

#property copyright "Yuriy Tokman"
#property link        "yuriytokman@gmail.com"

//ну если проще запулить в одно окно три мульти с настройками
//1 EUR-USD
//2 EURGBP
//3 EURJPY
//если все три в состоянии перекупленности  значит Бай и наоборот

#property indicator_separate_window
#property   indicator_buffers 6
#property   indicator_color1  Green
#property   indicator_color2  Red
#property   indicator_color3  Yellow
#property indicator_level1 0
#property indicator_level2 5
#property indicator_level3 - 5

extern string Symbol_1   = "EURUSD" ;
extern string Symbol_2   = "EURGBP" ;
extern string Symbol_3   = "EURJPY" ;

extern int RSI_1_Period  = 14 ; //период первого индикатора РСИ
extern int RSI_2_Period  = 28 ; //период второго индикатора РСИ
extern int applied_price = 0 ; //используемая цена  0-6
extern int ma_period     = 14 ; //период сглаживания
extern int ma_method     = 0 ; //метод сглаживания  0-3

double        buf[];
double     MA_buf[];
double       buf2[];
double    MA_buf2[];
double       buf3[];
double    MA_buf3[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle ( 0 , DRAW_LINE , STYLE_SOLID , 2 );
   SetIndexBuffer ( 0 , buf);
  
   SetIndexStyle ( 4 , DRAW_NONE );
   SetIndexBuffer ( 4 ,MA_buf);
  
   SetIndexStyle ( 1 , DRAW_LINE , STYLE_SOLID , 2 );
   SetIndexBuffer ( 1 , buf2);
  
   SetIndexStyle ( 3 , DRAW_NONE );
   SetIndexBuffer ( 3 ,MA_buf2);  
    
   SetIndexStyle ( 2 , DRAW_LINE , STYLE_SOLID , 2 );
   SetIndexBuffer ( 2 , buf3);
  
   SetIndexStyle ( 5 , DRAW_NONE );
   SetIndexBuffer ( 5 ,MA_buf3);
  
   IndicatorShortName ( "ytg_Def_RSI_3_Symbol" );
   Comment ( "yuriytokman@gmail.com" );  
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   Comment ( "" );  
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
//----
   double RSI_1, RSI_2, RSI_12, RSI_22, RSI_13, RSI_23;
  
   int limit;
   int counted_bars= IndicatorCounted ();
  
   if (counted_bars< 0 ) return (- 1 );

   if (counted_bars> 0 ) counted_bars--;
   limit= Bars -counted_bars;

   for ( int i=limit; i>= 0 ; i--)
   {
     RSI_1 = iRSI (Symbol_1, 0 ,RSI_1_Period,applied_price,i);
     RSI_2 = iRSI (Symbol_1, 0 ,RSI_2_Period,applied_price,i);

     MA_buf[i] = (RSI_1-RSI_2);
    
    
     RSI_12 = iRSI (Symbol_2, 0 ,RSI_1_Period,applied_price,i);
     RSI_22 = iRSI (Symbol_2, 0 ,RSI_2_Period,applied_price,i);

     MA_buf2[i] = (RSI_12-RSI_22);
    
    
     RSI_13 = iRSI (Symbol_3, 0 ,RSI_1_Period,applied_price,i);
     RSI_23 = iRSI (Symbol_3, 0 ,RSI_2_Period,applied_price,i);

     MA_buf3[i] = (RSI_13-RSI_23);          
   }
   for (i=limit; i>= 0 ; i--)
   {
     buf[i] = iMAOnArray (MA_buf, 0 ,ma_period, 0 ,ma_method,i);
    
     buf2[i] = iMAOnArray (MA_buf2, 0 ,ma_period, 0 ,ma_method,i);    
    
     buf3[i] = iMAOnArray (MA_buf3, 0 ,ma_period, 0 ,ma_method,i);    
   }  
  
  
//----
   return ( 0 );
  }
 
Andrey Sokolov :

인사말. 가격 차트에 중첩되지 않고 그 아래에 별도로 표시되는 표시기의 빨간색 선에서 데이터를 가져와야 합니다. 차트에 중첩된 지표와 같이 하려고 하는데 뭔가 잘못되었습니다. 내가 어디에서 잘못 되었습니까?

Signal= iCustom ( NULL , 0 , "ytg_Def_RSI_3_Symbol" , RSI_1_Period, RSI_2_Period, applied_price, ma_period, ma_method, 1 ,shift);

다음은 지표입니다

extern string Symbol_1   = "EURUSD" ;
extern string Symbol_2   = "EURGBP" ;
extern string Symbol_3   = "EURJPY" ;

extern int RSI_1_Period  = 14 ; //период первого индикатора РСИ
extern int RSI_2_Period  = 28 ; //период второго индикатора РСИ
extern int applied_price = 0 ; //используемая цена  0-6
extern int ma_period     = 14 ; //период сглаживания
extern int ma_method     = 0 ; //метод сглаживания  0-3

입력 매개변수 창을 열고 iCustom 에 순서대로 나열합니다.

처음 세 개의 문자열 값이 누락되었습니다.