MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1388

 
Artyom Trishkin :

시도 해봐.

노력하고있어. 첫인상은 3~4개의 도구를 로드하지만 10개의 도구가 필요하다는 것입니다.
모두의 이야기가 로드됩니다.
 
Valeriy Yastremskiy :
노력하고있어. 첫인상은 3~4개의 도구를 로드하지만 10개의 도구가 필요하다는 것입니다.
모두의 이야기가 로드됩니다.

그럼 난 몰라 - 난 아주 오랫동안 4개를 열지 않았어

 

알고리즘을 빠르게 확인하기 위해 MT4를 열어보았다.

테스터에서 제대로 작동하고, 실제로 설정한 후 트랜잭션을 역전시키는 것이 매우 이상합니다. 코드는 간단하며 2개의 표시기 버퍼만 있습니다.


 
MakarFX :
당신의 도움을 주셔서 대단히 감사합니다. 코드의 이 부분을 다시 수정했습니다. 가격 필터를 켜면 철광석이 오류 없이 설치됩니다. 지연이 계속 걸려 있을 때 해당 신호만 건너뜁니다. 의도한 대로. 다시 한번 정말 감사합니다))) 질문이 있습니다 - 신호가 있었던 곳이 있지만 지연이 설정되지 않았고 오류가 없습니다. 그래서이 장소에는 단순히 적절한 조건이 없었고 이것은 정상입니다. 당신은 평화롭게 살 수 있습니까?))) 그리고이 장소에도 교수형 otlozhak이 없었습니다 ...
 
DanilaMactep :
당신의 도움을 주셔서 대단히 감사합니다. 코드의 이 부분을 다시 수정했습니다. 가격 필터를 켜면 철광석이 오류 없이 설치됩니다. 지연이 계속 걸려 있을 때 해당 신호만 건너뜁니다. 의도한 대로. 다시 한번 정말 감사합니다))) 질문이 있습니다 - 신호가 있었던 곳이 있지만 지연이 설정되지 않았고 오류가 없습니다. 그래서이 장소에는 단순히 적절한 조건이 없었고 이것은 정상입니다. 당신은 평화롭게 살 수 있습니까?))) 그리고이 장소에도 교수형 otlozhak이 없었습니다 ...
적당한 조건이 없고 이게 정상이라면 안심하고 살 수 있다
 
Artyom Trishkin :

그럼 난 몰라 - 난 아주 오랫동안 네 개를 열지 않았다

제가 실수를 했습니다. 테스터가 다른 기기에서 현재 데이터를 가져옵니다. 여기에서(다른 도구에서) 현재 시간 과의 차이를 계산할 수 있습니다. 현재 시간에 가깝고 스토리가 로드되면 테스터의 시간으로 이동할 수 있습니다. 목발은 여전히 동일합니다.)

 

질문: 패널이 370의 크기로 생성 됩니다. 차트를 압축할 때 크기를 200으로 변경하려면 어떻게 해야 합니까?

 #property strict

#property indicator_chart_window
#property indicator_buffers 0
#property indicator_plots    0

#include "PanelDialog.mqh"
//+------------------------------------------------------------------+
//| Global Variables                                                 |
//+------------------------------------------------------------------+
CPanelDialog ExtDialog;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ( void )
  {
//--- create application dialog
   if (!ExtDialog.Create( 0 , "Spread" , 0 , 12 , 12 , 250 , 370 ))
     return ( INIT_FAILED );
//--- run application
   if (!ExtDialog.Run())
     return ( INIT_FAILED );
//--- ok
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//--- destroy application dialog
   ExtDialog.Destroy(reason);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const int begin,
                 const double &price[])
  {
//---
 
//--- return value of prev_calculated for next call
   return (rates_total);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent ( const int id,
                   const long &lparam,
                   const double &dparam,
                   const string &sparam)
  {
   ExtDialog.ChartEvent(id,lparam,dparam,sparam);
  }
//+------------------------------------------------------------------+
 
Vitaly Muzichenko :

질문: 패널이 370의 크기로 생성됩니다. 차트를 압축할 때 크기를 200으로 변경하려면 어떻게 해야 합니까?

그리고 그래프의 압축을 결정하는 방법은 무엇입니까?
 
MakarFX :
그리고 그래프의 압축을 결정하는 방법은 무엇입니까?
   if (id== CHARTEVENT_CHART_CHANGE ) {
       // ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS); // Высота графика
   }
 
Vitaly Muzichenko :

높이 압축의 경우

   int ChartHigh=( ChartGetDouble ( 0 , CHART_PRICE_MAX , 0 )- ChartGetDouble ( 0 , CHART_PRICE_MIN , 0 ))/ Point ; //высота графика в пунктах
   if (ChartHigh> 500 )  
      ExtDialog.Create( 0 , "Spread" , 0 , 12 , 12 , 250 , 200 )
   else
      ExtDialog.Create( 0 , "Spread" , 0 , 12 , 12 , 250 , 370 )

너비가 압축되는 경우

   if ( ChartGetInteger ( 0 , CHART_SCALE , 0 )> 2 ) 
      ExtDialog.Create( 0 , "Spread" , 0 , 12 , 12 , 250 , 200 )
   else
      ExtDialog.Create( 0 , "Spread" , 0 , 12 , 12 , 250 , 370 )
너비도 CHART_VISIBLE_BARS