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

 
Roman. :

탱크를보고 다시로드하십시오. 아마도 도움이 될 것입니다 ... :-)

추신 지금은 괜찮아

아니다. 탱크는 옵션이 아닙니다. 정말 이런 걸 원하신다면. 현재 결과를 진정시키십시오))
 
hoz :
아니다. 탱크는 옵션이 아닙니다. 당신이 정말로 이런 것을 원한다면. 현재 결과를 진정시키십시오))

:-)
 

고샤. 일반적으로 이상한 순간이 나타납니다. 내 몫은 정상화되지 않았습니다. 다음은 로트 정규화 기능입니다.

 //+-------------------------------------------------------------------------------------+
//| Проверка объема на корректность и округление                                        |
//+-------------------------------------------------------------------------------------+
double LotFloor( double value)
{
   return ( MathFloor ( MathMin ( MathMax (value, g_minLot), g_maxLot)/g_lotStep)*g_lotStep);

캔트가 어디에 있는지, 거래 함수 자체에서, 주문을 여는 함수가 호출되는 곳, 주문을 보내는 호출 함수의 매개변수 모든 곳에서 확인하여 이 함수를 로트 크기 매개변수에 추가했습니다. 오류가 사라지지 않았습니다.

그리고 첫 번째 swearing 함수에 바로 normalization 함수를 추가했는데, 이것이 deferreds를 설정하는 함수입니다. swearing은 멈췄습니다. 무슨 뜻인가요?

 //+-------------------------------------------------------------------------------------+
//| Открытие отложенной короткой позиции                                                |
//+-------------------------------------------------------------------------------------+
bool OpenPendingSell( double lot, double price)
{
   int g_ticket = - 1 ;
   double OOP = price - i_distanceFromLastPos * pt;
      
   if (OOP < Bid)
   {
       fCheck_ValidPendingOOP( Symbol (), OP_SELLSTOP, OOP);
       
       g_ticket = OrderSend ( Symbol (), OP_SELLSTOP, LotFloor(lot), ND(OOP), 30 , 0 , 0 , NULL , i_magic, 0 , CLR_NONE );
   }
   if (g_ticket > 0 )
   {
       return ( true );
   }
   else
       pr ( "OpenPendingSell(): Ордер послать не удалось " + GetLastError ());
   
   return ( false );
}

실제로 첫 번째 옵션에서는 이미 확인된 로트를 즉시 보내고 두 번째 옵션에서는 OrderSend() 함수 자체에서 로트 크기를 확인합니다. 하지만 차이점은 무엇입니까?

 
chief2000 :
이러한 문제는 크기가 변경될 수 있는 1차원 배열이 있습니다.
루프에서 배열 요소의 가능한 모든 조합을 서로 반복하는 방법은 무엇입니까?
요소의 순서는 중요하지 않습니다. 123==213==321..

다음은 4개의 요소가 있는 배열의 예입니다.

뭐, 서로 어렵지는 않은 것 같다

 int k = ArraySize (array);
for ( int i= 0 ;i<k- 1 ;i++)
for ( int ii=i+ 1 ;ii<k;ii++)
   {
   ...
   }
하지만 2개 이상일 때는 어떻게 비교해야 하는지 명확하지 않다. 세 숫자 1, 2, 3을 동시에 비교하는 방법을 보여주고,
 
얘들 아, 최적화 창을 다시 열 필요가 없도록 만드는 방법을 알려주는 사람은 아무도 없습니다. 이 창에는 다른 배경 설정, 촛불 등이 있습니다.
 
아마 그런 스크립트가 있을 것입니다!
 
안녕하세요! 그런 것을 말씀해 주세요... 여기에서 수준 탭의 MA 표시기에 수준을 할당할 수 있습니다. 예를 들어 20이라고 가정해 보겠습니다. 즉, 이동 평균은 y축을 따라 20포인트 이동하지만 이 가격은 수준이 데이터 창에 표시되지 않습니다. 예를 들어 798만큼 이동하려는 경우 많은 쌍에 대해 골치 아픈 일입니다. 이동 평균의 가격을 표시하도록 표시기를 작성하는 방법 차트 또는 그래서 데이터 창에서 가격을 볼 수 있고 수동으로 계산할 필요가 없습니다? 석사 수준
 
Roger :

뭐, 서로 어렵지는 않은 것 같다

하지만 2개 이상일 때는 어떻게 비교해야 하는지 명확하지 않다. 세 개의 숫자 1, 2, 3을 동시에 비교하는 방법을 보여주고,


내가 틀리지 않았다면 사이클 수는 배열의 요소 수와 일치해야 합니다. 문제는 요소의 수가 고정되어 있지 않고 4개보다 훨씬 많을 수 있다는 점입니다. 어떻게 배열할지 고민해야 합니다. 속도, 메모리 소비 등에 영향을 미치는 다른 구현 옵션이 있을지도 모릅니다.
 
paladin80 :



고맙습니다! 어느 쪽에서 시작하는지, 즉 3번째 마디부터 시작하는지는 중요하지 않습니까?
 
이전 질문을 다시 말해서 보완하고 싶습니다.
다음은 4개 요소의 배열에 대한 코드입니다. 실제로 배열의 요소 수는 가변적입니다.
중첩된 'for' 루프의 수가 배열 요소 당 하나씩 'for'가 되도록 코드를 변경하려면 어떻게 해야 합니까?
고맙습니다!

 int start() { 

   int Array[ 4 ]                                       = { 1 , 2 , 3 , 4 };
   int x1, x2, x3, x4;
   int Array_Size                                  = ArrayRange (Array, 0 );


   for (x1= 0 ; x1<Array_Size; x1++) {
       Print ( "Combination                       = " , Array[x1]);

       for (x2=x1+ 1 ; x2<Array_Size; x2++) {
         Print ( "Combination                    = " , Array[x1] + "   " + Array[x2]);

         for (x3=x2+ 1 ; x3<Array_Size; x3++) {
             Print ( "Combination                 = " , Array[x1] + "   " + Array[x2] + "   " + Array[x3]);

             for (x4=x3+ 1 ; x4<Array_Size; x4++) {
               Print ( "Combination              = " , Array[x1] + "   " + Array[x2] + "   " + Array[x3] + "   " + Array[x4]);
            }
         }
      }
   }


   return ( 0 );
}