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.
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).
boolChartGetInteger(
long chart_id, // идентификатор графикаint prop_id, // идентификатор свойстваint sub_window, // номер подокнаlong& long_var // сюда примем значение свойства
);
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.
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.
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.
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).
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.
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?
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.
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 vi qualquer reacção no espaço de uma hora.