[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 53
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
Tenho notado tal nuance quando receito uma impressão em minha EA, ou seja:
double Up = iCustom(NULL, 0, "best div original", "*** CCI-OnArray Settings ***", 12, 3, 5, 25, "*** Indicator Settings ***", false, false, false, 0, 1);
Imprimir ("+++++++++++++", Para cima);
o consultor especializado mostra o seguinte resultado - ++++++++++++++ 2147483647. Posso ver o mesmo número para buffers para cima e para baixo também. Por favor, informe que tipo de código é este? E como "obter" o valor da Ikastom exatamente quando a seta aparece?
Peço um pouco de ajuda de pessoas com conhecimento: por favor, aconselhe o código correto para criar um Expert Advisor/Utility cujo algoritmo é o seguinte:
- A abertura de uma dupla transação em UMA direção (lotes 0,1 e 0,1) é feita no momento de cruzar baixa (venda)/alta (compra) da última vela formada no gráfico/tempo atual com uma parada próxima à alta / baixa da vela, em cujo cruzamento foi aberta a transação e colocada no mesmo ponto da ordem pendente uma dupla transação em uma direção com lotes, tais como 0,2 e 0,1.
Pergunta:
Existe um código
int start()
se (H===TimeHour(TimeCurrent())) && M===TimeMinute(TimeCurrent()) && S===TimeSeconds(TimeCurrent())
{+ algumas condições
Em seguida, o pedido é aberto
Ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,2,SL,TP);
if (Ticket > 0)
Alerta ("Buy order opened ",Ticket);
return;}
Mas se neste momento não há nenhum sinal, ele não é acionado.
Mas se eu lhe der mais tempo para pensar que pode abrir várias ordens.
Eu deveria ter apenas um pedido sem prestar atenção aos pedidos já abertos.
Por favor, informe o que fazer
Tenho notado tal nuance quando receito uma impressão em minha EA, ou seja:
double Up = iCustom(NULL, 0, "best div original", "*** CCI-OnArray Settings ***", 12, 3, 5, 25, "*** Indicator Settings ***", false, false, false, 0, 1);
Imprimir ("+++++++++++++", Para cima);
o consultor especializado mostra o seguinte resultado - ++++++++++++++ 2147483647. Posso ver o mesmo número para buffers para cima e para baixo também. Por favor, informe que tipo de código é este? E como "obter" o valor da Ikastom exatamente quando a seta aparece?
Tente passar os valores indicadores não através do iCustom(), mas através das variáveis globais do terminal. Estes são os que você pode ver por F3. A questão é que não é uma situação incomum quando se trata da única forma normal de transmissão de dados. Já tive casos desses.
É bem possível que em seu indicador alguns tipos de flechas sejam desenhadas através do buffer do indicador, enquanto outras são criadas como objetos. Esta é a única razão pela qual pode não haver preços de setas na janela de dados - os dados são emitidos para esta janela a partir dos buffers indicadores.
Pergunta:
Existe um código
int start()
se (H===TimeHour(TimeCurrent())) && M===TimeMinute(TimeCurrent()) && S===TimeSeconds(TimeCurrent())
{+ algumas condições
Em seguida, o pedido é aberto
Ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,2,SL,TP);
if (Ticket > 0)
Alerta ("Buy order opened ",Ticket);
return;}
Mas se neste momento não há nenhum sinal, ele não é acionado.
Mas se eu lhe der mais tempo para pensar que pode abrir várias ordens.
Eu deveria ter apenas um pedido sem prestar atenção aos pedidos já abertos.
Por favor, informe o que fazer
O código EA é acionado SOMENTE quando chega um novo tick. Mais de um pedido é aberto porque no próximo sinal de configuração também é verdadeiro e não há verificação do número de pedidos. Precisamos recalcular as ordens.
Tente passar valores indicadores não através de iCustom(), mas através de variáveis de nível terminal global. Estes são os que podem ser vistos pela F3. A questão é que não é uma situação incomum quando se trata da única forma normal de transmissão de dados. Eu já tive tais situações.
É possível que em seu indicador alguns tipos de seta sejam desenhados através de um buffer de indicadores e outros sejam criados como objetos. Esta é a única razão pela qual pode não haver preços definidos por seta na janela de dados - os dados são enviados para esta janela a partir de buffers indicadores.
Muito obrigado! Vou agora tentar prescrever, como você disse.
Mas se não houver nenhum tique neste ponto, ele não é acionado
e se você der mais tempo para pensar, pode abrir várias ordens.
Mas eu só preciso de um e não quero que ele preste atenção aos pedidos que já estão abertos.
Você pode me dizer o que fazer
?
1. datatime global last_dt;
2. fazer o tempo correto
datetime dt=StrToTime(H+": "+M+": "+S);
3.
se (TimeCurrent()>=dt && last_dt<dt) // a hora certa chegou e é o dia seguinte
{
// abrir o pedido
se (bilhete>0) last_dt=TimeCurrent(); // lembre-se da hora de abertura
}
então a EA dá o seguinte resultado - ++++++++++++++ 2147483647. E o mesmo número tanto para os amortecedores para cima como para baixo.
Eu entendo isso.
Preciso ser mais específico sobre o recálculo de pedidos. Talvez um exemplo (em forma de código) ou um link .
Eu já tentei assim
if (Ticket > 0)
Alerta ("Opened Buy order ",Ticket);
sono (10000)
retorno;}
falhou por alguma razão
O código EA é acionado SOMENTE quando um novo tick chega. O pedido abre mais de um porque no próximo tick o sinal definido também é verdadeiro e não há verificação do número de pedidos. Precisamos recalcular as ordens.
Quero que o software ignore a data, apenas a hora é importante
Seu conselho é útil neste caso?
1. datatime global last_dt;
2. Faça o tempo correto
datetime dt=StrToTime(H+": "+M+": "+S);
3.
se (TimeCurrent()>=dt && last_dt<dt) // é o momento certo e é o dia seguinte
{
// pedido aberto
se (bilhete>0) last_dt=TimeCurrent(); // lembre-se do tempo de abertura
}