- Características da linguagem mql5, subtilezas e técnicas
- Redes neuronais artificiais.
- Como trabalhar corretamente em MT5 com OrderSend
Para fechar um pedido, não é necessário definir o tipo de pedido e o preço correspondente a esse tipo. É suficiente escrever OrderClosePrice()
void OnStart()
{
int i, total = OrdersTotal()-1;
for(i = total; i >= 0; i--)
{
if(OrderType() < OP_SELLSTOP)
{
if(!OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 100))
printf("***********");
}
}
}/********************************************************************/
Há muito mais imprecisões na ajuda. VejaSetIndexBuffer(), por exemplo.O que há de errado com a ajuda?
"Parâmetros
índice
[em] Número de reserva indicador. A numeração começa com 0. O número deve ser menor do que o valor declarado em #property indicator_buffers". (esta afirmação não é verdadeira)
O #property indicator_buffers especifica o número de buffers a serem exibidos. Talvez o que a ajuda significa, embora eu não tenha verificado isto, é que, os amortecedores usados para o cálculo não precisam ser dados um número com SetIndexBuffer(). Mas o que eu verifiquei é que se o buffer usado para cálculo é dado um número com SetIndexBuffer(), seu valor pode ser recuperado via iCustom().
Como os desenvolvedores estão visitando o fio - há uma pergunta sobre "sutilezas e truques":
Exemplo de uma impressão formatada: PrintFormat("Bid=%.5f", Bid)
Pergunta: existe alguma forma, em vez de uma precisão fixa (aqui5), de especificar uma condição na descrição do formato para que a precisão dependa dos _Dígitos? Fazer sem 'pré-processamento' como PrintFormat("Bid=%s", DoubleToString(Bid, _Digits))
Na MQL4 o mesmo código pode dar resultados diferentes, dependendo do estado de #propriedade estrito. E isto é quando a compilação é bem sucedida em ambos os casos. Portanto, se a execução for "divagante", você pode procurar a causa no lugar errado (rígido) por um longo tempo.
Pergunta: ao invés de uma precisão fixa (aqui5), é possível especificar uma condição na descrição do formato para que a precisão dependa dos _Dígitos?
- www.mql5.com
Описание проблемы
Estou escrevendo um indicador na MQL4. Eu me deparei com uma característica não documentada do estilo DRAW_HISTOGRAM.
Para exibir os valores na tabela, preciso de dois amortecedores: para o valor superior do histograma e para o inferior. Ao mapear os buffers da matriz indicadora, se os buffers do estilo tiverem valores 0 e 1, 2 e 3, 4 e 5, etc., tudo é exibido normalmente. Entretanto, se aos buffers de estilo forem atribuídos valores começando com OUTROS, ou seja, 1 e 2, 3 e 4, 5 e 6, as linhas do histograma não serão exibidas corretamente no gráfico, embora os valores na janela de dados estejam corretos.
Por favor, acrescente uma menção a esta peculiaridade à documentação, ou corrija, pois nem sempre é o caso de a descrição do estilo DRAW_HISTOGRAM começar com um buffer uniforme!
Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial
-Aleks-, 2017.02.07 18:21
Você pode me aconselhar, por favor, se no MT4 Expert Advisor, se o indicador do usuário com mais de um buffer gráfico for chamado consistentemente, então o recálculo acontece a cada chamada ou todos os buffers são calculados de uma só vez e você pode se referir ao indicador em código muitas vezes e não esperar que haja um desperdício de recursos. Também estou interessado em saber o que acontecerá se o código não for completado (funciona por mais tempo que um tick), mas o valor do indicador muda.
Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos
Slawa, 2017.02.08 08:20
Todos os amortecedores são calculados de uma só vez. Interrogar calmamente os valores do indicador - não haverá recálculoNo MT4, o indicador chamado do consultor especializado trabalha no fluxo deste EA e em uma cópia de seus dados históricos. Você pode fazer loop com o Expert Advisor, mas ao mesmo tempo receberá os dados indicadores calculados no momento da chamada OnTick. Até que você chame a RefreshRates. RefreshRates atualiza dados históricos do Expert Advisor, após o que todos os seus dados serão recalculados na primeira chamada do indicador
Para fechar um pedido, não é necessário especificar o tipo de pedido e o preço correspondente a este tipo. Basta escrever perto do preço OrderClosePrice()
O OrderClosePrice só pode ser usado imediatamente após o OrderSelect correspondente. Porque OrderSelect copia os dados para Order(const)-functions uma vez, e o mesmo RefreshRates não é capaz de atualizá-los.
Isto é, se, por exemplo, o OrderClosePrice não fechar, então o OrderSelect deve ser feito novamente antes da próxima tentativa (não é necessário fazer uma atualização).
ZS Esta linha é de 2005! Aqui estão os argumentos detalhados dos desenvolvedores.
É uma vergonha...
---
Para que o posto não seja inútil:
ao invés de StringGetCharacter("a", 0) você pode escrever apenas 'a' - muitas vezes necessário ao analisar as cordas em partes com StringSplit
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso