FOREX - Tendências, previsões e implicações 2016 - página 722

 
new-rena:

você terá isto a cada tique. Use o iTime(...PERÍODO_XX...). Se você fizer isso, ele só funcionará na abertura da vela da TF que você especificar. Entretanto, se o comando para abrir/fechar a ordem retorna um erro, o robô o dará novamente em um novo castiçal.

Ou iTime(...Período()...). - está no cronograma atual, ou seja, no gráfico em que a EA está

Eu baixei o código do exemplo aqui há cinco anos, mas agora todo mundo é "inteligente" e só está amaldiçoando e lutando por freelance e mercado...

Como determinar a abertura de uma vela de uma forma nova e correta ?

 
Vladimir Zubov:

1. Como faço um novo controle de castiçal para que uma iteração seja feita no primeiro tique ?

Parece que tenho este código funcionando para controlar o acionamento da abertura de uma vela :(

2. Por que não, trata-se da função da Kim de determinar a barra de uma posição aberta ?

P/S Turned MT4 agora tudo de novo escreva ...

1.

if(iTime(Symbol(),PERIOD_H1,0)==prevTime) return(0);

datetime prevTime=iTime(Símbolo(),PERÍODO_H1,0);

Mais seu código

E é isso....

// Isto é para H1

Ah sim, o bar está olhando para lá. Bem, então vai funcionar.

E após int ticket=OrderSelect() - você tem uma análise - o pedido está aberto ou não? if(ticket<0)GetLastError() - está?

 
new-rena:

1.

if(iTime(Symbol(),PERIOD_H1,0)==prevTime) return(0);

prevTime=iTime(Símbolo(),PERÍODO_H1,0);

Mais seu código

E é isso....

// Isto é para H1

Sim ... Você precisa combinar algo, presumo que você não usa sintaxe OnTick() vazia, quero dizer, sintaxe 2014 ?
 
Vladimir Zubov:
Sim ... Eu acho que você não está usando o OnTick() vazio, quero dizer a sintaxe de 2014 ?
yeah
 
new-rena:
yeah

Ou você pode substituir sua própria versão, uma mais correta, tenho problemas com a compilação, acho que você tem parênteses no Return, mas não sei ?

 
//+------------------------------------------------------------------+
//|                                                       Privet.mq4 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
// ============= Переменные ==========================================
int      prev_time = 0;     // Работа по ценам открытия свечи
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {//-Start-

// ======= Работа по ценам открытия свечи ============================
  if ( Time[0] <= prev_time ) {return;}
  prev_time = (int)Time[0];

// ========================== My EA ==================================
{


}  

// ========================== EA END =================================

  }//-Start End-

// ================= Функции =========================================  
//+------------------------------------------------------------------+
Это MT4
 
0
Vladimir Zubov:

Sem os parênteses, ela meio que não gostava de ser compilada antes. Por que "<="? Pelo contrário, quando é igual a "==", nós o devolvemos. Ou seja, se a barra atual, esperamos até que o tempo se torne diferente. E a hora é int, deve ser a hora da data, certo?

int init()   { //---    //---    return(0);   } //+------------------------------------------------------------------+ //| Expert deinitialization function                                 | //+------------------------------------------------------------------+ int deinit()   { //---    return(0);   } //+------------------------------------------------------------------+ //| Expert tick function                                             | //+------------------------------------------------------------------+ int start()

{

return(0);

}

 
new-rena:
0

Sem os parênteses, ela meio que não gostava de ser compilada antes. Por que "<="? Pelo contrário, quando iguais (==) nós o chutamos de volta. Ou seja, se a barra atual, esperamos até que o tempo se torne diferente. E a hora é intrigante, eu acho que sempre foi a hora da data?

Eu não entrei em detalhes, em algum lugar aqui levei algum livro ou artigo, mas foi em 2012 ou antes, talvez agora seja diferente, por isso é que às vezes falha em tempo real.

P.S. O produto é bruto para o mercado, vou me retirar da aprovação, um problema estranho nunca tinha percebido antes.

Acontece que após a iteração eu não saí em Return e posso trabalhar novamente ?

 
Vladimir Zubov:
Eu não entrei em detalhes, em algum lugar aqui é retirado de um livro ou artigo, mas foi em 2012 ou antes, talvez agora seja diferente, é por isso que às vezes há falhas na vida real.

Muito bem, então...

Por que não pode funcionar? Execute-o em modo visual no testador - estas coisas vão aparecer e você vai consertá-lo uma vez. O próximo não será um incômodo tão grande.

Também não faria mal polir a demonstração depois.

 
new-rena:
Muito bem, então...
Bem para mim, para o mercado, e é assim que eu sempre bloqueio a vela. E se as pessoas perguntarem por que ela abriu duas vezes e eu mesmo não souber? Isso não é bom...)