[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 299
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
//-----------------------------------------------------------------------------+
//Quim Respeito e respeito!!! |
//+----------------------------------------------------------------------------+
Esta foi sem dúvida a parte mais estressante do código))))
Certo. Eu não entendo nada. Eu tenho o segundo TF em funcionamento. Tudo deveria estar funcionando como um relógio. Mas não. Não, está funcionando, mas não é o esperado. Verifiquei-o mil vezes. Eu mesmo não vejo nenhum erro sintático ou algorítmico. Deixe-me tentar explicar. Estou anexando o código completo. Portanto:
No início do início() coloquei um manipulador para o número de segundos decorridos desde o último início(). As seções repetidas foram movidas para funções definidas pelo usuário. O novo valor time=TimeCurrent() é atribuído ali, em funções do usuário.
A função funciona em dois modos: no primeiro ramo, AtFirst=verdadeiro, ele só pega um carrapato e pré-zeroes o array-storage, enquanto no segundo ramo, AtFirst=falso, ele funciona exatamente como um carrapato store. Ou seja, ou zeramos e truncamos a unidade e pegamos o bid-ask em uma célula zero, ou alongamos a unidade e pegamos o bid-ask. O alerta foi definido apenas para fins de depuração. Descreverei a condição de zeragem do acumulador mais adiante.
A função de "desenhar" a vela (adicionar uma vela ao .hst aberto na carta autônoma). Da mesma forma - coloco alertas para a depuração. O primeiro sinal de alerta em dois carrapatos capturados em um segundo (o tamanho da matriz é igual a dois, e na idéia o volume deve ser igual a dois), enquanto o segundo sinal em bit igual a umck no carrapato capturado (alerta semelhante no drive: mas funcionam de forma não-síncrona por alguma razão), e o volume do castiçal. Tudo isto, em teoria, de fato, quando inserido em arquivo (por alerta), por exemplo, dois (ou 0x00 00 00 00 00 00 00 40, duplo 2.0), de alguma forma ainda se revela ser um (0x00 00 00 00 00 00 00 F0 3F, duplo 1.0 no formato BigEndian). Eu normalmente anulo esse alerta na unidade, ele apita com freqüência, eu trabalho com esses dois.
A função "desenha" um traço no caso de não haver nenhum tique em que segundo. Ele funciona de acordo com o seguinte algoritmo:
Δtime=0: carrapatos de captura (cópia).
Δtime=1: Desenhe um castiçal no carrapato que foi pego antes, depois pegue o carrapato (com o acumulador preliminarmente zerado).
Δtime>1: Desenhe uma vela no carrapato apanhado antes, desenhe traços na linha Close[0] na quantidade deΔtime-1, apanhe um carrapato (com o acumulador preliminarmente zerado). Em todos os casos, o acumulador deve ser zerado quando uma vela já estiver acesa e isso significa que o acumulador não é mais necessário. Isto acontece quandoΔtime>0.
Vamos passar por ela:
A seta desenhou os momentos em que a oferta deveria ser igual a asc e o volume deveria ser igual a um. Eu não capturei o fundo com volumes, não se pode ver nada lá de qualquer maneira, é superficial. Mas todos eles são nivelados, ou seja, zero ou um, nenhum chega a dois (embora o alerta esteja sinalizando). Dois ticks por segundo - ainda quando você passa o mouse em cima ironicamente mostra volume = 1, e a oferta é igual a asku também mostra ironicamente volume = 0. Por quê? Entendo que em algum lugar é um erro, mas o mais provável é não notar o erro, ou olhar no lugar errado. Estou anexando o código, comentei bem a minha parte do código, verifiquei recuos em todos os lugares, removi inluders, apenas funções selecionadas para serem usadas, para que pudesse compilar mais rapidamente. A única observação - não funciona offline, ou seja, com o TimeLocal, ao contrário do coletor de carrapatos original, porque eu escrevi if(tickTimeLocal==verdadeiro) lá do zero (como eu não precisava muito). Tentei traduzi-lo em Expert Advisor seguindo o conselho de Taras - os castiçais não são mostrados em gráfico autônomo (mas a linha de citação atual está se movendo bem).
suas pantufas.
Olá
Aqui vai uma pergunta. Digamos que hoje é segunda-feira. Eu preciso saber o preço de fechamento na sexta-feira. Eu preciso saber o preço de fechamento na sexta-feira.
Fiz esta pergunta porque vejo os bares de sábado e domingo no Strategy Tester. Eu não tenho negociado nestes dias. Acima da linha escrita está o preço de fechamento na sexta-feira ou no domingo?Olá
Aqui vai uma pergunta. Digamos que hoje é segunda-feira. Eu preciso saber o preço de fechamento na sexta-feira. Posso escrever
Eu recebi esta pergunta porque no Testador de Estratégia eu vejo bares no sábado e no domingo. Eu não negocio nesses dias. A linha escrita acima dá o preço de fechamento na sexta-feira ou no domingo?Dê-me o preço de sexta-feira! Se o servidor fechar até as 24h00 de sexta-feira e não começar antes das 0h00 de domingo!
Use o indicador DailyPivotPoints!
Não, eu não entendo nada disso. Claramente já escrevendo
Nos alertas iguais a 2, eu tiro o indicador dos minutos, arrasto o mouse sobre o castiçal. Volume=1.
Procurei o RateInfo em hst através do FileInsight (como debugger), acho que talvez haja int, mas não o dobro em Volume - não, mesmo-duplo...
Boa noite.
Obrigado por responder à minha pergunta))
Por favor, me diga se eu faço um pedido de compra como este OrderSend (Symbol(),OP_BUY,Lot,Ask,3,0,0,0, "Buy",0,0,Green);
Se for uma ordem de vendaOrderSend (Symbol(),OP_SELL,Lot,Ask,3,0,0,0, "Sell",0,0,Red);
a diferença é azul ou é necessário mudar a cor vermelha também? ou seja, onde OP_BUY é o preço de licitação
onde OP_SELL tem o preço Ask
Eu também queria verificar se meu pedido não mudou e eu não queria mudá-lo, então por que está tudo bem no Testador de Estratégia, mas no REAL "Erro ao abrir o pedido 129" - AJUDA por favor.
Boa noite.
Obrigado pela resposta à minha pergunta))
Por favor, me diga se eu faço um pedido de compra como este OrderSend (Symbol(),OP_BUY,Lot,Ask,3,0,0,0, "Buy",0,0,Green);
Se for uma ordem de vendaOrderSend (Symbol(),OP_SELL,Lot,Ask,3,0,0,0, "Sell",0,0,Red);
a diferença é azul ou é necessário mudar a cor vermelha também? ou seja, onde OP_BUY é o preço de licitação
onde OP_SELL tem o preço Ask
Eu também queria verificar se meu pedido não mudou e eu não queria mudá-lo, então por que tudo correu bem no Testador de Estratégia e na Demonstração, mas eu recebi um erro de 129 quando tentei abri-lo no Mercado REAL?
Boa noite.
Obrigado por responder à minha pergunta))
Você pode me dizer se eu abro uma ordem de compra como esta OrderSend (Symbol(),OP_BUY,Lot,Ask,3,0,0,0, "Buy",0,0,Green);
Se for uma ordem de vendaOrderSend (Symbol(),OP_SELL,Lot,Ask,3,0,0,0, "Sell",0,0,Red);
...Vender:
Recomendo a atualização das citações antes de enviar um pedido:
RefreshRates(); OrderSend (...);
E note que seu deslize =3, para citações de 4 dígitos será =3 pips e para citações de 5 dígitos será calculado como 0,3 pips. Portanto, se sua EA vai trabalhar com citações de 5 dígitos, então defina o escorregamento = 30.Não, eu não entendo nada disso. Claramente já escrevendo
Nos alertas iguais a 2, eu tiro o indicador dos minutos, arrasto o mouse sobre o castiçal. Volume=1.
Procurei o RateInfo em hst através do FileInsight (como debugger), acho que talvez haja int, mas não o dobro em Volume - não, mesmo-duplo...
Veja o seu código.... Você tem tudo muito confuso))))
Não entendo bem porque precisamos acumular carrapatos, porque é suficiente armazenar em memória (ou mesmo não armazenar, porque a barra atual deve ser escrita em HST - caso contrário o gráfico não será atualizado) parâmetros da barra atual - seis números TOHLCV, e atualizá-los conforme necessário no recebimento do carrapato, e fazer o corte da barra na condição especificada(TimeCurrent()-O>1).
Tente reformular o código desta forma, ele será reduzido em 8 vezes, eu o garanto (eu o verifiquei:)