[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 262
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
Cavalheiros, podem me dizer onde cometi um erro quando inseri esta função de tempo no meu código EA?
O compilador acaba de me inundar de erros.
No local em que você declarou uma função dentro de outra função:
Ver o 10º parâmetro da função especificada. Ajuste para 0.
OrderSend(g_symbol_284, OP_BUY, Lots, g_ask_528 - gi_164 * g_point_400, Slippage, l_price_40, l_price_32, 0, g_magic_112, "Newest", MediumBlue);
encontrou esta linha e o que mudar ali ?
O uso é simples - eu dirijo o roteiro...
Você pode encontrar exemplos de funções similares aqui: Funções úteis da KimIV.
Se os de prateleira não couberem, você pode construir o seu próprio por analogia com os existentes.
Aqui o cálculo é baseado na inércia de preços. Ou seja, a primeira ordem é acionada, a segunda ordem tem um lucro com um valor um pouco menor do que a perda. Se o preço se mover na mesma direção um pouco mais, então sim, podemos estar no lucro total.
Mas, imho, esta estratégia não vale uma mordida.
Isto é exatamente o que temos que provar. Em outras palavras, você precisa de um código que encontre a ordem necessária. Existem dezenas de situações deste tipo e não podemos fornecer uma função especial para cada uma delas para simplificar o código. Deve ser escrito para cada caso.
Você pode encontrar exemplos de funções similares aqui: Funções úteis da KimIV.
Se os de prateleira não couberem, você pode construir o seu próprio por analogia com os existentes.
Acho que não entendi bem a questão.
Asserção 1. todo código, após o acionamento da ordem pendente, ao acessar a data de abertura desta ordem (que se tornou comercializável no momento de tal acionamento), obterá a data de abertura igual à data de colocação da ordem pendente - é assim que a função OrderOpenTime() funciona.
Assunção 2: Você não pode se lembrar do momento exato do acionamento da ordem pendente, sem um consultor especializado que monitore constantemente o estado das ordens na conta.
Possível solução 1. Podemos tentar correr desde a data de definição da ordem pendente até a data atual e anotar a hora da primeira travessia do preço aberto e o nível de disparo.
Este será um tempo mais ou menos exato, mas há um grande "menos": a propagação. Como não registramos o spread na história (não estou levando a história do tick com o spread tirado do Dukas, por exemplo, já que não estou negociando no Dukas e precisamos coletá-lo e gravá-lo), a ordem pode ter disparado muito antes, quando o preço quase tocou o nível aberto mas não o cruzou, e a ordem foi aberta devido à expansão do spread, não mais tarde, quando realmente vimos o preço cruzar a linha de ajuste de ordem pendente.
A solução mais provável é criar um Expert Advisor, colocá-lo no gráfico e monitorar as ordens na conta. Não quero fazê-lo, por algumas razões, há também desvantagens associadas a possíveis problemas durante as pausas na operação da EA.
As funções, às quais você se referiu. Você forneceu um link para a função OrderOpenTime(). Para as ordens atrasadas será a data de sua criação, e não a data de seu acionamento. Portanto, as funções existentes não são adequadas. E não há como combiná-los, já que ainda se referem à OrderOpenTime() para a data de abertura do pedido.
OrderSend(g_symbol_284, OP_BUY, Lots, g_ask_528 - gi_164 * g_point_400, Slippage, l_price_40, l_price_32, 0, g_magic_112, "Newest", MediumBlue);
encontrou esta linha e o que mudar ali ?
OrderSend(g_symbol_284, OP_BUY, Lots, g_ask_528 - gi_164 * g_point_400, Slippage, l_price_40, l_price_32, 0, g_magic_112, "Newest", MediumBlue);
encontrou esta linha e o que mudar ali ?
aqui está a linha completa
aqui está a linha completa
Novamente:
Documentação:
int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)
Seu décimo parâmetro na cadeia "Mais novo" não é um número. É por isso que existe um erro
PapaYozh:
Onde você declarou uma função dentro de outra função:
No final, o compilador me mostrou esses erros, e eu acho que ele está se referindo à definição errada da variável?Obrigado por seu feedback, querido PapaYozh,mas eu inseri esta função no int start(), mas isto não altera o resultado do compilador.
Peço desculpas por qualquer inconveniente, incompreensão, afinal, apenas começando a ganhar experiência em um assunto tão difícil, e penso que graças a este fórum e às pessoas que responderam aqui, continuam a desenvolver e melhorar suas habilidades, obrigado.