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

 
Leo59 :
전문가가 있습니다. deinit()에서 *.csv의 98496줄을 로그 파일에 씁니다.
테스터에서 Expert Advisor가 완료될 때 다르게 언로드되는 이유는 다음과 같습니다.
- 테스트 날짜 종료 후 언로딩 시 모든 것이 정상입니다. ( 98496줄)
- "중지" 버튼으로 언로드하는 경우 데이터의 약 10%만 제거됩니다.
무엇이 문제가 될 수 있는지 누가 알겠습니까?


사용자가 Expert Advisor를 언로드할 때 Expert Advisor를 강제 종료합니다.

데이터를 시작할 때 직접 쓰는 것이 좋습니다.

 
Roman. :

여러분, 이 경고를 어떻게 해석해야 할까요?

덕분에.


함수는 변수로 설정되어야 합니다

예: bool closee=OrderClose.......................

  • 'OrderSelect'의 반환 값을 확인해야 합니다.
  • 'OrderDelete'의 반환 값을 확인해야 합니다.
  • 'OrderSend'의 반환 값을 확인해야 합니다.
  • 'OrderClose'의 반환 값을 확인해야 합니다.
  • 'OrderModify'의 반환 값을 확인해야 합니다.


이러한 경고를 피하려면 변수에 대한 반환을 명시적으로 지정해야 합니다.
예를 들면 다음과 같습니다.
  • bool select1=주문 선택...........
  • bool delete1= 주문 삭제 ...........
  • 부울 닫기1= 주문 닫기 ...........
  • bool modify1= 주문 수정 ...........
  • int send1= 주문 보내기 ...........
 
안녕하세요. 말해봐, OBJ_TEXT 그래픽 개체의 차트에서 너비/높이를 프로그래밍 방식으로 결정하거나 계산할 수 있습니까?
 
alxm :
안녕하세요. 말해봐, OBJ_TEXT 그래픽 개체의 차트에서 너비/높이를 프로그래밍 방식으로 결정하거나 계산할 수 있습니까?

문자 수, + 글꼴 크기 등을 계산합니까?
 
cipsi :

알려진 경우 첫 번째 미결제 주문의 OrderOpenPrice를 찾는 방법:

1.기호

2.BUY 주문은 하나에서 여러 개까지 열 수 있습니다.

3. 마법

4. 아마도 티켓으로 주문 간의 차이 - 가장 작은 티켓을 찾으십시오.


 double PriceOpenFirstPos( string sy= "" , int op=- 1 , int mn=- 1 ) {
   datetime t== 0 ;
   double    r= 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) {
               if (t> OrderOpenTime () || t== 0 ) {
                t= OrderOpenTime ();
                r= OrderOpenPrice ();
              }
            }
          }
        }
      }
    }
  }
   return (r);
}
 
psdmaster :
전문가 생성에 대한 기사를 읽었습니다. https://book.mql4.com/ru/samples/expert

한 막대에서 거래를 열고 다음 막대가 나타나면 거래를 닫는 방법을 알려주십시오.


1. 거래를 열 때, 당신은 술집의 시간을 기억

예를 들면 다음과 같습니다.

외부 시작:

 int timeopen;

거래를 시작할 때:

 timeopen= Time [ 0 ];

다음과 같이 닫습니다.

 if (timeopen!= Time [ 0 ]) OrderClose ............
 
Zolotai :
말해 주세요. 주기 없이 주어진 기호에 대한 미결 주문 수를 어떻게 알 수 있습니까?


사이클 없이.

 

친애하는, 당신의 도움이 필요합니다.

지표로 EA를 최적화하고 있습니다. 지표 코드는 아래와 같습니다.

최적화가 느리고 표시기가 새 막대 에서 다시 계산되도록 EA에서 코드를 만들었습니다. 이는 적합하지 않습니다.

재계산을 더 빠르게 하기 위해 표시 코드에서 수행할 수 있는 작업을 확인하십시오.

 #property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 Lime
#property indicator_color2 Yellow
#property indicator_color3 Red
#property indicator_color4 Aqua

//--- input parameters
extern int        Period_MA_1= 14 ;
extern int        p2          = 7 ;
extern int        p3          = 5 ;
extern int        p4          = 3 ;
extern int Limit= 70 ;
//--- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle ( 0 , DRAW_NONE );
   SetIndexBuffer ( 0 ,ExtMapBuffer1);
   SetIndexStyle ( 1 , DRAW_LINE );
   SetIndexBuffer ( 1 ,ExtMapBuffer2);
   SetIndexStyle ( 2 , DRAW_LINE );
   SetIndexBuffer ( 2 ,ExtMapBuffer3);
   SetIndexStyle ( 3 , DRAW_LINE );
   SetIndexBuffer ( 3 ,ExtMapBuffer4);
   IndicatorDigits ( Digits + 1 );
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int counted_bars= IndicatorCounted (),
   i,limit1,limit2,limit3,limit4;
   double impuls;
   if (counted_bars< 0 ) return (- 1 );
   if (counted_bars> 0 ) counted_bars--;
 
   limit1= Bars -counted_bars- 1 ;
   if (limit1>Limit && Limit> 0 ) limit1=Limit;
   limit2=limit1;
   limit3=limit2;
   limit4=limit3;
   if (limit1> 0 ) 
     {
      limit1= 500 -Period_MA_1- 1 ;
      limit2=limit1-p2;
      limit3=limit2-p3;
      limit4=limit3-p4;
     }
   for (i=limit1;i>= 0 ;i--) {ExtMapBuffer1[i]= Close [i]- Close [i+Period_MA_1];}
   for (i=limit2;i>= 0 ;i--) {ExtMapBuffer2[i]= iMAOnArray (ExtMapBuffer1, 0 , p2, 0 , MODE_EMA ,i);}
   for (i=limit3;i>= 0 ;i--) {ExtMapBuffer3[i]= iMAOnArray (ExtMapBuffer2, 0 , p3, 0 , MODE_EMA ,i);}
   for (i=limit4;i>= 0 ;i--) {ExtMapBuffer4[i]= iMAOnArray (ExtMapBuffer3, 0 , p4, 0 , MODE_EMA ,i);}

   return ( 0 );
  }
 

mt4의 클래스에 대해 어디에서 읽을 수 있는지 알려주세요.

도움말을 읽어보지만 이 줄이 의미하는 바는 설명하지 않습니다.

CArray::CArray( void ) : m_step_resize( 16 ),
                       m_data_total( 0 ),
                       m_data_max( 0 ),
                       m_sort_mode(- 1 )
  {
  }

변수 초기화 에 대해 읽을 수 있는 곳 ...

 
Vladon :


함수는 변수로 설정되어야 합니다

예: bool closee=OrderClose.......................

  • 'OrderSelect'의 반환 값을 확인해야 합니다.
  • 'OrderDelete'의 반환 값을 확인해야 합니다.
  • 'OrderSend'의 반환 값을 확인해야 합니다.
  • 'OrderClose'의 반환 값을 확인해야 합니다.
  • 'OrderModify'의 반환 값을 확인해야 합니다.


이러한 경고를 피하려면 변수에 대한 반환을 명시적으로 지정해야 합니다.
예를 들면 다음과 같습니다.
  • bool select1=주문 선택...........
  • bool delete1= 주문 삭제 ...........
  • 부울 닫기1= 주문 닫기 ...........
  • bool modify1= 주문 수정 ...........
  • int send1= 주문 보내기 ...........


덕분에. 경고 없이 작동:


참고서의 예시로 안내받았습니다 :-)


주문삭제

이전에 주문한 보류 주문의 제거를 수행합니다.

bool 주문 삭제 (
정수 티켓 , // 주문 번호
색깔 arrow_color // 색깔
);

옵션

티켓

【인】 주문의 고유 일련 번호입니다.

arrow_color

【인】 차트의 화살표 색입니다. 매개변수가 없거나 해당 값이 CLR_NONE과 같으면 차트에 화살표가 표시되지 않습니다.

반환 값

성공하면 true를, 실패하면 false를 반환합니다. 오류 에 대한 정보를 얻으려면 GetLastError() 함수를 호출해야 합니다.

예시:

if ( 묻다 >var1)
{
주문 삭제( order_ticket );
리턴 (0);
}