Erros, bugs, perguntas - página 647

 
Obrigado pela mensagem, corrigimos este lugar. Iremos testá-lo por nós próprios.
 

Companheiros programadores! Precisamos da vossa ajuda.


Preciso de fazer uma edição no código MT4. O consultor especializado Martin põe em ordem uma série de ordens através do delta especificado e, partindo de algum número de comércio (por exemplo, o 4º comércio), começa a aumentar o delta por um coeficiente.
Preciso que este delta não se prolongue infinitamente até que toda a série tenha terminado. Mas apenas a um determinado nível, que definimos em configurações (por exemplo Max_delta = 50 pontos). E quando o delta se torna >= Max_delta, tomaria este valor continuamente até a série terminar. E depois começaria desde o início.

Aqui está o código do programa, onde o delta é esticado:


int Delta(int OrdNum){\i1}
if(Start_order_delta>1){
if(OrdNum>Start_order_delta){
int p=OrdNum-Start_order_delta;
return(Take_profit*MathPow(Delta_exp,p))
}
}
return(Take_profit);
}

Por favor, ajude-me a introduzir uma restrição delta neste código.
 

CHART_BRING_TO_TOP propriedade

Pode ser definido, mas o valor actual não pode ser determinado.

ChartSetInteger(0,CHART_BRING_TO_TOP,true) - funciona.

ChartGetInteger(0,CHART_BRING_TO_TOP,0) - não funciona.

 
MoneyJinn:

CHART_BRING_TO_TOP propriedade

Pode ser definido, mas o valor actual não pode ser determinado.

ChartSetInteger(0,CHART_BRING_TO_TOP,true) - funciona.

ChartGetInteger(0,CHART_BRING_TO_TOP,0) - não funciona.

Bem, tudo faz sentido. A chamada tem três parâmetros, ou estou enganado?

Usando a segunda opção, apenas obtemos o valor definido como falso, não o valor actual.

Quanto a obter o valor - precisamos de quatro parâmetros (o último conterá o valor actual).

bool  ChartGetInteger(
   long    chart_id,     // идентификатор графика
   int     prop_id,      // идентификатор свойства
   int     sub_window,      // номер подокна
   long&   long_var      // сюда примем значение свойства
   );
 
Interesting:

Bem, isso faz sentido. A chamada tem três parâmetros, ou estarei eu errado?

Usando a segunda opção apenas obtemos o valor SET de falso, não definimos o valor actual.

Quanto a obter o valor - precisamos de quatro parâmetros (o último conterá o valor actual).


Sim, está enganado. São permitidos formulários de entrada múltiplos ChartGetInteger.

Mas independentemente da forma de registo ChartGetInteger,é impossível obter o valor actual da propriedadeCHART_BRING_TO_TOP.

 
MoneyJinn:

Vários formulários de entrada ChartGetInteger são possíveis.

Mas independentemente do formulário de entrada ChartGetInteger,não é possível obter o valor actual da propriedadeCHART_BRING_TO_TOP.

E qual é o valor retornado pela segunda variante da função ChartGetInteger (4-parâmetros)? E o código de erro?

 
Yedelkin:

E que valor retorna a segunda variante da função ChartGetInteger (4-parâmetros)? E o código de erro?

Valor 0; erro 4109 - ou seja, não existe tal propriedade.
 
MoneyJinn:
Valor 0; erro 4109 - ou seja, não existe tal propriedade.

De acordo com o Manual, esta propriedade simplesmente não é suportada:

Para a segunda chamada, retorna verdadeiro se esta propriedade for suportada e o valor tiver sido colocado na variável long_var, caso contrário retorna falso.

O código de erro diz a mesma coisa. A questão de saber por que razão a propriedade do gráfico CHART_BRING_TO_TOP não é suportada está ao nível do promotor. E se a propriedade é realmente suportada, então a questão está novamente ao seu nível: porque é que, nesse caso, a função ChartGetInteger retorna falsa?

 
Porque é que o evento OnTick não está a acontecer no testador de estratégias. Construir 586. No início pensei que houvesse um erro no meu programa. Começou o Moving Average.mq5 para depuração. Estabelecer um ponto de parada no primeiro operador do evento OnTick. Não viu qualquer reacção dentro de uma hora.
 
tor30515:

Porque é que o evento OnTick não está a acontecer no testador de estratégias. Construir 586. No início pensei que houvesse um erro no meu programa. Começou o Moving Average.mq5 para depuração. Estabelecer um ponto de parada no primeiro operador do evento OnTick. Não vi qualquer reacção no espaço de uma hora.

E o testador é descarregado para depurar?