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

 
Artyom Trishkin :

솔직히 말해서, 나는 이러한 SB 리소스를 사용한 적이 없습니다. 그러나 어떤 방법으로 색상이 설정되어 있는지 안보리를 보지 못하는 이유는 무엇입니까? 목록에 표시한 것:

- CPanel , CEdit, CBmpButton 및 CWndClient 클래스 와 같은 개체의 이름입니다.

그리고 색상을 저장하는 이러한 클래스의 멤버 이름을 찾고 초기화하거나 변경할 수 있는 메서드를 확인해야 합니다.

그리고 필요한 값을 먼저 초기화한 다음 개체 자체를 빌드해야 할 것입니다.

색상은 정의에서 설정한 다음 ObjectSetInteger() 함수를 사용하여 개체에 색상을 지정합니다. 또한 현재 이 방법으로 직접 다시 칠하고 있습니다. 그러나 OOP를 통해 시도하는 것이 바람직합니다. 제가 알기로는 별도의 public 변경 방법이 없으면 private 멤버에 접근할 수 없습니다. 저는 상속, 가상 방법에 그다지 강하지 않을 뿐 아니라 여전히 "수영"하고 이 주제를 연구하고 있습니다. 좋아요, 서비스 데스크에서 공개적으로 색칠하는 방법을 물어보고 다른 방법으로 가능하면 방법을 알려줄 수 있습니다.
 
LRA :
오류 메시지 를 클릭합니다. 커서는 변수의 이름을 나타냅니다. 발표할 필요가 있다
고맙습니다!
 
Kedrov :
고맙습니다!

이 포럼에 디컴파일된 코드를 게시하지 마십시오. 코드가 아니라 사진만 올리신걸로 압니다. 그러나 이것은 도난당한 소프트웨어 제품으로 작업하고 있음을 의미합니다. 이것은 여기에서 절대적으로 환영받지 못합니다. 이것은 ... 어떻게 말하면 ... 커뮤니티의 윤리를 위반하는 것입니다. 여기 포럼 및 리소스에서 포럼 사용자의 가장 큰 부분은 프로그래머입니다. 우리는 자체 코드를 작성하거나 동료의 공개 개발을 사용합니다. 누군가로부터 도난당한 코드를 사용하고 다시 만듭니다(여기에 있는 누군가로부터). 어쨌든 이런 식으로 사업을 시작하지 마십시오.

 
Vasiliy Pushkaryov :
색상은 정의에서 설정한 다음 ObjectSetInteger() 함수를 사용하여 개체에 색상을 지정합니다. 또한 현재 이 방법으로 직접 다시 칠하고 있습니다. 그러나 OOP를 통해 시도하는 것이 바람직합니다. 제가 알기로는 별도의 public 변경 방법이 없으면 private 멤버에 접근할 수 없습니다. 저는 상속, 가상 방법에 그다지 강하지 않을 뿐 아니라 여전히 "수영"하고 이 주제를 연구하고 있습니다. 좋아요, 서비스 데스크에서 공개적으로 색칠하는 방법을 물어보고 다른 방법으로 가능하면 방법을 알려줄 수 있습니다.

임시로 - 이 클래스를 Include\Your_folder에 복사하고 설정 및 반환을 위한 색상 및 공개 메서드를 저장하는 데 필요한 클래스 멤버 변수를 입력합니다.

또한 이미 필요한 대로 수행할 수 있습니다. 빼기 - SB를 업데이트할 때 원래 클래스에 개선 사항이 나타날 수 있지만 개선 사항이 없으므로 업데이트된 클래스에 필요한 메서드를 다시 복사하여 입력해야 합니다.

...글쎄요, 침착하게 색을 바꿀 수 있는 방법이 없는게 이상하네요 - 정의도 없이...

 

도와주세요 - 모든 상품의 모든 오픈 포지션 의 볼륨(총 로트 수)에 대한 정보를 빠르게 얻는 방법은 무엇입니까? 기능을 공유해 주세요.

 
Aleksey Vyazmikin :

도와주세요 - 모든 상품의 모든 오픈 포지션 의 볼륨(총 로트 수)에 대한 정보를 빠르게 얻는 방법은 무엇입니까? 기능을 공유해 주세요.


GetAmountLotFromOpenPos() 함수.

이 함수는 많은 열린 위치의 합계를 반환합니다. 고려할 위치의 보다 정확한 선택은 외부 매개변수에 의해 설정됩니다.

  • sy - 시장 상품의 이름. 이 매개변수를 설정하면 이 기능은 지정된 도구의 위치만 고려합니다. 기본값은 "" 는 모든 시장 상품을 의미합니다. NULL 은 현재 기기를 의미합니다.
  • op - 거래 작업, 위치 유형. 유효한 값: OP_BUY , OP_SELL 또는 -1 . 기본값 -1 은 임의의 위치를 의미합니다.
  • mn - 위치 ID, MagicNumber. 기본값 -1 은 모든 식별자를 의미합니다.

 
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает сумму лотов открытых позиций                        |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ( ""  - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - торговая операция          ( -1  - любая позиция)                  |
//|    mn - MagicNumber                ( -1  - любой магик)                    |
//+----------------------------------------------------------------------------+
double GetAmountLotFromOpenPos(string sy="", int op=-1, int mn=-1) {
  double l=0;
  int    i, k=OrdersTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              l+=OrderLots();
            }
          }
        }
      }
    }
  }
  return(l);
}
 
