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

 
VladimirR :

이 옵션도 작동하지 않습니다.



흥미롭고 무엇을 찾고 있습니까? 최대 면적을 찾는 다른 옵션이 있습니다. 예를 들어, 분석적
 
Vinin :

루프에서 카운터 값을 두 번 변경하는 이유가 궁금합니다. 그리고 어떤 이유로 (예비) S2 할당이 없습니다. 처음에는 0이고 두 번째 반복에서만(더 정확하게는 세 번째에서) 값의 실제 비교가 있습니다(0에서 1부터 계산하는 방법에 따라 다름)
열거가 영역의 최소값에서 시작하기 때문에 할당이 없으며 엄밀히 양수이므로 0이 좋습니다. 그리고 두 번째로 변경된 카운터 값은 어디입니까?
 
Vinin :

흥미롭고 무엇을 찾고 있습니까? 최대 면적을 찾는 다른 옵션이 있습니다. 예를 들어, 분석적
그것은 전혀 문제가 아닙니다. 이 간단한 작업은 break 문이 작동하는 방식의 예로 사용됩니다. 올바른 프로그램을 작성하기 위해 루프 전에 i,j 변수를 선언하지 않으면 for(int i=1, j=499; i<500; i++,j--)를 작성하는 것이 불가능한 이유를 알아야 합니다. 미래!
 
VladimirR :
그것은 전혀 문제가 아닙니다. 이 간단한 작업은 break 문이 작동하는 방식의 예로 사용됩니다. 올바른 프로그램을 작성하기 위해 루프 전에 i,j 변수를 선언하지 않으면 for(int i=1, j=499; i<500; i++,j--)를 작성하는 것이 불가능한 이유를 알아야 합니다. 미래!

이것은 아마도 컴파일러의 버그일 것입니다.

이것은 컴파일되지 않습니다:

 for ( int i= 1 , j= 499 ; i< 500 ; i++,j--) //последовательный перебор значений площади

그리고 다음과 같이 컴파일됩니다.

 int i, j;
for ( i= 1 , j= 499 ; i< 500 ; i++,j--) //последовательный перебор значений площади

그리고 다음과 같이 컴파일됩니다.

 int i= 1 , j= 499 ;
for ( ; i< 500 ; i++,j--) //последовательный перебор значений площади
 

여러분, 안녕하세요!!!

터키에서 RiskReward 번호를 얻을 수 있도록 도와주세요. 어드바이저에 넣어도 소용없습니다.

 
demlin :

여러분, 안녕하세요!!!

터키에서 RiskReward 번호를 얻을 수 있도록 도와주세요. 어드바이저에 넣어도 소용없습니다.


출처가 어디인가요?
 

글쎄요, 여러분, 왜 제가 대답하기가 어렵거나 대답하기를 원하지 않습니까? 당신은 여기에서 그런 쓰레기를 긁어모으고 있으며 코드의 일부를 작성하는 것을 돕기에는 너무 게으릅니다. 다시 연락드리도록 하겠습니다. 안 도와주시면 코스 가겠습니다. 여기서 구걸하는 것도 지겹습니다.


다시 한 번: Expert Advisor를 첫 번째 틱으로 차트에 첨부한 후 매도 가격을 고정한 다음 거래 프로세스 중에 가격이 10% 증가하는 즉시 는 비유적임), Expert Advisor는 "가격이 10% 인상되었습니다"라는 메시지와 함께 거래자에게 이를 알려야 합니다.

 
demlin :

여러분, 안녕하세요!!!

터키에서 RiskReward 번호를 얻을 수 있도록 도와주세요. 그것은 단지 조언자에 넣어 작동하지 않습니다.

차트의 모든 개체를 살펴보고 lbl이라는 이름의 개체를 찾고 FXRanger: Risk:Reward=х.ххх 행을 추출하고 구문 분석하고 х.ххх를 double로 변환합니다.
 

주문이 SL로 열리는 경우 수정을 돕고 반대 주문이 두 개 있는 경우 두 번째 주문에 대해 SL을 제거합니다....그러나 이것은 필요하지 않습니다.

