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

 
-Aleks- :

나는이 디자인을 가지고있다

static datetime TimeN=0;  


void OnTick()
  {

datetime TimeC=iTime(NULL,TF,0);
   if(TimeN==0)TimeN=TimeC;
   if(TimeN==TimeC) return;
   TimeN=TimeC;


고맙습니다!!!
 
전문가 중 한 명도 메시지를 읽고 싶어하지 않는데 왜 주제를 작성하는지 궁금합니다. 내가 도움을 요청한 이유. 이 지점의 모든 전문가는 전혀 깊지 않습니다.
 
vannoo :
전문가 중 한 명도 메시지를 읽고 싶어하지 않는데 왜 주제를 작성하는지 궁금합니다. 내가 도움을 요청한 이유. 이 스레드에서 모든 전문가는 전혀 깊숙이 있습니다.

당신은 이것을 썼습니다:

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

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

반누 , 2017.03.17 15:57

사람들은 여기서 내가 무엇을 잘못했는지 말할 수 있습니다. 약 3주 동안 MQL4 Expert Advisors 작성법을 배우고 있습니다! 그래서 나는 모든 것이 괜찮은 것처럼 컴파일된 오류나 경고가 없다고 썼습니다. 그런 다음 큰 그러나 그는 일하기를 원하지 않습니다. 여기 있는 누군가가 내가 어디에서 틀렸고 무엇을 잘못했는지 말해 줄 것입니다. 누구든지 제안하는 데 동의하면 알려주십시오. 그리고 즉시 던지는 방법을 여기에 쓰십시오. 그렇지 않으면 나는 처음으로 여기에 있고 어떻게 했는지 여기에 적습니다. 내가 어떻게 볼지라도.
자, 여기에서 그들이 당신에게 자세히 대답할 수 있을 것 입니다.
 
안녕하세요! 조언을 도와주세요 ... 나는 스테이크 가치가있는 MT 4를 가지고 있습니다 ... 나는 모든 것을 시도했습니다 (재부팅, 시스템 복원, 모든 젠장으로 오래된 것을 삭제, 새 것을 다운로드) 아무것도 도움이되지 않습니다. 죽은 사람이 필요합니다 ...열면 닫아야 합니다 작업관리자로 하세요
 

안녕하세요 여러분

나는 프로그래밍에 익숙하지 않지만 배우려고 노력하고 있습니다)

나는 지표에 따라 주문을 마감하는 데 큰 문제가 없습니다

오픈과 클로징 조건을 바로 알려드립니다 칠면조의 표시에 따라 거래를 열고 표시에 따라 오더를 청산하지만 반대 방향으로 스탑과 이익이 없습니다

if(r > 50 && p > m) // 매수 주문 개시 조건

{

ticketB = OrderSend(Symbol(),OP_BUY,0.1,Ask,5,0,0,"",111,0,Green); //구매 주문 열기

}

주문 마감 조건을 올바르게 쓰고 있습니까?

if(r < 50 && p < m) --- 주문을 판매하고 마감하기 위한 조건입니다.

{

주문종료(티켓B,0.1,입찰가,5,빨간색);

}

초기화되지 않은 변수 'ticketB'의 사용 가능성과 'OrderClose'의 반환 값을 확인해야 합니다.

얘들아 내가 어디서 잘못 썼는지 말해줘?

 

날짜의 루프 반복을 만드는 방법을 알려주세요. 연도 및 분기 범위를 반복해야 합니다.

예를 들어, 첫 번째 범위는 2010년 1월 1일부터 2010년 12월 31일까지이고 두 번째 범위는 2011년 1월 1일부터 2011년 12월 31일까지입니다. 이를 주기로 구성하는 방법은 무엇입니까?

 

