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

 
Artyom Trishkin :
음, 제로 캔들 M15의 열린 위치 수를 확인하십시오. 이미 포지션이 있고 제로 캔들 M15에서 열려 있으면 다시 열지 마십시오.
저는 프로그래밍을 잘하지는 못하지만 이 모듈은
b= 0 ;
     for (i= OrdersTotal ()- 1 ;i>= 0 ;i--)  
       {
         RefreshRates ();
         if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ) == true ) a = 0 ;
         if ( OrderSymbol () == Symbol () && OrderMagicNumber () == Magic) b++;
       }
그러나 문제는 주문이 SL 또는 TP에 의해 마감되면 M15의 다음 신호가 주문을 다시 열 것이라는 것입니다.
 
customer03 :
저는 프로그래밍을 잘하지는 못하지만 이 모듈은
b= 0 ;
       }
그러나 문제는 주문이 SL 또는 TP에 의해 마감되면 M15의 다음 신호가 주문을 다시 열 것이라는 것입니다.

H1 의 새 막대 에서 제어를 시도하십시오.

b= 0 ;
     for (i= OrdersTotal ()- 1 ;i>= 0 ;i--)  
       {
         RefreshRates ();
         if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ) == true ) a = 0 ;
         if ( OrderSymbol () == Symbol () && OrderMagicNumber () == Magic) b++;
       }

      
if (  stM1 <= 20 && stM0 > 20   && stH0 > 70   && b== 0    && opp != iTime ( _Symbol , PERIOD_H1 , 0 ) ) // покупка
      {
       opp = iTime ( _Symbol , PERIOD_H1 , 0 ) ;

     RefreshRates ();
    op = Ask ;
 
Vitaly Muzichenko :

H1 의 새 막대 에서 제어를 시도하십시오.

b= 0 ;
     for (i= OrdersTotal ()- 1 ;i>= 0 ;i--)  
       {
         RefreshRates ();
         if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ) == true ) a = 0 ;
         if ( OrderSymbol () == Symbol () && OrderMagicNumber () == Magic) b++;
       }

      
if (  stM1 <= 20 && stM0 > 20   && stH0 > 70   && b== 0    && opp != iTime ( _Symbol , PERIOD_H1 , 0 ) ) // покупка
      {
       opp = iTime ( _Symbol , PERIOD_H1 , 0 ) ;

     RefreshRates ();
    op = Ask ;
시도했지만 변화가 없습니다.
 
customer03 :
저는 프로그래밍을 잘하지는 못하지만 이 모듈은
b= 0 ;
     for (i= OrdersTotal ()- 1 ;i>= 0 ;i--)  
       {
         RefreshRates ();
         if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ) == true ) a = 0 ;
         if ( OrderSymbol () == Symbol () && OrderMagicNumber () == Magic) b++;
       }
그러나 문제는 주문이 SL 또는 TP에 의해 마감되면 M15의 다음 신호가 주문을 다시 열 것이라는 것입니다.

아니요, 이 코드는 확실히 그렇게 하지 않습니다.

M15 기간 의 포지션 개시 막대가 0이 아닌지 확인해야 합니다. 그런 다음 포지션을 열 수 있습니다.

if ( iBarShift ( Symbol (), PERIOD_M15 , OrderOpenTime ())!= 0 )
  {
   // код открытия позиции
  }
 

안녕하세요! 내가 무엇을 잘못하고 있는지 수업을 알아낼 수 있도록 도와주세요.

클래스 ASD
{
사적인:
// 다음은 클래스 내부에서만 사용할 수 있는 변수 및 함수입니다.
int c (int m_a, int m_b)
{int m_d = m_a+m_b;}

공공의:
무효 d (int a,int b )
{
m_a=a+b;
}
// 다음은 클래스 외부에서도 사용할 수 있는 변수 및 함수입니다.
};
 
Vikon :

안녕하세요! 내가 무엇을 잘못하고 있는지 수업을 알아낼 수 있도록 도와주세요.

클래스 ASD
{
사적인:
// 다음은 클래스 내부에서만 사용할 수 있는 변수 및 함수입니다.
int c (int m_a, int m_b)
{int m_d = m_a+m_b;}

공공의:
무효 d (int a,int b )
{
m_a=a+b;
}
// 다음은 클래스 외부에서도 사용할 수 있는 변수 및 함수입니다.
};
기사 를 읽는 것으로 시작하십시오.
 
Artyom Trishkin :
기사 를 읽는 것으로 시작하십시오.

읽었지만 잘 이해가 되지 않습니다.

다음은 발생합니다.

수업:

class ASD

  {

private :

   // Здесь располагаются переменные и функции, доступные только внутри класса

   int c( int m_a, int m_b)

     {
      m_a=a+b; m_b=a-b;

       int m_d=m_a+m_b;

      d=m_d;

       return (c(m_a,m_b));
     }

public :

   int                a;

   int                b;

   int                d;

  };

스크립트:

#include <ASD.mqh>


ASD ar;
//+------------------------------------------------------------------+

//| Script program start function                                    |

//+------------------------------------------------------------------+

void OnStart ()

  {

   ar.a= 1 ;

   ar.b= 3 ;

   Alert (ar.d);

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

경고는 0을 제공합니다. 뭐가 문제 야??

 
Vikon :

읽었지만 잘 이해가 되지 않습니다.

다음과 같은 일이 발생합니다.

수업:


경고는 0을 제공합니다. 뭐가 문제 야??

SRC 버튼으로 코드를 삽입하기 어려운가요?

올바른 코드를 붙여넣었습니다.

 
Vikon :

읽었지만 잘 이해가 되지 않습니다.

다음과 같은 일이 발생합니다.

수업:

class ASD

  {

private :

   // Здесь располагаются переменные и функции, доступные только внутри класса

   int c( int m_a, int m_b)

     {
      m_a=a+b; m_b=a-b;

       int m_d=m_a+m_b;

      d=m_d;

       return (c(m_a,m_b));
     }

public :

   int                a;

   int                b;

   int                d;

  };

스크립트:

#include <ASD.mqh>


ASD ar;
//+------------------------------------------------------------------+

//| Script program start function                                    |

//+------------------------------------------------------------------+

void OnStart ()

  {

   ar.a= 1 ;

   ar.b= 3 ;

   Alert (ar.d);

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

경고는 0을 제공합니다. 뭐가 문제 야??

클래스 내에서 값에 대해 Print 를 수행합니다. 그런 다음 스크립트를 실행할 때 인쇄되는 내용을 로그에서 확인하세요.)
 
Artyom Trishkin :
클래스 내에서 값을 인쇄합니다. 그런 다음 스크립트를 실행할 때 인쇄되는 내용을 로그에서 확인하세요.)
인쇄는 함수 내부에만 삽입할 수 있지만 인쇄 또는 경고가 작동하도록 이 함수를 호출하는 방법을 모르겠습니다. 세 가지 간단한 변수로 내 코드를 수정하여 도움을 줄 수 있습니까??? 글에 설명된 대로 다 하고 있는데 에디터가 건너뛰지 않거나, 뭔가가 추가되지 않거나, 이해가 안 되는 경우가 있어서 어떤 경우에도 벽에 도움을 요청하게 되었습니다. SKC에 감사드립니다.