Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 467

 
haron312:

Olá, por favor me ajude com o erro que ocorre no testador quando tento modificar uma ordem (transferência para Breakeven): coloquei a função OrderOpenPrice() em vez de SL, mas o testador mostra erro1 (de acordo com a documentação significa que há uma tentativa de passarvalores inalterados como parâmetros para a função). Eu anexei o código! Agradecemos antecipadamente!

void DeleteOrderFunction2() //função que apaga a segunda ordem e define a segunda ordem para Breakeven em uma determinada noite

{

bool flag = falso;

se (FlagDeleteSecondOrder2 == verdadeiro)

{

if(DayOfWeek() == DAYOFWEEK && // se for selecionado um dia da semana

Hora() == 22 // se noite

)

{

if(BuyCount() == 1 && if(há uma ordem de compra em aberto

SellStopCount() == 1 // e há uma ordem de venda pendente

)

{

for( int i = 0; i < OrderTotal(); i++) //passar as ordens

{

OrderSelectX(i, SELECT_BY_POS, MODE_TRADES;)

switch(OrderType())

{

caso OP_BUY: if(OrderProfit() > 0 &&

Licitação > OrderOpenPrice()

)

{

OrderModifyX(OrderTicket(),OrderOpenPrice(),OrderTakeProfit(),0,Arrow_Color);

bandeira = verdadeiro;

}

pausa;

caso OP_SELLSTOP: if(flag===verdadeiro)

{

OrderDeleteX(OrderTicket(), Arrow_Color);

}

pausa;

}

}

}

if(SellCount() == 1 && // se houver uma ordem de venda em aberto

BuyStopCount() == 1 // e há uma ordem de compra pendente

)

{ Imprimir("IS!!!!");

for( int i = 0; i < OrderTotal(); i++) //criar pedidos

{

OrderSelectX(i, SELECT_BY_POS, MODE_TRADES;)

switch(OrderType())

{

caso OP_SELL: se (OrderProfit() > 0 &&

Pergunte < EncomendarPreço Aberto()

)

{

OrderModifyX(OrderTicket(), OrderOpenPrice(),OrderTakeProfit(),0, Arrow_Color);

bandeira = verdadeiro;Imprimir("bandeira =", bandeira);

}

pausa;

caso OP_BUYSTOP: if(flag == verdadeiro)

{

Imprimir("bandeira =", bandeira);

OrderDeleteX(OrderTicket(), Arrow_Color);

}

pausa;

}

}

}


}


}

}

assumir que OP_BUY é encontrado pela primeira vez entre as ordens, você o modifica e define bandeira =true e quando for encontrado a ordem pendente será apagada. E veja o que acontece se a ordem pendente for encontrada pela primeira vez...
 

Ajude-me a converter o indicador em um roteiro!

double buf_1[];
double buf_2[];
//+------------------------------------------------------------------+
//| Функция инициализации, запускается один раз                      |
//+------------------------------------------------------------------+
int init() 
  {
   SetIndexBuffer(0,buf_1);
   SetIndexBuffer(1,buf_2);

   SetIndexStyle (0,DRAW_ARROW, STYLE_SOLID, 1);
   SetIndexStyle (1,DRAW_ARROW, STYLE_SOLID, 1);
   SetIndexArrow (0,233);
   SetIndexArrow (1,234);

   SetIndexEmptyValue(0,0.0);
   SetIndexEmptyValue(1,0.0);
   
   return(0);
  }
//+------------------------------------------------------------------+
//| Основная Функция, запускается на каждом тике                     |
//+------------------------------------------------------------------+
int start() 
  {
   if (Bars <= 100) return(0);
   int ExtCountedBars = IndicatorCounted();
   if (ExtCountedBars < 0) return(-1);
   if (ExtCountedBars > 0) ExtCountedBars--;
   for (int i=Bars-ExtCountedBars-1; i>=0; i--)
     { 
      if (High [i+2] == High[i+3])
      bool DOWN   = High[i+1]== High[i+2]; 
                                               
                    
      if (Low [i+2] == Low [i+3])             
     bool UP =  Low[i+1]==Low[i+2] ;
      
       
      if (UP)   buf_1[i+1] = Low[i+1]-3*Point;
      if (DOWN) buf_2[i+1] = High[i+1]+3*Point;
     }
   return(0);
 }
  //  ---- end

Se iHigh(NULL,PERÍODO_H1,[i+2]) e iLow(NULL,PERÍODO_H1,[i+2]) são escritos em vez deHigh [i+2] eLow[i+1], então você pode controlar o prazo?

Se Hai combinou com SELL, se Loh BUY!

 
Rewerpool:

Ajude-me a converter o indicador em um roteiro!

Se iHigh(NULL,PERÍODO_H1,[i+2]) e iLow(NULL,PERÍODO_H1,[i+2]) são escritos em vez deHigh [i+2] eLow[i+1], então você pode controlar o prazo?

Se Hai combinou com SELL, se Loh BUY!

três coincidências terão que esperar um longo tempo

 
STARIJ:

três hits terão que esperar muito tempo.

Eu não sou um escalpador, eu espero. Podemos normalizar nos 4 dígitos.

 

em mql5 temos posições abertas, encontro todos os negócios nesta posição e determino se foram abertos pelo mercado ou por ordens pendentes

em mql4, como posso descobrir se as ordens abertas foram abertas pelo mercado ou por ordens pendentes e seus tickers mudam quando uma ordem pendente é acionada?

 
Rewerpool: Eu não sou um escalpador, eu espero. Podemos normalizar nos 4 dígitos.

Sim e o resultado é fraco ...

5 hai's igualados e o preço está em alta.

 
Pavel Kolchin:

em mql5 temos posições abertas, encontro todos os negócios nesta posição e determino se foram abertos pelo mercado ou por ordens pendentes

em mql4, como posso descobrir se uma posição aberta foi aberta pelo mercado ou por ordens pendentes e seus carrapatos mudam quando uma ordem pendente é acionada?

dar-lhes diferentes magiks

 
STARIJ:

dar-lhes diferentes magiks

Os pedidos são abertos por um usuário, eu preciso definir seu tipo quando são abertos

 
A questão é: o que irá "carregar mais": em cada InChartEvent definido redefinir a alça indicadora ou definir antecipadamente todas as alças possíveis como uma matriz no OnInit?
 
Roman Sharanov:
A questão é: o que irá "carregar mais": em cada InChartEvent definido, redefinir a alça indicadora ou definir todas as alças possíveis como uma matriz antecipadamente no OnInit?
Diferente.
Razão: