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

 
sergeev :
정확히 작동하지 않는 것은 무엇입니까?


위치가 열리지 않습니다.
 
IgorM :

다음과 같이 시도하십시오.


내가 이해하지 못하거나 문제를 잘못 이해했습니다.

Close[2] 가격 은 1.34529 이고 Open[1] 가격 은 1.34530입니다.

포지션을 열 수 있는 조건이 있습니다.

Close[ 2 ] >= Open[ 1 ]

mk 10 - 20 pp(5개 기호)는 큰 역할을 하지 않으므로 프로그램에 넣어야 합니다.

종가가 1.34529이고 시가가 1.34530이면 포지션을 계속 열 수 있습니다.

 
kilnart :

위치가 열리지 않습니다.

???

그렇다면 물가의 조건은 무엇인가?

코드를 더 자세히 살펴보십시오. 다른 오류가 있습니다.

 
차트에서 더 나아가 조건을 만족하는 가격이 있고 포지션이 열립니다.
 
이제 코드를 확인하겠습니다
 
kilnart :


또는 내가 이해하지 못하거나 작업을 잘못 이해했습니다.

......

mk 10 - 20 pp(5개 기호)는 큰 역할을 하지 않으므로 프로그램에 넣어야 합니다.

분명히, 당신은 먼저 이전 게시물을 작성한 다음 응답으로 듣고 싶은 것에 대해 생각했습니다 ....

실제로, 5자리의 10-20pp는별로 중요하지 않습니다. 저는 double 유형의 변수를 올바르게 비교하는 방법을 보여 주었습니다. 귀하의 문제는 올바른 조건을 작성하는 데 있지 않은 것 같습니다. 명확한 답변을 얻으려면 먼저 명확하고 모호하지 않은 질문을 공식화하십시오.

 
IgorM :

분명히, 당신은 먼저 이전 게시물을 작성한 다음 응답으로 듣고 싶은 것에 대해 생각했습니다 ....

사실 5자리에 10~20포인트는 별로 중요하지 않습니다. 이중형 변수를 정확하게 비교하는 방법을 보여드렸는데, 문제가 올바른 조건을 작성하는 데 있지 않은 것 같습니다. 명확한 답변을 얻으려면 먼저 명확하고 모호하지 않은 질문을 공식화하십시오.


IMHO만, 그렇게 doble을 비교하는 것은 잘못입니다. 예를 들어, 자리 숫자, 가격 1.00014 및 1.00016, 1.0001 및 1.0002에 해당하지만 1.00016 - 1.00014 < Point
 
220Volt : IMHO 만, 그렇게 doble을 비교하는 것은 잘못입니다 . 예를 들어, 4자리 숫자, 가격 1.00014 및 1.00016, 1.0001 및 1.0002에 해당하지만 1.00016 - 1.00014 < Point

이중 비교와 반올림을 혼동하는 경우 질문에 대한 명확한 설명이 필요합니다. 5자리를 4자리로 반올림한 다음 4자리로 분석을 수행 하거나 단순히 두 개의 이중을 올바르게 비교합니다.

두 개의 더블을 비교하면 내가 제공한 코드 부분이 4자와 5자 모두에 대해 올바르게 작동합니다.

 switch ( Digits ){
   case 5 : if ( 1.00014 - 1.00016 >= 10 * Point ); условие= false, -0.00002 меньше 0.00001*10   // цена больше на 10 пп в 5-ти знаке
   case 4 : if ( 1.0001 - 1.0002 >= Point ); условие= false, -0.0001 меньше 0.0001          / / цена больше на 1 пп в 4-х знаке
}

찾아보기: https://www.mql5.com/ru/articles/1561https://www.mql5.com/ru/forum/101433

추신: 내 코드에서 다음과 같은 실수가 발생했습니다. 그래서:

 switch ( Digits ){
   case 5 : if (Close[ 2 ]-Open[ 1 ]>= 10 * Point ); // цена больше на 10 пп в 5-ти знаке
           break ;
   case 4 : if (Close[ 2 ]-Open[ 1 ]>= Point ); // цена больше на 1 пп в 4-х знаке
           break ;
}
 
IgorM :

이중 비교와 반올림을 혼동하고 있습니다 . 질문에 대한 명확한 설명이 필요합니다. 5자리를 4자리로 반올림한 다음 4자리로 분석을 수행 하거나 단순히 두 개의 이중을 올바르게 비교합니다.

두 개의 더블을 비교하면 내가 제공한 코드 부분이 4자와 5자 모두에 대해 올바르게 작동합니다.

찾아보기: https://www.mql5.com/ru/articles/1561https://www.mql5.com/ru/forum/101433

추신: 내 코드에서 다음과 같은 실수가 발생했습니다. 그래서:


당신이 옳을지 모르지만 그것은 저자에게 중요하지 않을 수 있습니다. 나는 모든 핍을 계산하므로 내 자신의 관점에서 그러한 상황을 봅니다.
 

모두. 결국 나는 혼란스러워졌고 내 머리는 더 이상 요리되지 않습니다.

여기 코드가 있습니다

       double Low1=Low[ iLowest ( NULL , 0 ,MODE_LOW, 3 , 0 )],
              Low2=Low[ iLowest ( NULL , 0 ,MODE_LOW, 20 , 0 )];
         
         if (Low1<Low2 && Open[ 2 ]>Close[ 2 ])    
          {
             if (Open[ 1 ]<=Close[ 2 ] && Open[ 2 ]<Close[ 1 ])
             {
                 double sl=Low[ iLowest ( NULL , 0 ,MODE_LOW, 3 , 0 )],
                        tp=Ask+(Open[ 2 ]-Low[ 2 ]);
                 OrderSend ( Symbol (),OP_BUY, 0.1 ,Ask, 3 ,sl,tp);
                 return ;
             }
          }

다음을 그리고 싶습니다. 마지막 3개의 양초에 대한 최소값을 찾아야 합니다. 20개 초의 최소 가격 과 비교하고 마지막 3개의 초가 더 낮고 양초가 검은색이면( Open[ 2 ]>Close[ 2 ] ) 더 멀리 봅니다.

다음에는 약세를 찾아야 합니다( Open[ 1 ]<=Close[ 2 ] && Open[ 2 ]<Close[ 1 ] ).

매수 포지션을 엽니다.

모든 것이 맞는 것 같지만 뭔가 잘못되었습니다.

당신이 나를 도와준다면 나는 매우 감사할 것이다.