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

 
alph :
알려주십시오. 테스터의 그러한 지표가 실생활에서 실재합니까? 그리고 $3000 디포가 있는 해에 좋은 결과입니까 나쁜 결과입니까?

시뮬레이션 품질이 99.9%인데도 전략 테스터 는 항상 거짓말을 합니다!

어드바이저를 확인하는 유일한 방법은 데모 계정에서 실시간으로 VPS 서버에 올리는 것입니다... Microsoft Azure에서 한 달 동안 거의 무료 서버를 제공합니다. 1달러가 필요합니다. YouTube에서 보세요!... 다른 VPS 서비스가 있지만 최대 10일 동안 무료로 사용할 수 있습니다.

 

얘들아! 어드바이저에서 수동으로 거래 금지를 프로그래밍 방식으로 설정할 수 있습니까?

 

이 블록이 매직 및 _Symbol을 무시하고 터미널에 설정된 모든 기호에 대해 보류 중인 중지 주문을 모두 제거하는 이유를 말씀해 주시겠습니까?

 //--------------------------------------------------------------------------------------------------------------
//       Блок удаления отложенников по типу ордера
//--------------------------------------------------------------------------------------------------------------
int dell_ord_by_type( int type_ord, int _magic)
{   
   bool ticketmdf;
   int j;
  
   int orders= OrdersTotal ();
   for ( int i= 0 ;i<orders;i++) //--- пробежим по списку ордеров
   {     
         if ( OrderGetString ( ORDER_SYMBOL ) == Symbol () && OrderGetInteger ( ORDER_MAGIC )==_magic && OrderGetInteger ( ORDER_TYPE ) ==type_ord)   
         {  
             if ( OrderGetInteger ( ORDER_TYPE )== ORDER_TYPE_BUY_STOP || OrderGetInteger ( ORDER_TYPE )== ORDER_TYPE_SELL_STOP )
            {       
               for (j=Appempts; j> 0 ; j--) 
               { 
               //----------------------------------------------------------------------
               MqlTradeResult result={ 0 }; 
             MqlTradeRequest request={ 0 };
            request.order= OrderGetTicket (i);
            request.symbol = _Symbol ;
            request.magic = _magic;
            request.action= TRADE_ACTION_REMOVE ;
            ticketmdf= OrderSend (request,result);
            
                   if (ticketmdf== true )
                  {
                     Print ( "Успешно удалён ордер" );
                     Sleep ( 2000 );
                     break ;                    
                  }
                   if (ticketmdf== false )                     
                  {
                     Print ( "Ошибка при удалении ордера # " ,+ GetLastError ());
                     Sleep ( 7000 );
                  }
               }                            
            }                       
         }                        
   }
   return ( true );  
}
 
Aleksandr Prishenko :

이 블록이 매직 및 _Symbol을 무시하고 터미널에 설정된 모든 기호에 대해 보류 중인 중지 주문을 모두 제거하는 이유를 말씀해 주시겠습니까?

1. 먼저 주문을 선택해야 합니다.

2. 싸이클은 마지막 주문에서 생성되어야 합니다. for( i = 주문-1, i >= 0, i-- )

 
Aleksandr Prishenko :

이 블록이 매직 및 _Symbol을 무시하고 터미널에 설정된 모든 기호에 대해 보류 중인 중지 주문을 모두 제거하는 이유를 말씀해 주시겠습니까?

주문을 선택해야 합니다.

...
   int orders= OrdersTotal ();
   for ( int i= 0 ;i<orders;i++) //--- пробежим по списку ордеров
     {
       if ( OrderSelect (ххх,ххх,хххх)== true )
        {
         if ( OrderGetString ( ORDER_SYMBOL )== Symbol () && OrderGetInteger ( ORDER_MAGIC )==_magic && OrderGetInteger ( ORDER_TYPE )==type_ord)
           {
...
 
Vladimir Tkach :

얘들아! 어드바이저에서 수동으로 거래 금지를 프로그래밍 방식으로 설정할 수 있습니까?

당연히 아니지.
 
말씀이 맞습니다. 구현이 올바르지 않습니다. OrderSelect()에 대한 티켓은 어디에서 얻을 수 있습니까?
 

그게 맞을까요?

Alexey Kozitsyn Karputov Vladimir 는 조언에 감사드립니다!

 int dell_ord_by_type( int type_ord, int _magic)
{   
   bool ticketmdf;
   int j;
 int orders= OrdersTotal ();
   for ( int i= 0 ;i<orders;i++) //--- пробежим по списку ордеров
   { 
   ResetLastError ();    
   ulong ticket= OrderGetTicket (i);
       if (ticket!= 0 ) // если ордер успешно скопирован в кэш, работаем с ним  

      {      
         if ( OrderGetString ( ORDER_SYMBOL ) == _Symbol && OrderGetInteger ( ORDER_MAGIC )==_magic && OrderGetInteger ( ORDER_TYPE ) ==type_ord)   
         {  
             if ( OrderGetInteger ( ORDER_TYPE )== ORDER_TYPE_BUY_STOP || OrderGetInteger ( ORDER_TYPE )== ORDER_TYPE_SELL_STOP )
            {       
               for (j=Appempts; j> 0 ; j--)
               { 
 

그들은 위에서 당신에게 다음과 같이 썼습니다. 주문을 삭제할 때 주기를 반대로 해야 합니다. 주문이 삭제되면 나머지 주문의 인덱스가 이동됩니다.

 int dell_ord_by_type( int type_ord, int _magic)
{
   ulong nOrderTicket = 0 ;
   
   for ( int i = OrdersTotal () - 1 ; i >= 0 ; i--)   //--- пробежим по списку ордеров
   {
      nOrderTicket = OrderGetTicket (i);
        
      if (nOrderTicket > 0 && OrderGetString ( ORDER_SYMBOL ) == Symbol () && OrderGetInteger ( ORDER_MAGIC ) == _magic && OrderGetInteger ( ORDER_TYPE ) == type_ord)   
      {  
         if ( OrderGetInteger ( ORDER_TYPE ) == ORDER_TYPE_BUY_STOP || OrderGetInteger ( ORDER_TYPE ) == ORDER_TYPE_SELL_STOP )
         {       
            // удаляем
         }
      }
   }
        
   return ( 0 );  
}
 
그건 그렇고, 당신의 버전에서 항상 true를 반환하는 경우 함수를 int로 선언하는 이유는 무엇입니까? )