초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 952

 
vladzeit :

***

1. 현재 상품의 현재 가격을 요청합니다.

***

2.1. 현재 가격이 포인트 >= 100포인트이면 포지션을 엽니다.

***

틈새를 잡고 싶습니까?

 
Vladimir Karputov :

틈새를 잡고 싶습니까?

블라디미르, 부끄럽게도 Gap이 무엇인지 정확히 이해하고 있는지 잘 모르겠습니다. )

포인트 수에 따른 가격 변동이 시장 진입, 매수 또는 매도의 조건이 되는 간단한 알고리즘을 구현하고 싶습니다... 그건 중요하지 않습니다.

결과적으로, 나는 심볼의 현재 가격 을 얻는 방법을 배우고 지역 또는 전역 변수에 저장하고 거기에서 이벤트로 검색하고 0으로 재설정하고 싶습니다.

글쎄, 일반적으로 주로 시장 진입 포인트를 결정하기 위해 그것으로 작업하십시오.

나는 주로 당신이 많이 쓰는 조언자의 예 덕분에 mql5를 마스터하기 시작했습니다. 감사합니다)

어떻게 든 예제에서 알고리즘을 추가하는 것으로 나타났지만 현재 가격을 가져와 변수에 저장하는 것과 혼동되었습니다.

 
vladzeit :

***

포인트 수에 따른 가격 변동이 시장 진입, 매수 또는 매도의 조건이 되는 간단한 알고리즘을 구현하고 싶습니다... 그건 중요하지 않습니다.

***

현재 틱의 가격을 기억하면 다음 틱에서 이 가격이 전혀 변경되지 않거나 매우 적은 수만큼 변경될 수 있음을 이해해야 합니다.

따라서 원하는 것을 명확히 해야 합니다.

  • 예를 들어 N초마다 현재 가격 을 가져옵니다.
  • 새로운 바가 탄생할 때만 현재 가격을 받습니다.
  • ...
  • 그리고 나서 이 가격을 이전에 기억된 값과 비교하십시오.

 
Vladimir Karputov :

현재 틱의 가격을 기억하면 다음 틱에서 이 가격이 전혀 변경되지 않거나 매우 적은 수만큼 변경될 수 있음을 이해해야 합니다.

따라서 원하는 것을 명확히 해야 합니다.

  • 예를 들어 N초마다 현재 가격 을 가져옵니다.
  • 새로운 바가 탄생할 때만 현재 가격을 받습니다.
  • ...
  • 그리고 나서 이 가격을 이전에 기억된 값과 비교하십시오.

음... 이런 기능은 생각도 못했어요)

  • 새로운 바가 탄생할 때만 현재 가격을 받습니다.
이 예는 나에게 더 유용할 것입니다.
 
vladzeit :

음 ... 이런 기능에 대해 생각하지 않았습니다)

  • 새로운 바가 탄생할 때만 현재 가격을 받습니다.
이 예는 나에게 더 유용할 것입니다.

저녁(늦게)에 예시를 보여드리도록 하겠습니다.

 

안녕하세요!
지표의 속도를 높이려고 합니다. 막대 인덱스 와 비교해야 하는 시간 배열 이 있기 때문에 제동이 발생하며 여기서 제동이 발생합니다. 인덱스가 있는 배열이 준비되어 막대의 인덱스와 비교되면 40K 요소가 7초에 통과하지만 시간이 있는 배열 이 있으면 140초가 걸립니다. 표시기 속도를 높이는 방법에 대한 트릭이 있습니까?

   bool FindArr( int Bar )
     {
       int Size=CheckSizeTime;
       for ( int i=restBars; i<Size; i++)
        {
         datetime BarTime= iTime ( NULL , PERIOD_CURRENT ,Bar);
         if ( BarTime == ArrCol.BarTimeArray[i] )
           {
            restBars++;
             return ( true );
           }
        }
       return ( false );
     }
 if (prev_calculated== 0 )         
         for ( int i= 0 ;i<rates_total;i++)
           {
             if (Arr.FindArr(i))
              {
               ColorSectionBuffer[i]=low[i];
               ColorSectionColors[i]= 0 ;
              }
             else
              {
               ColorSectionBuffer[i]= 0 ;
               ColorSectionColors[i]= EMPTY_VALUE ;
              }
           }
 
