Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 75

 
mario065:

Foi escrita uma função para a abrir:

'=' - l-value required 

Deu um erro.

Fez

 if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
      {
if(SL = 0 && T_P = 0)
{
  ModifyPosition(_Symbol,NormalizeDouble((Open - 0.003),Digits()),NormalizeDouble((Open + 0.003),Digits()));
}

и

if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
    {
    if(!PositionGetDouble(POSITION_SL))
      {
      PositionModify(_Symbol,NormalizeDouble((Open-STR),Digits()),NormalizeDouble((Open+TP),Digits()));
      }

não é a mesma coisa?

Acho que, em ambos os casos, a perda de carga é definida com o início de uma nova barra e não com o Tick.

Não posso enviar stoploss e takeprofit ao abrir uma encomenda - porque o servidor não o permite. Primeiro tem de abrir a encomenda, e depois modificá-la.

 
Lester:

Deu um erro.

Fez

и

não é a mesma coisa?

Acho que, em ambos os casos, a paragem é apagada com o início de um novo Bar, não com o Tick.

Não posso enviar StopLoss e TakeProfit ao abrir uma encomenda - porque o servidor não o permite. Tenho de abrir primeiro a encomenda e depois modificá-la.

if(SL == 0 && T_P == 0)

Desculpe, preciso de dois sinais iguais - não o verifiquei, escrevi-o directamente.

 

OnTick

O evento NewTick é geradoapenas para Consultores Especialistas quando é recebido um novo tick para um símbolo, ao qual o Expert Advisor está anexado. É inútil definir a função OnTick() num indicador ou script personalizado, porque o evento Tick não é gerado para eles.

O evento Tick é gerado apenas para os Expert Advisors, mas não significa que os Expert Advisors devam ter a função OnTick(), porque não só os eventos Tick são gerados para Expert Advisors, mas também Timer, BookEvent e ChartEvent. Deve ser declarado com tipo nulo, não tem parâmetros:

nuloOnTick

Isto é, claro, a partir da documentação.

Não é a mesma coisa?

 

Bem, para asc e bid, há outras formas de o fazer:

MqlTick  tick;
tick.ask-tick.bid
 
mario065:

Bem, para asc e bid, há outras formas de o fazer:

О! Isso funciona! Obrigado! )) ))
 
FinEngineer: Há algum programador MQL5 nesta linha!?? Talvez eu esteja a fazer uma pergunta no ramo errado? Então diga-me como fazer uma pergunta aos criadores? A questão acima é elementar para um programador experiente...

E sabe que o seu código funciona bem. Aqui está uma imagem dos seus valores por defeito, num par de cruzes:

 
Yedelkin:

E sabe que o seu código funciona bem. Aqui está uma imagem dos seus valores por defeito, em pares cruzados:

2012.12.21 23:44:46 Pair_delta_RSI (EURGBP,M5) matriz fora do intervalo em 'Pair_delta_RSI.mq5' (96,37)
2012.12.21 23:44:42 Pair_delta_RSI (EURGBP,M5) Nem todos os dados de RSI1_Handle são calculados (-1bars ). Erro4806

Recebo estes erros assim que colo o indicador num gráfico (também levei a cruz e este código). O que pode estar errado? Obrigado de antemão.


 
FinEngineer 2012.12.21 23:44:46 Pair_delta_RSI (EURGBP,M5) matriz fora do intervalo em 'Pair_delta_RSI.mq5'(96,37)

E mostre-me a linha de código, a que o terminal se refere (eu próprio apaguei as linhas vazias, por isso não consigo sair).

FinEngineer : 2012.12.21 23:44:42 Pair_delta_RSI (EURGBP,M5) Nem todos os dados de RSI1_Handle são calculados (-1bars ). Erro4806

Talvez a história do corretor esteja errada... Tente abrir uma conta em MetaQuotes-Demo, abra os gráficos mensais dos símbolos desejados (para bombear histórico suficiente para a base do terminal), e depois execute o indicador sobre um símbolo arbitrário e o período de tempo desejado.

 
Yedelkin:

E mostra-me a linha de código a que o compilador se refere (eu próprio apaguei as linhas em branco, por isso não consigo perceber).

Talvez a história do corretor esteja torta... Tente abrir uma conta em MetaQuotes-Demo, abra os gráficos mensais dos símbolos desejados (para bombear histórico suficiente para a base de dados terminal), e depois execute o indicador num símbolo arbitrário e no período de tempo desejado.

Carreguei o histórico para ambos os símbolos, resta apenas um erro 2012.12.22 00:56:44 Pair_delta_RSI (EURGBP,M1) Nem todos os dados de RSI1_Handle são calculados (-1bars ). Erro4806

Este erro não ocorre no momento da compilação, mas quando anexo o indicador ao gráfico ou quando altero o período de tempo.

Ao compilar, sai algum aviso, aqui está ele: nenhum gráfico indicador definido para indicador, atribuído a 1 por defeito 0 0

Meu, estou a racionar o meu cérebro...ajuda por favor...



 
FinEngineer: Surge algum tipo de aviso em compilação, aqui está ele: nenhum gráfico indicador definido para indicador, atribuído a 1 por defeito 0 0

Então descarregou o programa apesar deste aviso? Adicionar esta linha no topo

#property indicator_plots   1