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

 
MakarFX # :

제대로 하는 방법좀 알려주세요

추가하려는 모든 요소를 입력하지 않고 5개의 요소를 지정하기만 하면 됩니다.

 #property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link        " https://www.mql5.com "
#property version    "1.00"
#property strict
int Label1Buffer[];
int Label2Buffer[];
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   int i= 0 ,
       f= 0 ,
       limit= 9 ;
   ArrayResize (Label1Buffer,limit);
   ArrayResize (Label2Buffer,limit);
   for (i=limit- 1 ; i>= 0 ; i--)
     {
Label1Buffer[i]= 3 ;
 if (i<= 4 ) f+=Label1Buffer[i];
Label2Buffer[i]= f;
       Print (Label2Buffer[i]);
     }
Print ( "   !  " ,Label2Buffer[ 0 ]);
  }
//+------------------------------------------------------------------+
 
Galim_V # :

아니, 그게 아니야. 그렇게 하면서

   for (i=limit;i>= 0 ;i--)
     {
      Label1Buffer[i] = MathRand ();
      tmp = 0.0 ; 
       for ( int a=Input1; a> 0 ; a--)
        {
         tmp +=  Label1Buffer[i+a];
        } 
      Label2Buffer[i] = tmp;
     }
 
iHigh (NULL,PERIOD_H1,i) 및 이중 H= iHigh(NULL,PERIOD_H1,i); - 똑같지 않아?

어떤 이유로 while 루프 이후에는 다른 결과를 제공합니다.

긴 줄 iHigh(NULL,PERIOD_H1,i) 를 지속적으로 쓰지 않고 변수로 망치도록 최적화하고 싶었습니다. 루프에서 변수로 변경했는데 결과가 다릅니다.
 
Ivan Butko iHigh (NULL,PERIOD_H1,i) 및 이중 H= iHigh(NULL,PERIOD_H1,i); - 똑같지 않아?

어떤 이유로 while 루프 이후에는 다른 결과를 제공합니다.

긴 줄 iHigh(NULL,PERIOD_H1,i) 를 지속적으로 쓰지 않고 변수로 망치도록 최적화하고 싶었습니다. 루프에서 변수로 변경했는데 결과가 다릅니다.

그것을 보는 맥락에 따라.

while 루프가 i로 재생되는 경우 iHigh (NULL,PERIOD_H1,i)와 H는 다릅니다. H는 다른 i의 데이터를 저장하기 때문에

 
Nikolay Ivanov iHigh (NULL,PERIOD_H1,i)와 H는 다릅니다. H는 다른 i의 데이터를 저장하기 때문에

예, 맞습니다. i와 함께 재생됩니다. 감사합니다

 
스토리 끊는법 없나요? 올리면 20년은 걸리겠지만 2~3년 전은 필요...
 
Ivan Butko # :
스토리 끊는법 없나요? 올리면 20년은 걸리겠지만 2~3년 전은 필요...

"Shift" 키를 사용하여 불필요한 데이터 선택 및 삭제

 
MakarFX # :

"Shift" 키를 사용하여 불필요한 데이터 선택 및 삭제

덕분에

 
안녕하세요.
 void CloseAll()
{
   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 (!OrderClose(OrderTicket(),OrderLots(), Bid, Slippage))
               Print ( " Не удалось закрыть ордер на покупку!" );
            }
             if (OrderType() == OP_SELL) 
            {
               if (!OrderClose(OrderTicket(),OrderLots(), Ask, Slippage))
               Print ( " Не удалось закрыть ордер на продажу!" );
            }
         }
      }
   }
}
이 코드를 사용하여 모든 주문을 마감합니다. 그러나 나는 그것들이 많다면 모든 것이 닫히지 않는다는 것을 알아차렸습니다. 처음이 아니더라도 모든 것을 닫기 위해 추가할 수 있는 것. 가능하다면 예시일 뿐입니다.
 

좋은 오후, 다시)

두 번째 질문:
부분적으로 주문을 마감하고 싶습니다. 하지만 부분적인 주문 마감이라는 문제가 있는데, 제가 알기로는 주문 티켓이 바뀌고, 여기서부터 마지막 주문이 1순위가 되며, 제게 가장 중요한 것은 오픈 주문을 지키는 것입니다. 마지막을 마지막으로 유지하기 위해. 어떻게 주문을 추적할 수 있습니까? 시가가 바뀌나요? 가능하다면 예시와 함께)
미리 감사드립니다