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

 
Andrei Sokolov # :

이제 나는 OrderSelect() 이후에 여전히 OrderSelect()에 대한 호출이 있는 알고리즘을 만났습니다. 따라서 OrderSelect() 이후 에 OrderSelect() 및 중첩된 OrderSelect 에 대한 더 많은 호출이 있는 경우 경고가 필요하다고 생각합니다. () 다른 주문을 "선택"합니다.

루프를 작성한다고 가정해 보겠습니다.
for(int i=...; ....; i++) {
...
}
그리고 루프 내부의 특정 조건에서 반복자 i는 값을 변경합니다.
경고도 해야 하나요?

 
Sergey Gridnev # :
루프를 작성한다고 가정해 보겠습니다.
for(int i=...; ....; i++) {
...
}
그리고 루프 내부의 특정 조건에서 반복자 i는 값을 변경합니다.
경고도 해야 합니까?

+++ 동일한 기능이나 구조의 배열에서 기능의 변수 또는 티켓의 제어, 또는 y가 아닌 x가 있는 환자의 온도 및 압력.

위협 제어 x 또는 y)))) 및 온도))))
 
Sergey Gridnev # :
루프를 작성한다고 가정해 보겠습니다.
for(int i=...; ....; i++) {
...
}
그리고 루프 내부의 특정 조건에서 반복자 i는 값을 변경합니다.
경고도 해야 합니까?

네.
그러나 그러한 조건에서는 경고가 구현되지 않을 것이라고 생각하기 때문에 더 이상 논의하는 것은 의미가 없다고 생각합니다.

 
Andrei Sokolov # :

네.
그러나 그러한 조건에서는 경고가 구현되지 않을 것이라고 생각하기 때문에 더 이상 논의하는 것은 의미가 없다고 생각합니다.

BASIC에서는 일반적으로 해가 되는 것을 고려하고 있습니다. 여기에서도 루프를 사용하여 위에서 아래로 프로그래밍 환경과 알고리즘을 개선하지 않습니다.

이것은 알고리즘의 엄격함과 정확성일 뿐입니다. 더 이상은 없어. 그리고 언어의 규칙과 가능성을 이해합니다.

 
Andrei Sokolov # :

네.
그러나 그러한 조건에서는 경고가 구현되지 않을 것이라고 생각하기 때문에 더 이상 논의하는 것은 의미가 없다고 생각합니다.

처음부터 이 문제를 논할 이유가 전혀 없었습니다. mql5 문제가 논의되는 주제에서 mql4의 문제에 대해 씁니다. 질문이 mql4에 관한 것이라고 즉시 말했다면 아무도 대답하지 않았을 것입니다.

 
Alexey Viktorov # :

mql5 문제가 논의되는 주제에서 mql4의 문제에 대해 씁니다.

이것은 어디에 표시되어 있습니까?

 
Alexey Viktorov # :

처음부터 이 문제를 논할 이유가 전혀 없었습니다.

Alexey, 처음에는 지적하려 했으나 이제는 의미가 있는 곳과 그렇지 않은 곳을 다른 사람들을 위해 결정하려고 합니다.

건설적인 대답이 없다면 그런 무의미한 서신을 촉발하지 않을 수 없습니다.

 
Andrei Sokolov 함수 호출 을 포함하여 OrderSelect() 뒤에 있는 첨부 파일에 OrderSelect()의 다른 호출이 포함된 경우 컴파일러에서 경고를 표시하면 편리할 것이라고 생각합니다.

어제 저녁 내내 버그를 찾고 있었는데 이런 이유로 두 번째입니다.

 void Trailing()
{
   for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
   {
       if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() == Symbol () && OrderMagicNumber()==magic)
         {
             if (OrderType() == OP_BUY)
            {
               if (Bid >= GetAveragePrice(OP_BUY)+start_tral_level* Point ) //OrderOpenPrice()
               {
                   if (Bid >= OrderStopLoss()+(tral_stop+tral_step)* Point || OrderStopLoss()== 0 )
                  {
                     if (!OrderModify(OrderTicket(), OrderOpenPrice()
                     , NormalizeDouble (Bid-tral_stop* Point , Digits ), OrderTakeProfit(), OrderExpiration())) 
                     {
                         Print ( "Trailing buy err " , GetLastError ());
                     }
                  }
               }
            }
             if (OrderType()==OP_SELL)
            {
               if (Ask <= GetAveragePrice(OP_SELL)-start_tral_level* Point ) //OrderOpenPrice()
               {
                   if (Ask <= OrderStopLoss()-(tral_stop+tral_step)* Point || OrderStopLoss()== 0 )
                  {
                     if (!OrderModify(OrderTicket(), OrderOpenPrice()
                     , NormalizeDouble (Ask+tral_stop* Point , Digits ), OrderTakeProfit(), OrderExpiration())) 
                     {
                         Print ( "Trailing sell err " , GetLastError ());
                     }
                  }   
               }   
            }   
         }
      }
   }
}
double GetAveragePrice( int in_type) //расчет средней цены позиций
{
   double dRes=- 1 ;
   double dSum= 0 ;
   double dLot= 0 ;
   double dComission= 0 ;
   double dSwap= 0 ;
   int iTotalPos= OrdersTotal ();
   for ( int cnt= 0 ;cnt<iTotalPos;cnt++)
   {
       if (! OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES)) Print ( "Error Select Order" );
      {
         if (OrderType()==in_type && OrderSymbol()== Symbol () && OrderMagicNumber()==magic)
         {
            dSum+=OrderOpenPrice()*OrderLots();
            dLot+=OrderLots();
            dSwap+=OrderSwap();
            dComission+=OrderCommission();
         }
      }    
   }     
   if (in_type==OP_BUY && dLot!= 0 ) dRes=dSum/dLot-dSwap/dLot* Point -dComission/dLot* Point ;
   if (in_type==OP_SELL && dLot!= 0 ) dRes=dSum/dLot+dSwap/dLot* Point +dComission/dLot* Point ;
   
   return dRes;
}
건설적인 답변은 이미 마차와 작은 카트로 작성되었습니다. 이 스레드에서 mql4 문제에 대한 논의에 어린 양이 관심을 기울이는 것만 남아 있습니다...
 
Alexey Viktorov # :

이 코드에서 mql4에 대해 이야기하고 있음이 분명합니다. 바로 눈치채지 못해서 죄송합니다.

건설적인 답변은 이미 마차와 작은 카트로 작성되었습니다. 이 스레드에서 mql4 문제에 대한 논의에 어린 양이 관심을 기울이는 것만 남아 있습니다...

그렇다면 mql5 문제만 논의된다는 것은 어디에 표시됩니까?

 
Andrei Sokolov # :

그렇다면 mql5 문제만 논의된다고 어디에 명시되어 있습니까?

예약의 mql4 - 포럼에는 별도의 섹션 이 있습니다. 다른 모든 것 - mql5