[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 161

 
Mopo3:

Sim, é chamado de "aprender o jogo", ou seja, a língua :)


Bem, eu me lembro que o princípio se baseia no fato de que houve tempos de 1min. e depois para ver um período de 20min. os dados são tomados apenas por 20 barras por 1 minuto....

a questão é...então eu não pensei duas vezes sobre isso...))

 

Gente! Veja a mudança de tendência da MA, alguém pode ajudar? https://www.mql5.com/ru/forum/131277/page159

 
Se não for difícil aconselhar qual período deve ser estabelecido para os níveis de Murray, então não mente ou para cada TF seu período. Se ele tem seu próprio período, então quais?
 

Boa tarde!!!!!

Você pode me dizer onde está o erro...... ao compilar nenhum erro, mas não negocia no log do testador eSvechi+MA AUDUSD,H1: OrderSend error 131 e qual é a razão - eu não entendo

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


//---- input parameters
extern int       MA=13;
extern double    Lots=0.01;
extern int       StopLoss=100;
extern int       TakeProfit=100;
extern int       MagicNumber=501;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
  
bool CheckOrders(int Type)
{
 bool Result=True;
 for(int i=0;i<OrdersTotal();i++)
  if(OrderSelect(i,SELECT_BY_POS))
   if(OrderMagicNumber()==MagicNumber && OrderSymbol() == Symbol())
      if(OrderType()==Type)
        {
         if(Type==OP_BUY)
           if(!OrderClose(OrderTicket(),OrderLots(),Bid,0))
             Result=False;
         if(Type==OP_SELL)
           if(!OrderClose(OrderTicket(),OrderLots(),Ask,0))
             Result=False;
         } 
        else Result=False;
 return(Result); 
}

// Проверяем наличие закрытой на текущей свече позиции типа Type. Если есть, то возвращает False  
bool CheckExists(int Type)  
{
 bool Result=True;
 for(int i=OrdersHistoryTotal()-1; i>=0;i--)
  if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
   if(OrderMagicNumber()==MagicNumber && OrderSymbol() == Symbol() && OrderCloseTime() >= Time[0] && OrderType() == Type)
    {
     Result=False;
     break;
     }
 return(Result); 
 }
  
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {

        // Узнаем уровень стопов и спрэд
    int Spread = MarketInfo(Symbol(), MODE_SPREAD);
    int StopLevel = MarketInfo(Symbol(), MODE_STOPLEVEL);

        //Рассчитываем значения средних на 0-ом и 1-м баре
    double MA_0 =iMA(NULL, 0, MA,0,1,1,0);    
    double MA_1 =iMA(NULL, 0, MA,0,1,1,1);
    
 //-------------открытие позиции Buy покупка-----------------
 //сравниваем на 1-м баре цену закр. и откр. между собой и с МА, на 0-м баре откр. меньше МА закр. больше МА
    if(
       (Open[0+1]<Close[0+1])&& 
       (Close[0+1]<MA_1)&&
       (Open[0]<MA_0)&&
       (Close[0]>MA_0)
      )
     if(CheckOrders(OP_SELL) && CheckExists(OP_BUY))
      {
       if(StopLoss <= StopLevel+Spread)
         double SL = 0;
        else
         SL = Ask - StopLoss*Point;
       if(TakeProfit <= StopLevel-Spread)
         double TP = 0;
        else
         TP = Ask + TakeProfit*Point;
       if(!OrderSend(Symbol(), OP_BUY, Lots, Ask, 10, SL, TP, NULL, MagicNumber))
         Print("Не открыт ордер Buy. Ошибка №", GetLastError()); 
       }
    //-------------------Конец блока покупки -------------------
    //-------------Открытие позиции Sell продажа----------------   
    if(
       (Open[0+1]>Close[0+1])&& 
       (Close[0+1]>MA_1)&&
       (Open[0]>MA_0)&&
       (Close[0]<MA_0)
      )
     if(CheckOrders(OP_BUY) && CheckExists(OP_SELL))
      {
       if(StopLoss <= StopLevel+Spread)
         SL = 0;
        else
         SL = Bid + StopLoss*Point;
       if(TakeProfit <= StopLevel-Spread)
         TP = 0;
        else
         TP = Bid - TakeProfit*Point;
       if(!OrderSend(Symbol(), OP_SELL, Lots, Bid, 10, SL, TP, NULL, MagicNumber))
         Print("Не открыт ордер Sell. Ошибка №", GetLastError()); 
       }
//-----------------конец блока продажи ----------------------
   return(0);
  }
//+------------------------------------------------------------------+

ERR_INVALID_TRADE_VOLUME 131 Volume incorreto, erro na granulação do volume. Você precisa parar todas as tentativas comerciais e mudar a lógica do programa.

A lógica parece estar correta.............................................

 
igrok2008:

Boa tarde!!!!!

Você pode me dizer onde está o erro...... ao compilar nenhum erro, mas não negocia no log do testador eSvechi+MA AUDUSD,H1: OrderSend error 131 e qual é a razão - eu não entendo

ERR_INVALID_TRADE_VOLUME 131 Volume incorreto, erro na granulação do volume. Você precisa parar todas as tentativas comerciais e mudar a lógica do programa.

A lógica parece estar correta.............................................


Os lotes não devem ser inferiores a (+ tipo de múltiplo de) MarketInfo(Symbol(), MODE_MINLOT);

Muitos programas de comerciantes têm 0,1, mas o seu é 10 vezes menor.

 
ilunga:


Os lotes devem ser pelo menos (+ uma espécie de múltiplo de) MarketInfo(Symbol(), MODE_MINLOT);

Muitos programas de comerciantes têm 0,1, enquanto você tem 10 vezes menos.

E TODOS !!!! A captura completa é esta!!!!!!!!! .......... E quanto aos pequenos depósitos de 5 -10 dólares???????
 
ilunga:


Os lotes devem ser pelo menos (+ uma espécie de múltiplo de) MarketInfo(Symbol(), MODE_MINLOT);

Muitos programas de comerciantes têm 0,1, enquanto você tem 10 vezes menos.

mudou o lote para 0,1 ainda não é comercializado
 
igrok2008:
mudou meu lote para 0,1 ainda não está funcionando


funcionou no InterBank, tudo funciona mesmo com 0,01

Alpari a 0,01 dá erro 131, a 0,1 funciona

 
ilunga:


funcionou no InterBank, tudo funciona mesmo com 0,01

Alpari a 0,01 dá erro 131, a 0,1 funciona

exatamente Alpari em conta demo e testes não funciona!!!!! terminal MT4 construir 229........ dicas!!!!!!
 
igrok2008:

Boa tarde!!!!!

Você pode me dizer onde está o erro...... ao compilar nenhum erro, mas não negocia no log do testador eSvechi+MA AUDUSD,H1: OrderSend error 131 e qual é a razão - eu não entendo

ERR_INVALID_TRADE_VOLUME 131 Volume incorreto, erro na granulação do volume. Você precisa parar todas as tentativas comerciais e mudar a lógica do programa.

A lógica parece estar correta.............................................

Normalizar Parar Perdas, Tirar Lucro e Abrir Preço com NormalizarDuplicar