[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 597

 

Olá a todos,

por favor, informe como descobrir o preço máximo que foi após a formação de um fractal

 

Aqui está a função comercial que abre posições:

//+-------------------------------------------------------------------------------------+
//| Открытие позиций                                                                    |
//+-------------------------------------------------------------------------------------+
bool Trade (int signal)
{
  double sl = 0, tp = 0;

  if(signal == SIGNAL_BUY && FindOrders() == 0)                                     // Если сигнал на покупку и открытых ордеров нет...
  {
    g_ticket = OpenBuy();                                                           // открываем лимитный ордер на покупку
  
    if(g_ticket > 0 && OrderSelect(g_ticket,SELECT_BY_TICKET,MODE_TRADES) == true)  // Если ордер есть и он выбран..
    {
      if(i_sl != 0)                                                                 // Если входной параметр стоп-лосса не равен 0, то..
        sl = NormalizeDouble(OrderOpenPrice() - i_sl*Point,Digits);                 // Получаем значение стоп-лосса для выбранного ордера
      if(i_tp != 0)                                                                 // Если входной параметр тейкпрофита не равен 0, то..
        tp = NormalizeDouble(OrderOpenPrice() + i_tp*Point,Digits);                 // Получаем значение тейкпрофита для выбранного ордера
    }  
  }  
  else if(signal == SIGNAL_SELL && FindOrders() == 0)                               // Если сигнал на продажу и открытых ордеров нет..
  {
    g_ticket = OpenSell();                                                          // Открываем лимитный ордер на продажу
  
    if(g_ticket > 0 && OrderSelect(g_ticket,SELECT_BY_TICKET,MODE_TRADES) == true)  // Если ордер есть и он выбран..
    {
      if(i_sl != 0)                                                                 // Если входной параметр стоп-лосса не равен 0, то..
         sl = NormalizeDouble(OrderOpenPrice() + i_sl*Point,Digits);                // Получаем значение стоп-лосса для выбранного ордера
      if(i_tp != 0)                                                                 // Если входной параметр тейкпрофита не равен 0, то..
         tp = NormalizeDouble(OrderOpenPrice() - i_tp*Point,Digits);                // Получаем значение тейкпрофита для выбранного ордера
    }
  }
  if(sl != 0 || tp != 0)                                                            // Если полученные значения sl и tp не равныы 0, то..
  {
    OrderModify(g_ticket,OrderOpenPrice(),sl,tp,OrderOpenTime() + 86400,Lime);      // Модифицируем ордер
    return(true);
  }
  return(true);
}

Tudo claro e conciso. O erro 130 continua aparecendo no testador, embora o Expert Advisor funcione, mas o erro 130 continua aparecendo. Qual é a razão disso?

Esta função utiliza funções de abertura de posição, aqui estão elas:

//+-------------------------------------------------------------------------------------+
//| Открытие длинной позиции                                                            |
//+-------------------------------------------------------------------------------------+
int OpenBuy()
{
  g_ticket = -1;
  string myNote = "сов баянул";
         
  g_ticket = OrderSend(Symbol(),OP_BUYLIMIT,0.1,GetPriceToInput(),3,0,0,myNote,myMagic,0,Blue);
  if(g_ticket > 0 && OrderSelect(g_ticket,SELECT_BY_TICKET,MODE_TRADES) == true)
  
  return(g_ticket);
}
//+-------------------------------------------------------------------------------------+
//| Открытие короткой позиции                                                           |
//+-------------------------------------------------------------------------------------+
int OpenSell()
{
  g_ticket = -1;
  string myNote = "сов шортанул";

  g_ticket = OrderSend(Symbol(),OP_SELLLIMIT,0.1,GetPriceToInput(),3,0,0,myNote,myMagic,0,Red);
  if(g_ticket > 0 && OrderSelect(g_ticket,SELECT_BY_TICKET,MODE_TRADES) == true)
  
  return(g_ticket);
}

Pensei que tinha algo a ver com o nível de parada, acrescentei verificação, mas não é a mesma coisa. Eu o removi por enquanto, pois na Alpari este nível é 0. Por favor, dê uma dica do que precisa ser corrigido para evitar este erro.

 


 double min=Low[iLowest(NULL,PERIOD_M15,MODE_LOW,32,0)];

como registrar no formato 1.30320 para EURUSD, por exemplo?
 
if(OrderTakeProfit()!=0&&OrderTakeProfit()!=OrderOpenPrice()+2*kio*Point&&Bid>OrderOpenPrice()+50*kio*Point)
               OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OrderOpenPrice()+2*kio*Point,0);
