오류, 버그, 질문 - 페이지 355

 
상담원은 항상 주 컴퓨터와 동일한 기록을 가지고 있습니까?
 
dimonsky :
상담원은 항상 주 컴퓨터와 동일한 기록을 가지고 있습니까?
이론상으로는 그렇습니다. 그러나 역사와 다른 점들의 동기화에 문제가 있습니다.
 

전체 스레드를 읽지 않았으므로 이미 게시된 경우 사과드립니다.

1. 테스트 시작 및 중지 시간 (날짜와 혼동하지 않도록)을 선택할 수 있습니까?

2. 설정에서 설정한 것을 제외하고 테스터에서 다른 쌍에 대한 거래를 보는 방법(다중 통화의 경우 - 한 상품의 경우 - 테스트 결과의 "공개 차트" 및 나머지).

 
Retsam :

전체 스레드를 읽지 않았으므로 이미 게시된 경우 사과드립니다.

1. 테스트 시작 및 중지 시간 (날짜와 혼동하지 않도록)을 선택할 수 있습니까?

2. 설정에서 설정한 것을 제외하고 테스터에서 다른 쌍에 대한 거래를 보는 방법(다중 통화의 경우 - 한 상품의 경우 - 테스트 결과의 "공개 차트" 및 나머지).

1 당신이 그것을 요청하지 않는 한 그런 것은 없습니다.

2도 아니오

 

안녕하세요!

MT 5.425 윈도우 7 x64

하위 창(하위 창 1번)에서 표시기를 실행하고 버퍼를 사용하여 차트를 표시하고 ChartGetDouble(0,CHART_PRICE_MAX,1) 및 ChartGetDouble(0, CHART_PRICE_MIN , 1) 각각.

출력은 0이지만 메인 창의 최소값과 최대값은 올바르게 표시됩니다(ChartGetDouble(0,CHART_PRICE_MAX) ChartGetDouble(0,CHART_PRICE_MIN)). ChartRedraw(0)는 도움이 되지 않습니다. 마우스로 그래프 스크롤을 시작하면 값이 꺼지고 올바르게 표시되기 시작합니다.

이러한 오해는 처음 시작할 때 또는 표시기 속성에서 값을 변경할 때 발생합니다.

어쩌면 실수일 수도 있고, 아니면 내가 뭔가를 잘못하고 있는 것일 수도 있습니다.

도움말 파일에서 이 항목을 이해하는 방법은 무엇입니까?

CHART_PRICE_MIN 차트 최소 이중 r/o 수정자 - 하위 창 번호

CHART_PRICE_MAX 차트 최대 이중 r/o 수정자 - 하위 창 번호

고맙습니다!

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков - Документация по MQL5
 
모든 차트 창은 0부터 시작하여 번호가 매겨집니다. 0 - 차트의 기본 창, 1 - 별도의 창에 표시되는 첫 번째 지표의 창. 등.
 

무슨 일이 일어나고 있는지 알 수 없습니다.

두 지표에 동일한 매개변수가 있으면 어드바이저는 매수만 열고 매개변수가 다른 경우 포지션을 어떻게 마감하는지 명확하지 않습니다....

이론적으로 두 번째 지표는 거래를 마감해야 하지만 그렇지 않습니다. 코드 자체:

 #include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\SymbolInfo.mqh>
#include <Trade\OrderInfo.mqh>
MqlRates mrate[];

input int TriX_PARAM= 14 ;
input int TriX_PARAM_Close= 50 ;

double TriX[];
double TriX_Close[];
int TriXHandle;
int TriXHandle_Close;

int OnInit ()
  {

   TriXHandle= iTriX ( Symbol (), PERIOD_CURRENT ,TriX_PARAM, PRICE_WEIGHTED );
   TriXHandle_Close= iTriX ( Symbol (), PERIOD_CURRENT ,TriX_PARAM_Close, PRICE_WEIGHTED );
   return ( 0 );
  }

void OnTick ()
  {
   CTrade mytrade;
   CPositionInfo myposition;
   CSymbolInfo mysymbol;
   COrderInfo myorder;

   bool Sell_opened,Buy_opened;
   if (myposition.Select( _Symbol )== true ) { if (myposition.Type()== POSITION_TYPE_BUY ) Buy_opened= true ;   if (myposition.Type()== POSITION_TYPE_SELL ) Sell_opened= true ;}

//Закрываем позицию
   if (Buy_opened== true || Sell_opened== true )
     {
       ArraySetAsSeries (TriX_Close, true );
       CopyBuffer (TriXHandle_Close, 0 , 0 , 4 ,TriX_Close);

       if (Sell_opened= true && TriX_Close[ 1 ]>TriX_Close[ 2 ] && TriX_Close[ 2 ]<TriX_Close[ 3 ]) mytrade.PositionClose( _Symbol );
       if (Buy_opened= true && TriX_Close[ 1 ]<TriX_Close[ 2 ] && TriX_Close[ 2 ]>TriX_Close[ 3 ]) mytrade.PositionClose( _Symbol );

     }

//Открываем позицию
   if (Buy_opened== false && Sell_opened== false )
     {
       ArraySetAsSeries (TriX, true );
       CopyBuffer (TriXHandle, 0 , 0 , 4 ,TriX);
      
       if (TriX[ 1 ]>TriX[ 2 ] && TriX[ 2 ]<TriX[ 3 ]) mytrade.Buy( 0.1 , _Symbol , NormalizeDouble (mysymbol.Ask(), _Digits ), 0 , 0 );
       if (TriX[ 1 ]<TriX[ 2 ] && TriX[ 2 ]>TriX[ 3 ]) mytrade.Sell( 0.1 , _Symbol , NormalizeDouble (mysymbol.Bid(), _Digits ), 0 , 0 );

     }
  }
 
최적화 중에 터미널이 업데이트되지 않았는지 확인할 수 있습니까?
 
Jager :
최적화 중에 터미널이 업데이트되지 않았는지 확인할 수 있습니까?

따라서 터미널이 실행 중이고 5-10분 동안 업데이트되지 않은 경우

그러면 안되지만 업데이트하면 새 설정이 저장되지 않습니다

터미널을 다시 시작하기 전에 물론 인터넷을 끌 수 있습니다.

 
Mr.FreeMan :

무슨 일이 일어나고 있는지 알 수 없습니다.

두 지표에 동일한 매개변수가 있으면 어드바이저는 매수만 열고 매개변수가 다른 경우 포지션을 어떻게 마감하는지 명확하지 않습니다....

이론적으로 두 번째 지표는 거래를 마감해야 하지만 그렇지 않습니다. 코드 자체:

배열을 다르게 지정하는 것과 같은 것을 작성했습니다. (거의 도움이되지 않지만

그게 낫다). 변화:

 CopyBuffer (TriXHandle_Close, 0 , 0 , 3 ,TriX_Close);
CopyBuffer (TriXHandle, 0 , 0 , 4 ,TriX);

이 라인에

 CopyBuffer (TriXHandle_Close, 0 , 0 , 3 ,TriX_Close);
 CopyBuffer (TriXHandle, 0 , 0 , 3 ,TriX);

또한 변경:

  if (Sell_opened= true && TriX_Close[ 1 ]>TriX_Close[ 2 ] && TriX_Close[ 2 ]<TriX_Close[ 3 ]) mytrade.PositionClose( _Symbol );
  if (Buy_opened= true && TriX_Close[ 1 ]<TriX_Close[ 2 ] && TriX_Close[ 2 ]>TriX_Close[ 3 ]) mytrade.PositionClose( _Symbol );
       if (TriX[ 1 ]>TriX[ 2 ] && TriX[ 2 ]<TriX[ 3 ]) mytrade.Buy( 0.1 , _Symbol , NormalizeDouble (mysymbol.Ask(), _Digits ), 0 , 0 );
       if (TriX[ 1 ]<TriX[ 2 ] && TriX[ 2 ]>TriX[ 3 ]) mytrade.Sell( 0.1 , _Symbol , NormalizeDouble (mysymbol.Bid(), _Digits ), 0 , 0 );

이에

  if (Sell_opened= true && TriX_Close[ 0 ]>TriX_Close[1] && TriX_Close[1]<TriX_Close[ 2 ]) mytrade.PositionClose( _Symbol );
 if (Buy_opened= true && TriX_Close[ 0 ]<TriX_Close[ 1 ] && TriX_Close[1]>TriX_Close[2]) mytrade.PositionClose( _Symbol );
      if (TriX[ 0 ]>TriX[ 1 ] && TriX[1]<TriX[ 2 ]) mytrade.Buy( 0.1 , _Symbol , NormalizeDouble (mysymbol.Ask(), _Digits ), 0 , 0 );
       if (TriX[ 0 ]<TriX[1] && TriX[ 1 ]>TriX[ 2 ]) mytrade.Sell( 0.1 , _Symbol , NormalizeDouble (mysymbol.Bid(), _Digits ), 0 , 0 );
사유: