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

 
mila.com :

감사 합니다, 맞습니까?

label = ObjectGetInteger ( 0 ,nm, OBJPROP_COLOR , 0 );

if (label==Lime) BUY_ = true ;

아니요, 이것이 색상 데이터를 int 로 얻는 방법입니다.

여기에서 댓글에 표시되는 내용을 확인하세요.

Comment ( ColorToString (( color ) ObjectGetInteger ( 0 , "NaneOBJ" , OBJPROP_COLOR , 0 ), true ) );

변환에 대해 읽기

 
Vitaly Muzichenko :

변환에 대해 읽기

감사해요,   조건 자체가 맞습니까?
 
mila.com :
감사해요,   조건 자체가 맞습니까?
string label = ColorToString (( color ) ObjectGetInteger ( 0 , "MP140269" , OBJPROP_COLOR , 0 ), true );
if (label==Lime) BUY_ = true ;

if (label==Red) BUY_ = false ;
아마 그렇지 않을 것입니다. 데이터가 string 유형 이면 따옴표로 프레임을 지정하고 전체 문자별 색상 일치를 작성해야 합니다. "clrLime"
 
Vitaly Muzichenko :
아마 그렇지 않을 것입니다. 데이터가 string 유형 이면 따옴표로 프레임을 지정하고 전체 문자별 색상 일치를 작성해야 합니다. "clrLime"
감사합니다, 모두 잘 작동했습니다)
 
Vitaly Muzichenko :
아마 그렇지 않을 것입니다. 데이터가 string 유형 이면 따옴표로 프레임을 지정하고 전체 문자별 색상 일치를 작성해야 합니다. "clrLime"
아니요, 따옴표는 필요하지 않습니다. 상수입니다. 즉, 다음이 필요합니다. if(label==clrLime) {}
 
Artyom Trishkin :
아니요, 따옴표는 필요하지 않습니다. 상수입니다. 즉, 다음이 필요합니다. if(label==clrLime) {}

덕분에 작동합니다.

더 높은 기간에서 확률 지표의 수준을 올바르게 얻는 방법을 알려주십시오.

       int bar_sto2_0= iBarShift ( Symbol (),TimeFrame2, iTime ( Symbol (),TimeFrame2,i));
       int bar_sto2_1= iBarShift ( Symbol (),TimeFrame2, iTime ( Symbol (),TimeFrame2,i+ 1 ));
       double sto1_0= iStochastic ( Symbol (),TimeFrame1,kperiod1,dperiod1,slowing1, MODE_LWMA , STO_CLOSECLOSE , MODE_MAIN ,i);
       double sto1_1= iStochastic ( Symbol (),TimeFrame1,kperiod1,dperiod1,slowing1, MODE_LWMA , STO_CLOSECLOSE , MODE_MAIN ,i+ 1 );
       double sto2_0= iStochastic ( Symbol (),TimeFrame2,kperiod2,dperiod2,slowing2, MODE_LWMA , STO_CLOSECLOSE , MODE_MAIN ,bar_sto2_0);
       double sto2_1= iStochastic ( Symbol (),TimeFrame2,kperiod2,dperiod2,slowing2, MODE_LWMA , STO_CLOSECLOSE , MODE_MAIN ,bar_sto2_1);
      
       if (sto2_0> 55 )
       {
      BufferUP[i]=low[i]-distance*MyPoint;
       }
      

표시기가 이전 ph로 설정된 경우. 모든 것이 정확하고 표시선이 55 이상일 때 화살표가 배치됩니다.

주니어 차트로 전환하면 혼돈.

 
mila.com :

덕분에 작동합니다.

더 높은 기간에서 확률 지표의 수준을 올바르게 얻는 방법을 알려주십시오.

       int bar_sto2_0= iBarShift ( Symbol (),TimeFrame2, iTime ( Symbol (),TimeFrame2,i));
       int bar_sto2_1= iBarShift ( Symbol (),TimeFrame2, iTime ( Symbol (),TimeFrame2,i+ 1 ));
       double sto1_0= iStochastic ( Symbol (),TimeFrame1,kperiod1,dperiod1,slowing1, MODE_LWMA , STO_CLOSECLOSE , MODE_MAIN ,i);
       double sto1_1= iStochastic ( Symbol (),TimeFrame1,kperiod1,dperiod1,slowing1, MODE_LWMA , STO_CLOSECLOSE , MODE_MAIN ,i+ 1 );
       double sto2_0= iStochastic ( Symbol (),TimeFrame2,kperiod2,dperiod2,slowing2, MODE_LWMA , STO_CLOSECLOSE , MODE_MAIN ,bar_sto2_0);
       double sto2_1= iStochastic ( Symbol (),TimeFrame2,kperiod2,dperiod2,slowing2, MODE_LWMA , STO_CLOSECLOSE , MODE_MAIN ,bar_sto2_1);
      
       if (sto2_0> 55 )
       {
      BufferUP[i]=low[i]-distance*MyPoint;
       }
      

표시기가 이전 ph로 설정된 경우. 모든 것이 정확하고 표시선이 55 이상일 때 화살표가 배치됩니다.

주니어 그래프로 전환하면 혼돈.

지표 주기에 대해 이야기하는 경우 더 높은 기간의 막대가 더 낮은 TF의 주기 지수에 의해 표시된 막대에 해당하는지 알기 위해서는 막대 시간 i 를 얻어야 합니다 . 그런 다음 이 시간까지 이 시간에 해당하는 더 높은 TF의 막대를 결정합니다. 예: 하나의 H4 막대는 4개의 H1 막대에 해당합니다. 따라서 TF H1이 있는 주기 지수 i의 4개 값은 TF H4에서 동일한 막대를 가리킵니다.

귀하의 변수(이름)로는 값을 가져오는 막대를 파악할 수 없습니다. 따라서 이론 외에 다른 것을 말하기는 어렵습니다.

 
Artyom Trishkin :

지표 주기에 대해 이야기하는 경우 더 높은 기간의 막대가 더 낮은 TF의 주기 지수에 의해 표시된 막대에 해당하는지 알기 위해서는 막대 시간 i 를 얻어야 합니다 . 그런 다음 이 시간까지 이 시간에 해당하는 더 높은 TF의 막대를 결정합니다. 예: 하나의 H4 막대는 4개의 H1 막대에 해당합니다. 따라서 TF H1이 있는 주기 지수 i의 4개 값은 TF H4에서 동일한 막대를 가리킵니다.

귀하의 변수(이름)로는 값을 가져오는 막대를 파악할 수 없습니다. 따라서 이론 외에 다른 것을 말하기는 어렵습니다.

표시기는 M1으로 설정됩니다.

위쪽 화살표의 주요 조건은 55 레벨 위의 M5에 있는 표시선 입니다.

M5의 선이 레벨 55 아래에 있더라도 이 조건이 충족되지 않으면 화살표가 계속 배치됩니다.

 

로봇에 "1바의 최고값이 3번째 바의 최저값보다 높은 경우..."라는 조건을 작성하는 방법

동시에 트리거는 "OnTick()"이 아니어야 합니다.

0 막대가 1이 될 때마다

 
trader781 :

로봇에 "1바의 최고값이 3번째 바의 최저값보다 높은 경우..."라는 조건을 작성하는 방법

동시에 트리거는 "OnTick()"이 아니어야 합니다.

0 막대가 1이 될 때마다

이렇게 될 수 있을까

//+------------------------------------------------------------------+
//|                                                       test03.mq4 |
//|                                                   Sergey Gritsay |
//|                         https://www.mql5.com/ru/users/sergey1294 |
//+------------------------------------------------------------------+
#property copyright "Sergey Gritsay"
#property link        "https://www.mql5.com/ru/users/sergey1294"
#property version    "1.00"
#property strict
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class CNevBar
  {
private :
   datetime           curbar;
   datetime           lastbar;
public :
                     CNevBar();
                    ~CNevBar();
   bool               new_bar( string symbol, ENUM_TIMEFRAMES period);
  };
//+------------------------------------------------------------------+
void CNevBar::CNevBar()
  {

  }
//+------------------------------------------------------------------+
void CNevBar::~CNevBar( void )
  {

  }
//+------------------------------------------------------------------+
bool CNevBar:: new_bar( string symbol, ENUM_TIMEFRAMES period)
  {
   curbar=( datetime ) SeriesInfoInteger (symbol,period, SERIES_LASTBAR_DATE );
   if (lastbar== 0 )lastbar=( datetime ) SeriesInfoInteger (symbol,period, SERIES_LASTBAR_DATE );
   if (lastbar!=curbar)
     {
      lastbar=curbar;
       return ( true );
     }
   return ( false );
  }

CNevBar newbar;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---

//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
   if (newbar.new_bar( _Symbol , PERIOD_CURRENT ))
     {
       if ( High [ 1 ]> Low [ 3 ])
        {

        }
     }

  }
//+------------------------------------------------------------------+

...