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

 
kolyango :

하는 방법:

Condition1이 충족되면 각 틱에서 다시 확인하지 않고 다음 틱에서 Condition2도 확인하고 모든 플래그가 false로 선언될 때까지 Condition 3 도 확인합니까?

 bool проверять_ус 1 = true ;
bool проверять_ус 2 = true ;
bool проверять_ус 3 = true ;
void start(){
       if (проверять_ус 1 )
         if (Open[ 0 ]>Close[1]){ //условие 1
            проверять_ус 1 = false ; //заглушка
         }
       if (проверять_ус 2 )
         if (Open[ 0 ]<Close[2]){ //условие 1
            проверять_ус 2 = false ; //заглушка
         }
       if (проверять_ус 3 )
         if (Open[ 0 ]==Close[3]){ //условие 1
            проверять_ус 3 = false ; //заглушка
         }
       if (!проверять_ус 1 &&!проверять_ус 2 &&!проверять_ус 3 ){
            проверять_ус 1 = true ;
            проверять_ус 2 = true ;
            проверять_ус 3 = true ;      
      }
}

작성된 내용이 명확해질 때까지 코드를 여러 번 읽으면 만족할 것입니다.

[삭제]  
costy_ :

이미 고정된 막대(이전)의 데이터를 읽고 i+1을 제거합니다. 그러나 작성자의 알고리즘은 깨질 것입니다 (그는 더 잘 알고 있습니다. 나는 또한 공개 및 형성된 데이터 +1에 대해 작업합니다)


작성자로서 나는 i+1이 다른 지표에서 데이터를 다운로드하기 위한 것일 뿐이라고 말하고, 그 다음에는 고장 상태를 확인하지만 i에 대한 모든 추가 계산이 있습니다.

사실 표시기는 재부팅(TF 변경, 속성 표시)으로만 자동으로 업데이트되지 않습니다.

내가 이해하지 못하는 이유는 무엇입니까?

i만 사용하려고 했고 이전 막대의 필수 표시기에서 루프 끝까지 데이터 계산을 밀어 넣었지만 도움이 되지 않았습니다.

 
costy_ :

여전히 이해하지 못했다

사진으로 설명하면 더 쉬울 것 같아요.


네 감사합니다! 파란색으로 강조 표시된 곳에서 D1의 고점 위에서 마감된 양초를 찾아야 합니다.
 
costy_ :

작성된 내용이 명확해질 때까지 코드를 여러 번 읽으면 만족할 것입니다.


다시 한번 감사합니다!
 
LOA :


작성자로서 나는 i + 1이 다른 지표에서 데이터를 다운로드하는 데만 사용되며 고장 상태에 대한 확인이 있지만 i에 대한 모든 추가 계산이 있다고 말합니다.

사실 표시기는 재부팅(TF 변경, 속성 표시)으로만 자동으로 업데이트되지 않습니다.

내가 이해하지 못하는 이유는 무엇입니까?

