MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1833

 

얘들 아, 매분 값을 업데이트하려면 보류중인 주문 이 필요하고 무언가 수정이 비뚤어 졌으므로 양방향으로 매분마다 삭제하고 설치하기로 결정했습니다. 테스터에서 작동하지만 실제 생활에서는 어떻게 든 넣지 않습니다 아래에. 수정하거나 삭제하는 대신 수정하거나 도와주세요.


       if ( TimeCurrent ()>TimeCheck_sn && TimeCurrent ()<TimeCheck_en && Ogranichitel > 0 )
        {

         if (IsNewCandle())
           {

             if (OrderOfSymbol> 0 && OrderType() ==  OP_BUYSTOP)
               ticket2 =  OrderDelete(OrderTicket(),Violet);

             if (OrderOfSymbol> 0 && OrderType() ==  OP_SELLSTOP)
               ticket2 =  OrderDelete(OrderTicket(),Violet);


             if (Close[ 1 ]>Open[ 1 ] && CountOrders()== 0 )
               if (NewsSellAllow == true )
                  ticket2 = OrderSend ( Symbol (),OP_SELLSTOP, LotSk, Bid-(Skachok* Point ), Slippage, 0 , Bid-((Skachok+TPsk)* Point ), "открыт ордер на продажу" , Magic, 0 , Red);
                   Print ( "OpenOrderSuccess" );
                  
             if (Close[ 1 ]>Open[ 1 ] && CountOrders()== 0 )
               if (NewsBuyAllow == true )
                  ticket2 = OrderSend ( Symbol (),OP_BUYSTOP, LotSk, Ask+(Skachok* Point ), Slippage, 0 , Ask+((Skachok+TPsk)* Point ), "открыт ордер на покупку" , Magic, 0 , Blue);
                   Print ( "OpenOrderSuccess" );


             if (OrderType() ==  OP_BUYSTOP && OrderOfSymbol> 0 )
               ticket2 = OrderModify(OrderTicket(), (Ask+(Skachok* Point )), 0 , (Ask+((Skachok+TPsk)* Point )), 0 );

             if (OrderType() ==  OP_SELLSTOP && OrderOfSymbol> 0 )
               ticket2 = OrderModify(OrderTicket()+ 1 , (Bid-(Skachok* Point )), 0 , (Bid-((Skachok+TPsk)* Point )), 0 );
           }
        }


       if ( TimeCurrent () == TimeCheck_en)
        {


         if (IsNewCandle())
           {
             if (OrderOfSymbol> 0 && OrderType() ==  OP_BUYSTOP)
               ticket2 =  OrderDelete(OrderTicket(),Violet);

             if (OrderOfSymbol> 0 && OrderType() ==  OP_SELLSTOP)
               ticket2 =  OrderDelete(OrderTicket(),Violet);
           }


        }
 
Порт-моне тв 보류중인 주문 이 필요하고 무언가 수정이 비뚤어 졌으므로 양방향으로 매분마다 삭제하고 설치하기로 결정했습니다. 테스터에서 작동하지만 실제 생활에서는 어떻게 든 넣지 않습니다 아래에. 수정하거나 삭제하는 대신 수정하거나 도와주세요.


수정으로 더 잘 돌아와서 필요한 것을 설명하십시오.
 
Tretyakov Rostyslav # :
수정 사항으로 더 잘 돌아와서 필요한 것을 설명하십시오.

새 양초에서 지정된 들여쓰기를 사용하여 양방향으로 보류 중인 항목을 수정해야 할 때마다(클래식과 같이), 중단되는 경우(뉴스에 대한 촬영) 주문이 열립니다(두 번째 보류 중인 자동으로 닫힐 수 있음) 그러나 아직 열지 않은 다음 다시 수정하고 다시 수정합니다. 그리고 이 모든 것이 주어진 시간 안에 이루어집니다. 어드바이저의 매개변수에 지정됩니다.

 
Порт-моне тв # :

새 양초에서 지정된 들여쓰기를 사용하여 양방향으로 보류 중인 항목을 수정해야 할 때마다(클래식과 같이), 중단되는 경우(뉴스에 대한 촬영) 주문이 열립니다(두 번째 보류 중인 자동으로 닫힐 수 있음) 그러나 아직 열지 않은 다음 다시 수정하고 다시 수정합니다. 그리고 이 모든 것이 주어진 시간 안에 이루어집니다. 어드바이저의 매개변수에 지정됩니다.

첫 주문은 어떻게 이루어지나요?
 
