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

 
KimIV :
호로쉬 :
e-TFL_v2 Expert Advisor 에 포함된 bool idPriceLevel() 함수에 오류가 있습니다. 마지막 조건에서 gdUpPrice==0 이 두 번 반복됩니다. 아마도 두 번째 경우에는 gdDnPrice==0 을 작성하고 싶었을 것입니다.

덕분에! e-TFL_v2 Expert Advisor의 수정된 버전이 사이트에 업로드되었습니다.


호로쉬 :
어떤 이유로이 고문은 내 테스터에서 시각적 모드로 작동하지만 설명에서 판매 및 구매 수준에 대해보고하지만 데모 계정에서 직책을 열지 않습니다. 무엇이 잘못되었는지 말해 줄 수 있습니다.

잘 모르겠습니다... 방금 NorthFinance 데모에서 이 Expert Advisor 테스트를 마쳤습니다. 어제 모스크바에서 친구가 전화했습니다. 같은 고문에 대해 고발했습니다. 예를 들어, 그는 라인에서 포지션을 연 다음, 다른 포지션을 오픈하고, 당신이 그를 막을 때까지 그는 많은 포지션을 오픈할 수 있습니다. 따라서 테스트의 목적은 두 가지였습니다.

1. 귀하의 질문에. 일반 건강 검진.

2. 내 친구의 질문에. 한 줄에서 한 위치만 엽니다.

테스트를 위해 e-TFL_v2 Expert Advisor 를 5분 TF EURUSD, GBPUSD, USDCHF 및 USDJPY에 배치했습니다. 추세선을 사용하여 마지막 20-30개의 막대에 대한 채널을 그렸습니다. 결과적으로 고문은 정상적으로 작동했습니다. 유로는 맨 아래에서 매수했고 엔은 맨 위에서 매도했습니다. 파운드와 추장도 모든 것이 올바르게 해결되었습니다. 따라서 스스로 확인하십시오. 노동자 고문.

김 IV :
호로쉬 :
e-TFL_v2 Expert Advisor 에 포함된 bool idPriceLevel() 함수에 오류가 있습니다. 마지막 조건에서 gdUpPrice==0 이 두 번 반복됩니다. 아마도 두 번째 경우에는 gdDnPrice==0 을 작성하고 싶었을 것입니다.

덕분에! e-TFL_v2 Expert Advisor의 수정된 버전이 사이트에 업로드되었습니다.


호로쉬 :
어떤 이유로이 고문은 내 테스터에서 시각적 모드로 작동하지만 설명에서 판매 및 구매 수준에 대해보고하지만 데모 계정에서 직책을 열지 않습니다. 무엇이 잘못되었는지 말해 줄 수 있습니다.

잘 모르겠습니다... 방금 NorthFinance 데모에서 이 Expert Advisor 테스트를 마쳤습니다. 어제 모스크바에서 친구가 전화했습니다. 같은 고문에 대해 고발했습니다. 예를 들어, 그는 라인에서 포지션을 연 다음, 다른 포지션을 오픈하고, 당신이 그를 막을 때까지 그는 많은 포지션을 오픈할 수 있습니다. 따라서 테스트의 목적은 두 가지였습니다.

1. 귀하의 질문에. 일반 건강 검진.

2. 내 친구의 질문에. 한 줄에서 한 위치만 엽니다.

테스트를 위해 e-TFL_v2 Expert Advisor 를 5분 TF EURUSD, GBPUSD, USDCHF 및 USDJPY에 배치했습니다. 추세선을 사용하여 마지막 20-30개의 막대에 대한 채널을 그렸습니다. 결과적으로 고문은 정상적으로 작동했습니다. 유로는 맨 아래에서 매수했고 엔은 맨 위에서 매도했습니다. 파운드와 추장도 모든 것이 올바르게 해결되었습니다. 따라서 스스로 확인하십시오. 노동자 고문.

나는 어드바이저의 논리를 잘 이해하지 못할 수도 있지만 한 줄을 사용하면 오류가 있었던 조건이 충족되고 idPriceLevel() 함수가 값을 False로 취하는 것 같습니다. 포지션을 여는 것을 허용하지 않습니다. 내가 틀렸다면 설명하십시오.

 
khorosh :

한 줄을 사용하면 오류가 발생한 조건이 실행되고 idPriceLevel() 함수는 False 값을 취하므로 위치를 열 수 없습니다.

네 맞습니다. EA는 정상 작동을 위해 두 개의 라인이 필요합니다. 하나는 가격보다 높고 두 번째 라인 은 현재 가격보다 낮습니다 . 사이트 설명을 수정했습니다. 고맙습니다!

 
KimIV :
호로쉬 :

한 줄을 사용하면 오류가 발생한 조건이 실행되고 idPriceLevel() 함수는 False 값을 취하므로 위치를 열 수 없습니다.

네 맞습니다. EA는 정상 작동을 위해 두 개의 라인이 필요합니다. 하나는 가격보다 높고 두 번째 라인은 현재 가격보다 낮습니다. 사이트 설명을 수정했습니다. 고맙습니다!

그래서 한 줄로 작업하다 보니 포지션을 열지 않았다. 이제 모든 것이 명확해졌습니다. 당신의 사심없는 작업에 감사드립니다. 귀하의 기능은 매우 명확하고 명확하게 설명되어 있습니다. 아마도 현재 생성된 대부분의 Expert Advisors에서 기능이 사용됩니다.

 

ExistOPNearMarket() 함수.

이 함수는 시장 근처(시장에서 포인트 단위로 지정된 거리)에 있는 주문 또는 위치의 존재에 대한 플래그를 반환합니다. 확인된 주문 또는 위치의 보다 정확한 선택은 외부 매개변수에 의해 설정됩니다.

  • sy - 도구 이름. 이 매개변수를 설정하면 이 기능은 지정된 기기에 대해서만 주문 또는 위치를 확인합니다. "" 또는 NULL 은 현재 기기를 의미합니다.
  • op - 거래 작업, 주문 유형 또는 위치. 유효한 값은 OP_BUY , OP_SELL , OP_BUYLIMIT , OP_SELLLIMIT , OP_BUYSTOP , OP_SELLSTOP 또는 -1 입니다. 기본값 -1 은 모든 거래 작업을 의미합니다.
  • mn - 주문 또는 위치 ID(MagicNumber). 기본값 -1 - 모든 식별자.
  • ds - 시장과의 거리(포인트). 기본값은 1000000 입니다.
 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,   http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает флаг существования позиции или ордера около рынка   |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента        ("" или NULL - текущий символ)     |
//|    op - торговая операция               (    -1      - любая операция)     |
//|    mn - MagicNumber                     (    -1      - любой магик)        |
//|    ds - расстояние в пунктах от рынка   (  1000000   - по умолчанию)       |
//+----------------------------------------------------------------------------+
bool ExistOPNearMarket ( string sy = "" , int op =- 1 , int mn =- 1 , int ds = 1000000 ) {
   int i , k = OrdersTotal () , ot ;

   if ( sy == "" || sy == " 0 " ) sy = Symbol () ;
   double p = MarketInfo ( sy , MODE_POINT ) ;
   if ( p == 0 ) if ( StringFind ( sy , " JPY " ) < 0 ) p = 0.0001 ; else p = 0.01 ;
   for ( i = 0 ; i < k ; i ++ ) {
     if ( OrderSelect ( i , SELECT_BY_POS , MODE_TRADES )) {
       ot = OrderType () ;
       if (( OrderSymbol () == sy ) && ( op < 0 || ot == op )) {
         if ( mn < 0 || OrderMagicNumber () == mn ) {
           if ( ot == OP_BUY || ot == OP_BUYLIMIT || ot == OP_BUYSTOP ) {
             if ( MathAbs ( MarketInfo ( sy , MODE_ASK ) - OrderOpenPrice ()) < ds * p ) return ( True ) ;
           }
           if ( ot == OP_SELL || ot == OP_SELLLIMIT || ot == OP_SELLSTOP ) {
             if ( MathAbs ( OrderOpenPrice () - MarketInfo ( sy , MODE_BID )) < ds * p ) return ( True ) ;
           }
         }
       }
     }
   }
   return ( False ) ;
}
추신. 예고편에는 ExistOPNearMarket() 함수를 실험하기 위한 스크립트가 있습니다.
 

ExistPosByPrice() 함수.

이 함수는 지정된 시가에서 포지션 존재 플래그를 반환합니다. 확인된 위치의 보다 정확한 선택은 외부 매개변수에 의해 설정됩니다.

  • sy - 시장 상품의 이름. 이 매개변수를 설정하면 이 기능은 지정된 기기의 위치만 확인합니다. 기본값 "" 은 모든 시장 상품을 의미합니다. NULL은 현재 기기를 의미합니다.
  • op - 거래 작업, 위치 유형. 유효한 값: OP_BUY , OP_SELL 또는 -1 . 기본값 -1 은 임의의 위치를 의미합니다.
  • mn - 위치 ID, MagicNumber. 기본값 -1 은 모든 식별자를 의미합니다.
  • pp - 포지션 개시 가격. 기본값 0 은 모든 가격을 의미합니다.
 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,   http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает флаг существования позиций по цене открытия         |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - торговая операция          (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//|    pp - цена                       ( 0   - любая цена)                     |
//+----------------------------------------------------------------------------+
bool ExistPosByPrice ( string sy = "" , int op =- 1 , int mn =- 1 , double pp = 0 ) {
   double px , py ;
   int      d , i , k = OrdersTotal () ;

   if ( sy == " 0 " ) sy = Symbol () ;
   for ( i = 0 ; i < k ; i ++ ) {
     if ( OrderSelect ( i , SELECT_BY_POS , MODE_TRADES )) {
       if (( OrderSymbol () == sy || sy == "" ) && ( op < 0 || OrderType () == op )) {
         if ( OrderType () == OP_BUY || OrderType () == OP_SELL ) {
           if ( mn < 0 || OrderMagicNumber () == mn ) {
             d = MarketInfo ( OrderSymbol () , MODE_DIGITS ) ;
             px = NormalizeDouble ( pp , d ) ;
             py = NormalizeDouble ( OrderOpenPrice () , d ) ;
             if ( pp <= 0 || px == py ) return ( True ) ;
           }
         }
       }
     }
   }
   return ( False ) ;
}
추신. 예고편에는 ExistPosByPrice() 함수를 테스트하기 위한 스크립트가 포함되어 있습니다.
파일:
 

GetAmountLotFromOpenPos() 함수.

이 함수는 많은 열린 위치의 합계를 반환합니다. 고려할 위치의 보다 정확한 선택은 외부 매개변수에 의해 설정됩니다.

  • sy - 시장 상품의 이름. 이 매개변수를 설정하면 이 기능은 지정된 도구의 위치만 고려합니다. 기본값은 "" 는 모든 시장 상품을 의미합니다. NULL 은 현재 기기를 의미합니다.
  • op - 거래 작업, 위치 유형. 유효한 값: OP_BUY , OP_SELL 또는 -1 . 기본값 -1 은 임의의 위치를 의미합니다.
  • mn - 위치 ID, MagicNumber. 기본값 -1 은 모든 식별자를 의미합니다.
 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,   http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает сумму лотов открытых позиций                        |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ( ""  - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - торговая операция          ( -1  - любая позиция)                  |
//|    mn - MagicNumber                ( -1  - любой магик)                    |
//+----------------------------------------------------------------------------+
double GetAmountLotFromOpenPos ( string sy = "" , int op =- 1 , int mn =- 1 ) {
   double l = 0 ;
   int      i , k = OrdersTotal () ;

   if ( sy == " 0 " ) sy = Symbol () ;
   for ( i = 0 ; i < k ; i ++ ) {
     if ( OrderSelect ( i , SELECT_BY_POS , MODE_TRADES )) {
       if ( OrderSymbol () == sy || sy == "" ) {
         if ( OrderType () == OP_BUY || OrderType () == OP_SELL ) {
           if ( op < 0 || OrderType () == op ) {
             if ( mn < 0 || OrderMagicNumber () == mn ) {
               l += OrderLots () ;
             }
           }
         }
       }
     }
   }
   return ( l ) ;
}
추신. GetAmountLotFromOpenPos() 함수를 테스트하기 위한 스크립트가 첨부되어 있습니다.
 

GetIndexByTicket() 함수.

이 함수는 티켓으로 주문 또는 위치의 인덱스를 반환합니다. 정렬할 주문 또는 위치의 보다 정확한 선택은 외부 매개변수에 의해 설정됩니다.

  • ti - 주문 티켓, 위치. 이 매개변수의 값은 비어 있거나 null일 수 없습니다.
  • sy - 시장 상품의 이름. 이 매개변수를 설정하면 이 기능은 지정된 도구의 위치만 고려합니다. 기본값은 "" 는 모든 시장 상품을 의미합니다. NULL 은 현재 기기를 의미합니다.
  • op - 거래 작업 , 주문 유형 또는 위치. 유효한 값은 OP_BUY , OP_SELL , OP_BUYLIMIT , OP_SELLLIMIT , OP_BUYSTOP , OP_SELLSTOP 또는 -1 입니다. 기본값 -1 은 임의의 위치를 의미합니다.
  • mn - 위치 ID, MagicNumber. 기본값 -1 은 모든 식별자를 의미합니다.
 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает индекс ордера или позиции по тикету.                |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    ti - тикет ордера, позиции                                              |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
int GetIndexByTicket ( int ti , string sy = "" , int op =- 1 , int mn =- 1 ) {
   int i , k = OrdersTotal () ;

   if ( sy == " 0 " ) sy = Symbol () ;
   for ( i = 0 ; i < k ; i ++ ) {
     if ( OrderSelect ( i , SELECT_BY_POS , MODE_TRADES )) {
       if (( OrderSymbol () == sy || sy == "" ) && ( op < 0 || OrderType () == op )) {
         if (( mn < 0 || OrderMagicNumber () == mn ) && OrderTicket () == ti ) return ( i ) ;
       }
     }
   }
   return ( - 1 ) ;
}
추신. GetIndexByTicket() 함수를 테스트하기 위한 스크립트가 첨부되어 있습니다.
파일:
 

여보세요

매개변수로 전달된 두 계열의 상관관계를 결정하는 기능이 있는지 알고 싶습니다.

 
scorpionk :

여보세요

매개변수로 전달된 두 계열의 상관관계를 결정하는 기능이 있는지 알고 싶습니다.

아니... 하지만 이 주제에 관심이 있습니다. 상관관계 계산 공식을 알려주시면 함수를 작성하겠습니다.


추신. 나는 공식을 스스로 찾지 않을 것입니다. 나는 또한 자료와 링크를 따르지 않을 것입니다. 즉, 주제를 이해하고 싶은 마음이 없습니다. 기성 수식을 사용하여 함수를 작성하려는 욕구만 있습니다.

 
KimIV :
전갈 :

여보세요

매개변수로 전달된 두 계열의 상관관계를 결정하는 기능이 있는지 알고 싶습니다.

아니... 하지만 이 주제에 관심이 있습니다. 상관관계 계산 공식을 알려주시면 함수를 작성하겠습니다.


추신. 나는 공식을 스스로 찾지 않을 것입니다. 나는 자료에 대한 링크도 따르지 않을 것입니다. 즉, 주제를 이해하고 싶은 마음이 없습니다. 기성 수식을 사용하여 함수를 작성하려는 욕구만 있습니다.


상관 공식