포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 784

 
Leonid123456 :

이 고문의 경우 마지막)) 일반적으로 일했습니다. 마지막 것을 얻었습니다)). 테스트를 위한 Expert Advisor... 그래서, 여러 통화에 대한 작업과 수동 거래(함께)는 아직 예상되지 않습니다..

미래를 위해 제안 할 수 있습니까? 더 정확하기 때문에 유용 할 것입니다 ...

다시 한번 감사합니다.

다시 역순으로 검색하여 정확히 우리의 주문을 찾고 있습니다. 필요한 경우 시장 주문과 보류 중인 주문을 구별합니다. 모든 기준(기호, 매직, 유형)을 충족하는 첫 번째 주문은 일반적으로 가장 최근 주문입니다. . 하지만 확실히 더 젊어지지 않도록 개봉 시간 을 보는 것이 더 정확합니다.

테스터에서는 일반적으로 즉시 선택할 수 있습니다.

 OrderSelect ( OrdersTotal ()-1,SELECT_BY_POS))

마지막 열린 주문으로 작업하려면 시스템에 지연이 없으면 다른 주문이 필요하지 않으며 모든 것이 잘 작동합니다. 그러나 예금과 시장 예금이 동시에 있으면 실제 작업은 말할 것도 없고 그렇게 작동하지 않습니다.

 
Leonid123456 :

이 고문의 경우 마지막)) 일반적으로 일했습니다. 마지막 것을 얻었습니다)). 테스트를 위한 Expert Advisor... 그래서, 여러 통화에 대한 작업과 수동 거래(함께)는 아직 예상되지 않습니다..

미래를 위해 제안 할 수 있습니까? 더 정확하기 때문에 유용 할 것입니다 ...

다시 한번 감사합니다.

너무 많이 쓰지 않는 것이 좋습니다. 왜 중첩 루프를 우연히 발견했습니까? 결국 한 번의 주문 선택으로 한 사이클에서 필요한 모든 작업을 수행할 수 있습니다.

 if (New_Bar)
{
OrderSend ( Symbol (),OP_BUYSTOP,Lotpers,Ask+step, 100 , 0 , 0 , NULL ,MagicNumber, 0 ,DarkTurquoise);
OrderSend ( Symbol (),OP_SELLSTOP,Lotpers,Bid-step, 100 , 0 , 0 , NULL ,MagicNumber, 0 ,Yellow);
}

 for ( int b= 0 ; b< OrdersTotal (); b++)
  {
   if ( OrderSelect (b, SELECT_BY_POS) && OrderSymbol() == _Symbol && OrderMagicNumber() == MagicNumber)
    {
     lastlot = OrderLots();
   // Здесь надо в переменную засунуть тикет выбранного ордера
     if (OrderType() == OP_BUYSTOP||OrderType() == OP_BUY)
      orderprisebuy = OrderOpenPrice();
   
       if (OrderType() == OP_SELLSTOP||OrderType() == OP_SELL)
       orderprisecell = OrderOpenPrice(); 
         
        SL_VirtualCell = orderprisecell+step1* Point ;
        SL_VirtualBuy = orderprisebuy-step1* Point ;

                           /*  if(Mas_Tip[0] >0|| Mas_Tip[1] >0)
                                               {
if (New_Bar&&/*valsar1<Ask &&  osma0>0&&osma1<0    /*&& Volume[1]>VolumeFiltr)

OrderSend(Symbol(),OP_BUY,NormalizeDouble( lastlot*Marti,2),Ask,100,0,0,NULL,MagicNumber,0,DarkTurquoise);

if (New_Bar&& /*valsar1>Bid && osma0<0&&osma1>0    /* && Volume[1]>VolumeFiltr)

OrderSend(Symbol(),OP_SELL,NormalizeDouble( lastlot*Marti,2),Bid,100,0,0,NULL,MagicNumber,0,Yellow);       
         
}*/

CheckEvents(MagicNumber); // Вот здесь теряется выбранный ордер при переборе ордеров в вызванной функции

/*if ( eventSellClosed_SL >0|| eventBuyClosed_SL >0)
{        as();
                

 }
  /* ///   if ( eventBuyClosed_TP > 0 )
   //     Alert( Symbol(), ": Buy-позиция закрыта по ТейкПрофиту!" );

   */
     if (eventBuyStopOpened > 0 )
     {
       OrderSend ( Symbol (),OP_SELLSTOP, NormalizeDouble ( Lotpers, 5 ),orderprisecell, 0 , 0 , 0 , NULL ,MagicNumber, 0 , clrKhaki ); 
 
       if (OrderType() == OP_SELL)
       OrderClose(OrderTicket(),OrderLots(), Ask, 3 , clrIvory );  // Здесь может быть чужой OrderTicket( ) Возможны и другие аналогичные потери
     } //завершение блока if(eventBuyStopOpened > 0)
 ///

   if (eventSellStopOpened > 0 )
  {
   OrderSend ( Symbol (),OP_BUYSTOP, NormalizeDouble ( Lotpers, 5 ),orderprisebuy, 0 , 0 , 0 , NULL ,MagicNumber, 0 , clrPlum );
 
   if (OrderType() == OP_BUY)
    OrderClose(OrderTicket(),OrderLots(), Bid, 3 , clrIvory );  
  } //завершение блока if(eventSellStopOpened > 0)
 } //завершение блока if(OrderSelect(b
} //завершение блока for(int b=0


여러 줄 댓글 이 있는 곳을 알 수 없었습니다. 뭔가 컴파일 오류가 있는 것 같았습니다... 코드에 있는 내 설명에 주의하십시오.

 
Zhunko :
의미?
도와 주셔서 감사합니다!
 
AlexeyVik :

너무 많이 쓰지 않는 것이 좋습니다. 중첩 루프가 발생한 이유는 무엇입니까? 결국 한 번의 주문 선택으로 한 사이클에서 필요한 모든 작업을 수행할 수 있습니다.


여러 줄 댓글이 있는 곳을 알 수 없었습니다. 뭔가 컴파일 오류가 있는 것 같았습니다... 코드에 있는 내 설명에 주의하십시오.

오류는 없지만 OrderSend 기능을 확인하기 위한 제안이 있습니다. 주문닫기. 및 주문 삭제

'OrderSend'의 반환 값을 확인해야 합니다. .

댓글 감사합니다.

 

" ArrayMinimum "을 사용하여 배열에서 "ZigZag" 표시기의 최소값을 찾고 있습니다.

null 값을 무시하도록 검색을 설정할 수 있습니까? 아니면 루프를 사용하여 검색해야 합니까?

 
코딩하는 방법을 이해하지 못합니다. 마지막 포지션이 수익이 나지 않을 경우 어드바이저가 일정 시간을 기다려야 합니다. 어떤 아이디어?
 
Forexman77 :

" ArrayMinimum"을 사용하여 배열에서 "ZigZag" 표시기의 최소값을 찾고 있습니다.

null 값을 무시하도록 검색을 설정할 수 있습니까? 아니면 루프를 사용하여 검색해야 합니까?

가장 좋은 방법은 루프를 사용하는 것입니다.
 
Vinin :
가장 좋은 방법은 루프를 사용하는 것입니다.
고맙습니다!
 

높음과 낮음 사이에서 가장 깊은 수정을 찾는 방법은 무엇입니까? 우리는 최대값과 최소값을 알고 있으며 iHighest를 사용하여 찾는 것은 문제가 되지 않으며

i최저. iHighest 및 iLowest를 사용하는 경우 그림에서와 같이 항상 발생하는 것은 아니기 때문에 때때로 극단적인 경우가 있습니다. 일반적으로 ABC 형성의 식별이 필요합니다.

이 경우에 ZigZag를 적용하려고 시도했지만 부정확한 히트가 나타납니다.

이자형.

 

Forexman77 :

높음과 낮음 사이에서 가장 깊은 수정을 찾는 방법은 무엇입니까? 우리는 최대값과 최소값을 알고 있으며 iHighest를 사용하여 문제가 아님을 발견하고

i최저. iHighest 및 iLowest를 사용하는 경우 그림에서와 같이 항상 발생하는 것은 아니기 때문에 때때로 극단적인 경우가 있습니다. 일반적으로 ABC 형성의 식별이 필요합니다.

이 경우에 ZigZag를 적용하려고 시도했지만 부정확한 히트가 나타납니다.

얼마나 깊이 들여다보아야 하는지 결정하면 모든 것이 쉬울 것입니다. iLowest 대신 CopyLowArrayMinimum ()사용할 수 있습니다 .