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

 
Gevorg Hakobyan:
if(v==="NZD")
{
h=(iClose("NZDUSD",p,b)-iOpen("NZDUSD",p,b))/MarketInfo("NZDUSD",MODE_POINT)+
(iOpen("EURNZD",p,b)-iClose("EURNZD",p,b))/MarketInfo("EURNZD",MODE_POINT)+
(iOpen("GBPNZD",p,b)-iClose("GBPNZD",p,b))/MarketInfo("GBPNZD",MODE_POINT)+
(iOpen("AUDNZD",p,b)-iClose("AUDNZD",p,b))/MarketInfo("AUDNZD",MODE_POINT)+
(iClose("NZDJPY",p,b)-iOpen("NZDJPY",p,b))/MarketInfo("NZDJPY",MODE_POINT)+
(iClose("NZDCAD",p,b)-iOpen("NZDCAD",p,b))/MarketInfo("NZDCAD",MODE_POINT)+
(iClose("NZDCHF",p,b)-iOpen("NZDCHF",p,b))/MarketInfo("NZDCHF",MODE_POINT);
}
Não importa realmente o que você tem em seu código. Você pode dizer a que CD você está conectado que você recebe zero em vez de Point()?
 
sile:

Olá.

Por favor, ajude.

Agora o lote de cada ordem seguinte está aumentando em 1, 2, 3, 4, 5...

Quero que o lote de cada ordem não aumente cada ordem, mas em incrementos de 3, portanto 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3...

O contador deve ser iniciado e redefinido para o valor inicial quando o limite estabelecido for atingido:
extern double   LotStop        = 0.01;
extern double   Plus_LotStop   = 0.01;
extern double   Plus_N_ORD  = 3;        //каждые N ордеров
void OnTick()
  {
//---
int c=0;
  for (int i=1; i<=OrdersStop; i++)
   {
       if((Close[1]<Open[1]&&Close[2]>Open[2]&&NumberOfPositions(Symbol(), -1,_Magic)<1))
         {
            OPENORDER (OP_BUYSTOP,PriceBS,LOTs,_Magic,i);
            numB++;
            PriceBS = NormalizeDouble(PriceBS+Step_Stop*Point,Digits);
          
            OPENORDER (OP_SELLSTOP,PriceSS,LOTs,_Magic,i);
            numS++;
            PriceSS = NormalizeDouble(PriceSS-Step_Stop*Point,Digits);
         }
      c++;
      if(c==3){LOTs+=Plus_LotStop;c=0;}
    }
  }
 

Você pode me dizer se um indicador chamado "iSignal" funciona no terminal, é possível descobrir através de um EA que esse indicador realmente existe em qualquer janela, ou em uma janela com um EA?

 
Vitaly Muzichenko:

Você pode me dizer se um indicador chamado "iSignal" funciona no terminal, é possível descobrir através de um EA que esse indicador realmente existe em qualquer janela, ou em uma janela com um EA?

No Help ChartIndicatorName(); e outros você verá lá.


ChartIndicatorName

Retorna o nome curto do indicador por seu número na lista de indicadores na janela do gráfico especificada.

stringChartIndicatorName(
longchart_id,// ID do gráfico
int sub_janela,// número da subjanela
índice int// índice do indicador na lista de indicadores adicionados à determinada subjanela
);

Parâmetros

gráfico_id

[ID do gráfico. 0 significa a tabela atual.

sub_janela

[em] Subjanela número do gráfico. 0 significa a janela principal da tabela.

índice

[em] Índice do indicador na lista de indicadores. Os indicadores são numerados a partir de zero, ou seja, o primeiro indicador da lista tem um índice zero. O número de indicadores na lista pode ser obtido por ChartIndicatorsTotal().

Valor retornado

Nome curto do indicador, que édefinido na propriedade INDICATOR_SHORTNAME pela função IndicatorSetString().Para obter informações sobre o erro, ligue para a função GetLastError().


Percorra todos os gráficos, e procure o indicador necessário neles. Você também pode definir o número de indicadores no gráfico, assim como o número de todas as janelas de um gráfico. Você verá lá na ajuda.
 
Vitaly Muzichenko:

Você pode me dizer se um indicador chamado "iSignal" funciona no terminal, é possível descobrir através de um EA que esse indicador realmente existe em qualquer janela ou em uma janela com um EA?

Isso é possível. Percorra os indicadores do laço no gráfico necessário e compare o nome do indicador selecionado com o indicado. A função ChartIndicatorName().

Provavelmente, ele terá que procurar também nas subjanelas do gráfico, se o indicador estiver no "porão".

 
Artyom Trishkin:

Em Help ChartIndicatorName(); e outros você verá lá também.


ChartIndicatorName

Retorna o nome curto do indicador por número na lista de indicadores na janela do gráfico especificada.

stringChartIndicatorName(
longchart_id,// ID do gráfico
intsub_janela,// número da subjanela
índice int// índice do indicador na lista de indicadores adicionados a esta subjanela
);

Obrigado, estava procurando exatamente por isso, e funciona!

E agora de volta) É o mesmo, mas de um perito em encontrar indicadores: (c)este perito está realmente em qualquer janela, ou uma janela com indicador?

 
Vitaly Muzichenko:

Obrigado, estava procurando exatamente por isso, e funciona!

E agora de volta) Existe um semelhante, apenas do indicador para encontrar o especialista: (c)este especialista está realmente em alguma janela, ou uma janela com um indicador?

Como você codifica em geral?
WindowExpertName - Операции с графиками - Справочник MQL4
WindowExpertName - Операции с графиками - Справочник MQL4
  • docs.mql4.com
WindowExpertName - Операции с графиками - Справочник MQL4
 
Vitalie Postolache:
Como você codifica?
Eu conheço este, mas não sabe como pesquisar nos gráficos de outras pessoas.
 
Vitaly Muzichenko:
Eu conheço este, mas não pode procurar na tabela de outra pessoa.

Não só não sabe como procurar no gráfico de outra pessoa, mas em seu próprio gráfico encontra apenas "seu" indicador, roteiro ou especialista, aquele em que esta função é prescrita.

Não o verifiquei, mas tentei passar pelo laço dos gráficos.

ChartGetString(chart_id, CHART_EXPERT_NAME)
Acho que deve funcionar.
 
Alexey Viktorov:

Não só não sabe como procurar no gráfico de outra pessoa, mas em seu próprio gráfico encontra apenas "seu" indicador, roteiro ou especialista, aquele em que esta função é prescrita.

Não o verifiquei, mas o experimentei ao fazer looping através de gráficos

ChartGetString(chart_id, CHART_EXPERT_NAME)
Acho que deve funcionar.

Sim, ele funciona e encontra a partir de um indicador especializado pelo nome. Mas agora uma pergunta: existe uma pergunta semelhante, mas para quatro, e de preferência uma plataforma cruzada?

Obrigado!

Razão: