초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 1025

 

나는 옵티마이저가 무엇을 맹세하는지 이해할 수 없습니까?

 2019.04 . 10 13 : 26 : 50.177 Core 8   genetic pass ( 13 , 498 ) tested with error "critical runtime error 502 in OnTick function (array out of range, module Experts\xxxxxx.ex5, xxxxxx.mq5, line 384, col 73)" in 0 : 00 : 00.102

맹세하는 코드

             if (profit_level == EMPTY_VALUE
               && ((pos_set.order_direction == trend_up && ( buffer_HMA7C[ 2 ] <= buffer_HMA7C[ 1 ] && buffer_HMA7C[ 1 ] >= buffer_HMA7C[ 0 ]) && buffer_HMA7C[ 0 ] > pos_set.order_price)
               ||  (pos_set.order_direction == trend_dn && ( buffer_HMA7C[ 2 ] >= buffer_HMA7C[ 1 ] && buffer_HMA7C[ 1 ] <= buffer_HMA7C[ 0 ]) && buffer_HMA7C[ 0 ] < pos_set.order_price))
              )

이것은 핸들이 올바르게 수신되었고 데이터도 올바르게 복사된 사용자 지정 표시기 버퍼입니다.

      handle_HMA7C = iCustom ( Symbol (), 0 , "my_used\\my_HMA7C_121" ,period_HMA7C);
       if (handle_HMA7C == INVALID_HANDLE )                                   // проверяем наличие хендла индикатора
      {
         Print ( "Не удалось получить хендл индикатора handle_HMA7C" );       // если хендл не получен, то выводим сообщение в лог об ошибке
         return ( INIT_FAILED );                                               // завершаем работу с ошибкой
      }
       else
      {
         Print ( "Получен хендл индикатора handle_HMA7C" );
         ChartIndicatorAdd ( ChartID (), 0 ,handle_HMA7C);                       // подключаем индикатор к графику
      }
.........................................
//+------------------------------------------------------------------+
bool copyBuffers()
{
   int    nbars = 11 ;
   
   ArrayFree (rates);
   ArrayFree (buffer_HMA7C);
      
   ResetLastError ();
   
   if ( CopyRates ( Symbol (), 0 , 0 ,nbars,rates) < nbars) return ( false );
   
       if ( CopyBuffer (handle_HMA7C, 0 , 1 ,nbars,buffer_HMA7C) < nbars )         // копируем данные из индикаторного массива в массив buffer_HMA7C
      {                                                                                         // если не скопировалось
         Print ( "Не удалось скопировать данные из индикаторного буфера в buffer_HMA7C" );         // то выводим сообщение об ошибке
         Print ( "LastError = " + string ( GetLastError ()));
         return ( false );                                                                         // и выходим из функции
      }
}


 
안녕하세요! MQL5InfoString 또는 MQL5InfoInteger 란 무엇입니까? 그것에 대해 어디에서 읽을 수 있습니까? 설명서에서 못찾았어요!
 
Tango_X :
안녕하세요! MQL5InfoString 또는 MQL5InfoInteger란 무엇입니까? 그것에 대해 어디에서 읽을 수 있습니까? 설명서에서 못찾았어요!
찾을 수 없는 것을 어떻게 찾았습니까?
Документация по MQL5: Проверка состояния / MQLInfoString
Документация по MQL5: Проверка состояния / MQLInfoString
  • www.mql5.com
Проверка состояния / MQLInfoString - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov :
찾을 수 없는 것을 어떻게 찾았습니까?

이 함수 앞의 편집기에서 이상하게 나는 F1 키를 누르고 아무 것도 표시되지 않습니다 .. 감사합니다!

 
#include <Trade\Trade.mqh>

CTrade trader;
int OnInit ()
  {

   trader.SetExpertMagicNumber( 1 );

   return ( INIT_SUCCEEDED );
  }
void OnDeinit ( const int reason)
  {
//---
  
  }
void OnTick ()
  {
       Print ( "тикет " , OrderGetTicket ( 0 ));
       Print ( "магик " , OrderGetInteger ( ORDER_MAGIC ));
       if ( OrderGetInteger ( ORDER_MAGIC )== 1 )
      {
         trader.OrderDelete( OrderGetTicket ( 0 ));
      }
  }

주문 삭제 후 마법 = 1. 어떻게 될 것인가?

 
ascerdfg :

주문 삭제 후 마법 = 1. 어떻게 될 것인가?

PENDING 주문을 삭제했습니다 . 마법이 "1"이라는 사실과 어떤 관련이 있습니까? 더 정확하게는 정확히 무엇을 좋아하지 않거나 혼동합니까?

 
Vladimir Karputov :

PENDING 주문을 삭제했습니다 . 마법이 "1"이라는 사실과 어떤 관련이 있습니까? 더 정확하게는 정확히 무엇을 좋아하지 않거나 혼동합니까?

         trader.OrderDelete( OrderGetTicket ( 0 ));
존재하지 않는 주문을 계속 삭제합니다.
 
ascerdfg :
존재하지 않는 주문을 계속 삭제합니다.

코드에 따르면 다음과 같은 일이 발생 합니다. 각 틱마다 "0" 티켓이 있는 PENDING 주문을 삭제 하라는 명령을 강제로 실행합니다.

Совершение сделок - Торговые операции - MetaTrader 5
Совершение сделок - Торговые операции - MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
Vladimir Karputov :

코드에 따르면 다음과 같은 일이 발생 합니다. 각 틱마다 "0" 티켓이 있는 PENDING 주문을 삭제 하라는 명령을 강제로 실행합니다.

아니요, 그렇지 않습니다. magick=1인 경우에만

 
ascerdfg :

아니요, 그렇지 않습니다. magick=1인 경우에만

본질은 변경되지 않습니다. 각 틱에서 "0" 티켓으로 보류 중인 주문을 삭제 하려고 합니다.

그리고 매 틱마다 티켓 0이 있는 보류 중인 주문이 있다고 누가 말했습니까? 대기 중인 주문이 몇 개인지 확인하셨나요? 와 저거 어디서 났어....?

사유: