[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2. - página 161

 
Mopo3:

Sí, se llama "aprender el juego", es decir, el idioma :)


Bueno, recuerdo que el principio se basa en el hecho de que había tiempos de 1min. y, a continuación, para ver un período de 20min. los datos se toman sólo por 20 barras durante 1 minuto....

el punto es... entonces no lo pensé dos veces...))

 

¡Gente! Mira el cambio de tendencia de la MA, ¿alguien puede ayudar? https://www.mql5.com/ru/forum/131277/page159

 
Si no es difícil aconsejar qué período debe establecerse para los niveles de Murray para que no mienta o para cada TF su período. Si tiene su propio período, ¿cuáles?
 

¡¡¡¡¡Buenas tardes!!!!!

¿Puedes decirme dónde está el error...... cuando la compilación no hay errores, pero no el comercio en el registro del probador eSvechi + MA AUDUSD, H1: OrderSend error 131 y cuál es la razón - No entiendo

//+------------------------------------------------------------------+
//|                                                   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 Volumen incorrecto, error en la granulación del volumen. Es necesario detener todos los intentos de negociación y cambiar la lógica del programa.

La lógica parece ser correcta.............................................

 
igrok2008:

¡¡¡¡¡Buenas tardes!!!!!

¿Puedes decirme dónde está el error...... cuando la compilación no hay errores, pero no el comercio en el registro del probador eSvechi + MA AUDUSD, H1: OrderSend error 131 y cuál es la razón - No entiendo

ERR_INVALID_TRADE_VOLUME 131 Volumen incorrecto, error en la granulación del volumen. Es necesario detener todos los intentos de negociación y cambiar la lógica del programa.

La lógica parece ser correcta.............................................


Los lotes no deben ser inferiores a (+ tipo de múltiplo de) MarketInfo(Symbol(), MODE_MINLOT);

Los programas de muchos comerciantes tienen 0,1, pero el suyo es 10 veces menor.

 
ilunga:


Los lotes deben ser al menos (+ un múltiplo de) MarketInfo(Symbol(), MODE_MINLOT);

Los programas de muchos comerciantes tienen 0,1, mientras que usted tiene 10 veces menos.

¡¡¡¡Y TODO !!!! La captura completa es esta!!!!!!!!! .......... ¿Y qué pasa con los pequeños depósitos de 5 a 10 bucks???????
 
ilunga:


Los lotes deben ser al menos (+ un múltiplo de) MarketInfo(Symbol(), MODE_MINLOT);

Los programas de muchos comerciantes tienen 0,1, mientras que usted tiene 10 veces menos.

cambiado el lote a 0.1 todavía no comercia
 
igrok2008:
cambié mi lote a 0.1 todavía no funciona


corrió en InterBank, todo funciona incluso con 0,01

Alpari a 0,01 da error 131, a 0,1 funciona

 
ilunga:


corrió en InterBank, todo funciona incluso con 0,01

Alpari a 0,01 da error 131, a 0,1 funciona

exactamente Alpari en la cuenta de demostración y las pruebas no funciona!!!!! terminal MT4 construir 229........ consejos!!!!!!
 
igrok2008:

¡¡¡¡¡Buenas tardes!!!!!

¿Puedes decirme dónde está el error...... cuando la compilación no hay errores, pero no el comercio en el registro del probador eSvechi + MA AUDUSD, H1: OrderSend error 131 y cuál es la razón - No entiendo

ERR_INVALID_TRADE_VOLUME 131 Volumen incorrecto, error en la granulación del volumen. Es necesario detener todos los intentos de negociación y cambiar la lógica del programa.

La lógica parece ser correcta.............................................

Normalizar Stop Loss, Take Profit y Precio de Apertura con NormalizeDouble