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

 

난 문제를 해결할 수 없어 이미 캠페인을 무디게하고 맥주는 도움이되지 않습니다

주어진:

1-30명의 Expert Advisors가 차트 또는 기호 작업을 하며 모두 다른 매직 넘버를 가지고 있습니다.

2- 각 EA에는 3-5개의 미결 주문이 있습니다...

작업은 모든 매직 넘버와 그에 대한 총 손익을 차트의 열에 표시하는 것입니다 ...

나는 여기서 파고 있지만 파고 있지는 않습니다.

  #define  MagicN 0
#define  MagProf 1
 ArrayResize (mags, 100 , 1000 ); ArrayInitialize (mags, 0 );  
   for ( int f= OrdersTotal ()- 1 ; f>= 0 ; f--)
       if ( OrderSelect (f, SELECT_BY_POS ))
              {
               for ( int z= 100 - 1 ; z>= 0 ; z--)
                 {
                   if (mags[z][MagicN]== OrderMagicNumber ())
                  mags[z][MagProf]+= OrderProfit ()+ OrderCommission ()+ OrderSwap ();

                   if (mags[z][MagicN]!= OrderMagicNumber ())
                    {
                     mags[z][MagicN]= OrderMagicNumber ();
                     mags[z][MagProf]+= OrderProfit ()+ OrderCommission ()+ OrderSwap ();
                    }
                 }
              }

친절한 사람들이 누구보다 도와줍니다!!! ))))))))

 
VOLDEMAR :

난 문제를 해결할 수 없어 이미 캠페인을 무디게하고 맥주는 도움이되지 않습니다

주어진:

1- 30명의 Expert Advisors가 차트나 기호에 대해 작업하고 있으며 모두 다른 매직 넘버를 가지고 있습니다.

2- 각 EA에는 3-5개의 미결 주문이 있습니다...

작업은 모든 매직 넘버와 그에 대한 총 손익을 차트의 열에 표시하는 것입니다 ...

나는 여기서 파고 있지만 파고 있지는 않습니다.

친절한 사람들이 누구보다 도와줍니다!!! ))))))))


2차원 배열을 만듭니다. 첫 번째 차원에서는 누적된 이익을 저장하고 두 번째 차원에서는 마법을 저장합니다.

주문을 처리할 때 배열에서 마법 주문을 찾고, 찾지 못하면 배열을 늘리고, 찾으면 이익을 늘립니다.

처리가 끝나면 화면에 결과를 표시합니다.

 
Vinin :


2차원 배열을 만듭니다. 첫 번째 차원에서는 누적된 이익을 저장하고 두 번째 차원에서는 마법을 저장합니다.

주문을 처리할 때 배열에서 마법 주문을 찾고, 찾지 못하면 배열을 늘리고, 찾으면 이익을 늘립니다.

처리가 끝나면 화면에 결과를 표시합니다.


내가 쓴거 아니야?
 
VOLDEMAR :

내가 쓴거 아니야?

설마. 배열의 크기 를 정의하고 Magic 인덱스를 찾는 곳입니다. 나는 그것을 보지 못했다
 
for(int f=OrdersTotal()-1; f>=0; f--) // 주문 열거
if(주문선택(f,SELECT_BY_POS))
{
for(int z=0; z<ArraySize(mags); z++)// 배열의 요소 수를 통한 두 번째 루프
{
if(mags[z][MagicN]==OrderMagicNumber()) // 이미 매직이 있으면 이익을 추가합니다.
{
mags[z][MagProf]+=OrderProfit()+OrderCommission()+OrderSwap();
}
else /마술사가 없는 경우
{
ArrayResize(mags,z,1000); // 배열 증가
mags[z][MagicN]=OrderMagicNumber(); // 마법을 기억한다
}
}

}

여기서 터미널은 이 디자인으로 전류를 테스트하지 않고 치명적인 오류 를 기록합니다.

 
VOLDEMAR :
for(int f=OrdersTotal()-1; f>=0; f--) // 주문 열거
if(주문선택(f,SELECT_BY_POS))
{
for(int z=0; z<ArraySize(mags); z++)// 배열의 요소 수를 통한 두 번째 루프
{
if(mags[z][MagicN]==OrderMagicNumber()) // 이미 매직이 있으면 이익을 추가합니다.
{
mags[z][MagProf]+=OrderProfit()+OrderCommission()+OrderSwap();
}
else /마술사가 없는 경우
{
ArrayResize(mags,z,1000); // 배열 증가
mags[z][MagicN]=OrderMagicNumber(); // 마법을 기억한다
}
}

}

여기서 터미널은 이 디자인으로 전류를 테스트하지 않고 치명적인 오류를 기록합니다.


MagicN 변수는 무엇이며 어디에서 변경됩니까?
 
정의의 매개변수는 0이고 정의의 MagProf는 값이 1입니다.
 
VOLDEMAR :
정의의 매개변수는 0이고 정의의 MagProf는 값이 1입니다.


이 옵션을 사용해 보세요

 #define MagicN 0
#define MagProf 1
 double mags[ 10 ][ 2 ];
int CountMagic= 0 ;

void CalcMagic()
  {
   for ( int f= OrdersTotal ()- 1 ; f>= 0 ; f--) // перебор ордеров
       if ( OrderSelect (f, SELECT_BY_POS ))
        {
         mags[FindMaic( OrderMagicNumber ())][MagProf]+= OrderProfit ()+ OrderCommission ()+ OrderSwap ();
        }

  }
//+------------------------------------------------------------------+

int FindMaic( int Magic)
  {
   int Res=- 1 ;
   for ( int i= 0 ;i<CountMagic;i++)
     {
       if (mags[i][MagicN]==Magic)
         Res=i;
       break ;
     }
   if (Res==- 1 )
     {
      Res=CountMagic;
      CountMagic++;
       if (CountMagic>=ArrayRange(mags, 0 ))
        {
         ArrayResize (mags,CountMagic+ 10 );
        }

     }

   return (Res);
  }
//+------------------------------------------------------------------+

다차원 배열에서 차원은 ArrayRange()를 사용하여 결정할 수 있습니다.

 
Marketinfo를 통해 얻을 수 있는 stoplevel과 freezelevel이 있으며 동일한 제한이 있지만 일반적으로 15분인 최소 만료 날짜에 관한 것입니다. 즉, 보류 중인 주문 을 하는 경우 작동하지 않는 경우 자체 삭제되는 최소 시간은 15분입니다. 여기에 질문이 있습니다. 이 제한을 배우는 방법은 무엇입니까?
 
Desead :
Marketinfo를 통해 얻을 수 있는 stoplevel과 freezelevel이 있으며 동일한 제한이 있지만 일반적으로 15분인 최소 만료 날짜에 관한 것입니다. 즉, 보류 중인 주문을 하는 경우 작동하지 않는 경우 자체 삭제되는 최소 시간은 15분입니다. 여기에 질문이 있습니다. 이 제한을 배우는 방법은 무엇입니까?

브로커에게 물어보세요! 일부는 만료를 실행하지 않습니다.

순서대로 내려놓지 않고 여건에 따라 삭제합니다.