Vladimir Zubov :

고맙습니다.

 

친절하게, 이 질문을 말해주세요: 임계값에 의한 지그재그(깊이(포인트 단위, 높음(낮음)는 n-포인트를 통과한 후 형성됨, 깊이=깊이*포인트). 포인트 체인(ArrUp(ArrDn))이 있으며, 지그재그의 완료, 즉 마지막 ArrUp 포인트가 있는 경우 깊이가 떨어지고 첫 번째 ArrDn 포인트가 형성되고, 가격이 하락했기 때문에(도면) 또 다른 일련의 ArrDn 포인트가 형성됩니다. 포인트: 아마도 for 루프, 나는 그것을 이해할 수 없습니다.

 //+------------------------------------------------------------------+
//|                                                       FastZZ.mq4 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, Yurich"
#property link        "https://login.mql5.com/ru/users/Yurich"
//---
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Red
#property indicator_color2 Red
#property indicator_color3 Gold
#property indicator_color4 DodgerBlue
#property indicator_width3 3
#property indicator_width4 3

//--- input parameters
extern int   Depth= 10 ;
//---
double zzH[],zzL[];
double depth;
int last,direction,pbars;
datetime lastbar;
double ArrUp[];
double ArrDn[];
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexBuffer ( 0 ,zzH);
   SetIndexBuffer ( 1 ,zzL);
   SetIndexBuffer ( 2 ,ArrUp);
   SetIndexBuffer ( 3 ,ArrDn);
   SetIndexStyle ( 0 , DRAW_ZIGZAG );
   SetIndexStyle ( 1 , DRAW_ZIGZAG );
   SetIndexStyle ( 2 , DRAW_ARROW );
   SetIndexStyle ( 3 , DRAW_ARROW );
   SetIndexArrow ( 2 , 159 );
   SetIndexArrow ( 3 , 159 );
   SetIndexEmptyValue ( 0 , 0.0 );
   SetIndexEmptyValue ( 1 , 0.0 );
   IndicatorDigits ( Digits );
//----
   depth=Depth* Point ;
   direction= 1 ;
   last= 0 ;
   pbars= 0 ;
   lastbar= 0 ;
   return ( 0 );
  }
//+------------------------------------------------------------------+
int start()
  {
   int limit= Bars - IndicatorCounted ()- 1 ;
   if (lastbar!= Time [ 0 ])
     {
      lastbar= Time [ 0 ];
      last++;
     }
   if ( MathAbs ( Bars -pbars)> 1 ) { last= Bars - 1 ; limit=last;}
   pbars= Bars ;
//---
   for ( int i=limit; i> 0 ; i--)
     {
       bool set= false ;
      zzL[i]= 0 ;
      zzH[i]= 0 ;
      ArrUp[i]= EMPTY_VALUE ;
      ArrDn[i]= EMPTY_VALUE ;
       //---
       if (direction> 0 )
        {
         if ( High [i]>zzH[last])
           {
            zzH[last]= 0 ;
            zzH[i]= High [i];
            ArrUp[i]= High [i];
             if ( Low [i]< High [last]-depth)
              {
               if ( Open [i]< Close [i])
                 {
                  zzH[last]= High [last];
                  ArrUp[last]= High [last];
                 }
               else direction=- 1 ;
               zzL[i]= Low [i];
               ArrDn[i]= Low [i];
              }
            last=i;
            set= true ;
           }
         if ( Low [i]<zzH[last]-depth && (!set || Open [i]> Close [i]))
           {
            zzL[i]= Low [i];
            ArrDn[i]= Low [i];
             if ( High [i]>zzL[i]+depth && Open [i]< Close [i])
              {
               zzH[i]= High [i];
               ArrUp[i]= High [i];
              }
             else direction=- 1 ;
            last=i;
           }
        }
       else //direction<0
        {
         if ( Low [i]<zzL[last])
           {
            zzL[last]= 0 ;
            zzL[i]= Low [i];
            ArrDn[i]= Low [i];
             if ( High [i]> Low [last]+depth)
              {
               if ( Open [i]> Close [i])
                 {
                  zzL[last]= Low [last];
                  ArrDn[last]= Low [last];
                 }
               else direction= 1 ;
               zzH[i]= High [i];
               ArrUp[i]= High [i];
              }
            last=i;
            set= true ;
           }
         if ( High [i]>zzL[last]+depth && (!set || Open [i]< Close [i]))
           {
            zzH[i]= High [i];
            ArrUp[i]= High [i];
             if ( Low [i]<zzH[i]-depth && Open [i]> Close [i])
              {
               zzL[i]= Low [i];
               ArrDn[i]= Low [i];
              }
             else direction= 1 ;
            last=i;
           }
        }
     }
//----
   zzH[ 0 ]= 0 ;
   zzL[ 0 ]= 0 ;
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
 

안녕하세요.

어드바이저를 중지하고 새로운 촛불이 나타날 때 시작하는 방법을 배우십시오.