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

 
Dimka-novitsek :

안녕하세요!!! 배열이나 뭔가를 잘못 이해 한 것 같습니다. 함수는 배열에 이익을 추가하지 않습니다!! 그는 어떤 상황에서도 제로입니다. 제로와 모두!

 int Orderasthitaem[ 6 ][ 3 ];
void Orderasthitaem()
{
 int BUY = 0 , SELL = 0 , BUYLIMIT = 0 , BUYSTOP = 0 , SELLLIMIT = 0 , SELLSTOP = 0 ;
 double BUY_Profit = 0 , SELL_Profit = 0 ;
 for ( int i = 0 ; i < OrdersTotal (); i++)
  {
   OrderSelect (i, SELECT_BY_POS);  
   if (OrderSymbol() == Symbol () && OrderMagicNumber() == Magicnumber)
    {            
     int type = OrderType();
     if (type == 0 ) {BUY++; BUY_Profit = BUY_Profit + OrderProfit();}
     if (type == 1 ) {SELL ++; SELL_Profit = SELL_Profit + OrderProfit();}
     if (type == 2 ) {BUYLIMIT++;}
     if (type == 3 ) {SELLLIMIT++;}
     if (type == 4 ) {BUYSTOP++;}
     if (type == 5 ) {SELLSTOP++;}}}
       
     Orderasthitaem[ 0 ][ 1 ] = BUY;
     Orderasthitaem[ 0 ][ 2 ] = BUY_Profit;
     Orderasthitaem[ 1 ][ 1 ] = SELL;
     Orderasthitaem[ 1 ][ 2 ] = SELL_Profit;
     Orderasthitaem[ 2 ][ 1 ] = BUYLIMIT;
     Orderasthitaem[ 3 ][ 1 ] = SELLLIMIT;
     Orderasthitaem[ 4 ][ 1 ] = BUYSTOP;
     Orderasthitaem[ 5 ][ 1 ] = SELLSTOP;        
    }
  }
}
기능.

모든 함수 외부의 선언

 
감사해요!!!
 

왜 int 유형의 배열입니까? 이익이 소수이고 이것이 중요하지는 않지만 ... 예, 분명히 이중은 필요하지 않습니다!

지금 바로 다시 발표하겠습니다. 시도해 보겠습니다. 하지만 뭔가 바뀔까요? 왜 작동하지 않았습니까? 지금 해볼게..

 
ruslanchik :
주문 티켓이 브로커의 서버에 저장되어 있다면 주문의 마법과 댓글은 어디에 저장됩니까?

브로커의 서버에서.
 
그리고 배열의 요소에 할당하는 방법을 봅니다. 네, 고마워요!!!!!!!!
 
안녕하세요. 저는 현재 Sergey Kovalev의 MQL4 튜토리얼을 공부하고 있으며 다른 통화 쌍의 시계열 배열에 액세스하는 방법을 아직 찾지 못했습니다. 저것들. 여러 통화 쌍 의 배열-시계열을 하나의 어드바이저에 로드해야 합니다. 일부 데이터는 MarketInfo() 함수를 사용하여 액세스할 수 있지만 문제는 요청 식별자에 종가 또는 기타 가격 계열 매개변수가 없다는 것뿐입니다. 배열-시계열 및 여러 도구를 사용하여 작업을 구성하는 방법(있는 경우)을 읽을 수 있는 위치 또는 이 제한을 해결하는 방법을 알려주십시오.
 
나는 실제로 아직 컴파일하지 않았고 아무것도 시도하지 않았습니다. 그래서 요점은 싸이클을 종료할 때 BUY_Profit 및 기타 변수의 값이 저장되지 않는다는 것입니다. 그래서 결국 프로그램이 순차적으로 실행되는 건가요, 아니면 아직 저장이 안 된 건가요?
 
Dimka-novitsek :
나는 실제로 아직 컴파일하지 않았고 아무것도 시도하지 않았습니다. 그래서 요점은 싸이클을 종료할 때 BUY_Profit 및 기타 변수의 값이 저장되지 않는다는 것입니다. 그럼 결국 프로그램이 순차적으로 실행되는 건가요, 아니면 아직 저장이 안 된 건가요?
Dimka-novitsek :
그리고 배열의 요소에 할당하는 방법을 봅니다. 네, 고마워요!!!!!!!!

모든 유형이 가능합니다. 변수 중 하나가 이중이라는 것을 눈치채지 못했습니다. 더블이 필요합니다.

공장?

 

난 그냥 찾고 있어요. 그리고 ... OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO !!!!! 나는 이것을 이렇게 했고 그것을 Orderasthitaem[6][2]에 선언했다. 요소에 두 개의 배열이 있습니다. 즉, 이해했지만 이미 세 번째 Orderasthitaem[0,2] !!!!!!!

개가 뒤돌아본게 확실해!!!!!!!!! 오오오오!!!

 
Dimka-novitsek :
나는 실제로 아직 컴파일하지 않았고 아무것도 시도하지 않았습니다. 그래서 요점은 싸이클을 종료할 때 BUY_Profit 및 기타 변수의 값이 저장되지 않는다는 것입니다. 그래서 결국 프로그램이 순차적으로 실행되는 건가요, 아니면 아직 저장이 안 된 건가요?

... 다음과 같이 할 수도 있습니다.

 double Orderasthitaem[ 6 ][ 2 ];
void Orderasthitaem()
{
     double ld_Profit = 0 .;
    int li_Total = OrdersTotal ();
    ArrayInitialize (Orderasthitaem, 0.);
    if (li_Total == 0) return;
    for ( int i = 0 ; i < OrdersTotal (); i++)
    {
         OrderSelect (i, SELECT_BY_POS);  
         if (OrderSymbol() == Symbol () && OrderMagicNumber() == Magicnumber)
        {            
             int type = OrderType();
            ld_Profit = OrderProfit();
            Orderasthitaem[type][ 0 ]++;
             if (type > 1 ) continue ;
            Orderasthitaem[type][ 1 ] += ld_Profit;
        }
    }
}
- 당신이 그것을 좋아하는 방법입니다.