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

 

GetPriceDiffInPoint() 함수를 사용하는 예입니다.

현재 차트에서 두 번째 막대와 첫 번째 막대 사이의 비율 이동 방향과 포인트 값을 계산해야 한다고 가정해 보겠습니다. EURUSD H1 차트를 현재 차트로 설정합니다. 기본 매개변수를 사용하여 GetPriceDiffInPoint() 함수를 호출합니다.

 Message ( GetPriceDiffInPoint ()) ;

결과는 다음과 같습니다.


GetPriceDiffInPoint() 함수는 -23 포인트 값을 반환했습니다. 어떻게 받았는지 봅시다. 이렇게 하려면 시간별 막대 2, 1 및 0을 통해 수직선을 그립니다.


더 작은 시간 프레임(예: M5)으로 전환하고 막대 2와 막대 1의 간격을 하나의 직사각형으로 표시해 보겠습니다.

이제 우리는 선택한 간격의 첫 번째 값이 1.4283 의 동일한 고점이고 그 이후에만 두 번째 시간의 중간에 1.4260 저점이 있음을 분명히 알 수 있습니다. 이것으로부터 우리는 지난 2시간 동안 EURUSD 환율이 하락했고 하락량은 (1.4283 - 1.4260) / 0.0001 = 23포인트 라는 결론을 내렸습니다.


PS Attached는 GetPriceDiffInPoint() 함수를 테스트하기 위한 스크립트입니다.

 

세련된 선택이지만 모든 TF에서 바를 처음 성공적으로 마감할 때 주문을 마감(구매 또는 판매)하는 기능이 있습니까?

 

주문을 열기 전에 어떤 검사를 하는지 알 수 있습니까?

별도의 기능으로 모은다면 링크 부탁드립니다. 그렇지 않은 경우 목록을 제공하십시오.

 
SK. писал (а) >>
주문을 열기 전에 어떤 검사를 하는지 알 수 있습니까?

Seryozha, 당신의 질문이 나를 위한 것인지 아닌지 알 수 없습니까?

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

...

열고 닫고 수정하는 함수는 Sleep 명령을 사용하여 오류를 처리합니다. 나는 약간의 연구를했고 이것으로 교체하는 것이 좋습니다. 사실 지연 값은 본질적으로 권고 사항이며 엄격하게 이 값일 필요는 없습니다. 종종 주문에 따라 즉시(지연 없이) 작업을 수행할 수 있습니다. 그러나 그들이 재인용을 한다면 DC가 내가 언제 어떤 유형의 작업을 수행할지 계산할 수 있다는 것이 마음에 들지 않습니다.

 int start ()
   {
//----
   Sleep_RND ( 20000 ) ;  
//----
   return ( 0 ) ;
   }
//+------------------------------------------------------------------+
void Sleep_RND ( int _Pausa )
   {
   MathSrand ( TimeLocal ()) ;
   MathRand () ;
   Sleep ( MathRound ( _Pausa * MathRand () / 32767 + _Pausa / 5 )) ;
   return ;
   }
 
KimIV писал (а) >> 를 썼습니다.

Seryozha, 당신의 질문이 나를 위한 것인지 아닌지 알 수 없습니까?

예, Igor, 이것은 당신을 위한 질문입니다.

의미는 이것입니다. 여는 기능을 보니 거기에 체크가 없습니다. 분명히 그들은 다른 기능에 집중되어 있습니다. 그러한 기능을 볼 수 있다면 그것을 제공하십시오. 링크. 그러한 기능이 없다면 바로 여기에서 검사 목록을 작성할 수 있습니다. 느릴 수 있습니다.

 

아니요, Sergey, 더 이상 확인하지 않습니다. 또는 오히려, 하지만 나는 그것들을 별도의 기능으로 참을 수 없습니다. 즉, 나는 약간을 견뎌냅니다 ... 젠장, 예를 들어야합니다.

 extern int StopLoss = 30 ;
extern int TakeProfit = 50 ;

double ll = GetSizeLot () ;
double po , pp , sl , tp ;
if ( ExistPositions ( NULL , OP_BUY , Magic )) {
   po = PriceOpenLastPos ( NULL , OP_BUY , Magic ) ;
   if ( ! ExistOrders    ( NULL , OP_SELLSTOP , Magic + 1 )
  &&  ! ExistPositions ( NULL , OP_SELL     , Magic + 1 )) {
     pp = po - offSet * Point ;
     if ( StopLoss > 0 ) sl = pp + StopLoss * Point ; else sl = 0 ;
     if ( TakeProfit > 0 ) tp = pp - TakeProfit * Point ; else tp = 0 ;
     SetOrder ( NULL , OP_SELLSTOP , ll , pp , sl , tp , Magic + 3 ) ;
   }
}

여기서 무엇을 볼 수 있습니까?

1. 거래된 로트가 계산됩니다.

2. 주어진 마법에 매수 포지션이 있는 경우, 시작 가격 po 가 결정됩니다.

3. SellStop 주문이 없고 지정된 마법보다 더 큰 마법을 가진 Sell 포지션이 하나씩 있다면, SellStop 주문은 Buy 포지션의 시작 가격보다 낮은 오프셋 가격으로 설정합니다.

4. 그 사이에 가격 수준 sltp 를 계산합니다.

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

4. 그 사이에 가격 수준 sltp 를 계산합니다.

나는 이것에 대해 이야기하고 있습니다. 일반적으로 항상 변경되는 기존 제한 사항을 고려해야합니다.

각종 제약사항을 분석하는 기능이 있나요?

수정도 마찬가지입니다.

--

(우수 주문(OP,SL,TP)당 3개, 시장(SL,TP)당 2개 등 16개의 기능이 있습니다.

그런 다음 몇 가지 권한 조합을 더 분석합니다).

 
SK. писал (а) >>
각종 제약사항을 분석하는 기능이 있나요?
아직 ... 어떻게 든 필요하지 않았습니다. 하지만 여러분 덕분에 생각하고 필요하다고 느꼈습니다! 고맙습니다!
 

GetTypePrice() 함수

가격 유형 이름을 반환합니다. 이 함수는 하나의 선택적 매개변수만 사용합니다. 유효한 값: PRICE_CLOSE, PRICE_OPEN, PRICE_HIGH, PRICE_LOW, PRICE_MEDIAN, PRICE_TYPICAL, PRICE_WEIGHTED. 기본값은 0 - PRICE_CLOSE입니다.

 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 01.09.2005                                                     |
//|  Описание : Возвращает наименование типа цены.                             |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    Applied_Price - тип цены                                                |
//+----------------------------------------------------------------------------+
string GetTypePrice ( int Applied_Price = 0 ) {
   switch ( Applied_Price ) {
     case PRICE_CLOSE    : return ( " Close " ) ;
     case PRICE_OPEN     : return ( " Open " ) ;
     case PRICE_HIGH     : return ( " High " ) ;
     case PRICE_LOW      : return ( " Low " ) ;
     case PRICE_MEDIAN   : return ( " Median " ) ;
     case PRICE_TYPICAL : return ( " Typical " ) ;
     case PRICE_WEIGHTED : return ( " Weighted " ) ;
     default             : return ( " Unknown Type Price " ) ;
   }
}
이 기능은 특히 가격 상수 값에 대한 설명을 표시하기 위해 표시기, 스크립트 및 Expert Advisors의 작업에 주석을 달거나 기록하는 데 편리합니다.