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

 
Maksim Kalachev # :

읽어보니 지표만 지표로 설정되어 있습니다. 그러나 데모를 다운로드하면 어드바이저에 나타납니다.

다른 포럼 스레드에 같은 질문을 게시하지 마십시오.

나는 거기에서 다음과 같이 대답했습니다.

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

오류, 버그, 질문

Artyom Trishkin , 2022.04.05 15:13

이전 핸들러를 사용하여 작성했습니다.

OnCalculate()를 사용해야 합니다.


 
Artyom Trishkin # :

다른 포럼 스레드에 같은 질문을 게시하지 마십시오.

나는 거기에서 다음과 같이 대답했습니다.


이미 읽고 있어요. 고맙습니다!

 
사람과의 대화를 삭제할 수 있습니까? 사용자와의 채팅 을 종료하고 싶습니다.
 
makssub # :

안녕하세요.

코드에 대한 도움말, 예가 있을 수 있습니다.
일:

다른 방향으로 다른 로트가 있는 여러 미결 주문이 있습니다. 그들 중 하나는 이익을 내며 20이라고 가정해 보겠습니다. 그러나 마이너스 이익이 있는 미결 상태가 있습니다. 예를 들어 -55와 0.05랏이 있다고 가정해 보겠습니다. 나는 드로다운을 줄이기 위해 긍정적으로 닫힌 주문의 이익 금액에 대해 부정적인 주문의 일부를 닫고 싶습니다.

while 문을 기반으로 작성하려고 했지만 문제가 발생했습니다.

미리 감사드립니다.

당신이 쓰지 않았습니까, 같은 악기에 있습니까 아니면 다른 위치에 있습니까?
 

MT5 코드는 작동하지만 MT4에서는 작동하지 않는 이유는 무엇입니까? 빌드 1353

템플릿을 저장하지만 템플릿을 적용하지 않습니다.

 //+------------------------------------------------------------------+
//|                                              File Read Write.mq4 |
//|                      Copyright © 2008, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, MetaQuotes Software Corp."
#property link        " http://www.metaquotes.net/ "

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
string SYMBOL;
string ccname;
void OnStart ()
  {

   SYMBOL = _Symbol ;
   ccname = SYMBOL;
   SaveTemplate();
 
 DownloadTemplate();
     
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void SaveTemplate( void )
  {
   if ( ChartSaveTemplate ( 0 , ccname))
       Print ( "Template successfully saved!  " + SYMBOL);
   else
       Print ( "Template save Failed!  " + SYMBOL);
   return ;
  }
//+------------------------------------------------------------------+
void DownloadTemplate( void )
  {

   if ( ChartApplyTemplate ( 0 ,ccname))
       return ;
   else
       Print ( "Template download Failed!  " + SYMBOL);
  }

 
새 초가 시작되었을 때만 프로그램이 작동하도록 하고 코드를 실행한 후 몸을 낮추고 다음 초가 시작될 때까지 기다리는 방법을 알려주세요.
 
Ivan Butko 새 초가 시작되었을 때만 프로그램이 작동하도록 하고 코드를 실행한 후 몸을 낮추고 다음 초가 시작될 때까지 기다리는 방법을 알려주세요.

이것을 시가라고 합니다.
초등학교 완료

 
Pavel Malyshko # :

이것을 시가라고 합니다.
초등학교 완료

그리고 나는 생각하지 않을 것이다. 틱이오고 확인이 통과했습니다. 다음 눈금이 표시됩니다. 다시 확인하십시오. 같은 타이머는 오프닝에 맞지 않습니다

개장 시간을 기억하고 그것에 촛불 시간을 추가하고 현재 시간을 새 값과 비교하는 것만 염두에 둡니다.

 
Ivan Butko # :

그리고 나는 생각하지 않을 것이다. 틱이오고 확인이 통과했습니다. 다음 눈금이 표시됩니다. 다시 확인하십시오. 같은 타이머는 오프닝에 맞지 않습니다

개장 시간을 기억하고 그것에 촛불 시간을 추가하고 현재 시간을 새 값과 비교하는 것만 염두에 둡니다.

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

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

발레리 야스트렘스키 , 2022.03.30 09:37

 
static datetime OldTime= 0 ;
if ( iTime ( NULL , 0 , 0 )!=OldTime)
      {
       Alert ( "ДИВЕРГЕНЦИЯ НА " + Symbol ()); OldTime= iTime ( NULL , 0 , 0 );
      }

따라서 로드할 때 경고도 표시됩니다. 새 막대가 나타나면 iTime ( NULL , 0 , 0 )이 변경되고 한 번 같음이 없으면 같음이 있고 if가 false입니다.

아직 가능합니다.

 static bool FlagNewBar= false ;
   if (BarTime!=Time[ 0 ])
     {
      BarTime=Time[ 0 ];
      FlagNewBar= true ;
     }

또는 모든 시간대에 새 막대를 받을 수 있습니다.

 bool FlagNewBarF( int prd, datetime &ArgBarTime, bool &FlagNbar)
  {
   FlagNbar= false ;
   if (ArgBarTime!= iTime ( NULL ,prd, 0 ))
     {
      ArgBarTime= iTime ( NULL ,prd, 0 );
      FlagNbar= true ;
     }

   return (FlagNbar);
  }

통화는

 if (FlagNewBarF( 1 , BarTime1,FlagNewBar1))
     {
       Alert ( "FlagNbar1 " ,FlagNewBar1, "BarTime1 " ,TimeToStr(BarTime1, TIME_DATE | TIME_SECONDS ));
      
     }

   if (FlagNewBarF( 5 , BarTime5,FlagNewBar5))
     {
       Alert ( "FlagNbar5 " ,FlagNewBar5, "BarTime5 " ,TimeToStr(BarTime5, TIME_DATE | TIME_SECONDS ));
     
     }

 
Valeriy Yastremskiy # :
당신이 쓰지 않았습니까, 같은 악기에 있습니까 아니면 다른 위치에 있습니까?

예를 들어 EurUsd와 같은 동일한 통화 쌍 내에서 모두 처리하십시오. 둘 다 Buy에서 열려 있습니다.