[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 120

 
r772ra:

Vamos ver se o passo=0

o que sl e tp será igual a

E a pessoa que levantou esta questão deve estabelecer sl=0, tp=0 e depois modificá-la.

Deve ser isto.


1. O "cara" tem Step=100(nos 5 dígitos).
2. Se a definição de um pedido for de acordo com seu cenário, então :
a) primeiro estabelecendo um pedido com paradas zero -- algum problema? ;
b) depois modificar esta ordem de acordo com as "Exigências e limitações das operações comerciais ".
 

Roll:

1. У "чела" Step=100(на 5-ти знаке)

A questão está encerrada, e como se fosse uma mesada

Aqui, no CD você sabe (não vamos dizer qual) MODE_STOPLEVEL=0

 

Ajuda com um problema. Preciso acrescentar um comentário ao EA, para que no testador o drawdown seja exibido como uma porcentagem, calculada pela fórmula: Drawdown = ((Saldo - Equidade)/Balanço * 100)*-1, e eu o fiz:

double Prosadka = ((AccountBalance() - AccountEquity()) / AccountBalance() * 100)*(-1);

Comment("Просадка = ", DoubleToStr(Prosadka, 2),"%");

Mas eu também preciso do máximo de drawdown, que era para a corrida. É isso que eu nem sei como fazer. Diga-me pelo menos qual ponta tomar, porque eu nunca fiz tal coisa. Obrigado.

 
Roll:
As pessoas precisam conhecer seus heróis - favor enviar detalhes do CD em uma mensagem particular.
começa com um al e termina com uma bet))))
 
alsu, obrigado. )
 

Ajuda com o código.

Há um código que imprime dados em ziguezague em um arquivo para (contagem de barras externas int=10080;) o número de barras. Como posso definir os dados para um período de tempo (tempo_periodo interno externo=10080;) em minutos? Ela é necessária para análise em diferentes TFs dentro do mesmo período de tempo. E como determinar automaticamente o valor dos arrays duplos zz_arr[10000], zz_arr_Abs[10000] ? Isto é para tomar tantos dados do indicador ziguezague quanto necessário para o cálculo de um período de tempo (externamente int Time_Period=10080;) .

Código:

//+------------------------------------------------------------------+
//|                                                           ZZ.mq4 |
//|                      Copyright © 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

//indikatoriaus zz kintamieji
extern int ExtDepth=12;
extern int ExtDeviation=5;
extern int ExtBackstep=3;

extern int Bars_count=10080;                  //Is kiek baru skaiciuosime
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function    
//+------------------------------------------------------------------+
int start()
  {
//----
   if( !NewBar() ) return(0);
   double zz_arr[10000],zz_arr_Abs[10000];
   double preZz=0;
   int i,ii;
    int handle;
          
        handle=FileOpen("array.txt",FILE_CSV|FILE_WRITE,";");
        Print("**********************",handle,"***********************");
   for(i=0;i<=Bars_count;i++)
   {
       double zz = iCustom(NULL,0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,i); 
      if(zz!=0)
      {
         if(preZz==0)
         {
            preZz=zz
            ;continue;
         }
        zz_arr[ii]=(zz-preZz)/Point;
        if(handle>0)
        /* {
            FileWrite(handle, zz_arr[ii-1]);
         }*/  
        preZz=zz;
        ii++;
        Print(zz_arr[ii-1], "    ii = ", ii - 1);
        zz_arr_Abs[ii-1]=MathAbs(zz_arr[ii-1]);  
        if(handle>0)
         {
            FileWrite(handle, zz, zz_arr[ii-1], zz_arr_Abs[ii-1],ii-1,';');
         }                       
        Print("                      ",zz_arr_Abs[ii-1], "    ii = ", ii - 1);
     }
   }
   FileClose(handle);
  
  ArrayResize(zz_arr,ii);
  Print("-------------------------------------------------");
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Iaia?o?aiea iiaiai aa?a
//+------------------------------------------------------------------+
bool NewBar() 
  {
//----
   static datetime NewTime;               // A?aiy oaeouaai aa?a
   bool NewBar=false;                     // Iiaiai aa?a iao
   if( NewTime!=Time[0] )
     {
      NewTime=Time[0];                    // Oaia?u a?aiy oaeia
      NewBar=true;                        // Iieiaeny iiaue aa?
     }
//----
   return(NewBar);
  }
//+------------------------------------------------------------------+
 
O período em minutos pode ser convertido em barras usando iBarShift(), o tamanho das matrizes pode ser ajustado para o mesmo tamanho que as barras, então ele irá manter conscientemente todos os dados necessários. Observe que a variável ii não é inicializada de forma alguma no código, portanto, ela pode trabalhar espontaneamente com erros.
 
boa noite a todos, ajudem-me a prescrever uma parada de perda em um conselheiro
 

Olá! Você poderia me ajudar a completar a Trailing Stop e Trailing Step por um ano e eu não consigo encontrá-la em minha cabeça!

Arquivos anexados:
udf.mqh  48 kb
 

onde adicionar a parada de arrasto e a saída de equilíbrio ? e não aumenta o lote quando você aumenta o depósito

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

int Buy (int StopLoss = 0, int TakeProfit = 0, double Lot = 0)

{

int Ticket = 0;

duplo SL = 0;

duplo TP = 0;

duplo VolumeLot = 0;

RefreshRates();

se (StopLoss != 0)

SL = NormalizeDouble(Bid-StopLoss*Point, Dígitos);

se (TakeProfit != 0)

TP = NormalizeDouble(Ask+TakeProfit*Point, Dígitos);

se (Lote == 0)

VolumeLot = GetLot ();

senão

VolumeLot = Lote;

Ticket = OrderSend(Symbol(), OP_BUY, VolumeLot, NormalizeDouble(Ask, Digits), 20, SL, TP, NULL, AccountNumber(), 0, Green);

se (Bilhete == -1)

{

retorno (GetLastError ();

}

senão

{

retorno (bilhete);

}

}

int Sell (int StopLoss = 0, int TakeProfit = 0, double Lot = 0)

{

int Ticket = 0;

duplo SL = 0;

duplo TP = 0;

duplo VolumeLot = 0;

RefreshRates();

se (StopLoss != 0)

SL = NormalizeDouble(Ask+StopLoss*Point, Dígitos);

se (TakeProfit != 0)

TP = NormalizeDouble(Bid-TakeProfit*Point, Dígitos);

se (Lote == 0)

VolumeLot = GetLot ();

senão

VolumeLot = Lote;

Ticket = OrderSend(Symbol(), OP_SELLL, VolumeLot, NormalizeDouble(Bid, Digits), 20, SL, TP, NULL, AccountNumber(), 0, Vermelho);

se (Bilhete == -1)

retorno (GetLastError ();

senão

retorno (bilhete);

}

duplo GetLot ()

{

int lot;

se (AccountBalance()>=300) lote=0,01;

se (AccountBalance()>=500) lote=0,02;

se (AccountBalance()>=800) lote=0,03;

retornar (lote);

}

Razão: