EA - Tempo de Operação - página 2

 
MicheliBarcello:

Não consegui, pois são funções diferente pelo que entendi:

bool  ChartIndicatorAdd(
   long  chart_id,                 // ID Gráfico
   int   sub_window                // número da sub-janela
   int   indicator_handle          // manipulador do indicador
   );

O primeiro parametro é o grafico, no caso 0, o segundo 0 para colocar na mesma janela dos candles e o terceiro o handle.


A função ObjectSetInteger não tem a parte de identificar o grafico, janela e hando, logo acredito que tem que usar em conjunto, porem não sei como

Poderia me explicar ? Por exemplo

ObjectSetInteger(0,mm_rapida_Handle, OBJPROP_COLOR, clrWhite) ( id do grafico, handle para mudar a cor, cor escolhida )

ChartIndicatorAdd(0,0,mm_rapida_Handle); ( Id do grafico = atual / mesma janela dos candle / handle para desenhar )


Porem não funcionou ://

Se você não teve um treinamento inicial e profundo nos elementos da linguagem MQL5 você vai dar cabeçadas eternas. O MQL5 é uma linguagem bem pentelha. Nada nela é o que parece.

Se você realmente leu TODA a documentação do iMA() vai perceber que o seu código está completamente errado.

https://www.mql5.com/en/docs/indicators/ima

Documentation on MQL5: Technical Indicators / iMA
Documentation on MQL5: Technical Indicators / iMA
  • www.mql5.com
//|                                                     Demo_iMA.mq5 | //|                        Copyright 2011, MetaQuotes Software Corp. | //|                                              https://www.mql5.com | "The method of creation of the handle is set through the 'type' parameter (function type...
 

Boa Noite, Tudo bem ?

Fiz meu primeiro programa, porem o mesmo não esta funcionando como desejo, posso colocar o código aqui explicando passo a passo e me ajudar a identificar o erro ?

Agradeço desde já

 
MicheliBarcello:

Boa Noite, Tudo bem ?

Fiz meu primeiro programa, porem o mesmo não esta funcionando como desejo, posso colocar o código aqui explicando passo a passo e me ajudar a identificar o erro ?

Agradeço desde já

Oi @MicheliBarcello,

Sugiro que abra uma nova thread e poste o código.

;-)

 

Tenho outa duvida sobre tempo.


Atualmente com o script que me passaram no topio, eu coloco os horários para trade ( Digito os mesmo )...


Gostaria de saber como faz para ao invés de ter que digitar,  clicar por exemplo 09:00 - 09:15 - 09:30 como se fosse uma lacuna ( Igual quando usa enum para texto, porem enum não funciona para números )


Muito Obrigada

 
MicheliBarcello:

Tenho outa duvida sobre tempo.


Atualmente com o script que me passaram no topio, eu coloco os horários para trade ( Digito os mesmo )...


Gostaria de saber como faz para ao invés de ter que digitar,  clicar por exemplo 09:00 - 09:15 - 09:30 como se fosse uma lacuna ( Igual quando usa enum para texto, porem enum não funciona para números )


Muito Obrigada

Para resolver sua necessidade, basta colocar o robô no gráfico de 15 minutos (ou outro timeframe desejado) e programar o mesmo para apenas operar a cada novo candle. Para isso você pode ler este artigo.

 

Acredito que me expressei errado, segue uma foto par ver como gostaria.


Não queria ter que digitar o horário e sim clicar, abrir uma lacuna e selecionar qual desejo.

Arquivos anexados:
Tempo.jpeg  43 kb
 
MicheliBarcello:

Acredito que me expressei errado, segue uma foto par ver como gostaria.


Não queria ter que digitar o horário e sim clicar, abrir uma lacuna e selecionar qual desejo.

Forum on trading, automated trading systems and testing trading strategies

enum every 15 minutes

Joao Luiz Sa Marchioro, 2018.09.22 04:28

I finally got the code to optimize by time every 15 minutes.

I will post the code to help anyone who has the same problem.

Special thanks to Denis Macedo and Lucas M. Costa who gave me the tip to find the best solution.

enum horario
  {
   hr01,//09:05
   hr02,//09:15
   hr03,//09:30
   hr04,//09:45
   hr05,//10:00
   hr06,//10:15
   hr07,//10:30
   hr08,//10:45
   hr09,//11:00
   hr10,//11:15
   hr11,//11:30
   hr12,//11:45
   hr13,//12:00
   hr14,//12:15
   hr15,//12:30
   hr16,//12:45
   hr17,//13:00
   hr18,//13:15
   hr19,//13:30
   hr20,//13:45
   hr21,//14:00
   hr22,//14:15
   hr23,//14:30
   hr24,//14:45
   hr25,//15:00
   hr26,//15:15
   hr27,//15:30
   hr28,//15:45
   hr29,//16:00
   hr30,//16:15
   hr31,//16:30
   hr32,//16:45
   hr33,//17:00
   hr34,//17:15
   hr35,//17:28
   hr36,//17:45
   hr37,//17:53
  };

input horario Inicio=0;//Hora de Início das Operações [formato 00:00]
input horario Termino=36;//Hora de Paralisação das Operações [formato 00:00]
input horario DayTrade=34;//DayTrade fechamento de todas as Operações [formato 00:00]

MqlDateTime inicio,termino,daytrade;


int OnInit()
{
   TimeToStruct(StringToTime(TimeFunction(Inicio)),inicio);
   TimeToStruct(StringToTime(TimeFunction(Termino)),termino);
   TimeToStruct(StringToTime(TimeFunction(DayTrade)),daytrade);

// Verificação de inconsistências nos parâmetros de entrada
   if(inicio.hour>termino.hour || (inicio.hour==termino.hour && inicio.min>termino.min))
     {
      Alert(__FUNCTION__," Parâmetros de Horário inválidos!");
      printf("Parâmetros de Horário inválidos!");
      return INIT_FAILED;
     }

   Print("Abertura = ",inicio.hour,":",inicio.min,
         " / Fechamento = ",termino.hour,":",termino.min,
         " / Day Trade = ",daytrade.hour,":",daytrade.min
         );
}

void OnTick()
{

   if((stm.hour<=inicio.hour && stm.min<=inicio.min) || (stm.hour>=termino.hour && stm.min>termino.min)){tradeenabled=0;}

}

//--- Function
string TimeFunction(horario time)
  {
   switch(time)
     {
      case 0: return ("09:05");break;
      case 1: return ("09:15");break;
      case 2: return ("09:30");break;
      case 3: return ("09:45");break;
      case 4: return ("10:00");break;
      case 5: return ("10:15");break;
      case 6: return ("10:30");break;
      case 7: return ("10:45");break;
      case 8: return ("11:00");break;
      case 9: return ("11:15");break;
      case 10:return ("11:30");break;
      case 11:return ("11:45");break;
      case 12:return ("12:00");break;
      case 13:return ("12:15");break;
      case 14:return ("12:30");break;
      case 15:return ("12:45");break;
      case 16:return ("13:00");break;
      case 17:return ("13:15");break;
      case 18:return ("13:30");break;
      case 19:return ("13:45");break;
      case 20:return ("14:00");break;
      case 21:return ("14:15");break;
      case 22:return ("14:30");break;
      case 23:return ("14:45");break;
      case 24:return ("15:00");break;
      case 25:return ("15:15");break;
      case 26:return ("15:30");break;
      case 27:return ("15:45");break;
      case 28:return ("16:00");break;
      case 29:return ("16:15");break;
      case 30:return ("16:30");break;
      case 31:return ("16:45");break;
      case 32:return ("17:00");break;
      case 33:return ("17:15");break;
      case 34:return ("17:28");break;
      case 35:return ("17:45");break;
      case 36:return ("17:53");break;
     }
   return(IntegerToString(time));
  }




 
Muito Obrigada :)
 

Boa Noite a Todos.0

Feliz Natal.

Gostaria de saber se alguém pode me ajudar com esse erro.

Tentei colocar em um robô que estou desenvolvendo com 03 medias (03,08,20) para não virar ordem de um dia pro outo.

O erro esta no arquivo isolado que copiei para testar, portanto não tem nenhuma alteração.

Erro no bool

 
MicheliBarcello:
Muito Obrigada :)

@MicheliBarcello Vc conseguiu rodar o robô com os horários?

Pode me ajudar nesse erro do bool?

Erro bool

Razão: