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

 
inoy :

EA는 자신의 주문을 제시간에 마감하지 않습니다. 다른 사람의 심볼 주문이 있는 경우 자신보다 일찍 오픈했습니다.
주문하다. 다른 사람의 주문이 나중에 열리거나 다른 사람의 주문이 없으면 OrderClose 기능이 올바르게 작동합니다. 어디가 잘못되었는지 말해줘


실수는 인덱스가 0인 주문을 받고 열려 있는 주문 중에서 찾지 않는다는 것입니다.
 
Roger :

실수는 인덱스가 0인 주문을 받고 열려 있는 주문 중에서 찾지 않는다는 것입니다.

죄송하지만 이 변형에서도 상황은 비슷합니다.
 //---- закрытие позиции
if(OrdersTotal() > 0)
for ( int i= OrdersTotal ();i>= 0 ;i--)
OrderSelect (i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol()== Symbol ()&& OrderMagicNumber() == MagicNumber)
if ( iTime( Symbol (), 0 , 0 ) >= OrderOpenTime()+SecondsClose )
if (OrderType() == OP_BUY)
OrderClose(OrderTicket(),OrderLots(), NormalizeDouble (Bid, Digits ), NormalizeDouble ((Ask - Bid) * Point , Digits ), DodgerBlue );
문제에 대한 올바른 솔루션을 제공하십시오
 
Avelox :

다음 식에서 표시기의 소리 신호를 출력하는 방법:

if (숫자1 == 9) {
ObjectCreate(""+i, OBJ_TEXT, 0, Time[i+1],High[i+1]+10*Point );
ObjectSetText(""+i, ""+DoubleToStr(num1,0), 16, "Arial", RoyalBlue);

}

가능하면 " OBJ_SICICOCI를 사용하고 MQL4 설명서에서 세부 정보를 볼 수 있습니다. 모든 것이 거기에 있습니다!"

나는이 문제를 스스로 해결할 수있었습니다.


ObjectCreate(""+i, OBJ_TEXT , 0, Time[i+1],High[i+1]+10*Point );
ObjectSetText(""+i, ""+DoubleToStr(num1,0), 18, "Arial", RoyalBlue);
PlaySound("havecall.wav"); }
 
inoy :

죄송하지만 이 변형에서도 상황은 비슷합니다. 친절하게 문제에 대한 올바른 솔루션을 제공

 //---- закрытие позиции
if ( OrdersTotal () > 0 ) 
{
   for ( int i= OrdersTotal ();i>= 0 ;i--) 
  {
     OrderSelect (i, SELECT_BY_POS, MODE_TRADES);
     if (OrderSymbol()== Symbol ()&& OrderMagicNumber() == MagicNumber) 
    {
       if ( iTime( Symbol (), 0 , 0 ) >= OrderOpenTime()+SecondsClose ) 
      {
         if (OrderType() == OP_BUY)
         {
            OrderClose(OrderTicket(),OrderLots(), NormalizeDouble (Bid, Digits ), NormalizeDouble ((Ask - Bid) * Point , Digits ), DodgerBlue );
         }
      }
   }
}
 

아 그리고 교체

 for ( int i= OrdersTotal ();i>= 0 ;i--) 

 for ( int i= OrdersTotal ()- 1 ;i>= 0 ;i--) 


И еще, не понял, что за элемент в функции (подчеркнуто красным)?

OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits), NormalizeDouble((Ask - Bid) * Point ,Digits), DodgerBlue);

 
for ( Expression_1 ; ; Expression_2 ) // 누락된 조건
      { // 여는 중괄호
      문 블록, // 루프 본문은 ..로 구성될 수 있습니다.
      루프 본문을 구성하는 //.. 여러 명령문에서
      } // 닫는 중괄호

이 주기의 종료 조건은 무엇입니까? 아니면 이렇게

 for ( ; ; ) // 누락. 표현식 및 조건
      { // 여는 중괄호
      문 블록, // 루프 본문은 ..로 구성될 수 있습니다.
      루프 본문을 구성하는 //.. 여러 명령문에서
      } // 닫는 중괄호
 
VladimirR :

그러한 루프의 종료 조건이 무엇인지 말해 줄 수 있습니까? 아니면 이렇게


부서지다
 

Vinin, Roger - 감사합니다. 도움이 되었습니다.

NormalizeDouble((Ask - Bid) * Point, Digits )는 XAUUSD와 같은 높은 스프레드 기호에 대한 슬립입니다.

 
inoy :

Vinin, Roger - 감사합니다. 도움이 되었습니다.

NormalizeDouble((Ask - Bid) * Point,Digits)은 XAUUSD와 같은 높은 스프레드 기호에 대한 미끄러짐입니다.


그래서 당신은 그것이 0이라고 생각합니까? 첫째, 미끄러짐은 양의 정수여야 하고, 둘째, 그 차이는 곱하지 않고 Point 로 나누어져야 합니다.
 
주님! 고문이 밤에 거래하지 않도록 "이유"하는 방법은 무엇입니까? 즉, 터미널 시간에 따르면 23시에서 02시까지(그리니치 표준시).. Hour()>=2&&Hour()<=23 행은 도움이 되지 않았습니다...