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

 
xtonic :

메타의 저녁 수수께끼:

따옴표 아카이브에서 따옴표를 가져왔습니다. 1분 안에 말합니다. 데이터베이스: 0 / 3665972, 창이 비어 있습니다. 이것이 의미하는 바는 무엇입니까?

EURUSD,M1 차트를 오프라인으로 열면 "업데이트 대기 중"이라는 큰 글자가 표시됩니다. 이것은 무엇을 의미합니까?

테스트를 실행합니다 - TestGenerator: 기록 데이터 'EURUSD1' 없음

터미널을 다시 시작하십시오. 모든 것이 올바르게 완료되면 표시되어야 합니다.

 

매개 변수에서 표시기가 그리는 방법을 읽을 위치

SetIndexStyle(0,DRAW_HISTOGRAM, 0, 1, color1)

SetIndexStyle(1,DRAW_HISTOGRAM, 0, 1, color2)

왜 가끔 안그려지는지 모르겠네요 DRAW_LINE 일반선을 그리면 잘 이해가 됩니다 - 인디케이터 버퍼의 값이 y축을 설정하고 요소 번호가 차트의 막대 번호에 해당합니다

유형이 DRAW_HISTOGRAM일 때 표시기 버퍼의 매개변수는 무엇입니까 ??? 왜, 두 개의 표시기 버퍼가 같은 막대에 있을 때 막대에 가로 세그먼트가 나타나고 표시기 버퍼 중 하나 가 EMPTY_VALUE 와 같을 때 아무 것도 없으며 색상 논리도 이해하지 못합니다.

 
ToLik_SRGV :

터미널을 다시 시작하십시오. 모든 것이 올바르게 완료되면 표시되어야 합니다.


그래서 이미 이 모든 작업을 수행했고 시스템에 과부하가 걸렸습니다. 그게 바로 요점입니다.

 
xtonic :


그래서 이미 이 모든 작업을 수행했고 시스템에 과부하가 걸렸습니다. 그게 바로 요점입니다.


어디에서 가져온 따옴표??

너무 게으르지 않고 정확히 무엇을 했는지 단계별로 설명하면 여기에서 도움을 받을 가능성이 더 높아집니다.

 

좋은 사람들이여, 불쌍히 여기십시오 - 나는 달성할 수 없습니다: 평활화된 CCI의 다음 최고점 이후에 매수/매도.

나는 두 번째 버퍼를 선언하려고 시도했습니다 (나에게 더 명확합니다). 오류가없고, 잡지가 조용하고, 인쇄가 분명히, 버튼 아코디언을 염소로 조정하고 있습니다. 나는 아무것도 이해하지 못했습니다.

 // Торговые критерии
   double c1b[];
   ArrayResize (c1b,PeriodB);
   double c1b_1[];
   ArrayResize (c1b_1,AvgB);
   for (i= 1 ;i<=PeriodB;i++)
   {
   c1b[i]= iCCI ( NULL , 0 ,PeriodB, PRICE_TYPICAL ,i);
   {
   c1b_1[i]=iMAOnArray(c1b, 0 ,AvgB, 0 , MODE_SMA ,i);
   }
   }
   
   double c1s[];
   ArrayResize (c1s,PeriodS);
   double c1s_1[];
   ArrayResize (c1s_1,AvgS);
   for (i= 1 ;i<=PeriodS;i++)
   {
   c1s[i]= iCCI ( NULL , 0 ,PeriodS, PRICE_TYPICAL ,i);
   {
   c1s_1[i]=iMAOnArray(c1s, 0 ,AvgS, 0 , MODE_SMA ,i);
   }
   }

if ( NormalizeDouble (c1b_1[i], 4 )< NormalizeDouble (c1b_1[i+ 2 ], 4 )&& NormalizeDouble (c1b_1[i+ 2 ], 4 )> NormalizeDouble (c1b_1[i+ 3 ], 4 ))
     {                                          // 
      Opn_B=true;                               // Критерий откр. Buy
      Cls_S=true;                               // Критерий закр. Sell
     }
if ( NormalizeDouble (c1s_1[i], 4 )> NormalizeDouble (c1s_1[i+ 2 ], 4 )&& NormalizeDouble (c1s_1[i+ 2 ], 4 )< NormalizeDouble (c1s_1[i+ 3 ], 4 ))
     {                                          // 
      Opn_S=true;                               // Критерий откр. Sell
      Cls_B=true;                               // Критерий закр. Buy
     }

첨부 파일은 전체 EA입니다. 시각화 테스트 후 CCI는 이 버전과 이전 버전(첨부 파일에서는 접지됨)을 모두 그렸지만 매끄럽게 만든 버전은 그렇지 않으므로 거래가 열리지 않습니다.

구 버전:

 // Торговые критерии
   double c1b[];
   for (i= 1 ;i<=PeriodB;i++)
   {
   c1b[i]= iCCI ( NULL , 0 ,PeriodB, PRICE_TYPICAL ,i);
   }
   double c1b_1=iMAOnArray(c1b, 0 ,AvgB, 0 , MODE_SMA , 1 );
   double c1b_2=iMAOnArray(c1b, 0 ,AvgB, 0 , MODE_SMA , 2 );
   double c1b_3=iMAOnArray(c1b, 0 ,AvgB, 0 , MODE_SMA , 3 );
   
   double c1s[];
   for (i= 1 ;i<=PeriodS;i++)
   {
   c1s[i]= iCCI ( NULL , 0 ,PeriodS, PRICE_TYPICAL ,i);
   }
   double c1s_1=iMAOnArray(c1s, 0 ,AvgS, 0 , MODE_SMA , 1 );
   double c1s_2=iMAOnArray(c1s, 0 ,AvgS, 0 , MODE_SMA , 2 );
   double c1s_3=iMAOnArray(c1s, 0 ,AvgS, 0 , MODE_SMA , 3 );

if ( NormalizeDouble (c1b_1, 4 )< NormalizeDouble (c1b_2, 4 )&& NormalizeDouble (c1b_2, 4 )> NormalizeDouble (c1b_3, 4 ))
     {                                          // 
      Opn_B=true;                               // Критерий откр. Buy
      Cls_S=true;                               // Критерий закр. Sell
     }
if ( NormalizeDouble (c1s_1, 4 )> NormalizeDouble (c1s_2, 4 )&& NormalizeDouble (c1s_2, 4 )< NormalizeDouble (c1s_3, 4 ))
     {                                          // 
      Opn_S=true;                               // Критерий откр. Sell
      Cls_B=true;                               // Критерий закр. Buy
     }

나는 아무도 다른 사람을 긁어 모으는 데 문제가 없다는 것을 이해합니다. 적어도 인쇄 를 삽입 할 위치와 잡지 또는 로그에서 리뷰를 볼 위치와주의해야 할 사항을 알려주십시오.

파일:
21.mq4  15 kb
 

안녕하세요!

부분 폐쇄에 대한 질문, 사실은 각 DC에 자체 규칙이 있다는 것입니다. 주문 계정을 만드는 것이 더 정확한지 이해가 되지 않습니다.

태스크: 마법을 사용하지 않고 이 TS에 대해 새로 등장한 주문의 틱을 정확히 찾는 것이 필요합니다.

1) 부분적으로 마감된 주문에 고유한 비유적 설명이 있다는 것을 알았습니다. 이론적으로 설명을 읽을 수 있습니다. // 모든 DC가 설명을 쓰는지 잘 모르겠습니다.

2) 주문 시작 날짜로 검색 // 모든 DC에 대해 작동하는지 확실하지 않음

3) 부분 청산 실행 후 즉시 새 틱을 찾고 거래량 등을 확인하여 이것이 있어야 할 주문이라고 말합니다.

4) 다른 것

 
wenay :

주문을 기록하는 가장 좋은 방법은 무엇입니까?

도움말을 읽으십시오.
comment - 주문 주석 텍스트 . 댓글의 마지막 부분 은 거래 서버에 의해 변경될 수 있습니다 .

magic - 주문의 매직 번호입니다. 사용자 정의 식별자로 사용할 수 있습니다.

당신을 도울 마법

다음과 같이 주문을 찾습니다.

if (OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) {

.......

 
Craft :

적어도 Print를 정확히 삽입할 위치와 로그 또는 로그에서 리뷰를 볼 위치와 주의해야 할 사항을 알려주세요.

put 상황을 포착하고 싶은 곳에 Print(예를 들어, 주문을 한다는 것은 주문 오류를 기록하거나 오류가 발생한 사실을 표시하는 것을 의미함)

함수 호출 가능성이 의심되는 경우(즉, 함수 호출 조건이 실행되지 않을 경우) 함수 입구에서 즉시 인쇄를 설정하십시오.

"전문가" 탭의 터미널에서 읽기 인쇄

 
IgorM :

매개 변수에서 표시기가 그리는 방법을 읽을 위치

SetIndexStyle(0,DRAW_HISTOGRAM, 0, 1, 색상1)

SetIndexStyle(1,DRAW_HISTOGRAM, 0, 1, color2)

왜 가끔 안그려지는지 모르겠네요 DRAW_LINE 일반선을 그리면 잘 이해가 됩니다 - 인디케이터 버퍼의 값이 y축을 설정하고 요소 번호가 차트의 막대 번호에 해당합니다

유형이 DRAW_HISTOGRAM일 때 표시기 버퍼의 매개변수는 무엇입니까 ??? 왜 두 개의 표시기 버퍼가 같은 막대에 있으면 막대에 가로 세그먼트가 나타나고 표시기 버퍼 중 하나가 EMPTY_VALUE와 같을 때 아무 것도 표시되지 않고 색상 논리도 이해되지 않습니다.

DRAW_HISTOGRAM 스타일 은 다른 선화 스타일과 근본적으로 다르지 않고 X축은 막대 번호, Y축은 표시기 배열의 값을 나타내지만 말그대로 뉘앙스가 있습니다.
간단한 지표를 예로 들어 보겠습니다.

 #property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red
#property indicator_width1 2
double SIMPLE[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init(){
   SetIndexStyle( 0 , DRAW_HISTOGRAM );
   SetIndexBuffer ( 0 , SIMPLE);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start(){
   for ( int shift = Bars -IndicatorCounted()- 1 ; shift >= 0 ; shift--){
      SIMPLE[shift] = 1 ;
   }
}
//+------------------------------------------------------------------+

하나의 표시기 배열, 별도의 창, 모든 요소에 값 1이 할당됩니다. 차트에 던지고 우리가 보는 것(왼쪽의 그림 1):

표시기 판독값은 "데이터 창"에 표시되지만 창에는 아무 것도 표시되지 않습니다. 이것은 매우 뉘앙스입니다. MT4는 단순히 1이 얼마인지 모릅니다. 기둥을 얼마나 높이 그려야 합니까? 그는 미룰 이유가 없습니다. 즉, 열에 대한 분할 가격이 없습니다. 알다시피 열의 높이를 설정하는 별도의 매개변수가 없으며 다른 요소에 대해 높이가 자동으로 설정됩니다. MT4를 돕고 분할 가격을 설정하면 프로그래밍 방식으로 다음을 수행할 수 있습니다.

 #property indicator_minimum 0
#property indicator_maximum 2

표시기 설정에서 최소값(0)과 최대값(예: 2)을 간단히 수정할 수 있습니다.
그리고 모든 것이 즉시 제자리에 떨어지며(오른쪽의 그림 2) 이제 터미널은 열을 그려야 하는 높이를 알고 있습니다. 1은 0과 2 사이의 중간에 있습니다.)) 이 예에서 전체 표시기 배열은 하나의 값(특히 "뉘앙스"를 표시하기 위해)을 가지므로 터미널에 값이 얼마나 또는 작은지 직접 보여줘야 합니다. 예를 들어 어레이 데이터를 1에서 Close[ shift ]로 바꾸면 하드 리미트를 설정할 필요가 없으며 터미널이 스스로 결정하여 "ala MACD"라는 그림을 그립니다.

히스토그램을 별도의 창에서가 아니라 일반적으로 그리면 약간 다른 그림입니다. 첫 번째 표시기 배열에 대해 Close[ shift ] 값을 그대로 두고 매개변수를 변경하기만 하면 됩니다.

 #property indicator_chart_window

그리고 다시 같은 그림(왼쪽의 그림 3). 값이 있고 표시가 없습니다.

열의 높이를 자동으로 계산하기 위해서는 터미널이 무언가에서 시작해야 하며, 일반 창에서는 최소값과 최대값을 고정하는 것이 불가능하기 때문에 두 번째 표시기 배열이 장면에 들어갑니다. 두 번째 줄을 추가하고 값을 0으로 지정합니다.

 #property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_width1 2
#property indicator_color2 Red
#property indicator_width2 2
double SIMPLE[];
double SIMPLE2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init(){
   SetIndexStyle( 0 , DRAW_HISTOGRAM );
   SetIndexBuffer ( 0 , SIMPLE);
   SetIndexStyle( 1 , DRAW_HISTOGRAM );
   SetIndexBuffer ( 1 , SIMPLE2);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start(){
   for ( int shift = Bars -IndicatorCounted()- 1 ; shift >= 0 ; shift--){
      SIMPLE[shift] = Close[shift];
      SIMPLE2[shift] = 0 ;
   }
}
//+------------------------------------------------------------------+

표시기 배열은 서로 상대적으로 표시되기 시작합니다. 모든 것이 원하는 대로 됩니다(오른쪽 그림 4). 열은 SIMPLE[ shift ] 에서 SIMPLE2[ shift ]로 그려집니다.

마지막으로 양초를 채우는 표시기의 코드(위쪽이면 파란색, 아래쪽이면 분홍색, 그 다음에는 분홍색)입니다. 그리고 다시 각 색상에 대해 두 개의 배열이 있습니다(그림은 홈에서 끝까지(Open에서 Close까지)).

 //+------------------------------------------------------------------+
//|                                                       SIMPLE.mq4 |
//|                        Copyright © 2010,Анатолий Сергеев  |
//|                                            mql.sergeev@yandex.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, Анатолий Сергеев"
#property link      "mql.sergeev@yandex.ru"

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Blue
#property indicator_width1 2
#property indicator_color2 Blue
#property indicator_width2 2
#property indicator_color3 Pink
#property indicator_width3 2
#property indicator_color4 Pink
#property indicator_width4 2
double Blue_home[];
double Blue_end[];
double Pink_home[];
double Pink_end[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init(){
   SetIndexStyle( 0 , DRAW_HISTOGRAM );
   SetIndexBuffer ( 0 , Blue_home);
   SetIndexStyle( 1 , DRAW_HISTOGRAM );
   SetIndexBuffer ( 1 , Blue_end);
   SetIndexStyle( 2 , DRAW_HISTOGRAM );
   SetIndexBuffer ( 2 , Pink_home);
   SetIndexStyle( 3 , DRAW_HISTOGRAM );
   SetIndexBuffer ( 3 , Pink_end);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start(){
   for ( int shift = Bars -IndicatorCounted()- 1 ; shift >= 0 ; shift--){
      if (Close[shift] > Open[shift]){
         Blue_home[shift] = Open[shift];
         Blue_end[shift] = Close[shift];
      } else {
         Pink_home[shift] = Open[shift];
         Pink_end[shift] = Close[shift];
      }
   }
}
//+------------------------------------------------------------------+

 
IgorM :
도움말을 읽으십시오.
comment - 주석 텍스트를 주문합니다. 댓글의 마지막 부분 은 거래 서버에 의해 변경될 수 있습니다 .

magic - 주문의 매직 번호입니다. 사용자 정의 식별자로 사용할 수 있습니다.

당신을 도울 마법

다음과 같이 주문을 찾습니다.

if (OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) {

.......



태스크: 마법을 사용하지 않고 이 TS에 대해 새로 등장한 주문의 틱을 정확히 찾는 것이 필요합니다.