Olá a todos. Vocês podem me dizer o que há de errado com o Erro nº 1 como corrigi-lo? obrigado!
 
rigonich:

Declarar uma variável do tipo data/hora e atribuir-lhe o valorTempo[0]. Após a abertura do pedido, se não for igual aTempo[0], você pode abrir o próximo pedido e se for igual a Sair. Quanto ao critério, eu não olhei para o código, mas parece que se for estocástico, ele deve ser acionado no cruzamento em níveis sobre-comprados/sobre-vendidos (geralmente >80 e <20%). Para maior clareza, fixe os níveis em 20 e 80 % nos ambientes estocásticos
Rigonich:

Declarar uma variável do tipo data/hora, atribuir-lhe o valorTempo[0], após abrir uma ordem, então se não for igual aTempo[0], você pode abrir a próxima ordem, se for igual a --sair do início. Quanto ao critério, eu não olhei para o código, mas parece que se for estocástico, ele deve ser acionado no cruzamento em níveis sobre-comprados/sobre-vendidos (geralmente >80 e <20%). Para maior clareza, estabeleça os níveis de 20 e 80 % nos ambientes estocásticos.
Obrigado)
 
Boa tarde, por favor, ajude-me, não consigo entender porque ordens desnecessárias estão abrindo ((, circulado em vermelho na captura de tela, aqui estão os critérios
// Торговые критерии
   M_1=iStochastic(NULL,0,Kperiod,Dperiod,Slowing,MODE_SMMA,Price_field,MODE_MAIN,  0);
   M_2=iStochastic(NULL,0,Kperiod,Dperiod,Slowing,MODE_SMMA,Price_field,MODE_MAIN,  1);
   S_1=iStochastic(NULL,0,Kperiod,Dperiod,Slowing,MODE_SMMA,Price_field,MODE_SIGNAL,0);
   S_2=iStochastic(NULL,0,Kperiod,Dperiod,Slowing,MODE_SMMA,Price_field,MODE_SIGNAL,1);
 
   if (M_2 < S_2 && M_1>=S_1 ) 
      { 
       if (Total==1)
         {
          if (Vremya== Time [0]) 
          return; 
          T=Close_Order (Lts,Tip);
          Vremya= Time [0];
          if (T==true)
           { 
           Total=0;
           }
         } 
       if (Total==0)         
         { 
         if (Vremya== Time [0])  
         return;                                     
   
          Open_Order_B (Lts); 
          Vremya= Time [0];
            
         }                                      
      }
   if (M_2 > S_2 && M_1<=S_1 ) 
      { 
       if (Total==1)
          {
           if (Vremya== Time [0]) 
           return; 
           T=Close_Order (Lts,Tip); 
           Vremya= Time [0];
           if (T==true)
             {
             Total=0;
             }
          }
       if (Total==0)         
          {                                          
          if (Vremya== Time [0]) 
          return;                                     
          
          Open_Order_S (Lts); 
          Vremya= Time [0];                                              
          }
       }   
 
Equilibrium:
Boa tarde, por favor, ajude-me, não consigo entender por que os pedidos indesejados abrem ((, na imagem da tela eles estão circulados em vermelho, aqui estão os critérios

Tente tomar valores indicadores de 1 e 2 barras. Algo parecido com isto.
 
i999i:

Olá a todos,

por favor, informe como descobrir o preço máximo que foi após a formação de um fractal


Próximo fractal superior.
 

double min=Low[iLowest(NULL,PERIOD_M15,MODE_LOW,32,0)];

Boa tarde, favor aconselhar

Como registrar 1,30320 para EURUSD, por exemplo?

 
hoz:

Aqui está a função comercial que abre posições:

Tudo claro e conciso. O erro 130 continua aparecendo no testador, embora o Expert Advisor funcione, mas o erro 130 continua aparecendo. Qual é a razão disso?

Esta função utiliza funções de abertura de posição, aqui estão elas:

Pensei que tinha algo a ver com o nível de parada, acrescentei verificação, mas não é a mesma coisa. Eu o removi por enquanto, pois na Alpari este nível é 0. Por favor, dê uma dica do que precisa ser corrigido para evitar este erro.


Acho que é tudo sobre a função GetPriceToInput().