감사해요

 void Trailing()
{
//-----
   double Up = iCustom ( NULL , 0 , "NLO" ,TrailPeriod, 0 , 1 );
   double Dn = iCustom ( NULL , 0 , "NLO" ,TrailPeriod, 1 , 1 );
//-----
   int Orders = OrdersTotal ();
   for ( int i= 0 ; i<Orders; i++)
  {
     if (!( OrderSelect (i, SELECT_BY_POS, MODE_TRADES))) continue ;
     if (OrderSymbol() != Symbol ()) continue ;
    {
       if (OrderType() == OP_BUY && OrderMagicNumber()==Magic && Up > OrderOpenPrice()
      && OrderStopLoss() != Up && (OrderStopLoss() == 0 || Up > OrderStopLoss()))
      {
        OrderModify(OrderTicket(),OrderOpenPrice(),Up,OrderTakeProfit(), 0 , CLR_NONE );
      }
       if (OrderType() == OP_SELL && OrderMagicNumber()==Magic && Dn < OrderOpenPrice()
      && OrderStopLoss() != Dn && (OrderStopLoss() == 0 || Dn < OrderStopLoss()))
      {
        OrderModify(OrderTicket(),OrderOpenPrice(),Dn,OrderTakeProfit(), 0 , CLR_NONE );
      }
    }
  }
}
 

안녕하세요. 다시 나는 교과서적인 예를 다룰 수 없다.

문제 17. 첫 번째 농장에는 1000마리의 양이 있습니다. 매일 첫 농장의 양이 1%씩 증가합니다. 첫 번째 농장의 양이 50,000마리가 되는 날, 양의 10%가 두 번째 농장으로 옮겨집니다. 두 번째 농장의 양이 35,000마리가 되는 데 얼마나 걸립니까? (한 달에 근무일이 30일이라고 가정합니다.)

 //--------------------------------------------------------------------
// othersheep.mq4
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
int start ()                               // Специальная ф-ия start()
  {
//--------------------------------------------------------------------
   int
   day ,                                   // Текущий день месяца
   Mons ;                                  // Искомое количест. месяцев
   double
   One_Farm    = 1000.0 ,                   // Количество на 1 ферме
   Perc_day    = 1 ,                        // Ежедневный подъём, %
   One_Farm_max = 50000.0 ,                  // Пороговое значение
   Perc_exit   = 10 ,                       // Разовый вывод, %
   Purpose     = 35000.0 ,                  // Необх. колич. на 2 ферме
   Two_Farm ;                              // Количество на 2 ферме
//--------------------------------------------------------------------
   while ( Two_Farm < Purpose )              // До достижения цели
     {                                    // Начало тела внешн. цикла
      //--------------------------------------------------------------
      for ( day = 1 ; day <= 30 && Two_Farm < Purpose ; day ++ ) // Цикл по дням 
        {
         One_Farm = One_Farm * ( 1 + Perc_day / 100 ) ; //Накопл. на 1 ферме
         if ( One_Farm < One_Farm_max )     // Если меньше допустимого,.
            continue ;                     // .. то овец не переводим
         Two_Farm = Two_Farm + One_Farm * Perc_exit / 100 ; //Накопл. на 2 ферме
         One_Farm = One_Farm * ( 1 - Perc_exit / 100 ) ;     //Остаток на 1 ферме
        }
      //--------------------------------------------------------------
      if ( Two_Farm >= Purpose )              // Если цель достигнута,..
         continue ;                        // .. то месяцы не считаем
      Mons ++;                             // Считаем месяцы
     }                                    // Конец тела внешнего цикла
//--------------------------------------------------------------------
   Alert ( " Цель будет достигнута через " , Mons , " мес. и " , day , " дн. " ) ;
   return ;                                // Выход из функции start()
  }
//-------------------------------------------------------------------

이 예에서는 루프를 종료합니다.

 for ( day = 1 ; day <= 30 && Two_Farm < Purpose ; day ++ ) // Цикл по дням 

조건 중 하나에 따라 발생하고 출구 전에 카운터가 항상 전환됩니다. 계산하지 않은 날이 추가되지만 루프가 중첩되어 있기 때문에

제어가 반환될 때마다 일 수가 새로 유지되므로 이것이 필수는 아닙니다. 그러나 루프가 종료되면

 while ( Two_Farm < Purpose )              // До достижения цели

"하루 더" 남았습니다. 결과적으로 오답이 인쇄됩니다.

내 추론이 정확하거나 뭔가 오해하고 있는지 알려주십시오.