i만 사용하려고 했고 이전 막대의 필수 표시기에서 루프 끝까지 데이터 계산을 밀어 넣었지만 도움이 되지 않았습니다.

           int proboy_5_UP = iCustom (NULL,0,"ME_Proboy_F5_For_EX",0,i+1);/*запрос значения индикатора 

나는 그것이 틀림없이 의심된다

           double proboy_5_UP = iCustom (NULL,0,"ME_Proboy_F5_For_EX",0,i+1);/*запрос значения индикатора 
[삭제]  
costy_ :

나는 그것이 틀림없이 의심된다


아니요.... 우리는 가격 값이 아니라 지표 판독값 (히스토그램)을 취합니다. 1 또는 -1과 같습니다.
[Deleted]  
costy_ :

작성된 내용이 명확해질 때까지 코드를 여러 번 읽으면 만족할 것입니다.


그런 코드의 조건을 다시 만드는 방법, 이해가 안 가나요?

 static bool Val_max, Cl_dn, Val_min; //static or global
                                        |
//+------------------------------------------------------------------+
int start()
  {
   int j;
   double bid;                                         
   bid=Bid;                                     // Текущая цена продажи
   string
   Symb= Symbol ();                               // Название фин.инстр.
double Value_max= 1.0000 ;
double Value_min= 0.9980 ;
double Open_1=Open[ 1 ];
double Close_1=Close[ 1 ];
//----

//--------------------------------------------------------------- 4 --

double Val= iCustom ( NULL , 0 , "Название Польз. Индикатора" , 0 , 0 );   // Присваиваем пер. Val значение польз. индикатора
if (Условие 1 )
{
 Val_max=true;                   // 
 Alert ( "Значение инд. >= Value_max (исп. 1-е усл.)" );
}
if (Условие 2 )
{
 Cl_dn=true;
 Alert ( "1 бар закрылся падением (исп. 2-е усл.)" );
}
if (Условие 3 && Cl_dn==true)
{
 Val_min=true;
 Alert ( "Значение инд. <= Value_min (исп. 3-е усл.)" );
}
if (Val_max==true && Cl_dn==true && Val_min==true)
  {
   for (j = 0 ; j < OrdersTotal (); j++)
    {
     OrderSelect (j, SELECT_BY_POS, MODE_TRADES);
     if ( OrderSymbol () == Symbol ())
      {
       if ( OrderType () == OP_SELL) return ( 0 );
      }
    }
   
   OrderSend ( Symbol (),OP_SELL, 0.1 , NormalizeDouble (Bid, Digits ), 2 ,Bid+ 400 * Point ,Bid- 400 * Point , "" , 3 , Red );   // Открытие SELL
   Val_max=false; Cl_dn=false; Val_min=false;
  }

//----
   return ( 0 );
  }
 
LOA :

아니요.... 우리는 가격 값이 아니라 지표 판독값(히스토그램)을 취합니다. 1 또는 -1과 같습니다.

나는 아직도 어디로 전화했는지 대답할 수 없습니다. int double을 반환한다는 사실은 실제로 >1이 될 수 있으므로 int가 >0으로 할당되고 그 반대도 마찬가지입니다(*.ex4)?

ME_프로보이_F5_For_EX

ME_Order_ATR_For_EX

2011.12.07 18:10:42 AUDUSD,M30에서 \experts\indicators\ME_Proboy_F5_For_EX.ex4' 파일을 열 수 없습니다.

모든 것을 MACD로 교체했습니다. 모든 것이 작동합니다!

파일:
temp_1.mq4  14 kb
 
kolyango :


그런 코드의 조건을 다시 만드는 방법, 나는 그것을 이해하지 못합니까?

 bool проверять_ус 1 = true ;
bool проверять_ус 2 = true ;
bool проверять_ус 3 = true ;
void start(){
       if (проверять_ус 1 )
         if (Open[ 0 ]>Close[1]){ //условие 1
            проверять_ус 1 = false ; //заглушка
         }
       if (проверять_ус 2 )
         if (Open[ 0 ]<Close[2]){ //условие 1
            проверять_ус 2 = false ; //заглушка
         }
       if (проверять_ус 3 )
         if (Open[ 0 ]==Close[3]){ //условие 1
            проверять_ус 3 = false ; //заглушка
         }
       if (!проверять_ус 1 &&!проверять_ус 2 &&!проверять_ус 3 ){
            проверять_ус 1 = true ;
            проверять_ус 2 = true ;
            проверять_ус 3 = true ;      
      }
}

작성된 내용이 명확해질 때까지 코드를 여러 번 읽으면 만족할 것입니다.

왜 플래그가 필요합니까?)) 플래그 없이도 할 수 있습니다.

   if (Close[i+ 3 ]>Open[i+ 3 ]&&Close[i+ 2 ]>Open[i+ 3 ]&&Close[i+ 2 ]<Close[i+ 3 ]&&Close[i]>Close[i+ 3 ]) //открываем бай

[삭제]  
costy_ :

나는 아직도 ind라고 부르는 곳에 대답할 수 없다. int double을 반환한다는 사실은 실제로 >1이 될 수 있으므로 int가 >0으로 할당되고 그 반대도 마찬가지입니다(*.ex4)?

ME_프로보이_F5_For_EX

ME_Order_ATR_For_EX

2011.12.07 18:10:42 AUDUSD,M30에서 \experts\indicators\ME_Proboy_F5_For_EX.ex4' 파일을 열 수 없습니다.

모든 것을 MACD로 교체했습니다. 모든 것이 작동합니다!


네, 히스토리의 인디케이터는 칠면조라고 불리는 모든 제품에서 작동합니다.실제에서는 작동하지 않아 M1에서 확인했습니다.

내가 당신을 올바르게 이해했다면 >0, <0에서 ==1 또는 ==-1로 바꾸려고 노력할 것입니다.