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
Sim senhor, apenas 1 comércio já feito, mas seu exemplo foi ótimo, será muito útil como base para criar uma nova facilidade
void OnTick()
{
double up = iIchimoku(NULL,5,9,26,52,3,0),
down = iIchimoku(NULL,5,9,26,52,4,0);
static bool was_above = true;
bool is_above = (MathMax(up,down)< Bid);
if(!trade_made && !was_above && is_above && open_orders()<1)
{
if(OrderSend(NULL,0,0.01,Ask,3, Bid-150*Point, Bid+100*Point)<0)
{
printf("OrderSend() failed. Error code: %i",GetLastError());
}
else t rade_made=true;
}
was_above = is_above;
}
int open_orders()
{
int count = 0;
for(int i=OrdersTotal()-1; i>=0; i--) // good habit to count down
{
if(!OrderSelect(i,SELECT_BY_POS)) continue; // select the order
if(OrderSymbol() != _Symbol) continue; // optional check for same symbol
if(OrderMagicNumber()!= magic_no) continue; // optional check for magic number
if(OrderType() < 2) count++; // 0 == OP_BUY and 1 == OP_SELL
}
return(count);
}
Marco: Eu tentei sua nova atualização, mas ela não faz nenhuma troca, eu coloquei da maneira que você postou por último, apenas removi a segunda int, no bilhete. Mas a primeira troca nunca é feita no testador de estratégia, o que fazer agora?
Deve-se fazer uma troca porque:
if (MathMax (up,down) < Bid )
ticket= OrderSend (NULL,0,0.01,Ask,3, Bid-150*Point, Bid+100*Point);
//| One Order.mq4 |
//| Copyright 2017, Marco vd Heijden, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Marco vd Heijden, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
bool order=0;int ticket;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
if(order==0)
{
double up=iIchimoku(NULL,5,9,26,52,3,0);
double down=iIchimoku(NULL,5,9,26,52,4,0);
{
if(MathMax(up,down)<Bid)
{
ticket=OrderSend(NULL,0,0.01,Ask,3,Bid-150*Point,Bid+100*Point);
{
if(ticket>-1)
{
order=1;
}
}
}
}
}
}
//+------------------------------------------------------------------+
Eu acabei de tentar e ele colocou UM pedido...
Muito obrigadohonestos_knave que é exatamente o que eu precisava, eu estarei para sempre em dívida,
Obrigado também ao Sr. Marco por sua ajuda.
Muito obrigadohonestos_knave que é exatamente o que eu precisava, eu estarei para sempre em dívida,
Seja bem-vindo. Mas você concorda que a resposta raramente é tão simples quanto parece? O que pode explicar alguns dos comentários aquiCODE Help( Urgente).
já removi esse comentário, um simples EA é um problema para mim, eu não sei nada a dizer realmente
Ei, todos nós ainda estamos aprendendo. E seu coração estava no lugar certo.
Estou feliz que você tenha consertado seu problema.
Há muitas maneiras de fazer a mesma coisa... Marco e eu resolvemos o problema em direções diferentes, e ambos estão igualmente corretos.
Boa sorte.
Sim Sr.Marco vd Heijden funciona exatamente assim de honest_knave, eu tentei novamente com base no último código que você dispõe, funcionou muito bem, vou pegar as duas respostas, e usarei as suas para este roteiro, pois é mais parecido com a idéia original.
Obrigado por sua ajuda.
Creio que, pelo código que você postou, a EA não abrirá mais a ordem novamente. A menos que você remova o EA do gráfico, e volte a colocá-lo novamente (para inicializar). Acho que esse era o propósito?
Agora vamos esperar que ele escolha a direção certa :)
Eu li em algum lugar sobre um cara que esqueceu que ainda tinha uma posição aberta e adivinhe o que aconteceu... $$$$$
Acredito, pelo código que você postou, que a EA não abrirá mais nenhuma ordem novamente. A menos que você remova a EA do gráfico, e volte a colocá-la novamente (para inicializar). Acho que esse era o objetivo?