Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 158

 
-Aleks-:

Eu tenho este projeto

static datetime TimeN=0;  


void OnTick()
  {

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


obrigado!!!
 
Diga-me por que devo criar um tópico se nenhum dos especialistas estiver disposto a ler as mensagens. Por que eu pedi ajuda se todos os especialistas neste tópico não se importam com ninguém.
 
vannoo:
Diga-me apenas por que tenho que criar um tópico se nenhum dos especialistas nem mesmo quer ler as mensagens. Não sei por que pedi ajuda. Se todos neste tópico se importam com todos.

Você escreveu isto:

Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial

Qualquer pergunta nova sobre a MQL4, ajuda e discussão sobre algoritmos e códigos

vannoo, 2017.03.17 15:57

O pessoal pode me aconselhar aqui o que eu fiz de errado. Não é assim; eu mesmo tenho aprendido por cerca de três semanas a escrever EAs MQL4! Escrevi uma EA compilada, sem erros ou avisos e tudo parece estar bem. Encontrei um grande MAS ele não quer trabalhar. Talvez eu possa perguntar aqui onde cometi um erro e o que fiz de errado. Se alguém me disser o que devo fazer, me avise. Temo que esta seja minha primeira vez aqui e como fazer isso. Embora eu veja como.
Bem, aqui é onde eles podem lhe dar uma resposta.
 
Olá! Ajuda ... Meu MT4 está morto... Eu tentei tudo (reiniciar, restaurar o sistema, apagar o antigo com toda a coragem, baixar o novo), nada ajuda. Está bloqueado ... se você abri-lo, para fechá-lo você tem que fazê-lo através do Task Manager
 

olá a todos

Eu sou novo em programação, mas tento aprender)

Tenho um pequeno problema em fechar a ordem de acordo com as leituras dos indicadores

Posso dizer imediatamente sobre as condições de abertura e fechamento de uma posição através das leituras do indicador e fechar a ordem na direção oposta sem nenhuma parada e lucro

if(r > 50 && p > m) //condições para abertura deuma ordem de compra

{

ticketB = OrderSend(Symbol(),OP_BUY,0.1,Ask,5,0,0,",111,0,Green); //abrir pedido de compra

}

estou escrevendo corretamente a condição de fechamento do pedido?

if(r < 50 && p < m) --- esta é uma condição de Venda e uma condição de Fechamento

{

OrderClose(ticketB,0.1,Bid,5,Red);

}

e imprime opossível uso de 'ticketB' variável não-inicializada e o valor de retorno de 'OrderClose' deve ser verificado

Vocês podem me dizer onde eu escrevi errado?

 

Você pode me dizer como fazer um ciclo de datas - eu preciso pesquisar intervalos - anos e trimestres.

Por exemplo, a primeira faixa de 01.01.2010 a 31.12.2010, a segunda de 01.01.2011 a 31.12.2011 - como organizá-la no ciclo?

 

Se eu não me fiz entender antes, aqui está um exemplo de um projeto que eu gostaria de apertar de alguma forma...


   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';}
    }
 

Quero mudar uma parada completa em uma linha para uma vírgula - não funciona - o que estou fazendo de errado?


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

Se eu não me fiz entender antes, aqui está um exemplo de uma construção que eu gostaria de apertar de alguma forma...



Se por ano, poderia ser algo como isto

//+------------------------------------------------------------------+
//|                                                    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 Ano_Teste EURUSD,M15: Ti = 17 Início = 2017.01.01.01 Parada = 2017.12.31

2017.03.20 21:24:14.002 Ano_Teste EURUSD,M15: Ti = 16 Início = 2016.01.01 Parada = 2016.12.31

2017.03.20 21:24:14.002 Ano_Teste EURUSD,M15: Ti = 15 Início = 2015.01.01 Parada = 2015.12.31

2017.03.20 21:24:14.002 Ano_Teste EURUSD,M15: Ti = 14 Início = 2014.01.01 Parada = 2014.12.31

2017.03.20 21:24:14.002 Ano_Teste EURUSD,M15: Ti = 13 Início = 2013.01.01 Parada = 2013.12.31

2017.03.20 21:24:14.002 Ano_Teste EURUSD,M15: Ti = 12 Início = 2012.01.01 Parada = 2012.12.31

2017.03.20 21:24:14.002 Ano_Teste EURUSD,M15: Ti = 11 Início = 2011.01.01 Parada = 2011.12.31

2017.03.20 21:24:14.002 Ano_Teste EURUSD,M15: Ti = 10 Início = 2010.01.01 Parada = 2010.12.31

2017.03.20 21:24:14.002 Ano_Teste EURUSD,M15: Ti = 9 Início = 2009.01.01 Parada = 2009.12.31

2017.03.20 21:24:14.002 Ano_Teste EURUSD,M15: Ti = 8 Início = 2008.01.01 Parada = 2008.12.31

2017.03.20 21:24:14.002 Ano_Teste EURUSD,M15: Ti = 7 Início = 2007.01.01 Parada = 2007.12.31

2017.03.20 21:24:14.002 Ano_Teste EURUSD,M15: Ti = 6 Início = 2006.01.01 Parada = 2006.12.31

2017.03.20 21:24:14.002 Ano_Teste EURUSD,M15: Ti = 5 Início = 2005.01.01 Parada = 2005.12.31

2017.03.20 21:24:14.002 Ano_Teste EURUSD,M15: Ti = 4 Início = 2004.01.01 Parada = 2004.12.31

2017.03.20 21:24:14.002 Ano_Teste EURUSD,M15: Ti = 3 Início = 2003.01.01 Parada = 2003.12.31

2017.03.20 21:24:14.002 Ano_Teste EURUSD,M15: Ti = 2 Início = 2002.01.01 Parada = 2002.12.31

2017.03.20 21:24:14.002 Ano_Teste EURUSD,M15: Ti = 1 Início = 2001.01.01 Parada = 2001.12.31


 
-Aleks-:

Quero mudar uma parada completa em uma linha para uma vírgula - não funciona - o que estou fazendo de errado?



Funciona

//+------------------------------------------------------------------+
//|                                                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 StringSubstituir EURUSD,M15: 999.99 = 999.99


Razão: