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

 
PapaYozh:

Este vai do índice zero, ou seja, desde o início.

Estou confuso...você está absolutamente certo!
 
PapaYozh:

Esta busca a partir do índice zero, ou seja, desde o início.

PapaYozh:

Este vai desde o índice zero, ou seja, desde o início.

Ahh.... Agora tudo isso faz sentido, obrigado.

 
Maxim Kuznetsov:

for(int i=OrdersTotal()-1;i>=0;i--) {

   if (! OrderSelect(i,SELECT_BY_POSITON,MODE_TRADES)) continue;

   double prosad=DBL_MIN;

   if (OrderType()!=OP_BUY && OrderType!=OP_SELL) continue;

   for(int j=iBarShift(OrderSymbol(),OrderOpenTime(),PERIOD_M1); j>=0;j--) {

      double delta=( OrderType()==OP_BUY? OrderOpenPrice()-iLow(OrderSymbol(),PERIOD_M1,j) : iHigh(OrderSymbol(),PERIOD_M1,j)-OrderOpenPrice() );

      delta /= MarketInfo(OrderSymbol(),MODE_POINT);

      if (delta>prosad) prosad=delta;

   }

  PrintFormat("Максимальная просадка по ордеру %d = %d пунктов , %f денег",OrderTicket(),(int)(prosad),prosad*OrderLots()*MarketInfo(OrderSymbol(),MODE_TICKVALUE);

}

escrito "à mão", não testado, cheio de erros :-) ajuste-o às suas necessidades e use-o

por favor me diga o que -"!" significa em seu código ?

eu ainda não entendo muito bem

ou talvez alguém mais possa me explicar, além do autor?

 
законопослушный гражданин:

por favor me diga, o que significa -"!" em seu código?

Eu ainda não entendo bem.

ou alguém mais pode me explicar isso além do autor?

! - esta é uma negação booleana, NÃO

se { !OrderSelect() } traduzido para "se OrderSelect NÃO for bem sucedido".

!= respectivamente "NÃO igual"

 
Maxim Kuznetsov:

! - é uma negação booleana, NÃO

se { !OrderSelect() } traduzido como "se NÃO tiver sucesso OrderSelect".

!

obrigado

 
Maxim Kuznetsov:

for(int i=OrdersTotal()-1;i>=0;i--) {

   if (!OrderSelect(i,SELECT_BY_POSITON,MODE_TRADES)) continue;

   double prosad=DBL_MIN;

   if (OrderType()!=OP_BUY && OrderType!=OP_SELL) continue;

   for(int j=iBarShift(OrderSymbol(),OrderOpenTime(),PERIOD_M1); j>=0;j--) {

      double delta=( OrderType()==OP_BUY? OrderOpenPrice()-iLow(OrderSymbol(),PERIOD_M1,j) : iHigh(OrderSymbol(),PERIOD_M1,j)-OrderOpenPrice() );

      delta /= MarketInfo(OrderSymbol(),MODE_POINT);

      if (delta>prosad) prosad=delta;

   }

  PrintFormat("Максимальная просадка по ордеру %d = %d пунктов , %f денег",OrderTicket(),(int)(prosad),prosad*OrderLots()*MarketInfo(OrderSymbol(),MODE_TICKVALUE);

}

escrito "à mão", não verificado, tem muitos erros :-) ajuste-o às suas necessidades e use-o

Eu posso ter "limpo" o código, mas esta linha mostra um aviso para(int j=iBarShift(OrderSymbol(),OrderOpenTime(),PERIOD_M1); j>=0;j--)

possível perda de dados devido à conversão do tipo

Não consegue descobrir o que está errado?

 
законопослушный гражданин:

Eu pareço ter "limpo" o código, mas nesta linha para(int j=iBarShift(OrderSymbol(),OrderOpenTime(),PERIOD_M1); j>=0;j--) o aviso aparece:

possível perda de dados devido à conversão do tipo

Eu não consigo descobrir o que está errado?

Misturei os parâmetros... é uma confusão comum quando está escrito "on the fly" direto para o fórum contornando o terminal

iBarShift(OrderSymbol(),PERÍODO_M1,OrderOpenTime()) deve ser

 
Maxim Kuznetsov:

Parâmetros misturados...confusão comum ao escrever "on the fly" diretamente no fórum contornando o terminal

iBarShift(OrderSymbol(),PERÍODO_M1,OrderOpenTime()) deve ser

obrigado

 
законопослушный гражданин:

Eu pareço ter "limpo" o código, mas nesta linha para(int j=iBarShift(OrderSymbol(),OrderOpenTime(),PERIOD_M1); j>=0;j--) o aviso aparece:

possível perda de dados devido à conversão do tipo

Eu não consigo descobrir o que está errado?

Não consigo realmente entender o que está errado? Posso anexar toda esta "coisa" ao meu consultor especializado e fazer o teste de estratégia com a saída das informações no relatório do teste?

funcionará?

 

Alguma dica de como lidar com isso?

No testador da história, uma simples abertura de ordem às vezes causa um erro.

OrderSend(_Symbol,OP_SELL,0.5,Bid,0,0,0,NULL,0)
2021.08.26 14:56:33.375 2017.08.07 08:00:00  Trader EURUSD,H1: OrderSend error 3

ERR_INVALID_TRADE_PARAMETERS - que diabos é isto e o que significa?

Razão: