[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 579

 

Vou duplicar minha pergunta nesta linha - sem sorte na outra linha :(

Por favor, me aconselhem:

1) Como funciona a EA se houve uma interrupção de conexão?

2. ele começará novamente a função init()?

3. como posso usar o evento "old tick" no registro da EA?

 

1. depende da EA, se a lógica prevê sua parada, ela parará de funcionar, caso contrário, ela estará abraçando por um tempo... verifique você mesmo na segunda-feira, inicie a EA e puxe o cabo de força e você verá...

2. não, o init não funcionará, tudo começará desde o início, então planeje uma interrupção da conexão - exceto o tempo do último início da EA, e se houver um intervalo de tempo entre as duas partidas, faça uma chamada para o init

3. Escrever uma função que leia as últimas linhas do log para este evento

 
SergNF >>:


Вы заполняете массив, а потом на него натравливаете "стандартный индикатор" (RSIOnArray, CCIOnArray и т.п. - около 7 штук).

Крайнее упоминание на форуме , а вообще F1, учебник и т.п.


//+------------------------------------------------------------------+
//|                                                    onArrayBB.mq4 |
//|                      Copyright © 2009, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 SeaGreen
#property indicator_color2 SeaGreen
#property indicator_color3 SeaGreen
#property indicator_color4 SeaGreen

extern int maper = 14;
extern int bbper = 14;

double Buf_0[],Buf_1[],Buf_2[],Buf_3[];
//+------------------------------------------------------------------+ 
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
SetIndexBuffer(0,Buf_0);
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,1);
SetIndexBuffer(1,Buf_1);
SetIndexStyle (1,DRAW_LINE,STYLE_SOLID,1);
SetIndexBuffer(2,Buf_2);
SetIndexStyle (2,DRAW_LINE,STYLE_SOLID,1);
SetIndexBuffer(3,Buf_3);

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
//----
   int i,Counted_bars;
   Counted_bars=IndicatorCounted();
   i=Bars-Counted_bars-1;
   while(i>=0)
   {
      Buf_3[i]=iMA(Symbol(),0,maper,0,MODE_SMA,PRICE_CLOSE,i);
      Buf_0[i]=iBandsOnArray(Buf_3[i],0,bbper,2,0,0,i);
      Buf_1[i]=iBandsOnArray(Buf_3[i],0,bbper,2,0,1,i);
      Buf_2[i]=iBandsOnArray(Buf_3[i],0,bbper,2,0,2,i);
      Print(Buf_0[0]);
      i--;
   }
//----
   return(0);
  }
//+------------------------------------------------------------------+


Certo... Então apenas a linha do meio é desenhada, mas as linhas de cima e de baixo não são desenhadas.

 
keekkenen >>:


3. напишите функцию, которая бы читала из лога последние строки на предмет этого события


OK

mais sobre o terceiro ponto, por favor, os dois primeiros eu não tenho dúvidas sobre

obrigado

 
trader_fx >>:

Правильно?, Так только средняя отрисовывается, а верхняя и нижняя линии не отрисовываются.

Coloque o enchimento do tampão Buf_3 em um laço separado.
 
IgorM >>:


OK

про 3-й пункт плз подробнее, первые два у меня вопросов не возникает

спс

Eu não fiz isso, mas a solução não deve ser muito complicada, pois você não pode obter os logs em seu próprio idioma, você tem que obter o arquivo e lê-lo usando WinAPI,

talvez haja uma solução mais simples...

 
keekkenen >>:

..решение не должно быть сложным, т.к. родным языком логи не достать..


é estranho que as capacidades mql não permitam a leitura de registros terminais

Parece não haver problema com a conectividade, há uma função sobre a qual teremos de construir um bloco de verificação.

bool IsConnected(

)

 

Boa tarde. Estou tentando entender como escrever uma EA em mql4. Para começar, tomei o exemplo sugerido no tutorial: Expert Advisor simples. Aqui está o link para ele: https://c.mql4.com/book/mq4/experts/tradingexpert.mq4

Quando tentei testá-lo em futuros RTS (plataforma Broco) através do Strategy Tester, obtive um resultado interessante - negócios positivos são considerados como "negativos" - qual é a razão?

Não mudei nada no código, apenas defini SP e TP em OrderSend para ser "0" para fazer uma inversão pura sem tirar lucro no stop and take.


 
Não sou um especialista em futuros, mas tenho uma pergunta: você levou em conta o spread?
 

Eu não sei muito sobre forex. Na verdade, as ações e futuros não têm spread no baralho de cotações, mas não sei como funciona no MetaTrader (acabei de olhar nas propriedades do símbolo em MT, spread = 0). Não mudou nada no algoritmo, exceto SP = TP = 0, como o spread é levado em conta?