Tretyakov Rostyslav # :
첫 주문은 어떻게 이루어지나요?
 if (Close[ 1 ]>Open[ 1 ] && CountOrders()== 0 )
               if (NewsSellAllow == true )
                  ticket2 = OrderSend ( Symbol (),OP_SELLSTOP, LotSk, Bid-(Skachok* Point ), Slippage, 0 , Bid-((Skachok+TPsk)* Point ), "открыт ордер на продажу" , Magic, 0 , Red);
                   Print ( "OpenOrderSuccess" );
                  
             if (Close[ 1 ]>Open[ 1 ] && CountOrders()== 0 )
               if (NewsBuyAllow == true )
                  ticket2 = OrderSend ( Symbol (),OP_BUYSTOP, LotSk, Ask+(Skachok* Point ), Slippage, 0 , Ask+((Skachok+TPsk)* Point ), "открыт ордер на покупку" , Magic, 0 , Blue);
                   Print ( "OpenOrderSuccess" );
 
Порт-моне тв # :
지금 살펴볼게요
 
Порт-моне тв # :
두 가지 유형의 주문에 대해 동일한 조건이 있습니다.
 if (Close[ 1 ]>Open[ 1 ] && CountOrders()== 0 )
 
Tretyakov Rostyslav # :
두 가지 유형의 주문에 대해 동일한 조건이 있습니다.

그래서 양방향으로 필요합니까, 아니면 추가해야 합니까?

 
Порт-моне тв # :

그래서 양방향으로 필요합니까, 아니면 추가해야 합니까?

여기... 바를 열 때 한 번 수정

개장의 경우 뉴스에서 거래하면 "닫기[1]>열기[1]"이 전혀 필요하지 않고 양초가 중요하면

하나는 "닫기[1] > 열기[1]"이고 다른 하나는 "닫기[1] < 열기[1]"입니다.

 //+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   if (Close[ 1 ]>Open[ 1 ] && CountOrders()== 0 )
     {
       if (NewsSellAllow == true )
        {
         ticket2 = OrderSend ( Symbol (),OP_SELLSTOP, LotSk, Bid-(Skachok* Point ), Slippage, 0 , Bid-((Skachok+TPsk)* Point ), "открыт ордер на продажу" , Magic, 0 , Red);
         Print ( "OpenOrderSuccess" );
        }
     }
   if (Close[ 1 ]>Open[ 1 ] && CountOrders()== 0 )
     {
       if (NewsBuyAllow == true )
        {
         ticket2 = OrderSend ( Symbol (),OP_BUYSTOP, LotSk, Ask+(Skachok* Point ), Slippage, 0 , Ask+((Skachok+TPsk)* Point ), "открыт ордер на покупку" , Magic, 0 , Blue);
         Print ( "OpenOrderSuccess" );
        }
     }
   if (newbar!=Time[ 0 ])
     {
      ModifyOrder();
      newbar=Time[ 0 ];
     }
  }
//+------------------------------------------------------------------+
//| Подсчет открытых ордеров                                         |
//+------------------------------------------------------------------+
int CountOrders( int ot=- 1 ) 
  {
   int cnt= 0 ;
   int i= OrdersTotal ()- 1 ;
   for ( int pos=i;pos>= 0 ;pos--)
     {
       if ( OrderSelect (pos,SELECT_BY_POS,MODE_TRADES))
        {
         if (OrderSymbol()== _Symbol &&OrderMagicNumber()==Magic)
           {
             if (OrderType()==ot||ot==- 1 ) cnt++;
           }
        }
     }
   return (cnt);
  }
//+------------------------------------------------------------------+
//| Модификация ордера                                               |
//+------------------------------------------------------------------+
void ModifyOrder()
  {
   int i= OrdersTotal ()- 1 ;
   for ( int pos=i;pos>= 0 ;pos--)
     {
       if ( OrderSelect (pos,SELECT_BY_POS,MODE_TRADES))
        {
         if (OrderSymbol()== _Symbol &&OrderMagicNumber()==Magic)
           {
             if (OrderType()==OP_BUYSTOP&&OrderOpenPrice()!=Ask+(Skachok* Point ))
              {
               if (OrderModify(OrderTicket(), Ask+(Skachok* Point ), 0 , Ask+((Skachok+TPsk)* Point )))
                 { Print ( "Ордер модифицирован" );}
               else
                 { Print ( "Ошибка модификации ордера:" , GetLastError ());}
              }
             if (OrderType()==OP_SELLSTOP&&OrderOpenPrice()!=Bid-(Skachok* Point ))
              {
               if (OrderModify(OrderTicket(), Bid-(Skachok* Point ), 0 , Bid-((Skachok+TPsk)* Point )))
                 { Print ( "Ордер модифицирован" );}
               else
                 { Print ( "Ошибка модификации ордера:" , GetLastError ());}
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
 
Tretyakov Rostyslav # :

여기... 바를 열 때 한 번 수정

개장의 경우 뉴스에서 거래하면 "닫기[1]>열기[1]"이 전혀 필요하지 않고 양초가 중요하면

하나는 "닫기[1] > 열기[1]"이고 다른 하나는 "닫기[1] < 열기[1]"입니다.

고마워, 내일 아침 나는 운전한다