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

 
두 번째 날은 사이트에서 검색을 쟁기질하지 않습니다.
 

테스트 중에는 중지 및 테이크가 작동하지 않습니다. 스크린샷은 SL 및 TP가 설정된 트리거된 판매 제한의 예를 보여주지만 가격이 가는 곳마다 중지(예: 테이크)가 작동하지 않습니다. 어디서 파나요?

파일:
Screenshot_1.jpg  177 kb
 

위치의 경우 POSITION_TIME_UPDATE 속성이 있습니다 - 마지막 위치 변경 시간.

터미널에는 이러한 주문에 대한 속성이 없습니다. 서버에 하나가 있습니까?


거래소에서 한도 한도를 수정하는 것은 한도 한도를 재설정하는 것을 의미한다는 것을 정확히 이해하고 있습니까? 이전 한도를 삭제하고 새 한도를 설정하는 것입니까?

그렇다면 수정은 ORDER_TIME_SETUP 을 변경해야 합니다. 그러나 이것은 발생하지 않습니다.

 

지표 차트 누락

종종 몇 시간의 작업 후에 지표 차트가 사라집니다.

데이터를 복구하고 지표 계산을 최소화하기 위해 데이터 로드 및 계산 단계를 사용합니다.

지표가 차트에 위치 하면 모든 단계가 정상적으로 처리됩니다 .

 //+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,  
                 const int prev_calculated, 
                 const datetime & time[], 
                 const double & open[], 
                 const double & high[], 
                 const double & low[], 
                 const double & close[], 
                 const long & tick_volume[], 
                 const long & volume[],
                 const int & spread[]  
)
{
   if (prev_calculated == 0 )
  {
     switch (mar_data.stage)
    {
       case LOAD_TICKS:
         if (LoadTicks(time) == true )
        {
           //--- 
          mar_data.stage = READ_PRIM_TICKS;
        }
         return ( 0 );
       break ;
       case READ_PRIM_TICKS:
         if (ReadPrimTicks() == true )
        {
           //---
          mar_data.stage = READ_SEC_TICKS;
        }  
         return ( 0 );
       break ;
       case READ_SEC_TICKS:
         if (ReadSecTicks() == true )
        {
           //---
          mar_data.stage = FILL_DATA;
        }  
         return ( 0 );
       break ;
       case FILL_DATA:
         //---
        FillData();
        mar_data.stage = LOAD_TICKS;
       break ;
    }
  } 
   else
  {
     //--- Live data ---
  }
   return (rates_total);
}

마지막 단계에서는 표시기(후크 포함)가 데이터를 다시 로드할 수 있도록 첫 번째 단계가 할당됩니다 .

mar_data.stage = LOAD_TICKS;

그러나 표시기가 재설정되면 데이터가 복원되지 않습니다.

기능

 //+------------------------------------------------------------------+
//| Custom indicator Load ticks function                             |
//+------------------------------------------------------------------+
bool LoadTicks( const datetime &a_times[])
{
   int result = CopyTime ( Symbol (), PERIOD_M1 , start_time, end_time, mar_data.time_array);
   if (result > 0 )
  {
     if (mar_data.time_array[result - 1 ] == a_times[ ArraySize (a_times) - 1 ])
    {
      mar_data.b_cnt = result;
      result = CopyTicksRange ( Symbol (), mar_data.pr_ticks, COPY_TICKS_INFO , ulong (start_time) * 1000 , ulong (end_time) * 1000 );
       if (result > 0 )
      {
         if (mar_data.pr_ticks[result- 1 ].time >= mar_data.time_array[ ArraySize (mar_data.time_array) - 1 ]) 
        {
          mar_data.pr_cnt = result;
           datetime sec_time_array[];
          result = CopyTime (sec_symbol, PERIOD_M1 , start_time, end_time, sec_time_array);
           if (result > 0 )
          {
            result = CopyTicksRange (sec_symbol, mar_data.sec_ticks, COPY_TICKS_INFO , ulong (start_time) * 1000 , ulong (end_time) * 1000 );
             if (result > 0 )
            {
               if (mar_data.sec_ticks[result- 1 ].time >= sec_time_array[ ArraySize (sec_time_array) - 1 ])
              {
                mar_data.sec_cnt = result;
                 return ( true );
              } else Print ( "Не хватает тиков " , sec_symbol, "!" );
            } else Print ( "Не получены тики по символу " , sec_symbol, "!" );
          } else Print ( "Не скопировано время баров по символу " , sec_symbol, "!" );
        } else Print ( "Не хватает тиков " , Symbol (), "!" ); 
      } else Print ( "Не получены тики по символу " , Symbol (), "!" );
    } else Print ( "Не хватает баров по символу " , Symbol (), "!" );
  } else Print ( "Не скопировано время баров по символу " , Symbol (), "!" );
   return ( false );
}

이것만 준다

"기호 BR-1.21에 의한 막대의 시간은 복사되지 않았습니다!"

그러면 아무 일도 일어나지 않습니다.

결국 LoadTicks()에 대한 호출이 있으므로 표시기를 로드 할 때와 같이 모든 단계를 반복해야 합니다.

개발자 여러분, 표시기가 작동을 멈춘 이유는 무엇입니까?

Документация по MQL5: Программы MQL5 / Выполнение программ
Документация по MQL5: Программы MQL5 / Выполнение программ
  • www.mql5.com
Каждый скрипт, сервис и эксперт работает в собственном отдельном потоке. Все индикаторы, рассчитываемые на одном символе, даже если они запущены на разных графиках, работают в одном потоке. Таким образом, все индикаторы на одном символе делят между собой ресурсы одного потока. В одном потоке с индикаторами также последовательно выполняются...
 
fxsaber :
두 번째 날은 사이트에서 검색을 쟁기질하지 않습니다.

검색 기반이 많이 좁혀졌습니다. 많이 찾지 않습니다.

 
위치/주문의 마지막 수정 시간을 찾는 방법은 무엇입니까?
 
fxsaber :
위치/주문의 마지막 수정 시간을 찾는 방법은 무엇입니까?

POSITION_TIME_UPDATE

 
Igor_Gagarin :

POSITION_TIME_UPDATE

이것은 마지막 볼륨 변경 시간입니다. 그물의 에코.

 
fxsaber :

이것은 마지막 볼륨 변경 시간입니다. 그물의 에코.

포지션 오픈 시간 문제. 무엇에 대해 묻고 있었습니까?