KimIV의 유용한 기능 - 페이지 30

 

관심 있는 분들은 제가 패션에 대해 어떤 일을 했는지 확인해보세요. 그리고 지금은 정원에 가서 감자를 뿌리고 ... 저녁에있을 것입니다 ...

추신. 숫자 계열에서 최대 횟수로 발생하는 값을 추론했습니다.

파일:
 
KimIV писал (а) >> 를 썼습니다.

관심 있는 분들은 제가 패션에 대해 어떤 일을 했는지 확인해보세요. 그리고 지금은 정원에 가서 감자를 뿌리고 ... 저녁에있을 것입니다 ...

추신. 숫자 계열에서 최대 횟수로 발생하는 값을 추론했습니다.

확실히 흥미롭습니다. 감사합니다! 우리는 테스트 할 것입니다.

 
KimIV писал (а) >> 를 썼습니다.

관심 있는 분들은 제가 패션에 대해 어떤 일을 했는지 확인해보세요. 그리고 지금은 정원에 가서 감자를 뿌리고 ... 저녁에있을 것입니다 ...

추신. 숫자 계열에서 최대 횟수로 발생하는 값을 추론했습니다.

또한 실수 모드를 계산하기 위해 오류(또는 히트 간격)와 같은 것을 도입하는 것이 좋습니다. 이 모드는 조정할 수 있으므로 샘플링 정확도를 조정할 수 있습니다.

2 이달고:

통계 분석( 내가 현재 관심을 갖고 있는 것)에 관심이 있다면 그 적용에 대한 생각을 공유하시겠습니까? 별도의 분기를 만들 수 있습니다. 기꺼이 그 주제를 지지하겠습니다.


 
sergeev писал (а) >> 를 썼습니다.
또한 실수 모드를 계산하기 위해 오류(또는 히트 간격)와 같은 것을 도입하는 것이 좋습니다. 이 모드는 조정할 수 있으므로 샘플링 정확도를 조정할 수 있습니다.

수식, 그림, 수행 방법 및 수행 방법에 대한 설명 ... :-) 제안한 작업을 수행하는 데 몇 가지 옵션이 있음을 이해하시기 바랍니다. 당신의 선택을 설명하십시오.

그리고 처음으로 매개 변수 d 가 있습니다 - 숫자 시리즈 값의 정확도, 소수점 이하 자릿수.

 

네, d 값의 정확도는 선택사항이지만 이 경우 10^(-d) 구간에서 숫자를 확인했습니다.


 // переменная exact определяет процент отклонения 
// элемента массива от требуемого числа e
// например для 40% exact=1.40; для 0% exact=1.0
int ArraySearchDouble ( double & m [][] , double e , double exact ) 
{
    for ( int i = 0 ; i < ArrayRange ( m , 0 ) ; i ++ ) 
        if ( m [ i ][ 1 ] <= e * exact && m [ i ][ 1 ] >= e / exact ) return ( i ) ;
    return ( - 1 ) ;
}
 
sergeev писал (а) >> 를 썼습니다.

네, d 값의 정확도는 선택사항이지만 이 경우 10^(-d) 구간에서 숫자를 확인했습니다.


부동 소수점 숫자의 경우 하드 코딩된 실행 값을 사용하는 것이 좋습니다.

f1 + df > f2 > f1 - df ==> f1 == f2. 또는 정규화를 사용합니다.

귀하의 코드는 모든 음수뿐만 아니라 0에 가까운 숫자에 확실히 문제가 있습니다.

코드를 검토합니다.

 

예, 나는 부정적인 것을 잊어 버렸습니다. 나는 서두르고있었습니다.

 // переменная exact определяет процент отклонения 
// элемента массива от требуемого числа e
// например для 40% exact=1.40; для 0% exact=1.0
int ArraySearchDouble ( double & m [][] , double e , double exact ) 
{
    for ( int i = 0 ; i < ArrayRange ( m , 0 ) ; i ++ ) 
        if ( MathAbs ( m [ i ][ 1 ]) <= MathAbs ( e ) * exact && MathAbs ( m [ i ][ 1 ]) >= MathAbs ( e ) / exact ) return ( i ) ;
    return ( - 1 ) ;
}

또는



 // переменная dExact определяет величину отклонения
// значения элемента массива от требуемого числа e
// например dExact=0.055
int ArraySearchDouble2 ( double & m [][] , double e , double dExact ) 
{
    for ( int i = 0 ; i < ArrayRange ( m , 0 ) ; i ++ ) 
        if ( MathAbs ( m [ i ][ 1 ]) <= MathAbs ( e ) + dExact && MathAbs ( m [ i ][ 1 ]) >= MathAbs ( e ) - dExact ) return ( i ) ;
    return ( - 1 ) ;
}
 
안녕하세요 이고르입니다. 나는 지점의 발전을 따라가게 되어 기쁩니다. 주문 설정 기능을 자세히 다루거나 블록을 다루기로 결정했습니다.
오류 처리:
......
      err = GetLastError () ;
       if ( err == 128 || err == 142 || err == 143 ) {
         Sleep ( 1000 * 66 ) ;
         if ( ExistOrders ( sy , op , mn , ot )) {
           if ( UseSound ) PlaySound ( NameFileSound ) ; break ;
         }
         Print ( " Error( " , err , " ) set order: " , ErrorDescription ( err ) , " , try " , it ) ;
         continue ;
       }
       mp = MarketInfo ( sy , MODE_POINT ) ;
       pa = MarketInfo ( sy , MODE_ASK ) ;
       pb = MarketInfo ( sy , MODE_BID ) ;
       // Неправильные стопы
       if ( err == 130 ) {
         switch ( op ) {
           case OP_BUYLIMIT :
             if ( pp > pa - msl * mp ) pp = pa - msl * mp ;
             if ( sl > pp - ( msl + 1 ) * mp ) sl = pp - ( msl + 1 ) * mp ;
             if ( tp > 0 && tp < pp + ( msl + 1 ) * mp ) tp = pp + ( msl + 1 ) * mp ;
             break ;
           case OP_BUYSTOP :
             if ( pp < pa + ( msl + 1 ) * mp ) pp = pa + ( msl + 1 ) * mp ;
             if ( sl > pp - ( msl + 1 ) * mp ) sl = pp - ( msl + 1 ) * mp ;
             if ( tp > 0 && tp < pp + ( msl + 1 ) * mp ) tp = pp + ( msl + 1 ) * mp ;
             break ;
           case OP_SELLLIMIT :
             if ( pp < pb + msl * mp ) pp = pb + msl * mp ;
             if ( sl > 0 && sl < pp + ( msl + 1 ) * mp ) sl = pp + ( msl + 1 ) * mp ;
             if ( tp > pp - ( msl + 1 ) * mp ) tp = pp - ( msl + 1 ) * mp ;
             break ;
           case OP_SELLSTOP :
             if ( pp > pb - msl * mp ) pp = pb - msl * mp ;
             if ( sl > 0 && sl < pp + ( msl + 1 ) * mp ) sl = pp + ( msl + 1 ) * mp ;
             if ( tp > pp - ( msl + 1 ) * mp ) tp = pp - ( msl + 1 ) * mp ;
             break ;
         }
         Print ( " SetOrder(): Скорректированы ценовые уровни " ) ;
       }
       Print ( " Error( " , err , " ) set order: " , ErrorDescription ( err ) , " , try " , it ) ;
       Print ( " Ask= " , pa , "   Bid= " , pb , "   sy= " , sy , "   ll= " , ll , "   op= " , GetNameOP ( op ) ,
             "   pp= " , pp , "   sl= " , sl , "   tp= " , tp , "   mn= " , mn ) ;
       if ( pa == 0 && pb == 0 ) Message ( " SetOrder(): Проверьте в обзоре рынка наличие символа " + sy ) ;
       // Блокировка работы советника
       if ( err == 2 || err == 64 || err == 65 || err == 133 ) {
         gbDisabled = True ; break ;
       }
       // Длительная пауза
       if ( err == 4 || err == 131 || err == 132 ) {
         Sleep ( 1000 * 300 ) ; break ;
       }
       // Слишком частые запросы (8) или слишком много запросов (141)
       if ( err == 8 || err == 141 ) Sleep ( 1000 * 100 ) ;
       if ( err == 139 || err == 140 || err == 148 ) break ;
       // Ожидание освобождения подсистемы торговли
       if ( err == 146 ) while ( IsTradeContextBusy ()) Sleep ( 1000 * 11 ) ;
       // Обнуление даты истечения
       if ( err == 147 ) {
         ex = 0 ; continue ;
       }
       if ( err != 135 && err != 138 ) Sleep ( 1000 * 7.7 ) ;
     }
   }
}

질문이 있습니다.

긴 일시 중지와 함께 오류 131(ERR_INVALID_TRADE_VOLUME: 잘못된 볼륨 )을 처리하는 이유는 무엇입니까?

이것은 버그입니까 아니면 제가 뭔가를 이해하지 못하는 것입니까?

 
ShestkoFF писал (а) >>
안녕하세요 이고르입니다. 나는 지점의 발전을 따라가게 되어 기쁩니다. 주문 설정 기능을 자세히 다루거나 블록을 다루기로 결정했습니다.
오류 처리:

질문이 있습니다.

긴 일시 중지와 함께 오류 131(ERR_INVALID_TRADE_VOLUME: 유효하지 않은 볼륨)을 처리하는 이유는 무엇입니까?

이것은 버그입니까 아니면 제가 뭔가를 이해하지 못하는 것입니까?

안녕하세요 바실리님! 너가 확실히 맞아! 이것은 주의를 산만하게 하는 나의 오류입니다. 지적해주셔서 감사합니다. 오류 131은 오류 2, 64, 65 및 133과 동일한 방식으로 처리되어야 합니다. 즉, EA의 작업을 차단해야 합니다.

 
글쎄, 나는 그것을 차단하지 않을 것입니다. 나는 이 오류를 위층에 전달하고 이미 거기에서 처리할 작업을 결정할 것입니다.

이 순간 고문의 작업이 차단되면이 고문이 빈 자리 를 가질 수 있으며 이는 재앙이 될 것입니다.

사유: