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

 

Olá! Há uma pergunta no código. Este evento aparece em cada nova barra da TF de trabalho. TF - deve ser assim ou há um erro no código?

//+------------------------------------------------------------------+
//|                                                         Test.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   ResetLastError();   
   datetime Arr[];
   if(CopyTime(NULL,PERIOD_M5,10,1,Arr)<=0) 
   {
      int error=GetLastError();
      Print("Ошибка 4401 возникает на новом баре раб.ТФ, который должен быть ниже М5 в данном случае ",error);
      Print("Почему запрошенная история не найдена ведь я обращаюсь всего лишь к 10-му бару старшего ТФ М5");
      return(0);
      }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
novichok2018:

Há também a função ExistPositions()de Igor Kim, que retorna a bandeira de existência de posição, o que para mim é difícil de adaptar às minhas condições específicas. Mas também não creio que seja testado na história.

Se ninguém tem um código, realmente testado no mundo real, para me mostrar, eu o tentarei cientificamente. Obrigado.

Meus conhecimentos estão faltando novamente! Uma simples substituição em iOpen(NULL,0,0) por EURUSD produz erros de identificação não declarados e conversão implícita de 'número' para 'string'. O mesmo ao mudar Symbol() emOrderSend(Symbol(),OP_BUY,LOT,Ask,slippage,0,TP,",magic,0,Blue); Como faço para consertá-lo?

 
novichok2018:

Novamente faltam meus conhecimentos! A simples substituição de NULL em iOpen(NULL,0,0) por EURUSD dá erros de identificação não declarados e conversão implícita de 'número' para 'string'. O mesmo ao mudar Symbol() em OrderSend(Symbol(),OP_BUY,LOT,Ask,slippage,0,TP,",magic,0,Blue); Como faço para consertá-lo?

Você não esqueceu de colocar vírgulas invertidas?

 
novichok2018:

Sim, foi assim que imaginei, mas não posso verificar se funciona na história, porque a abertura de uma posição sobre o euro deve ocorrer pela condição para a libra e não se reflete no código para o euro, enquanto a história é exibida no euro. Daí a incerteza quanto à exatidão da decisão.

Depois terei que aprender MQL5 e testar a variante de múltiplas moedas.

 
Alexey Viktorov:

Depois terei que aprender MQL5 e testar a variante de múltiplas moedas.

Oh não, obrigado! Não pretendo estudar a fundo MKL4 ou MKL5. Meu objetivo é escrever simples Expert Advisors que sejam lucrativos em 95% das posições abertas, e para evitar tirar todo o saldo antes que eu decida fechar uma posição com uma perda. Tenho vários desses Expert Advisors que trabalham em contas demo, mas sempre que surgem novas idéias e eu quero testá-las imediatamente. Mantenho a opinião de que quanto mais simples o código, melhor, não quero mergulhar na linguagem. De qualquer forma, ainda não! Um estudo minucioso do idioma só se justifica com o propósito de ganhar dinheiro escrevendo especialistas para encomendar, IMHO.

Obrigado pelas citações. Ainda não tentei, um pouco mais tarde.

 
novichok2018:

....... Meu objetivo é escrever consultores especialistas simples para mim, que são lucrativos em 95% das posições abertas, e que um saldo negativo não drene todo o meu saldo até que eu decida fechar uma posição com prejuízo. .....

Você descreveu o sonho de 95% dos comerciantes em todo o mundo. Mas você não quer nem se preocupar com a ortografia e a sintaxe do idioma. Autoconfiança invejável, eu gostaria disso. IMHO, é claro.

 
novichok2018:

Oh não, obrigado! Não pretendo estudar a fundo MKL4 ou MKL5. Meu objetivo é escrever simples Expert Advisors que sejam lucrativos em 95% das posições abertas, e para evitar tirar todo o saldo antes que eu decida fechar uma posição com uma perda. Tenho vários desses Expert Advisors que trabalham em contas demo, mas sempre que surgem novas idéias e eu quero testá-las imediatamente. Mantenho a opinião de que quanto mais simples o código, melhor, não quero mergulhar no idioma. De qualquer forma, ainda não! Um estudo minucioso do idioma só se justifica com o propósito de ganhar dinheiro escrevendo especialistas personalizados, IMHO.

Obrigado pelas citações. Ainda não experimentei, vou tentar um pouco mais tarde.

A MQL5 não é mais complicada do que a MQL4. Em alguns casos, é ainda mais simples e rápido. O OOP é apenas um porta-bicicletas para iniciantes. Para escrever um simples Expert Advisor a que você se refere, você não precisa saber sobre o OOP.

Diga-me o quanto é mais difícil escrever

// MQL4

OrderSend(_Symbol, OP_BUY, lot, price, Slip, sl, tp, "", Magic);
// MQL5

#include <Trade\\Trade.mqh>
CTrade trade;

trade.Buy(lot);
 
Sergey Voytsekhovsky:

Você descreveu o sonho de 95% dos comerciantes do mundo. Mas você não quer nem se preocupar com a ortografia e a sintaxe do idioma. Autoconfiança invejável, eu gostaria disso. IMHO, é claro.

Não entendo o que você quer dizer com "ortografia", mas não importa, porque meus robôs funcionam, e exatamente da maneira que descrevi.

 
Alexey Viktorov:

A MQL5 não é mais complicada do que a MQL4. E, em alguns casos, é ainda mais simples e rápido. OOP é apenas uma história de horror para iniciantes. Para escrever um simples Expert Advisor de que você está falando, você não precisa saber sobre o OOP.

Diga-me o quanto é mais difícil escrever

OH, MEU DEUS! Você me matou. Não entendo nada, embora mecanicamente não seja mais difícil escrever a segunda versão )).

 

Olá, quanto tempo o MT4 vai ficar por aqui? um ano ou dois?

Desculpe pela pergunta, é um pouco fora de tópico (mas muito importante para mim).