vladzeit :

음... 이런 기능은 생각도 못했어요)

  • 새로운 바가 탄생할 때만 현재 가격을 받습니다.
이 예는 나에게 더 유용할 것입니다.
블라디미르 카르푸토프 :

저녁(늦게)에 예시를 보여드리도록 하겠습니다.

다음은 누군가의 각 틱에 대한 가격을 가져오는 예입니다.

 //+------------------------------------------------------------------+
//|                                               Display prices.mq5 |
//|                              Copyright © 2018, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2018, Vladimir Karputov"
#property link        "http://wmua.ru/slesar/"
#property version    "1.000"
//---
#include <Trade\SymbolInfo.mqh>  
CSymbolInfo    m_symbol;                     // symbol info object
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
   if (!m_symbol.Name( Symbol ())) // sets symbol name
       return ( INIT_FAILED );
   RefreshRates ();
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   if (! RefreshRates ())
       return ;
   Comment ( "Ask: " , DoubleToString (m_symbol. Ask (),m_symbol. Digits ()), "\n" ,
           "Bid: " , DoubleToString (m_symbol. Bid (),m_symbol. Digits ()));
  }
//+------------------------------------------------------------------+
//| Refreshes the symbol quotes data                                 |
//+------------------------------------------------------------------+
bool RefreshRates ( void )
  {
//--- refresh rates
   if (!m_symbol. RefreshRates ())
     {
       Print ( "RefreshRates error" );
       return ( false );
     }
//--- protection against the return value of "zero"
   if (m_symbol. Ask ()== 0 || m_symbol. Bid ()== 0 )
       return ( false );
//---
   return ( true );
  }
//+------------------------------------------------------------------+

설명은 내일, 오늘은 이미 자고 있습니다.

내일 예는 새로운 바에 관한 것입니다.

파일:
 
Vladimir Karputov :

다음은 누군가의 각 틱에 대한 가격을 가져오는 예입니다.

설명은 내일, 오늘은 이미 자고 있습니다.

내일 예는 새로운 바에 관한 것입니다.

블라디미르 감사합니다. 따옴표 RefreshRates 업데이트 기능으로 수업에서   CsymbolInfo 이미 조금 만났습니다. 나는 그것을 당신의 작품에서 보았고, 글쎄, 나는 그것을 입문서에서 읽었습니다.

OnTick 에서 이 함수를 호출하고 Comment 에 가격 값을 표시하는 것도 예제에서 명확합니다.   현재 문자를 확인하기 위한 OnInit의 절차도 나에게 명확합니다.

새 막대가 있는 예제를 기다리는 동안 예제로 연습하겠습니다. 아직 실제로 적용하지는 않았습니다. 노력하겠습니다.


 
fxsaber :

감사합니다. 수정 했습니다.

감사합니다. 이제 디렉토리만 올바르게 발행하는 것 같습니다.

그러나 MQL 표준은 두 개의 대시 "\\"를 제공하는 반면 하위 디렉토리는 하나의 "\"로 구분된다는 것을 깨달았습니다. 저것들. 코드는 파일 경로를 생성하는 데 필요하며 하나의 슬래시 때문에 추가 후처리 없이는 불가능합니다. 아마도 한 번에 두 개의 슬래시를 얻을 수 있습니까?

 
Aleksey Vyazmikin :

감사합니다. 이제 디렉토리만 올바르게 발행하는 것 같습니다.

그러나 MQL 표준은 두 개의 대시 "\\"를 제공하는 반면 하위 디렉토리는 하나의 "\"로 구분된다는 것을 깨달았습니다. 저것들. 코드는 파일 경로를 생성하는 데 필요하며 하나의 슬래시 때문에 추가 후처리 없이는 불가능합니다. 아마도 한 번에 두 개의 슬래시를 얻을 수 있습니까?

 Print ( "\\" );
사유: