Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 536

 
nekadabra:
Você pode me dizer se o Win 8 é compatível com o MT 4 e MT 5? Estou perguntando porque tenho um Mac e estou me perguntando com qual SO comprar um PC. Um cara até me mostrou uma captura de tela do MT 4 rodando no 8. Mas como alguns camaradas afirmam que não há compatibilidade total, tenho que esclarecer... Obrigado.

Win 8 é compatível com MT 4 e MT 5.
 

Boa tarde!

Há um problema com o software indicador, o autor alega que o indicador está funcionando, mas na verdade o gráfico não é exibido - qual é o problema?

#property copyright "Copyright © 2006, Profitrader."
#property link      "profitrader@inbox.ru"
//----
#property indicator_separate_window
#property indicator_buffers 1
#property  indicator_color1 Red
//---- input parameters
extern int FastMAPeriod = 3;
extern int SlowMAPeriod = 15;
extern string SecondMarket = "GOLD";
extern bool MarketsDirectCorrelation = true;
//---- buffers
double [];
double Spread[];
double FastEMA[];
double SlowEMA[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string Correlation = "Invert Correlation";
   if(MarketsDirectCorrelation == TRUE) 
       Correlation = "Direct Correlation";
   IndicatorShortName("Will-Spread(" + FastMAPeriod + "," + SlowMAPeriod + 
                      "," + SecondMarket + "," + Correlation + ")");
   IndicatorDigits(Digits + 2);
   IndicatorBuffers(4);
   SetIndexBuffer(0, WillSpread);
   SetIndexBuffer(1, Spread);
   SetIndexBuffer(2, FastEMA);
   SetIndexBuffer(3, SlowEMA);
   SetIndexStyle(0, DRAW_LINE);
   SetIndexLabel(0, "W-S");
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int i, counted_bars = IndicatorCounted();
//---- check for possible errors
   if(counted_bars < 0) 
       return(-1);
//---- last counted bar will be recounted
   if(counted_bars > 0) 
       counted_bars--; 
   int limit = Bars - counted_bars;
   if(MarketsDirectCorrelation == TRUE)
     {
       for(i = 0; i < limit; i++)
           Spread[i] = iClose(SecondMarket, 0, i) / Close[i]*100;
     }
   else
     {
       for(i = 0; i < limit; i++)
           Spread[i] = Close[i] / iClose(SecondMarket, 0, i)*100;
     }
   for(i = limit - 1; i >= 0; i--)
     {
       FastEMA[i] = iMAOnArray(Spread, 0, FastMAPeriod, 0, MODE_EMA, i);
       SlowEMA[i] = iMAOnArray(Spread, 0, SlowMAPeriod, 0, MODE_EMA, i);
       WillSpread[i] = FastEMA[i] - SlowEMA[i];
     }
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
AlexMikash:

Boa tarde!

Há um problema com o programa indicador, o autor alega que o indicador está funcionando, mas na verdade o gráfico não é exibido - qual é o problema?

O problema está nestas linhas

   int i, counted_bars = IndicatorCounted();
//---- check for possible errors
   if(counted_bars < 0) 
       return(-1);
//---- last counted bar will be recounted
   if(counted_bars > 0) 
       counted_bars--; 
   int limit = Bars - counted_bars;
O novo compilador dá um erro na execução, mas na compilação está tudo bem. Peça ao autor que a execute no depurador e veja o problema imediatamente.
 
AlexeyVik:

O problema está nestas linhas

O novo compilador dá um erro ao executar, mas ao compilar tudo está bem. Peça ao autor que a execute no depurador e veja o problema imediatamente.


Não há problema, tudo funciona. É o suficiente para restaurar a descrição do buffer

//---- buffers
double [];
double Spread[];
double FastEMA[];
double SlowEMA[];

O problema é com a ferramenta padrão. Muito provavelmente não há nenhuma ferramenta OURO, se você colocar outra ferramenta, tudo bem.


 
O que significa o ícone de transmissão de sinal amarelo no Metatrader? Que o sinal não está sendo transmitido temporariamente? E por que alguns sinais que posso ver agora no terminal não estão listados atualmente no mql5.com?
 
Vinin:


Não há problema, tudo funciona. É suficiente para restaurar a descrição do buffer

O problema é com a ferramenta padrão. Muito provavelmente não há nenhuma ferramenta OURO, se você colocar outra ferramenta, tudo está bem.



Você vê que eu realmente me importo com a ferramenta GOLD, como eu posso ligá-la ao terminal?
 
AlexMikash:

Você vê que eu realmente me importo com a ferramenta GOLD, como eu posso ligá-la ao terminal?

Ou ela está lá ou não está. Tudo depende da empresa de corretagem. Quer forneça ou não uma ferramenta desse tipo.
 
Vinin:

Ou ela está lá ou não está. Tudo depende do CD. Quer forneça ou não uma ferramenta desse tipo.


Obrigado, a imagem é clara!

 

Boa tarde. Estou aprendendo a parafusar indicadores em uma EA, mas até agora não tive muito sucesso.

1 - Quando eu passo o EA através de um testador, somente quando eu o paro aparecem as etiquetas indicadoras.

2 - Não entendo quais são as condições e como elas são escritas.

Quero pedir a minha EA para negociar com base em indicador, só preciso saber como anexar indicador à minha EA.

Com base no indicador de seta que aparece acima ou abaixo BS_Living Now ver #1.mq4 https://www.mql5.com/ru/code/11014#50910


#


 
 janela_cartão_indicador de propriedade //# tampão_indicador de propriedade 4 //# indicador de propriedade_cor1 Vermelho //# indicador de propriedade_cor2 Amarelo //# indicador de propriedade_cor3 Vermelho //# indicador de propriedade_cor4 Amarelo ////******************// parâmetro indicador entradaexterna int BQuant=48; // - número de barras contadas //******************// componentes indicadores
                                        // else // {  // if(iHigh(NULL,0,t)>=High[iHighest(NULL,0,2,BQuant,t+1)] && // iHigh(NULL,0,t)>iHigh(NULL,0,t-1)) // {  // ExtrimHi[t] =iHigh(NULL,0,t); // Break_Detect(t,1);                               //******************// Detecção de ponto de parada} // // if(iLow(NULL,0,t)<=Low[iLowest(NULL,0,1,BQuant,t+1)] && // iLow(NULL,0,t)<iLow(NULL,0,t-1)) // {  // ExtrimLo[t] =iLow(NULL,0,t)                                        // Break_Detect(t,-1); //******************// Breakpoint detection} // }  // return(0);                                                                 // }  //dupla pausa_Detect(int a,int Signal) //***********************************// Determinação dos pontos de parada{ // for(int r=1; r<BQuant; r++) // // { // if(Signal===1 && iHigh(NULL,0,a+r)<High[iHighest(NULL,0,2,BQuant,a+r+1)]) // {BreakHi [a] =Low[iLowest(NULL,0,1,r+2,a-1)]; r=BQuant;}                // if(Signal===-1 && iLow(NULL,0,a+r)>Low[iLowest(NULL,0,1,BQuant,a+r+1)]) // {BreakLo [a] =High[iHighest(NULL,0,2,r+2,a-1)]; r=BQuant;}              // }  return(0); // } 

Aqui está meu Consultor Especialista iniciado
.

Lote duplo externo=0.1; extern int Magic=0; extern int Stop=98; extern int Take=70; extern int Slip=10; extern int BQuant=48; // - o número de barras calculadas int start()
{
double S1=iCustom(NULL, 0, "BS_Living Now",BQuant,0,0)
; OrderSend(Symbol(), OP_SELL,Lot, Bid, Slip,Ask+Stop*Point,Ask-Take*Point, "SELL", Magic, 0,Red ); OrderSend(Symbol(), OP_BUY, Lot, Ask, Slip,Bid-Stop*Point,Bid+Take*Point, " BUY", Magic, 0,Blue);

}
 

Se você escreve um script simples que cria um objeto do tipo OBJ_ARROW_RIGHT_PRICE e depois o apaga, o objeto não é apagado. Além disso, o comando ObjectType revela subitamente que o objeto criado não é do tipo OBJ_ARROW_RIGHT_PRICE (===36), mas ==22, ou seja, uma simples "seta para cima" !!! Eu sou o único que tem isto ou todos têm isto?

Já existiam opiniões de "especialistas" sobre este assunto: como ler a ajuda, ou não ter memória suficiente :) .

A memória é suficiente.

Parece que o comando ObjectCreate desenha um objeto do tipo OBJ_ARROW_RIGHT_PRICE , que não pode ser removido pelo comando ObjectsDeleteAll(0,OBJ_ARROW_RIGHT_PRICE), mas pode ser removido pelo comando ObjectsDeleteAll(0,22), como se não tivéssemos a etiqueta de preço correta, mas uma "seta para cima". De quem é a culpa?

#direitos autorais "Copyright 2014, MetaQuotes Software Corp."

#link da propriedade "https://www.mql5.com"

#propriedade versão "1.00"

#propriedade rigorosa

//+------------------------------------------------------------------+

//| Função de início do programa Script |

//+------------------------------------------------------------------+

nulo OnStart()

{

Alerta(") ;

Alerta("obj_arrow_right_price=",OBJ_ARROW_RIGHT_PRICE) ; // ==36

ObjectCreate("MyArrow", OBJ_ARROW_RIGHT_PRICE,0,Time[1],Open[1]) ; //

Alerta("objectTipe=", ObjectType("MyArrow") ) ; // ==22 !

ResetLastError() ;

Alert("script delete arrow right price=",ObjectsDeleteAll(0,OBJ_ARROW_RIGHT_PRICE)," lastError=",GetLastError() ) ; // número de objetos excluídos ==0, erros ==0

}

Para excluir um objeto do tipo OBJ_ARROW_RIGHT_PRICE, use o comando ObjectsDeleteAll(0,OBJ_ARROW), certificando-se de especificar sua subjanela.

p.s. Um objeto do tipo OBJ_ARROW é "seta" qualquer, não apenas "seta para cima". ObjectCreate(...OBJ_ARROW...) cria imediatamente uma "seta para cima". Então por que isso não está na ajuda?