오류, 버그, 질문 - 페이지 2958

 
Mikhail Mishanin :

https://www.mql5.com/en/search#!author=Vladimir%20Karputov&module=mql5_module_codebase


귀하의 요청에 대해 검색된 것이 없습니다

무슨 얘기를 하는 건가요?
 
Vladimir Karputov :
무슨 얘기를 하는 건가요?

검색이 비뚤어져 있습니다. CodeBase 에서 발행일별로 지표를 필터링하고 싶었습니다.

https://www.mql5.com/en/search#!keyword=Vladimir%20Karputov&module=mql5_module_codebase&method=2

https://www.mql5.com/ru/search#!keyword=%D0%B8%D0%BD%D0%B4%D0%B8%D0%BA%D0%B0%D1%82%D0%BE% D1%80&module=mql5_module_codebase&method=2&author=Vladimir%20Karputov

마지막 것은 당신이 원하는 것에 가장 가깝습니다.

 
Mikhail Mishanin :

검색이 비뚤어져 있습니다. CodeBase 에서 발행일별로 지표를 필터링하고 싶었습니다.

https://www.mql5.com/en/search#!keyword=Vladimir%20Karputov&module=mql5_module_codebase&method=2

https://www.mql5.com/ru/search#!keyword=%D0%B8%D0%BD%D0%B4%D0%B8%D0%BA%D0%B0%D1%82%D0%BE% D1%80&module=mql5_module_codebase&method=2&author=Vladimir%20Karputov

마지막 것은 당신이 원하는 것에 가장 가깝습니다.

다음은 작동하는 두 개의 링크입니다. 아마도 이전 링크 형식이 있거나 사이트 데이터베이스가 업데이트되었을 수 있습니다.

 
Vladimir Karputov :

다음은 작동하는 두 개의 링크입니다. 아마도 이전 링크 형식이 있거나 사이트 데이터베이스가 업데이트되었을 수 있습니다.

물론 그들은 작동하지만 내 생각에는 내가 기대하는 바가 전혀 아닙니다.

첫 번째 날짜에서 나는 날짜별로 그것을 처음으로 볼 것이라고 생각했습니다. https://www.mql5.com/ru/code/33553

두 번째에서는 다른 작가들이 자신들의 길을 웜업했습니다.

물론 쓰레기입니다.

 

나는 단순한 것을 원한다. 차트에 "시장 감시"에서 새로운 기호를 던질 때(즉, 기호를 변경할 때) 이를 인식하고 조치를 취하는 것이 필요합니다.

 #property indicator_chart_window

int OnInit ()
  {
   return ( INIT_SUCCEEDED );
  }

int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
   return (rates_total);
  }

void OnDeinit ( const int reason)
  {
   string old_symbol= _Symbol ;
   string new_symbol;

   Print ( "The current symbol is " ,old_symbol, "." );

   if ( _UninitReason == REASON_CHARTCHANGE )
   {
      new_symbol= _Symbol ;
       Print ( "Was: " ,old_symbol, ", now: " ,new_symbol, "." );
   }

   return ;
  }

USDCHF 에 EURUSD 한 켤레를 던졌습니다.

 2021.02 . 14 17 : 56 : 26.700 test (USDCHF,M20)       The current symbol is USDCHF.
2021.02 . 14 17 : 56 : 26.700 test (USDCHF,M20)       Was: USDCHF, now: USDCHF.

동시에 차트에서 쌍은 물론 EURUSD로 변경됩니다. 차트에서 지표를 제거하면 다음과 같이 표시됩니다( 이미 너무 늦었습니다) .

 2021.02 . 14 18 : 02 : 54.006 test (EURUSD,M20)       The current symbol is EURUSD.

그리고 즉시 예상:

 2021.02 . 14 18 : 00 : 44.660 test (USDCHF,M20)       The current symbol is USDCHF.
2021.02 . 14 18 : 00 : 44.660 test (USDCHF,M20)       Was: USDCHF, now: EURUSD.

내가 무엇을 잘못하고 있지?

EURUSD - Euro vs US Dollar - Курс валют сегодня — Форекс курсы валют
EURUSD - Euro vs US Dollar - Курс валют сегодня — Форекс курсы валют
  • www.mql5.com
EURUSD - Euro vs US Dollar - Графики с курсом по самым популярным валютным парам. Используйте фильтр снизу, чтобы отбирать нужные вам курсы валют. Внутри каждого графика показываются цены спроса и предложения, а также прирост за день.
 
x572intraday :

나는 단순한 것을 원한다. 차트에 "시장 감시"에서 새로운 기호를 던질 때(즉, 기호를 변경할 때) 이를 인식하고 조치를 취하는 것이 필요합니다.

USDCHF 에 EURUSD 한 켤레를 던졌습니다.

동시에 차트에서 쌍은 물론 EURUSD로 변경됩니다. 차트에서 지표를 제거하면 다음과 같이 표시됩니다( 이미 너무 늦었습니다) .

그리고 다음과 같이 예상됩니다.

내가 무엇을 잘못하고 있지?

뭐가 들어있어

 OnDeinit (

OnInit에 넣으면 모든 것이 명확해질 것입니다.

 
x572intraday :

나는 단순한 것을 원한다. 차트에 "시장 감시"에서 새로운 기호를 던질 때(즉, 기호를 변경할 때) 이를 인식하고 조치를 취하는 것이 필요합니다.

표시기 에서 기호 를 OnDeinit에 저장해야 합니다(예: 전역 기호). OnInit에서 이전 인디케이터의 OnDeinit 실행을 기다리며 저장된 문자를 읽습니다.
 #property indicator_chart_window
#property indicator_plots    0

#include <Init_Sync.mqh> // https://www.mql5.com/ru/code/18138

int OnInit ()
{  
   // https://www.mql5.com/ru/forum/189649#comment_4854618
   if ( GlobalVariableCheck (( string ) ChartID ()))
  {
     const string PrevSymb = _GlobalVariableGet< string >(( string ) ChartID ());
    
     if (PrevSymb != _Symbol )
       Alert (PrevSymb + " -> " + _Symbol );
    
    _GlobalVariableDel(( string ) ChartID ());  
  }
    
   return ( INIT_SUCCEEDED );
}

void OnDeinit ( const int Reason )
{
   if (Reason == REASON_CHARTCHANGE )
    _GlobalVariableSet(( string ) ChartID (), _Symbol + "" );
}

void OnChartEvent ( const int id,
                   const long & lparam,
                   const double & dparam,
                   const string & sparam )
{
}

void OnTimer ()
{
}

int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[] )
{
   return (rates_total);
}
이 예에서는 (string)ChartID() 이름을 사용하여 전역 항목을 만듭니다. 차트에 여러 지표가 있는 경우 논리가 다소 복잡해야 합니다.
 
fxsaber :
표시기 에서 기호 를 OnDeinit에 저장해야 합니다(예: 전역 기호). OnInit에서 이전 인디케이터의 OnDeinit 실행을 기다리며 저장된 문자를 읽습니다. 이 예에서는 (string)ChartID() 이름을 사용하여 전역 항목을 만듭니다. 차트에 여러 지표가 있는 경우 논리가 다소 복잡해야 합니다.

TypeToBytes.mqh 및 crc64.mqh는 성공적으로 컴파일되었지만 Init_Sync.mqh를 컴파일할 때 오류가 많이 발생했습니다. 즉, 예제의 컴파일에도 도달하지 못했습니다. 예, 그리고 저는 그런 사소한 작업이 여러 개의 통통한 라이브러리를 필요로 하고 그 중 일부는 컴파일하기를 원하지 않는다는 사실을 공포스럽게 생각합니다. 내 자신의 사용자 지정 표시기를 제외하고는 이전에 타사에 아무 것도 연결하지 않았습니다.

 
x572intraday :

TypeToBytes.mqh 및 crc64.mqh는 성공적으로 컴파일되었지만 Init_Sync.mqh를 컴파일할 때 오류가 많이 발생했습니다.

나는 컴파일한다.

파일:
 
fxsaber :

나는 컴파일한다.

어, 효과가 있었어요.