좀 더 일찍 자신을 명확하게 표현하지 않았다면 어떻게든 짜내고 싶은 디자인의 예가 있습니다 ...


    for(int Ti=0; Ti<18; Ti++)
     {
      if(Ti==0)  {start_time=D'01.01.2000'; stop_time=D'31.12.2000';}
      if(Ti==1)  {start_time=D'01.01.2001'; stop_time=D'31.12.2001';}
      if(Ti==2)  {start_time=D'01.01.2002'; stop_time=D'31.12.2002';}
      if(Ti==3)  {start_time=D'01.01.2003'; stop_time=D'31.12.2003';}
      if(Ti==4)  {start_time=D'01.01.2004'; stop_time=D'31.12.2004';}
      if(Ti==5)  {start_time=D'01.01.2005'; stop_time=D'31.12.2005';}
      if(Ti==6)  {start_time=D'01.01.2006'; stop_time=D'31.12.2006';}
      if(Ti==7)  {start_time=D'01.01.2007'; stop_time=D'31.12.2007';}
      if(Ti==8)  {start_time=D'01.01.2008'; stop_time=D'31.12.2008';}
      if(Ti==9)  {start_time=D'01.01.2009'; stop_time=D'31.12.2009';}
      if(Ti==10) {start_time=D'01.01.2010'; stop_time=D'31.12.2010';}
      if(Ti==11) {start_time=D'01.01.2011'; stop_time=D'31.12.2011';}
      if(Ti==12) {start_time=D'01.01.2012'; stop_time=D'31.12.2012';}
      if(Ti==13) {start_time=D'01.01.2013'; stop_time=D'31.12.2013';}
      if(Ti==14) {start_time=D'01.01.2014'; stop_time=D'31.12.2014';}
      if(Ti==15) {start_time=D'01.01.2015'; stop_time=D'31.12.2015';}
      if(Ti==16) {start_time=D'01.01.2016'; stop_time=D'31.12.2016';}
      if(Ti==17) {start_time=D'01.01.2017'; stop_time=D'31.12.2017';}
    }
 

문자열에서 점을 쉼표로 변경하고 싶습니다. 작동하지 않습니다. 제가 뭘 잘못하고 있습니까?


 string str_avrMassSell= DoubleToString (avrMassSell, 2 );
str_avrMassSell= StringReplace (str_avrMassSell, "." , "," );
 
-Aleks- :

좀 더 일찍 자신을 명확하게 표현하지 않았다면 어떻게든 짜내고 싶은 디자인의 예가 있습니다 ...



몇 년이 지나면 이렇게 될 수 있습니다.

 //+------------------------------------------------------------------+
//|                                                    Year_Test.mq4 |
//|                                            Copyright 2017, Vinin |
//|                                             http://vinin.ucoz.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Vinin"
#property link        "http://vinin.ucoz.ru"
#property version    "1.00"
#property strict
#property script_show_inputs
//--- input parameters
 input int       Ti= 18 ;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   datetime start_time= D'01.01.2000' ;
   datetime stop_time= D'31.12.2000' ;

   for ( int ti= 1 ;ti<Ti;ti++)
   {   
   
   start_time=start_time+ 31536000 ;
   if ( TimeDay (start_time)== 31 ) start_time+= 86400 ;


   stop_time=stop_time+ 31536000 ;

   if ( TimeDay (stop_time)== 30 ) stop_time+= 86400 ;

   Print ( "ti = " , ti, " Start = " , TimeToStr (start_time, TIME_DATE ), " Stop = " , TimeToStr (stop_time, TIME_DATE ));
   }
   
  }

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 17 시작 = 2017.01.01 중지 = 2017.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 16 시작 = 2016.01.01 중지 = 2016.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 15 시작 = 2015.01.01 중지 = 2015.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 14 시작 = 2014.01.01 중지 = 2014.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 13 시작 = 2013.01.01 중지 = 2013.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 12 시작 = 2012.01.01 정지 = 2012.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 11 시작 = 2011.01.01 중지 = 2011.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 10 시작 = 2010.01.01 중지 = 2010.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 9 시작 = 2009.01.01 정지 = 2009.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 8 시작 = 2008.01.01 중지 = 2008.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 7 시작 = 2007.01.01 정지 = 2007.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 6 시작 = 2006.01.01 중지 = 2006.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 5 시작 = 2005.01.01 중지 = 2005.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 4 시작 = 2004.01.01 중지 = 2004.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 3 시작 = 2003.01.01 정지 = 2003.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 2 시작 = 2002.01.01 정지 = 2002.12.31

2017.03.20 21:24:14.002 Year_Test EURUSD,M15: Ti = 1 시작 = 2001.01.01 중지 = 2001.12.31


 
-Aleks- :

문자열에서 점을 쉼표로 변경하고 싶습니다. 작동하지 않습니다. 제가 뭘 잘못하고 있습니까?



공장

 //+------------------------------------------------------------------+
//|                                                StringReplace.mq4 |
//|                                            Copyright 2017, Vinin |
//|                                             http://vinin.ucoz.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Vinin"
#property link        "http://vinin.ucoz.ru"
#property version    "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input double    Temp= 999.99 ;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
   string stemp1= DoubleToStr (Temp, 2 );
   string stemp2=stemp1;
   StringReplace (stemp2, "." , "," );
   Print (stemp1, " = " , stemp2);
   
  }
//+------------------------------------------------------------------+

2017.03.20 21:39:02.802 StringReplace EURUSD,M15: 999.99 = 999.99