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

 
Vladimir Karputov :

그렇다면 이것은 정확합니다.

닫을 수 없는 경우 - 로그 파일을 확인하십시오. 백만 가지 이유가 있을 수 있습니다 . 거부, 거래 금지, 가격 없음, 정지 수준 근접...

고맙습니다. 그러면 다음과 같습니다):


 void CloseSellPositions()
  {
   for ( int i= PositionsTotal ()- 1 ;i>= 0 ;i--) // returns the number of current positions
	{
          if (m_position.SelectByIndex(i))     // selects the position by index for further access to its properties
             {
             if (m_position.PositionType()== POSITION_TYPE_SELL )
                m_trade.PositionClose(m_position.Ticket()); // close a position by the specified symbol
             }
	}


  }

괄호만 추가했습니다. 초보자가 혼동하지 않도록.

 

안녕하세요. 별도의 파일에 로그를 작성하는 프로그램에서 저는 종종 다음과 같은 줄을 사용합니다.

 StringConcatenate (M, "Начинаем проверять время работы модулей. i=" ,i); Log.write(M, __FILE__ , __LINE__ );

이 줄을 줄이는 방법을 알려주실 수 있습니까? 사실 여기에서는 출력을 위한 줄과 내가 출력할 변수의 이름만 변경됩니다.

정의를 시도했습니다.

 #define LOG(LogPerem,StrMes) StringConcatenate (M,StrMes, "" ); LogPerem.write(M, __FILE__ , __LINE__ );

그러나 다음과 같이 호출하면 더 이상 작동하지 않습니다.

LOG(Log, "i=" ,i);
 
pivomoe :

안녕하세요. 별도의 파일에 로그를 작성하는 프로그램에서 저는 종종 다음과 같은 줄을 사용합니다.

이 줄을 줄이는 방법을 알려주실 수 있습니까? 사실 여기에서는 출력을 위한 줄과 내가 출력할 변수의 이름만 변경됩니다.

정의를 시도했습니다.

그러나 다음과 같이 호출하면 더 이상 작동하지 않습니다.

전처리기에 대해 이해하고 계십니까?

당신의

LOG( "i=" ,i);
에서 펼쳐지다
 StringConcatenate (M,i, "" ); "i=" .write(M, __FILE__ , __LINE__ );;

그리고 그것이 컴파일러에 공급되는 것입니다.

재미도 없습니다. 단 하나의 조리법이 있습니다. 도크를 피우는 것이 바람직합니다. 가급적이면 현지에서 하지 않는 것이 좋습니다. 현지에서는 이미 용어에 대한 이해가 어느 정도 암시되어 있습니다.

이것을 시도하십시오, 아마도 도움이 될 것입니다: https://metanit.com/cpp/c/3.1.php

С | Препроцессор
  • metanit.com
Препроцессор является обязательным компонентом компилятора языка Си. Препроцессор обрабатывает исходный текст программы до ее непосредственной компиляции. Результатом работы препроцессора является полный текст программы, который передается на компиляцию в исполняемый файл. Для управления препроцессором применяются директивы, каждая из которых...
 
Vladimir Simakov :

재미도 없습니다. 단 하나의 조리법이 있습니다. 도크를 피우는 것이 바람직합니다. 가급적이면 현지에서 하지 않는 것이 좋습니다. 현지에서는 이미 용어에 대한 이해가 어느 정도 암시되어 있습니다.

이것을 시도하십시오, 아마도 도움이 될 것입니다: https://metanit.com/cpp/c/3.1.php

갑자기은 무슨 뜻인가요? 도움이 되었나요? 정의를 사용하여 내 줄을 줄일 수 있습니까?


내 질문에서 코드 줄을 변경했습니다.

LOG( "i=" ,i);

LOG(Log, "i=" ,i);
 
pivomoe :

안녕하세요. 별도의 파일에 로그를 작성하는 프로그램에서 저는 종종 다음과 같은 줄을 사용합니다.

이 줄을 줄이는 방법을 알려주실 수 있습니까? 사실 여기에서는 출력을 위한 줄과 내가 출력할 변수의 이름만 변경됩니다.

정의를 시도했습니다.

그러나 다음과 같이 호출하면 더 이상 작동하지 않습니다.

보기 기능의 시트로 내 문제를 해결했습니다.

 template < typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10>
void Write(T1 var1,T2 var2,T3 var3,T4 var4,T5 var5,T6 var6,T7 var7,T8 var8,T9 var9,T10 var10, string ffile, int line)
  {
   string Str;
   StringConcatenate (Str,var1,var2,var3,var4,var5,var6,var7,var8,var9,var10);
   write(Str,ffile,line);
  }; 

이제 내가 이렇게 부르는 프로그램에서

   Log.Write( "Test1" , __FILE__ , __LINE__ );  
 
pivomoe :

갑자기은 무슨 뜻인가요? 도움이 되었나요? 정의를 사용하여 내 줄을 줄일 수 있습니까?


내 질문에서 코드 줄을 변경했습니다.

저 할 수 있어요. LOG("텍스트"); 포럼의 어딘가에서 이것이 어떻게 구현되었는지에 대한 예가 주어졌습니다. 찾아보십시오.
 

좋은 오후입니다. 문제는 데이터를 표시하기 위해 맞춤형 지표 를 호출하는 고문이 있습니다. 전략 테스터에서는 모든 것이 잘 작동하지만 실제 거래 모드에서는 고문이 시작될 때 지표가 표시되지 않습니다. 로그에는 성공적으로 로드된 사용자 지정 지표를 작성 하고 바스락거리는 것처럼 보이고 문자 메시지를 보내지만 지표 목록의 차트에도 없습니다. 동시에 핸들로 차트 위로 드래그하면 어떻게든 데이터를 집어들고 모든 것이 정상적으로 표시됩니다. 지표는 지표 폴더의 iCustom(NULL,0,"Indicator name",Count) 함수에 있습니다. 나는 또한 #resource "\\Indicators\\Indicator name.ex5", iCustom(NULL,0,"::Indicators\\Indicator name.ex5",Count)를 추가하려고 시도했지만 차이는 없었습니다. 이유는 무엇입니까?

 

표시기 버퍼 의 현재 값을 제거하는 설정이 있습니까? 그림을 다시 그리다


 
이 주제와 관련이 없는 댓글은 " MQL4 MT4 MetaTrader 4 초보자의 질문 "으로 이동되었습니다.
 

친애하는 전문가 여러분, 어드바이저 코드에서 주간 시간대에 대한 RSI 값을 어떻게든 얻을 수 있는지 알려주십시오. 그러나 값이 월요일부터 시작하는 주에 대해 계산되지 않고 예를 들어 수요일( 즉, 수요일부터 다음 수요일까지의 주). iRSI의 도움으로 내가 이해한 대로 이것이 작동하지 않습니까?

지금까지는 계산을 위한 코드를 직접 작성하는 방법만 보았습니다. 더 간단하거나 기성품 솔루션이 있습니까?

사유: