ajude-me por favor [resolvido] - página 3

 
mrluck1:
Sim senhor, apenas 1 comércio já feito, mas seu exemplo foi ótimo, será muito útil como base para criar uma nova facilidade
bool trade_made = false;

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);
  }
 
mrluck1:

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.

 
mrluck1:

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).
 
honest_knave:
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, uma simples EA é um problema para mim, não sei realmente nada a dizer
 
mrluck1:
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.

 
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?
 
Hairi Baba:
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... $$$$$

 
Hairi Baba:
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?
Sim, é isso que a OP quer.