[ARCHIVE!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 4. - 페이지 39

 
artem86 :

앉으세요! 특정 가격에 도달했을 때 동일한 마법으로 5개의 보류 중인 주문을 닫는 방법.

미리 감사드립니다!


 if ( OrdersTotal ()> 0 )
{   for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
   {   if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)==true)
      {   if ( OrderMagicNumber ()==magic_number)
         {   if ( OrderClose ( OrderTicket (),LOT, price , 3 )==true)
            {   Print ( "Error = " , GetLastError ()); return ( 0 );
}  }  }  }  }
이 모든 주문이 판매를 위해 열리면 가격 =매도, 구매 가격 인 경우 = 입찰.
 
paladin80 :
매도를 위해 주문을 연 경우 가격=매도, 매수인 경우 가격=입찰가입니다.


틀렸어, 꼭

 if ( OrdersTotal ()> 0 )
{   for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
   {   if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)==true)
      {   if ( OrderMagicNumber ()==magic_number)
         {   if ( OrderDelete ( OrderTicket ())==true)
              {  
               Print ( "Error = " , GetLastError ()); return ( 0 );
              } 
         } 
      }  
   }  
}
 
r772ra :


틀렸어, 꼭

젠장, 보류 중인 주문 을 청산할 필요가 있다는 점에 주의를 기울이지 않고 포지션을 청산하는 것에 대해 생각하고 있었습니다.
 

얘들 아 - 테스터에서 나에게 말하고 수동을 포함하여 거래 계정에서 거래 할 때 열려있는 위치 의 양을 정상화하지 않는 것이 가능하며 필요한 양으로 열릴 것입니다. 예를 들어, 나는 시장을 엽니다. 주문 0.1210 로트 - 0.12가 터미널에서 열립니다. "추가" 소수 부분은 기본적으로 삭제됩니다.

말해봐 - 이것은 터미널의 다음 "업그레이드" 기능이거나 원래 가능했던 기능입니다.

이전에 이러한 볼륨 정규화 구성을 사용했는데 올빼미 중 하나에서 이 순간을 놓쳤고 주문이 계속 열리고 "전문가" 탭에서 개봉을 위한 예비 볼륨, 특히 0.121랏이 제공됩니다. 데모의 마이크로 계정에서 테스트 중입니다.

로트 정규화 기능:

 //+------------------------------------------------------------------+
//| Нормализация лота                                                |
//+------------------------------------------------------------------+

double NormalizeLots( double lot)
{
   double lotStep = MarketInfo ( Symbol (), MODE_LOTSTEP);
   double lots = NormalizeDouble (lot / lotStep, 0 ) * lotStep;   
   lots = MathMax (lots, MarketInfo ( Symbol (), MODE_MINLOT));
   lots = MathMin (lots, MarketInfo ( Symbol (), MODE_MAXLOT));   
   return (lots);
}

Expert Advisor 시작에서 호출:

 // ---------НОРМАЛИЗУЕМ НОВЫЕ РАСЧЕТНЫЕ ЛОТЫ И ОТКРЫВАЕМ ОЧЕРЕДНУЮ ПОЗИЦИЮ...            
                    Lots_New = NormalizeLots(Lots_New);
                     if (lastType == OP_SELL) WmOrderSend( Symbol (), OP_BUY, Lots_New, Ask, 0 , 0 , "итерация" , MagicNumber);
                     if (lastType == OP_BUY)  WmOrderSend( Symbol (), OP_SELL,Lots_New, Bid, 0 , 0 , "итерация" , MagicNumber);

아는 사람 - 댓글, plz ...

추신 다시 확인해 보니 0.1466의 볼륨으로 열려고 하면 0.14가 열리는 상황이 있는 것 같습니다. 소수점 둘째 자리 오른쪽에 있는 모든 것을 버립니다.

정규화가 수행되면 0.15랏의 오프닝이 있는 것처럼 보입니다. 반올림으로.

확인해야 할 것입니다...

추신 어쨌든 : 누가 알겠습니까 - 댓글, plz ...

 

젠장 무시.

 
HELP .. plz .. 나는 데모 및 실제 계정에서 고문을 실행합니다. 다음 틱에 의해 시작될 것입니다. 켜짐, 어드바이저가 켜져 있고, 로그에 오류가 없으며, 인터넷이 작동하고 다른 어드바이저도 작동합니다. 동시에 이 어드바이저는 테스터에서 제대로 작동합니다. 도움이 된다면: 내가 추가한 후 어드바이저가 켜기를 멈췄습니다 이 기사 에서 그것으로 필터링 기능
 
sellena :
도움이 된다면: 이 기사 의 필터링 기능을 추가한 후 EA가 켜지는 것을 멈췄습니다.

도움이 된다면 여기 직원 중 한 명과 이야기하십시오.
 
sergeev :

도움이 된다면 여기 직원 중 한 명과 이야기하십시오.
Alex, 시간이 있으면 내 질문을 살펴보세요... 감사합니다.
 
Roman. :
Alex, 시간이 있으면 내 질문을 살펴보세요... 감사합니다.

한 가지만 말씀드릴 수 있습니다. 저는 이미 서비스에 (다른 경우에) 연락을 취했고 그들은 그곳에서 이렇게 말했습니다 . 그래서 그것은 당신에게 달려 있습니다 ...
 
Roman. :
Alex, 시간이 있으면 내 질문을 살펴보세요... 감사합니다.

FAQ가 맞습니다. 당신은 "침묵"에 의존할 수 없습니다. 131 오류(잘못된 로트)가 자주 나왔던 걸로 기억 하는데, 주문을 보내기 전에 정규화를 하지 않으면 .
아마도 이제 MK는 실행 주문을 보낼 때 서버에 대한 기본 로트 확인을 이미 완료했을 것입니다.

따라서 보내기 전에 항상 가격과 로트의 정상화를 직접 수행하십시오.

이것은 당신을위한 것입니다 - 좋은 코딩 규칙과 미래에 잠재적 인 문제가있는 치질 감소 보장.

사유: