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

 
Alexey G. Smolyakov:
O caminho completo da pasta MQL4\Indicadores\Utilizados. Parece que não há como sair da pasta. Mas isto é uma anomalia - outros consultores especialistas trabalham com seus indicadores em pastas semelhantes sem nenhum problema. Mas qual é o problema com este indicador - não o entendo. Eu olhei através de seu código, mas não tinha conhecimento e experiência suficientes para compreendê-lo. Tenho a suspeita de que só conta a última barra ou algo parecido.

então tudo está bem

pressione Ctrl+D no terminal - a janela de dados se abre, jogue o indicador no gráfico e você verá na janela de dados buffers indicadores e seus valores em cada barra, você obtém os mesmos valores via iCustom()

há indicadores que têm EMPTY_VALUE em algumas barras - você verá uma célula vazia na janela de dados (não é garantido que o autor do indicador não tenha definido 0,0 em vez de EMPTY_VALUE - você precisa verificá-lo)

Então, quando iCustom() é chamado, o valor obtido deve ser comparado com EMPTY_VALUE . Pesquisa no kodobase ou na EA ZigZag ou no upload ZigZag para um arquivo - lá você encontrará um exemplo pronto de como trabalhar com valores vazios do indicador EMPTY_VALUE

 
Igor Makanu:

então tudo está bem

pressione Ctrl+D no terminal - a janela de dados se abre, jogue o indicador no gráfico e você verá buffers indicadores e seus valores em cada barra na janela de dados, você obtém os mesmos valores via iCustom()

há indicadores que têm valor EMPTY_VALUE em algumas barras - você verá uma célula vazia na janela de dados (não é garantido que o autor do indicador não tenha definido 0,0 em vez de EMPTY_VALUE - você precisa verificá-lo)

Então, quando iCustom() é chamado, o valor obtido deve ser comparado com EMPTY_VALUE . Pesquisa no kodobase ou no Expert Advisor on ZigZag ou no upload ZigZag para um arquivo - lá você verá um exemplo pronto de como trabalhar com valores vazios do indicador EMPTY_VALUE

Obrigado, verificar os valores para EMPTY_VALUE ajudou.
 
Boa tarde. Como fazer uma função que mostra o que está definido nos ajustes (Apenas Longo / Apenas Curto / Longo e Curto). Tentei isto, mas não funciona
string LSset()
{
string LS;
if (SymbolInfoInteger(Symbol(),SYMBOL_TRADE_MODE) == SYMBOL_TRADE_MODE_LONGONLY) LS="ONLY LONG";
if (SymbolInfoInteger(Symbol(),SYMBOL_TRADE_MODE) == SYMBOL_TRADE_MODE_SHORTONLY) LS="ONLY SHORT";
if (SymbolInfoInteger(Symbol(),SYMBOL_TRADE_MODE) != SYMBOL_TRADE_MODE_SHORTONLY && 
   SymbolInfoInteger(Symbol(),SYMBOL_TRADE_MODE) != SYMBOL_TRADE_MODE_LONGONLY) LS="LONG & SHORT";
return(LS);
}
Arquivos anexados:
 
Lomonosov1991:
Boa tarde. Como fazer uma função que mostra o que está definido em configurações (Apenas Longo / Apenas Curto / Longo e Curto). Tentei isto, mas não funciona

Não deveria funcionar dessa maneira. É possível escrever tal função, mas difícil para um iniciante.

 
fxsaber:

Não deveria funcionar dessa maneira. É possível escrever tal função, mas difícil para um iniciante.

regras de busca, há alguns anos os desenvolvedores prometeram fazer o acesso de um especialista a essas configurações, mas nunca o fizeram.

soluçãohttps://www.mql5.com/ru/forum/121619#comment_3208150

solução dll, não sei porque você precisahttps://www.mql5.com/ru/forum/231434/page2#comment_6773340

ZS: não checado, mas pesquisando os fios, parece que o problema de não salvar essas configurações ao aplicar o modelo de gráfico permanece

LongOnly, ShortOnly or Long&Short?
LongOnly, ShortOnly or Long&Short?
  • 2009.11.03
  • www.mql5.com
Не подсажет ли кто нибудь как внутри советника оределить в каком режиме он запущен LongOnly, ShortOnly or Long&Short? Заранее спасибо...
 
extern int punkt=100;
extern int Ordersss=3;
extern double xxx=1.2;

int PunktsX()
{
   int P=punkt;                             
   int i;
   for(i=Ordersss; i<NumberOfPositions(); i++)
   P*=xxx;
   return(P);
}

Se mais de 3 pedidos estiverem abertos, cada pedido subseqüente será aberto mais tarde.

Não posso corrigir o aviso(possível perda de dados devido à conversão do tipo)

Por favor, informe o que fazer)

 
Lomonosov1991:

Se mais de 3 pedidos estiverem abertos, cada pedido subseqüente será aberto mais tarde.

Não posso corrigir o aviso(possível perda de dados devido à conversão do tipo)

Por favor, informe o que fazer)

P=(int)(P*xxx);

Para um cálculo mais preciso, provavelmente seria melhor

extern int punkt=100;
extern int Ordersss=3;
extern double xxx=1.2;

int PunktsX()
{
   double P=punkt;                             
   int i;
   for(i=Ordersss; i<NumberOfPositions(); i++)
   P*=xxx;
   return (int) P;
}
 
Konstantin Nikitin:

Para um cálculo mais preciso, é provavelmente melhor fazer isto

Obrigado) Eu não sabia que você poderia fazer isso com retorno)

 
Igor Makanu:

regras de busca, há alguns anos os desenvolvedores prometeram tornar essas configurações acessíveis a partir de um especialista, mas nunca o fizeram.

soluçãohttps://www.mql5.com/ru/forum/121619#comment_3208150

solução dll, não sei por que é necessáriohttps://www.mql5.com/ru/forum/231434/page2#comment_6773340

ZS: não checaram, mas ao pesquisar os fios, parece que o problema de não salvar essas configurações ao aplicar o modelo de gráfico permanece

Obrigado, vou tentar)

 
Lomonosov1991:

Vou tentar)

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

Bibliotecas: Especialista

fxsaber, 2019.06.04 16:40

// MT4-советник показывает, в каком режиме Long/Short был запущен.

#include <fxsaber\Expert.mqh> // https://www.mql5.com/ru/code/19003

int GetLongShortFlag( const int Chart_ID = 0 )
{
  MqlParam Params[];
  string Names[];
  
  const int Res = EXPERT::Parameters(Chart_ID, Params, Names);
  
  return(((Res & 3) << 1) + (Res & 1));
}

string LongShortToString( const int Chart_ID = 0 )
{
  const int Flag = GetLongShortFlag(Chart_ID);
  string Str = NULL;
  
  if ((bool)(Flag & SYMBOL_TRADE_MODE_LONGONLY) && (bool)(Flag & SYMBOL_TRADE_MODE_SHORTONLY))
    Str = "Long & Short";
  else if ((bool)(Flag & SYMBOL_TRADE_MODE_LONGONLY))
    Str = "Only Long";
  else if ((bool)(Flag & SYMBOL_TRADE_MODE_SHORTONLY))
    Str = "Only Short";
    
  return(Str);
}

int OnInit()
{
  Alert(LongShortToString());
  
  return(INIT_FAILED);
}
Razão: